AI大模型实战训练营-大模型原理及训练技巧、大模型微调的核心原理
前言
在当前信息技术迅猛发展的时代,知识库的构建与应用已成为企业竞争的关键。随着自然语言处理技术的不断进步,基于微调的企业级知识库改造落地方案受到越来越多的关注。在前面的系列篇章中我们分别实践了基于CVP架构-企业级知识库实战落地和基于基于私有模型GLM-企业级知识库开发实战;本文将深入探讨和实践一种基于微调技术的企业级知识库改造方法,以期为企业提供更加高效、安全和可靠的知识管理解决方案。
一、概述
企业知识库架构方案,通常有3中可选方案:
1)基于在线的大模型如ChatGPT,加上Embedding技术,通过更新迭代向量数据库;开发、运维简单,开发门槛比较低;仅需少量的AI知识技能储备,但是需要将知识开放给大模型;
2)基于开源的大模型如GLM,Llama,自己独立部署,同样加上Embedding技术,通过更新迭代向量数据库;开发、运维简单,需要提供硬件GPU资源保障;需要较少的AI知识技能储备,可以保障知识库的隐私安全;
3)基于开源的大模型如GLM,Llama,自己独立部署,采用微调技术,再同样加上Embedding技术,通过更新迭代向量数据库;开发、运维简单,需要提供硬件GPU资源保障;需要较深的AI知识技能储备,可以保障知识库的隐私安全;可以自己定制化扩展。( 如果知识库更新频率较低,可以不需要引入向量数据库作为补充,直接定期微调即可)
二、知识库核心架构回顾(RAG)
1、知识数据向量化
首先,通过文档加载器加载本地知识库数据,然后使用文本拆分器将大型文档拆分为较小的块,便于后续处理。接着,对拆分的数据块进行Embedding向量化处理,最后将向量化后的数据存储到向量数据库中以便于检索。
2、知识数据检索返回
根据用户输入,使用检索器从向量数据库中检索相关的数据块。然后,利用包含问题和检索到的数据的提示,交给ChatModel / LLM(聊天模型/语言生成模型)生成答案。
三、技术选型
1、模型选择ChatGLM3-6B
1)开源的:需要选择开源的项目方便自主扩展。
2)高性能的:选择各方面性能指标比较好的,能够提升用户体验。
3)可商用的:在不增加额外成本的前提下,保证模型的商用可行性。
4)低成本部署的:部署时要能够以最低成本代价部署运行知识库,降低公司成本开支。
5)中文支持:需要选择对我母语中文支持性比较好的模型,能够更好的解析理解中文语义。
注意:选择ChatGLM3-6B更主要的原因是方便自己能够跑起来(本钱不够)
企业实践可以考虑通义千问-72B(Qwen-72B)
,阿里云研发的通义千问大模型系列的720亿参数规模的模型。Qwen-72B是基于Transformer的大语言模型,
在超大规模的预训练数据上进行训练得到。预训练数据类型多样,覆盖广泛,包括大量网络文本、专业书籍、代码等。同时,在Qwen-72B的基础上,还使用对齐机制打造了基于大语言模型的AI助手Qwen-72B-Chat。
主要有以下特点:
1)大规模高质量训练语料:使用超过3万亿tokens的数据进行预训练,包含高质量中、英、多语言、代码、数学等数据,涵盖通用及专业领域的训练语料。通过大量对比实验对预训练语料分布进行了优化。
2)强大的性能:Qwen-72B在多个中英文下游评测任务上(涵盖常识推理、代码、数学、翻译等),效果显著超越现有的开源模型。具体评测结果请详见下文。
3)覆盖更全面的词表:相比目前以中英词表为主的开源模型,Qwen-72B使用了约15万大小的词表。该词表对多语言更加友好,方便用户在不扩展词表的情况下对部分语种进行能力增强和扩展。
4)更长的上下文支持:Qwen-72B支持32k的上下文长度。
5)系统指令跟随:Qwen-72B-Chat可以通过调整系统指令,实现角色扮演,语言风格迁移,任务设定,和行为设定等能力。*
资源要求:运行FP16模型需要多卡至少144GB显存(例如2xA100-80G或5xV100-32G);运行Int4模型(生产环境不建议采用量化技术,避免影响准确度)
至少需要48GB显存(例如1xA100-80G或2xV100-32G)
2、Embedding模型选择
我们要选择一个开源免费的、中文支持性比较好的,场景合适的,各方面排名靠前的嵌入模型。
MTEB排行榜:https://huggingface.co/spaces/mteb/leaderboard ,MTEB是衡量文本嵌入模型在各种嵌入任务上性能的重要基准;可从排行榜中选相应的Enbedding模型;
本次从中选择使用比较广泛的 bge-large-zh-v1.5 (同样也是智谱AI的开源模型),常用的还有text2vec-base-chinese
四、改造后的技术选型
1)LLM模型:ChatGLM3-6B
2)Embedding模型:bge-large-zh-v