
IBM Granite 3.3:语音识别、推理增强与RAG的完美融合 原创
在人工智能的浪潮中,企业对灵活、高效且透明的模型需求日益增长。然而,现有的解决方案往往难以同时满足这些要求。开源模型可能缺乏特定领域的功能,而专有系统有时会限制访问或适应性。这种差距在涉及语音识别、逻辑推理和检索增强生成(RAG)的任务中尤为明显,技术碎片化和工具链不兼容导致了操作瓶颈。
4月22日,IBM带来了全新的Granite 3.3,这是一套专为企业应用设计的开源基础模型,涵盖了语音处理、推理能力和检索机制的升级。Granite Speech 3.3 8B是IBM首个开源的语音转文本(STT)和自动语音翻译(AST)模型,它在转录准确性和翻译质量上超越了基于Whisper的系统。该模型能够处理长音频序列,减少人工切割引入的误差,提升了在实际场景中的可用性。
语音识别与翻译:Granite Speech 3.3 8B的突破
Granite Speech 3.3 8B是一个紧凑且成本高效的音频输入(和文本输入)、文本输出的STT模型,专为企业应用中处理语音输入而设计,并针对自动语音识别(ASR)和自动语音翻译(AST)进行了优化。在转录任务中,Granite Speech 3.3 8B在多个知名公共数据集的测试中,持续展现出比领先的开源和闭源模型更高的准确性。
在翻译方面,Granite Speech 3.3 8B能够将英语自动翻译成多种语言,包括法语、西班牙语、意大利语、德语、葡萄牙语、日语和普通话。在IBM对AST性能的测试中,Granite Speech 3.3 8B在CoVost数据集支持的语言上,与OpenAI的GPT-4o和Google的Gemini 2.0 Flash等领先的专有模型保持同步。更多关于翻译性能的信息可以在模型的Hugging Face模型卡中找到。
架构与设计
从架构上看,Granite Speech 3.3由以下部分组成:
- 语音编码器:包含10个Conformer模块,通过连接时序分类(CTC)在专注于ASR的数据集上进行训练。
- 语音投影器:这里是一个2层的Query Transformer(Q-former),它将音频嵌入投影到一个可以被LLM解释的空间。
- LLM:即Granite 3.3 8B Instruct,具有128K的上下文长度。
- LoRA适配器:当存在音频数据时,应用于LLM的查询和值投影矩阵。
与直接集成语音和文本的单次通过模型不同,Granite Speech 3.3采用两次通过的设计。例如,要向模型询问有关音频文件的问题,需要先调用转录音频,然后再提示模型查询转录的文本。如果提示中包含“”标记和相应的.wav文件,Granite Speech将激活音频编码器、投影器和LoRA适配器。如果没有,模型将仅以文本模式运行,使用Granite 3.3 Instruct 8B。
这种两次通过的方法确保了Granite Speech 3.3 8B在文本查询上的表现与其底层LLM(Granite 3.3 8B Instruct)一致,避免了多模态模型常见的基于文本的性能下降。只要提供了一个能够正确服务文本和语音模型的推理平台,开发者可以将Granite Speech 3.3 8B视为Granite 3.3 8B Instruct的一个版本,增加了音频输入能力。
与传统的基于Whisper的ASR模型不同,Granite Speech 3.3可以接受任意长度的输入。在测试中,该模型能够在H100 80GB GPU上轻松处理一个20分钟的音频文件,而不是固定在30秒的窗口。在基于Whisper的模型中,超过最大时长的音频文件必须被切割成30秒的片段,这通常会在这些30秒切割点附近引入不准确之处。一般来说,你不需要进行的人工切割越少,引入的不准确之处就越少。
尽管Granite Speech 3.3可以处理相当长的音频输入,但值得注意的是,该模型尚未针对长音频数据进行微调。为了保持一致的准确性,建议每个离散音频输入单元的时长限制为1分钟。
改进方向
Granite Speech 3.3只是IBM探索Granite系列音频能力的开端。正在进行的研究旨在为未来的版本(特别是在Granite 4中)增强Granite Speech,包括:
- 多语言编码:目前,Granite Speech 3.3的音频编码器仅支持英语。未来的一个重要步骤是开发能够处理多种语言并敏感于副语言现象的音频编码器,从而实现真正的多语言输入。
- 精细化数据配方:未来的训练计划将纳入更多且更高质量的训练数据,其中针对特定用例的合成数据生成将发挥重要作用。我们还在尝试额外的微调和数据平衡步骤。
- 早期模态融合:我们正在探索实现一个更统一的结构,将音频特征整合到未来Granite模型的所有训练阶段。
- 情感检测:未来的Granite Speech模型将通过训练我们的声学编码器对非词汇音频事件更加敏感,从而支持语音情感识别(SER)能力。
文本推理与FIM能力:Granite 3.3 Instruct的升级
Granite 3.3 8B Instruct和Granite 3.3 2B Instruct是IBM最新的仅文本指令调优模型,它们增加了填充中间(FIM)能力,并继续完善在Granite 3.2中引入的推理能力。
我们还发布了它们的基础模型对应版本——Granite 3.3 8B Base和Granite 3.3 2B Base,它们取代了Granite 3.1的前辈,为开发者提供了访问我们FIM能力模型的机会,以便他们进行自己的微调工作。
填充中间(FIM)
自回归LLM(通常用于文本生成的LLM)本质上是从左到右移动的。它们通过自监督学习进行训练,以迭代预测序列中的下一个标记,基于前面标记的信息,直到序列被认为完成。尽管这种设计适用于各种生成任务,但它在另一种任务上存在不足:根据前面和后面的标记预测正确的标记。换句话说,传统的自回归LLM无法“填充中间”。
要将自回归模型适应填充中间,需要重新设计训练任务,以“欺骗”LLM使用其内在的左到右预测能力来预测中间的标记。这通常需要将一个样本段落划分为前缀(前面的标记)、后缀(后面的标记)和中间(需要通过填充预测的标记),然后重新排列段落,使模型在被要求预测中间标记之前,同时提供前缀和后缀。Granite 3.3利用专用标记,使模型能够基于前缀和后缀生成内容。
FIM有广泛的应用场景,特别是在编码任务中,从代码修复和错误连接到重构,再到快速生成样板代码,以及启用函数参数或文档字符串的插入。
增强推理
Granite 3.2的重点是通过思考偏好优化(TPO)丰富指令模型的推理能力,以提高它们遵循复杂指令的能力,而不会牺牲一般性能。Granite 3.3 Instruct的重点是在保留这些收益的同时,丰富模型在复杂数学推理上的表现。
基于更新的Granite 3.3基础模型,并通过多阶段强化学习使用TPO和组相对策略优化(GRPO)进行微调,Granite 3.3 Instruct模型在与“推理”能力相关的高技术基准测试中表现出显著的改进。
Granite 3.3 8B在MATH500基准测试中的表现轻松超过了Anthropic的Claude 3.5 Haiku(64.2%)和Meta的Llama 3.1 8B Instruct(44.4%),与24B参数的Mistral Small 3(70.6%)大致相当,仅略低于Claude 3.5 Sonnet(72.4%)和OpenAI的GPT-4o Mini(72.6%)。
与Granite 3.2 Instruct模型一样,“思考”功能可以轻松地开启和关闭,允许开发者在需要时优先考虑增强的推理链(CoT),而在不需要时优先考虑成本效益和低延迟。
通过LoRA适配器优化RAG
为了增强现有的基于Granite的应用,并为下一代性能增强的LoRA适配器的开发提供信息,IBM还通过Granite Experiments(一个IBM研究用于测试开源想法的游乐场)发布了5个(主要是)RAG特定的LoRA适配器,用于Granite 3.2 8B Instruct。这些LoRA适配器中的每一个都利用模型的内在知识来启用特定任务,例如重写检索查询或检测幻觉。
IBM研究开发了这些“传统”LoRA适配器,并为每个适配器开发了使用一种新的低秩适应方法的对应版本,我们称之为激活LoRA(aLoRA)。与标准LoRA适配器不同,IBM的aLoRA简单地重用现有的键值(KV)缓存,避免了重新计算上下文(或“预填充”)的需要。激活LoRA在生成质量上与标准LoRA相当,同时提供了显著的运行时和计算优势。aLoRA的源代码可以在这里找到。
RAG幻觉检测
即使使用了RAG,LLM有时也会产生幻觉。当配备了RAG幻觉检测LoRA时,模型将提供一个“忠实度分数”,范围在0到1之间(以0.1为增量),反映了其输出与检索到的文档中信息的接近程度。较低的忠实度分数表示更高的幻觉风险。如果问题无法通过可用信息回答,模型将输出“无法回答”。
RAG查询重写
检索引擎对包含所有相关信息的独立查询的响应结果,比对需要对话中早期上下文才能执行的查询的响应结果要好得多。配备了查询重写LoRA后,模型将自动将任何非独立用户查询重写为一个完全自包含的查询。例如,考虑以下对话:
用户:“苹果公司的CEO是谁?”模型:“蒂姆·库克是苹果公司的首席执行官。”用户:“微软呢?”模型会将用户的第一个查询原样传递,但将第二个查询重写为“微软公司的CEO是谁?”。在测试中,这种重写将模型响应的相关性提高了多达21个百分点。
尽管它是为RAG设计的,但查询重写并不需要RAG文档的存在:它也可以用于重写用户查询以用于其他用例,例如工具调用。
RAG引用生成
当配备了RAG引用生成LoRA时,模型将为其输出的每一句话生成引用(如果该句子受到任何外部来源的启发)。每个句子级别的引用不仅注明了引用的来源,还包含了来自引用来源的一组句子,这些句子支持模型的相应输出句子。
RAG可回答性预测
当配备了RAG可回答性预测LoRA时,模型将确定用户的问题是否可以使用连接文档中的信息回答。这种二元分类——“可回答”或“不可回答”——可以用于过滤掉无法回答的问题(减少幻觉)或提示模型以不同的方式重新查询检索器。
不确定性预测
对于每个模型输出,不确定性LoRA(源自MIT-IBM沃森人工智能实验室的AI模型校准研究)使模型能够生成一个量化后的“确定性分数”,范围从0到9(分别代表5%到95%的确定性)。该分数本质上反映了模型的响应在多大程度上得到了其训练数据中信息的支持。
组合使用RAG LoRA
传统的RAG涉及单次推理——一个基于特定上下文的简单提示——产生单个模型输出。我们建议在利用多个LoRA适配器进行多次推理的工作流程中使用这些LoRA,以产生最终的模型响应。
例如,你可以首先实现查询重写,以在必要时快速重写初始提示,以实现最佳的检索器准确性。一旦模型使用重写后的提示生成了检索增强的响应,你随后可以实现RAG幻觉检测,以验证对检索到的文档信息的适当忠实度。如果忠实度分数低于可接受的阈值,你的工作流程可以指示模型重新采样响应,直到忠实度分数超过该阈值。一旦不再检测到幻觉,你可以启用RAG引用,为用户提供最终响应。
这本质上类似于RAG的测试时间计算扩展,通过多次推理来改进和丰富模型的最终输出。我们期待看到开源社区如何实现和实验这些新的LoRA适配器。有关RAG LoRA及其对模型性能的影响的更多信息,可以在随附的技术论文中找到。
IBM Granite的未来展望
IBM研究团队目前正在积极训练Granite 4.0,这是Granite架构的重大演变,展示了在速度、上下文长度和容量方面的有希望的提升。尽管具体细节将在第二季度晚些时候公布,但客户、合作伙伴和开发者可以相信,IBM将继续致力于开发小而实用的模型,这些模型可以在低成本和低延迟下运行。
开始使用Granite 3.3
新的Granite 3.3 Instruct模型已在IBM watsonx.ai上线,这是IBM集成的端到端企业AI开发工作室。你可以在Granite Playground上尝试Granite 3.3 Instruct 8B,并轻松实验开启和关闭“思考”功能。
Granite Speech 3.3 8B以及所有新发布的Granite模型和LoRA适配器都可以在Hugging Face上找到。部分Instruct模型也可以通过平台合作伙伴(按字母顺序排列)LMStudio、Ollama和Replicate获得,未来还会有更多合作伙伴加入。
结语
Granite 3.3标志着IBM在开发强大、模块化和透明的AI系统方面迈出了重要一步。此次发布针对语音处理、逻辑推理和检索增强生成的关键需求,提供了基于可衡量改进的技术升级。aLoRA的引入为内存高效的检索提供了支持,对填充中间任务的支持以及多语言语音建模的改进,使得Granite 3.3成为企业环境中的一个技术上合理的选择。其开源发布进一步鼓励了在更广泛的AI社区中的采用、实验和持续开发。
本文转载自公众号Halo咯咯 作者:基咯咯
原文链接:https://mp.weixin.qq.com/s/_nCfhfkmJZicJniTocU3Dw
