书生·浦语大模型全链路开源开放体系学习笔记:
书生·浦语大模型的开源历程:
InternLM 2 开源助力大模型生态建设,为后续的大模型应用落地积蓄力量和经验
书生·浦语2.0大模型的体系:
具有7B和20B两种模型规格,每种规格下又包含三种模型版本,充分满足不同的使用需求
书生·浦语2.0大模型的主要亮点
清晰的从模型到应用的典型流程:
书生·浦语的全链条开源开放体系:
数据:开放高质量语料数据,opendatalab.org.cn获取
预训练:提供预训练框架
微调:XTuner框架,支持续训和有监督微调
评测:OpenCompass 2.0 司南大模型评测体系,包括CompassRank(中立评测榜单)、CompassKit(大模型评测全栈工具链)、CompassHub(高质量评测基准社区)
部署:LMDeploy提供大模型在GPU上部署的全流程解决方案,包括模型轻量化、推理和服务
智能体:Lagent:轻量级智能体框架;AgentLego:多模态智能体工具箱
InternLM2 技术报告笔记:
一、简述:
InternLM2 是一个开源的大型语言模型,旨在通过创新的预训练和优化技术,在多个维度和基准上表现出色。技术报告详细介绍了 InternLM2 的预训练过程,包括文本、代码和长上下文数据的准备,以及在预训练和微调阶段的表现。
二、基础设施
1. InternEvo:InternEvo 是一个高效的预训练框架,能够在数千个 GPU 上扩展模型训练。通过数据并行、张量并行、序列并行和流水线并行等多种策略,InternEvo 显著减少了训练所需的内存占用,并提高了硬件利用率。
2. 模型结构:InternLM2 的设计旨在处理长达 200k 的上下文窗口,展现了其在长上下文性能方面的优越性。模型在多个 GPU 上展示了强大的扩展性能,特别是在保持计算与通信比例时表现出色。
三、预训练
1. 预训练数据:
文本数据:包括多种高质量的文本来源,用于全面覆盖模型所需的知识和技能。
代码数据:专门收集了大量高质量的代码数据,以提高模型在编程任务上的表现。
长上下文数据:通过使用 Group Query Attention (GQA) 方法,有效地处理长序列文本,提高模 型的长上下文理解能力。
2. 预训练设置:使用了大规模的高质量数据集,涵盖 24 亿个 token,通过小批量和低学习率的策略进行训练,显著提升了模型在编码、推理、问答等任务上的表现。
四、微调与对齐
1. 监督微调 (SFT):使用包含 1000 万条指令数据的数据集进行微调,这些数据确保了模型的有用性和无害性。通过使用 AdamW 优化器,以 4e-5 的初始学习率对 7B 和 20B 模型进行了训练。
2. 从人类反馈中进行强化学习 (RLHF):
COOL RLHF:引入了一种新的条件奖励模型,能够协调多种人类偏好,如多步骤推理准确性、帮助性和无害性,进行三轮在线 RLHF 训练,以减少奖励黑客行为。
长上下文能力保持:在 SFT 和 RLHF 阶段,通过使用长上下文预训练数据,保持了模型的长上下文处理能力。
五、评价与分析
1. 性能评估:InternLM2 在多种基准测试中表现优异,包括主观和客观评估,特别是在长上下文处理任务(如 "Needle-in-a-Haystack" 实验)中几乎完美表现。
2. 模型发布:为了促进社区对模型性能变化的分析,公开了不同训练阶段的模型,包括 SFT 前后的模型。
六、结论
InternLM2 通过创新的预训练和微调技术,在大语言模型的开发和优化上取得了显著进展。通过详细介绍数据准备、模型结构和训练策略,研究人员希望为社区提供有价值的参考和借鉴