음성-텍스트 변환 앱용 전사본 정제(cleanup)를 위해 LLM을 미세 조정한 경험
요약
본 기사는 음성-텍스트 변환 앱(WhisperNow)의 전사본 정리(cleanup) 기능을 위해 LLM을 미세 조정하는 과정을 다룹니다. 공개 및 합성 데이터를 결합하여 1.2B부터 4B까지의 로컬 모델을 훈련하고, 이를 Claude Haiku 5.5나 gpt-6-luna 같은 상용 API와 비교했습니다. 실험 결과, 미세 조정된 로컬 모델들이 기성품 클라우드 모델 대비 사실적 오류가 적고 짧은 받아쓰기에서 우수한 성능을 보였습니다.
핵심 포인트
- 전사본 정리(cleanup)는 단순 ASR 기능을 넘어선 전문적인 LLM 미세 조정이 필요합니다.
- 로컬 환경에서 미세 조정된 모델들은 기성품 클라우드 모델보다 사실적 오류가 적어 성능 우위를 보였습니다.
- 모델의 추론 수준과 전사 길이(특히 200단어 초과)에 따라 오류 발생률이 크게 달라지는 경향을 확인했습니다.
WhisperNow를 위한 자체 LLM 미세 조정 및 성능 비교
저는 음성-텍스트 변환 앱인 WhisperNow를 만들었습니다. 하지만 시장에는 수많은 WisprFlow 클론들이 존재하기 때문에, 저는 한 단계 더 나아가 자체 LLM을 미세 조정하여 정리(cleanup) 단계를 처리하도록 했습니다. 이 모델은 채움말(fillers), 잘못된 시작(false starts), 자기 수정(self-corrections), 그리고 목록 형식 등을 모두 로컬에서 제거합니다. 이 작업을 위해 LLM을 미세 조정하려면 먼저 데이터가 필요했습니다. 이 데이터셋은 66,557개의 행으로 구성되어 있습니다. 저는 공개 데이터셋(aawaaz, handy, Disfl-QA)을 결합하고, 이메일, 회의록, 레시피 및 구술 명령과 같은 합성 받아쓰기 데이터를 추가하여 시작했습니다. gpt-6.1-sol은 앱이 클라우드 모델에 보내는 것과 동일한 프롬프트를 사용하여 모든 스크립트의 정리된 버전을 작성했습니다. 모델을 훈련하는 과정에서 저는 몇 가지 취약점을 발견했습니다: 긴 받아쓰기, 음성 인식기가 잘못 들은 단어, 잘린 단어("interf interface"), 그리고 문자 그대로 사용되는 수정 구문("scratch behind the dog's ears") 등이었습니다. 저는 각 유형의 예시를 더 많이 생성하고 재훈련을 진행했습니다.
저는 세 가지 기본 모델에 대해 각각 Modal에서 임대한 단일 H100 또는 H200 GPU를 사용하여 전체 미세 조정을 수행했습니다:
- 모델 메모리 사용량: 100단어 받아쓰기, RTX 5070 GPU: 100단어 받아쓰기, Ryzen 9 8945HS CPU: LFM2.5 1.2B (앱 기본값) - 1.6 GB / 0.18 s / 2.3 s
- LFM2.5 2.6B - 3.3 GB / 0.34 s / 5.4 s
- Qwen3.5 4B - 5.3 GB / 0.62 s / 8.9 s
이 모델들은 API를 통해 Claude Haiku 5.5와 gpt-6-luna가 동일한 받아쓰기에 약 1.4초, glm-5.3-flash는 2.6초, 그리고 최대 추론(max reasoning)을 사용하는 glm-5.3은 5.6초가 걸렸습니다. 모델 점수를 매기기 위해, 심사 모델(judge model)은 각 출력을 참조와 비교하여 사실적 오류를 계산합니다: 누락된 사실, 변경된 사실, 수정 과정의 버려진 측면에서 유지된 사실, 또는 만들어낸 사실입니다. 테스트 행은 제외된 테스트 분할과 더불어, 긴 받아쓰기 하나와 탈구성이 가득한 짧은 받아쓰기 두 가지 벤치마크(총 4,170행)로 구성됩니다.
모델들은 짧은 받아쓰기에서 가장 좋은 성능을 보였습니다: 최대 25단어까지의 경우, 세 모델 모두 낮은 추론 수준에서 glm-5.3-flash보다 적은 사실적 오류를 만들었습니다. 또한 2.6B와 4B는 높은 추론 수준에서도 glm-5.3보다 적은 오류를 만들었으며, 1.2B 모델과 동률을 기록했습니다.
4B 모델은 모든 길이에서 glm-5.3-flash보다 적은 오류를 발생시키며, 최대 추론(max reasoning)을 할 경우 100단어까지는 glm-5.3와 비슷한 수준을 유지합니다. 1.2B와 2.6B 모델은 26단어에서 200단어까지는 glm-5.3-flash보다 1.01.5배의 오류를 발생시키며, 200단어를 초과할 경우 1.51.9배의 오류를 발생시킵니다. 차트: 세 가지 미세 조정된 모델과 두 가지 클라우드 glm-5.3 모델의 전사 길이별 사실 오류(factual errors)에 대한 내용입니다.
클라우드 모델의 경우, 저는 또한 기성품(off-the-shelf) LFM2.5 2.6B를 포함한 7개의 추가 클라우드 모델을 1,670개 행의 더 작은 세트로 평가했습니다. 이 기성품 2.6B는 미세 조정된 모델보다 거의 네 배에 달하는 사실 오류를 발생시킵니다.
만약 클라우드 모델을 사용하고 싶다면, Claude Haiku 5.5와 gpt-6-luna(둘 다 낮은 추론 수준)가 최고의 가격 대비 성능 비율(price-to-performance ratio)을 가지고 있습니다. glm-5.3-flash는 Haiku만큼 정확하며 최대 추론 시에는 glm-5.3가 더 정확하지만, 속도는 각각 약 두 배, 네 배 느립니다.
차트: 제가 테스트한 모든 모델의 사실 오류(factual errors)
링크
앱 (MIT, Windows, macOS 및 Linux): https://github.com/stephan271c/WhisperNow
모델 및 데이터셋: https://huggingface.co/collections/category271/whispernow-6ae00accee969c7447cec326
데이터셋 제작 방법: https://github.com/stephan271c/WhisperNow/blob/master/training/making-the-dataset.md
데이터나 학습에 관한 질문은 기꺼이 답변드리겠습니다.
제출자: /u/stephan273 to r/LocalLLaMA [링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/OpenAI Codex (search)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기