前言
技术挑战
(三)部署成本挑战
总体思路
推理加速也是近期业界热点研究方向,有不少较成熟的开源框架。它是通过充分利用并行计算、显存读写优化、缓存等技术,来加速推理过程。我们可以综合利用模型压缩和推理加速技术,提升推理性能并降低部署成本。
关键技术实现
(一)统一应用接口管理
(二)内容生成
1、上下文组合策略
在内容生成环节,我们采用了基于相似度组合的策略来召回多个文本块,并将它们组合成上下文。不同的上下文组合方式会直接影响LLM的内容生成质量。根据《Lost in the Middle: How Language Models Use Long Contexts》论文中的实验结论,大型语言模型在生成内容时往往更加关注上下文的开始和结束位置。
基于这一发现,本文提出了一种实现策略:根据精确重排的结果,将最相关的信息优先放置在上下文的首尾两侧。通过实践测试,我们发现这种组合方式有助于提升模型Prompt的健壮性,并在一些场景中能够更稳定地保证生成答案的准确性。
2、答案生成方案
在综合考虑指令遵循能力、上下文理解、内容归纳等方面的能力后,本文选择了基于LLM的生成式方案。
3、多步骤答案生成
图4 答案生成Prompt示例
4、SELF-RAG
图5 SELF-RAG 推理算法
(图片引用自https://arxiv.org/pdf/2310.11511.pdf)
5、QA语料生成
6、微调知识注入
综上所述,对于知识库问答场景而言,微调作为一种知识注入方法,除了面临模型方案自身的局限性,例如需要定期训练以引入新知识、语料和训练成本较高等外,还存在学习困难等问题。因此,在本文中,我们将微调仅视为一个辅助机制。
(三)模型量化和推理加速
图7 量化后最低所需显存对比
总结
大型语言模型能够将NLP问题从外部领域转化为内部问题,从而极大地简化了信息检索的复杂性。因此,在某些情况下,可以直接利用大型语言模型通过few-shot或zero-shot学习来实现NLP任务,减少了为特定任务训练小型模型所需的成本。
大型语言模型的另一个重要应用是生成各类NLP任务的训练语料,这在很大程度上降低了构建专用NLP任务的难度。
【参考文献】
[1]SELF-RAG: LEARNING TO RETRIEVE, GENERATE, AND CRITIQUE THROUGH SELF-REFLECTION
https://arxiv.org/pdf/2310.11511.pdf
[2] SELF-INSTRUCT: Aligning Language Models with Self-Generated Instructions
https://arxiv.org/pdf/2212.10560.pdf
[3] Lost in the Middle: How Language Models Use Long Contexts
https://arxiv.org/pdf/2307.03172.pdf
END
注:文章仅代表作者观点,欢迎转发和评论。转发、转载、转帖等须注明“稿件来源:朗新研究院”,违者朗新研究院将依法追究责任,谢谢!
【概念热词】聚焦领域新趋势