小型语言模型(SLMs)因其低延迟、成本效益、易于开发和定制而受到青睐,特别适合资源受限的环境和领域知识获取。
小型语言模型(SLMs)发展时间线
构建语言模型的基本概念
架构(Architecture)
Transformer架构:SLMs通常采用Transformer架构,这是一种基于自注意力机制的模型,能够有效处理长距离文本依赖关系,适用于资源受限的环境。
训练技术(Training Techniques)
预训练范式:从BERT的预训练和微调范式,到T5的预训练加提示方法,再到GPT-3的预训练加上下文学习,这些技术显著提升了NLP的应用范围。
从LLMs获取SLMs(Obtain SLMs from LLMs)
剪枝(Pruning):通过移除模型中较不重要的参数来减小模型大小,包括无结构剪枝和结构化剪枝。
知识蒸馏(Knowledge Distillation):通过训练一个小型的“学生”模型来模仿一个大型的“教师”模型的输出,从而在小型模型中保留大型模型的知识。
量化(Quantization):通过降低参数的精度来减少模型的存储和计算需求。
模型压缩技术比较
对比了剪枝、知识蒸馏和量化等模型压缩技术,讨论了它们的定义、目标、优缺点和典型用例。
提升SLMs性能的高级策略
探讨了从零开始训练SLMs的创新方法、监督式微调、数据质量在知识蒸馏中的重要性、提升SLM性能的蒸馏技术、通过量化提高性能的策略,以及LLMs中对SLMs有贡献的技术。
SLMs的应用
分析了SLMs在问答、编程、推荐系统、网络搜索和移动设备上的应用,并讨论了在资源受限的边缘设备上部署SLMs的策略。
任务特定的SLM应用
问答(QA):SLMs在问答任务中可以提供与大型语言模型(LLMs)相媲美的性能,尤其是在经过特定领域数据的微调后。例如,Alpaca模型通过使用ChatGPT生成的数据对Llama模型进行微调,以提高其在问答任务中的表现。
编程:SLMs在编程任务中也显示出潜力,如Phi系列模型,它们在代码生成和理解方面与更大的模型竞争。
推荐系统:SLMs在推荐系统中用于解决冷启动问题、减少流行度偏差、改善长期规划等。
网络搜索:SLMs在网络搜索中作为内容编码器、排名器和重写器,提高了搜索结果的相关性和准确性。
移动设备:SLMs在移动设备上的应用,如API调用、移动控制和基本NLP应用,可以提高隐私保护和响应速度。
SLM在移动和边缘设备上的部署
内存效率优化:通过模型压缩技术(如量化)和混合专家(MoE)架构的缓存策略,减少了模型和键值缓存在部署时的内存使用。
运行时效率优化:通过减少计算工作量、减少MoE架构中的专家切换时间以及在多个可信设备上分布式部署SLMs,提高了模型的运行时效率。
通用领域、特定任务和特定领域的小型语言模型
通用领域SLMs
概述:讨论了小型语言模型(SLMs)在资源受限环境中的优势,如低延迟、成本效益和易于定制。强调了SLMs在隐私保护、个性化和响应速度方面的重要性。
模型规格:提供了一些代表性的通用领域SLMs的详细信息,包括参数数量、发布日期、许可证、用途、语言支持、架构、层数、隐藏层大小、注意力头数、激活函数、架构技术、分词器、上下文长度和词汇表大小等。
训练数据集:介绍了用于训练SLMs的一些常见数据集,如Pile、C4、Stack等,并强调了数据质量的重要性。
训练算法:探讨了用于训练SLMs的算法,特别是微调阶段的算法,如直接偏好优化(DPO)、解释性微调和逐步学习。
领域特定SLMs
医疗保健:介绍了专门针对医疗保健领域的SLMs,如Hippocrates,它通过整合医疗指南、患者数据和PubMedQA数据来提升模型在医疗术语和实践方面的专业性。
科学:讨论了针对科学领域的SLMs,如SciGLM,它通过自反思指令注释框架来解决科学领域数据稀缺的问题。
金融和法律:介绍了MindLLM,这是一系列双语、轻量级的语言模型,专门针对法律和金融领域进行了训练和微调。
A Comprehensive Survey of Small Language Models in the Era of Large Language Models: Techniques, Enhancements, Applications, Collaboration with LLMs, and Trustworthiness
https://arxiv.org/pdf/2411.03350
来源 | PaperAgent