超越大语言模型:蒸馏技术实战指南

在首届InfoQ Dev Summit Munich的演讲中,Ines Montani基于今年早些时候在QCon London的演讲内容,为观众提供了如何在真实世界应用中使用最新最先进模型,并将其知识蒸馏到更小、更快、可内部部署和维护组件的实用解决方案。

演讲首先指出,使用隐藏在API后的黑盒模型会阻碍我们实现优秀软件应有的特性:模块化、透明、可解释、数据私有、可靠且经济实惠。

Montani进一步指出,生成式人工智能在多种需要理解人类语言的场景中非常有用,尤其是在语言可能模糊的情况下,例如评估客户在产品论坛上留下的评论。她强调,你并不需要基础模型的全部能力,而只需理解特定语境。这可以通过使用迁移学习来蒸馏任务特定信息来实现。

为了跨越“原型高原”并使系统达到“生产就绪”状态,Montani认为需要采取以下行动:

  • 标准化输入和输出:原型与目标生产系统必须使用相同的数据类型。
  • 从评估开始:这类似于软件开发中的测试。你需要为已知答案的问题获取回应。通过这种方式,你可以根据准确度分数判断系统是否在改进。
  • 评估实用性,而不仅仅是准确性:除了准确度分数,还必须检查模型的实用性。
  • 迭代式处理数据:类似于编码实践,应尝试不同的方法和工具,直到找到最合适的一个。
  • 考虑自然语言的结构和模糊性:人类语言的提取物不能像标准数据一样处理。

当开发涉及自然语言处理(NLP)的原型时,一个好的起点是使用大型语言模型(LLM),并通过一个工具进行提示,然后解析输出,提供包含结构化数据的对象。这就是构建spaCy LLM的原因。即便如此,在生产中部署时,更好的方法是在运行时用蒸馏出的、仅执行所需部分的任务特定组件来替换LLM。这样,系统将更加模块化、透明,并且可能更快。

此外,可以通过引入“人在回路”来纠正LLM输出的错误,从而超越其输出质量。在定义好基线后,修正提示并通过标注工具处理,创建一个针对目标任务非常特定的数据集。为了高效地“接入人力”,可以对数据进行多轮处理,每次只关注一个方面。这样做可以降低认知负荷,提高速度。

Montani指出:作为开发者,我们需要交付成果,而不是被困在“原型高原”中。你可以让自己的问题变得更易于管理。这不是竞赛,也不是学术界。复杂性更低意味着出错的可能性更小。

蒸馏过程可以被视为代码重构。可以使用诸如将问题分解成更小的部分、降低其复杂性、将业务逻辑的特定性与系统特殊性分离等技术。在此阶段,可以重新评估所使用的依赖项和技术,确保它们最适合任务。

为了强调在基于自然语言处理的应用中蒸馏模型所带来的多方面好处,Montani总结了一些案例研究,其中爆炸人工智能协助了来自不同领域的客户。正如所指出的,最终模型通常比LLM提供的初始基线更小、更准确。因此,花时间迭代你的模型从长远来看会带来更好的结果,同时也能降低运营成本。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)或者 我的个人博客 https://blog.qife122.com/
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

公众号二维码

公众号二维码

posted @ 2025-12-08 21:10  CodeShare  阅读(0)  评论(0)    收藏  举报