今天才明白,小模型的用处

最近在做一个使用 Whisper(云端)+ Faster-Whisper(本地)进行语音转文本的应用程序,由于即使使用云端的 Whisper 的 large 模型,效果依然不够理想,于是花了些时间找优化 Whisper 模型转录中文音频的方案。

首先先说明一下遇到的问题

在使用 Whisper 模型时(包括 Faster-Whisper)转录中文文本时,很容易遇到:

  1. 标点缺失
  2. 同音字误用
  3. 字序错误(对于小参数模型如 small 模型)

检索到的解决方案

经过一番检索,我找到了如下的解决方案:

  1. 使用中文特化的模型FunASR
  2. 可以通过在 Whisper 返回转录文本后使用专门模型来添加标点(如 zh-wiki-punctuation-restore),处理同音字误用(如T5Corrector)。

我在看到第二个方案后灵机一动:能不能直接使用小参数版本的大语言模型来处理呢?

我寻找了一些国产的中文 LLM 小模型,最开始尝试了一个特别小参数的模型(64M),完全无法使用。

再是试了 MiniCPM4-0.5B

最后在这里尝试了千问 3 全系模型。

尝试结果是,在开了思考后能够正确纠错的模型参数量为 4B,但是耗时太久,不符合项目需求;再尝试了不同参数量的模型,发现最小的不需要思考就能正确纠错的模型的参数量为 14B,耗时在一秒三左右。


这个经历带给我的

之前我基本只用大模型写代码和辅助搜索,一直觉得这种几 B 的、十几 B 的小参数 LLM 没啥用,因为模型能力没法满足我的主要需求,但是经过今天这次探索,我突然发现了小模型的价值。比如千问的这个 0.6B 模型,由于参数量小,完全可以在本地运行;在实时性要求不高的场景下,开了思考后处理一些基础的语句问题也能勉强一用。

点此查看原文