지난 글의 연속입니다.
학습 상세 내용, 학습 데이터, 평가 데이터에 대해서는 이전 기사를 참고해 주십시오.
이번에는 27B 모델에서도 유사하게 학습을 통해 효과가 나타나는지 9B 결과와 비교하는 것을 목적으로 합니다.
요약 (tl;dr)
- 9B와 달리 ASR 태스크에서 학습 없이도 ASR 성능이 크게 개선되었으며, 음성과 언어의 일치성이 보이기 시작했습니다.
- 4bit 양자화 + context length를 줄이면 VRAM 24GB로 ASR 1.7B + LLM 27B의 학습이 가능합니다.
- 자택에서 학습을 진행했기 때문에 차단기가 떨어졌고, 실내 온도는 32℃의 지옥이었습니다.
학습 및 평가
학습 중 손실(loss) 감소는 이미지와 같습니다.
시작은 alpaca의 약 3 전후에서 시작했으며, 두 번째 단계인 multi-turn에서는 0.9까지 떨어졌습니다.
최종적인 loss는 9B와 비슷한 수준입니다.
VRAM 사용량은 다음과 같습니다. 약 22GB에 고정되어 있었습니다.
지난번과 마찬가지로 음성 태스크 평가는 sbintuitions/JamC-QA를 사용했습니다.
결과는 다음과 같습니다.
| 입력・모델 | 정답 수 / 평가 건수 | Accuracy |
|---|
| 음성 → 구축한 모델 (9B) | 354 / 1,433 | 24.70% |
| 음성 → 구축한 모델 (27B) | 340 / 1,433 | 23.73% |
| 정답 질문 텍스트 → Qwen3.5-9B | 610 / 1,433 | 42.57% |
| 질문 텍스트 → Qwen3.8-27B | 730 / 1,433 | 50.94% |
27B 모델은 순수 성능 자체는 9B보다 높지만, 음성에 대응하도록 학습한 모델의 경우에는 9B보다 정확도가 낮아졌습니다.
다만, 정답 답변의 분포를 보면 다음과 같습니다.
모델 답변 분포
| 모델 답변 | 9B | 27B |
|---|
| A | 789 | 32 |
| ... | 합계 | |
| 1,433 | 1,433 | |
9B는 A와 C에 집중된 반면, 27B는 A를 제외한 다른 답변에 집중되었습니다.
27B에서는 추출 불가 건수도 48건에서 111건으로 증가했습니다.
지시 추종 성능은 9B보다 세대적으로나 모델 성능상 더 좋을 것이라 예상했지만, 27B가 추출 부하가 많아진 것은 의외였습니다.
덧붙여 JamC-QA의 카테고리별 정답률도 아래에 게재합니다.
| 카테고리 | 문제 수 | 9B | 27B | 차이 (27B − 9B) |
|---|---|---|
| 문화 | 326 | 26.69% | 20.55% | -6.13pt |
| ... | 전체 |
1,433 | 23.80% (341문제 정답) | 23.73% (340문제 정답) | -0.07pt |
전반적으로는 문제를 풀 수 있게 된 것 같지만, parse가 불가능한 출력을 했을 경우 정확도 차이가 나타나는 것으로 보입니다.
ASR 성능 평가
9B 편에서 작성하는 것을 잊었기에, Encoder에 입력할 프롬프트 포맷을 다음과 같이 보여드립니다.
"system_prompt": "당신은 음성을 이해하는 어시스턴트입니다. 음성 내용에 근거하여 정확하게 답변해 주세요.",
"task_prompt": "다음 음성을 받아쓰기 해 주세요.\n<speech/>"
지난번과 마찬가지로 평가에는 japanese-asr/ja_asr.common_voice_8_0의 일본어 test split을 사용했습니다.
평가 결과는 다음과 같습니다.
| 조건 (Model・Decoding) | CER ↓ | 완전 일치율 ↑ | 완전 일치 수 | 문자 편집 거리 합계 |
|---|---|---|
| 원래 Qwen3-ASR-1.7B・greedy | 9.31% | 42.23% | 1,893 / 4,483 | 8,702 |
| 학습 후・greedy | 720.93% | 0.36% | 16 / 4,483 | 673,855 |
| 학습 후・sampling | 753.05% | 0.18% | 8 / 4,483 | 703,873 |
| 학습 후 27B・greedy | 314.48% | 3.83% | 172 / 4,483 | 673,855 |
Qwen3-ASR-1.7B에 비해, 학습 후 greedy의 CER은 711.62 포인트, sampling은 743.74 포인트 높았습니다. 학습 후 모델끼리는, sampling을 사용했을 때 CER이 32.12 포인트 악화되었고, 완전 일치는 16건에서 8건으로 감소했습니다.
학습 후 모델의 받아쓰기 예시
몇 가지 생성 예시를 케이스별로 분류하여 게재합니다.
케이스 1: 성공
9B에서는 '晴れていました'로 바꿔 말했지만, 27B는 정답과 일치했습니다.
9B에서는 전혀 없었지만, 27B에서는 여기저기 보였습니다.
케이스 2: 의미는 가깝지만 한자/가나 표기 차이가 남음
| 조건 | 텍스트 |
|---|
| 정답 | 저는 지금 돈이 없습니다. |
| ... | |
| 파악하기에 가장 많았던 케이스입니다. | |
'わたし'가 '私'로 바뀐 차이만으로 CER은 23.08%였습니다.
이번 채점에서는 한자/가나를 통합하지 않기 때문에, 의미의 근접성과 문자 일치를 구분할 필요가 있을 것 같습니다.
케이스 3: 부분적으로 고유명사가 대체됨
| 조건 | 텍스트 |
|---|
| 정답 | 저는 마츠이 씨가 쓴 작문을 읽었습니다. |
| ... | |
| '松井さん'이 '夏目漱石', '作文'이 '作品'으로 바뀌었습니다. 이 역시 상당히 자주 보이는 인상입니다. 다만, 학습 데이터를 늘려나가면 자연스럽게 사라질 것 같습니다. | |
케이스 4: 횟수를 변경해 버림
| 조건 | 텍스트 |
|---|
| 정답 | 일 년에 한 번 해외에 갑니다. |
| ... | |
| '一回'가 '2回'로 바뀌었습니다. 한자 숫자와 아라비아 숫자 표기 차이에 더해, 횟수 자체가 변하고 있습니다. 숫자 부분의 내용이 바뀌는 케이스도 빈번하게 발생하는 인상입니다. | |
케이스 5: 받아쓰기 기능이 없다고 거절함
| 조건 | 텍스트 |
|---|
| 정답 | 모리나가(森永)의 맛있는 우유는 진한 파란색에 우유병을 장식한 디자인의 패키지 우유입니다. |
| ... | |
| 음성 내용을 출력하지 않고, 받아쓰기에 대응하지 않는다는 안내를 생성했습니다. | |
이 문장은 모델의 생성 내용이며, 구현 기능을 설명한 사실은 아닙니다.
빈번하게 발생하며, 주요 CER 악화 요인 중 하나입니다.
명백히 언어 모델 측 출력에 끌려가고 있지만, 언어 모델 측 학습을 진행하지 않는 이번 설정에서는 제거할 수 없습니다. 9B에서는 일어나지 않았기 때문에, 오히려 27B 모델의 강점이 느껴집니다.
케이스 6: 받아쓰기에서 문장 첨삭/해설로 이탈함
| 조건 | 텍스트 |
|---|
| 정답 | 저희 중학교는 도시락 제도라, 가져갈 수 없을 때는 50엔짜리 학교 판매 빵을 삽니다. |
| ... | |
| 9B에서도 발생했던 '응답을 생성해 버리는' 현상 중 하나입니다. 27B에서는 응답 내용이 해설이 되기 쉬운 경향이 있었습니다. | |
'50엔의 빵' 같은 내용은 남아있기 때문에, 음성과 텍스트의 얼라인먼트는 제대로 되고 있는 것 같습니다.
케이스 7: 반복이 사라져도 무관한 출력이 남음
| 조건 | 텍스트 |
|---|
| 정답 | 키무라 씨는 저에게 사진을 보여주었습니다. |
| ... | |
| 9B와 같은 특정 문자 연속은 급감했지만, 27B에서도 입력된 음성 소리와 전혀 다른 문장이 생성되는 케이스가 세 건 있었습니다. | |
케이스 8: 27B에도 단어의 긴 반복이 남음
| 조건 | 텍스트 |
|---|
| 정답 | 선생님 책상 위에 사전에 두 권과 잡지가 한 권 있습니다. |
| ... | |
| 어쨌든 아직 남아있습니다. | |
그 외 데이터 상단에서 가져온 것들을 대충 나열합니다.
9B보다 명확하게 가까운 음성이 늘어나고 있어서, 소리와 언어가 제대로 대응되고 있음을 느낍니다.
| 정답 텍스트 | 모델의 받아쓰기 |
|---|
| 키무라 씨는 저에게 사진을 보여주었습니다. | 「The Mamas and the Papas」 |
| ... | |
| 평가 데이터 상단에서 생성시킨 것을 적당히 가져온 것도 아래에 붙여 놓겠습니다. | |
전반적으로 아쉬운 결과가 많은 것이 보입니다.
현시점의 한계
- 24GB VRAM을 사용한 학습에서는 ASR 1.7B + LLM 27B 학습을 위해서는 4bit 양자화 + 텍스트 측 max text tokens를 1536으로 제한하는 것이 필요합니다 (32GB라면 제한하지 않아도 될 것 같은 느낌)
- 27B급에서도 음성과 언어를 대응시키는 것은 일부 가능하지만, 더 높은 정밀도를 얻기 위해서는 추가적인 추가 학습이 필요합니다.
스트리밍화 편, ASR・LLM・TTS 연결 편으로 이어집니다
We Are Hiring !
IVRy의 대화 팀에서는 각종 포지션에서 모집 중입니다.
ASR, TTS 등의 음성 관련이나 의도 분류, 대화 평가 등 대화와 관련된 기술/연구에 관심 있는 분이 계시다면 꼭 캐주얼 면담으로 이야기 나눠봅시다.
Discussion