로컬 음성 챗봇이 긴 대화와 끼어들기를 처리한 사례
개인 개발 환경에서 만든 음성 대화 챗봇이 거의 실시간에 가까운 응답까지 개선됐다. 사용자가 말하면 -small이 음성을 글로 바꾸고, 가 답을 만들며, Orpheus가 다시 음성으로 읽어준다. 대화 중간에 사용자가 끼어들어도 직전에 말한 내용을 잃지 않도록 문맥을 유지한다.
모든 처리는 외부 서버가 아니라 로컬 컴퓨터에서 돌아간다. 24GB 그래픽카드에서 VRAM 사용량은 최대 21.3GB 정도로 유지되어, 실행에 필요한 여유가 조금 남는다. Qwen 모델의 일부 MoE 전문가는 시스템 메모리 약 150GB를 차지한다.
KV 캐시는 bf16으로 쓰고 있으며, 문맥 길이는 131,072 토큰이라 몇 시간 분량의 대화를 담을 수 있다. 코드는 곧 GitHub에 공개될 예정이다.
핵심 포인트
- 음성 인식, 답변 생성, 음성 합성이 모두 로컬 컴퓨터에서 처리된다.
- 덕분에 응답이 거의 실시간에 가까워졌다.
- 대화 도중 사용자가 끼어들어도 문맥을 유지하는 구조다.
- 24GB 그래픽카드에서 VRAM 사용량은 21.3GB 이하로 유지된다.
- 131,072 토큰 문맥으로 몇 시간짜리 대화를 담을 수 있다.