피드로 돌아가기
Dev.toAI/ML
원문 읽기
Local LLM 기반 Voice Agent의 파이프라인 신뢰성 확보 및 세션 격리 설계
I Built a Fully Local Voice AI Agent — Here's What Broke (and How I Fixed It)
AI 요약
Context
단순 LLM API 호출을 넘어 Whisper와 LLaMA 3를 로컬 환경에서 통합하는 과정에서 발생한 파이프라인 불안정성 해결 필요. 초기 모듈 간 강한 결합도로 인한 테스트 어려움 및 Streamlit의 상태 관리 특성으로 인한 세션 간 데이터 간섭 문제 직면.
Technical Solution
- 모듈별 단일 책임 원칙 적용을 통한 Classifier와 LLM Interface의 분리 구조 설계
- Global Side Effect 방지를 위해 Whisper 내부 로더 Monkey-patching 방식을 직접 호출 방식으로 변경
- 오디오 입력값 정규화 및 beam_size=5, temperature=0.0 설정으로 Whisper의 Hallucination 억제
- Streamlit의 스크립트 재실행 특성을 고려하여 Module-level List를 st.session_state 기반의 격리된 저장소로 전환
- 이전 대화의 맥락을 파악하여 실행 대상 콘텐츠를 결정하는 Context Resolution Layer 도입
실천 포인트
- 로컬 모델 도입 시 입력 데이터의 정규화와 디코딩 파라미터 최적화를 통한 출력 일관성 확보 - 상태 유지 프레임워크 사용 시 프로세스 공유로 인한 데이터 유출 가능성을 고려한 세션 격리 검토 - AI 파이프라인 설계 시 전단계의 오류가 증폭되는 특성을 고려하여 각 레이어별 독립적 테스트 환경 구축