书生实战营03:基于XTuner微调个人小助手认知任务

121 阅读5分钟

基于XTuner微调个人小助手认知任务

本次实验主要是演示如何使用XTuner微调InternLM2.5-7B-Chat模型。

预期结果:微调后与模型对话,模型可以输出自定义的“你好,我是xxx”语句。

实验步骤

  1. 从实验手册上下载并安装对应的 python环境和依赖。
  2. 获取实验提供的微调数据,并使用python脚本将上面的对应文字修改为自己的名字,从而达到微调后能输出我们自己名字的目的。
  3. 修改模型的config文件。启动xtuner train开始微调训练。

下图为微调训练后的提示:

image.png

  1. 使用xtuner convert pth_to_hf将模型权重转化为huggingface的bin类型权重。得到hf文件夹即为我们平时所理解的所谓 “LoRA 模型文件”。

下图为模型权重转化为huggingface后的提示:

image.png

  1. 模型合并:对于 LoRA 或者 QLoRA 微调出来的模型其实并不是一个完整的模型,而是一个额外的层(Adapter),训练完的这个层最终还是要与原模型进行合并才能被正常的使用。

这里使用xtuner convert merge命令合并模型,模型融合后的结果:

image.png

实验结果

最后就可以打开streamlit测试与模型的对话,结果如下所示,模型原先输出是“机智流”的智能助手,微调后输出“ajaxzhan”的智能助手,表明微调成功啦。

image.png

书生大模型全链路开源开放体系

使用完XTuner工具链后,我愈发好奇书生大模型全链路开源开放体系,于是学习了一下。

书生大模型全链路开源开放体系通过提供全面的技术工具和支持,促进了大模型技术的研发和应用。该体系不仅涵盖了从数据处理到模型应用的完整流程,还通过高效的微调工具、评测平台和推理框架,帮助开发者实现模型的优化和部署。同时,丰富的应用场景展示了大模型在实际业务中的巨大潜力,为学术研究和行业发展提供了强有力的支持。

概述

书生大模型全链路开源开放体系是由上海人工智能实验室主导构建的一个涵盖数据处理、模型预训练、微调、评测、推理以及智能体开发框架等应用的全流程开放平台。该体系旨在为学术研究者、开发者和行业应用提供全面的技术支持和服务,促进大模型技术的普及与发展。

主要组成部分

  1. 数据处理

    • 书生·万卷:高质量多模态预训练语料库,包含文本、图文、视频等多种类型的数据,总容量超过2TB。数据来源多样,包括网页、百科、书籍、专利等,经过精细处理,确保数据的安全性、可靠性和高质量。
  2. 预训练框架

    • InternEvo:高效的预训练框架,支持大规模分布式训练,具备自监督学习和多模态融合等特性,能够充分利用算力资源,提高训练效率。
  3. 微调工具

    • Xtuner:专为适应不同下游任务设计的微调工具,支持参数高效微调(PEFT)、领域适应微调等策略,内置自动超参数搜索功能,帮助开发者快速将大模型应用到实际场景中。
  4. 评测体系

    • OpenCompass:全面的评测平台,提供标准化评测指标和基准数据集,支持定制化评测流程,帮助开发者评估模型在不同任务上的表现,包括跨领域的评测能力。
  5. 推理框架

    • LMDeploy:专为大规模模型推理设计的部署框架,支持多平台部署(如云端、边缘端及本地设备),提供模型压缩与量化工具,显著降低推理时的计算资源消耗。
  6. 智能体开发框架

    • Lagent:支持多种智能体的构建与调试,提供模块化设计架构,帮助开发者实现复杂环境下的自主智能体开发,广泛应用于机器人、虚拟助手等领域。
  7. 典型应用场景

    • MindSearch:智能搜索引擎,采用思索式搜索技术,支持多模态数据搜索,提供精准的搜索结果。
    • MinerU:高效文档解析工具,支持多种文档格式,结合自然语言处理技术,快速提取有价值的信息。
    • HuixiangDou:基于专业知识库的群聊助手,提供智能化的知识支持与协作建议,特别适用于学术、科研等领域的协同讨论。

发展历程与成就

  • 2023年7月6日:书生浦语7B模型率先免费开源商用。
  • 2023年9月底:发布InternLM20B中量级模型。
  • 2024年1月:InternLM2.0开源,性能超越同量级开源模型。
  • 2024年7月初:InternLM2.5开源,性能达到与GPT4齐平的水平,具备领先的推理能力和100万Token上下文处理能力。

技术特色

  • 数据驱动:高质量的数据是模型性能的关键,通过不断的反馈和迭代优化数据质量。
  • 高效推理:支持百万Token上下文处理,具备自主规划和搜索完成复杂任务的能力。
  • 全链条开源:从数据到训练、从科研到应用、从开发到部署,提供完整的开源生态,与社区紧密合作,推动技术创新和发展。