피드로 돌아가기
Dev.toAI/ML
원문 읽기
Rails 기반 Deterministic Routing과 Async Eval 파이프라인을 통한 LLM 배포 안정성 확보
Ruby is all you need (Part II)
AI 요약
Context
코드 변경과 달리 LLM 모델 업데이트는 Diff 확인이 불가능하며 특정 엣지 케이스에서 예상치 못한 성능 저하가 발생함. 기존의 수동 테스트 방식으로는 모델 변경에 따른 회귀 오류를 방지하고 안전하게 배포하는 데 한계가 존재함.
Technical Solution
- ModelDeployment 테이블 설계를 통한 모델 버전별 상태(status) 및 트래픽 비율(traffic_percentage) 관리 구조 구축
- Session ID 기반의 MD5 Hashing을 적용하여 동일 사용자가 동일 모델 버전을 경험하게 하는 Deterministic Routing 구현
- Active Job을 이용한 비동기 Eval 파이프라인을 구축하여 사용자 응답 지연 없이 백그라운드에서 다각도 성능 평가 수행
- Dispatcher 패턴을 적용하여 입력 데이터(Context, Reference) 존재 여부에 따라 최적의 Evaluator만 선별적으로 실행하는 로직 설계
- Database Transaction을 통한 원자적 롤백 메커니즘을 구현하여 장애 발생 시 즉각적인 이전 버전 복구 보장
실천 포인트
- LLM 배포 시 사용자 경험 일관성을 위해 세션 기반 결정적 라우팅 적용 검토 - 모델 평가 로직을 메인 요청 경로에서 분리하여 비동기 큐(Queue)로 처리하는 구조 설계 - 배포 상태 관리 테이블에 최소 평가 점수(min_eval_score) 필드를 추가하여 자동 프로모션 기준 수립 - 롤백 시 시스템 무중단을 위해 이전 상태 복구 과정을 단일 트랜잭션으로 묶어 처리