一、本模型应用基于Llamma-3.2-3B/1B模型进行RAG与SFT实训
1. 本应用基于Llama-3.2-3B-Instruct,封装示例代码及数据,用于大模型搜索增强生成(RAG)领域实训体验。结合该实训,学习者可快速体验“文本向量化”和搜索增强生成的原理和运行过程。
2.基于Llama-3.2-1B-Instruct,封装示例代码及数据,用于大模型SFT精调领域实训体验。结合该实训,可帮助学习者体验如何通过监督学习对大模型进行微调,从而提升模型回答准确性与理性对齐的过程。
二、LLM简单培训
本项目包含了LLM简单培训的相关物料,包括代码、数据、教程。旨在教会学员初步掌握LLM的推理、训练、RAG等能力。
## 项目结构
- model: 从Hugging Face下载的模型,包括LLM生成模型和向量化模型;
- RAG: 搜索增强生成相关的代码和数据;
- sft: 大模型微调相关教程的代码和数据。
三、 RAG教程
## 大模型的输入输出模态
输入一些自然语言描述的问题,输出自然语言的答案。
举例而言,
输入给大模型:地球围绕着谁转动?
大模型输出:太阳。
人类语言是对世界描述的高级抽象,其能够覆盖几乎所有的问题。
## 知识类型
- 稳定的知识,例如常识。这类知识可以注入到模型里面,模型直接给出回答;
- 在特定领域内的知识,或者变化的/时效性较强的知识,例如客服系统的问答库、新闻等。这类知识模型无法内化到模型内,模型无法给出正确的案例。
第二类典型的问题:力肌描记术相比于可穿戴惯性传感器的优点是什么?(这是个在机器人领域的较新的探究议题,尚未形成稳定的知识)
## 搜索增强生成(Retrieval Augmented Generation, RAG)的动机
第二类知识的特点:知识库里面存在知识,但是模型没有内化这些知识。
一个可行的办法是,把知识库中相关的内容检索出来,作为上下文共同输入给大模型,让模型基于相关内容,作出正确的回复。这就是搜索增强生成的思想。
## RAG的标准流程
首先对知识库建立索引(vector db),现在常用的是向量索引(特别多的话,可以采用向量数据库,上图的vector DB);
对于一个问题,将问题视为查询(query),将其向量化,然后根据问题的向量,与向量数据库的向量进行近似度匹配,找到比较相关的问题(retriever);
然后把问题和相关的内容一起输入给大模型(LLM),得到答案(answers)。
## 文本向量化
文本向量化,就是把一段自然语言映射到向量空间进行表示,这个向量称为embedding。在向量空间度量embedding的相似度,可以估计出原始文本的语义相似度。
相比于传统的基于词度量相似度的算法,向量可以更好地表征句子的语义信息,因此在寻找语义相似的效果会更好。
## 应用举例——结合最新的研究成果回复问题“力肌描记术相比于可穿戴惯性传感器的优点是什么?”
首先,把一段时间内最新的研究成果都爬下来,并进行向量化;
其次,对问题向量化,得到这个问题“力肌描记术相比于可穿戴惯性传感器的优点是什么?”的表征;
然后,找到所有研究成果向量中和问题向量匹配度较高的信息,作为相关上下文信息;
最后,将找到匹配度较高的研究成果和问题一起输入给模型,让模型给出回复。
四、SFT教程
## 大模型的模型结构
对于输入的句子,首先将其 token 化,并从中得到各个 token 对应的 embedding;
然后将 embedding 过若干个transformer block,每个block包含掩码注意力、归一化、前向传播矩阵;
最后,将最终的embedding映射到词表空间中,得到该词的预测值。
## 大模型的训练目标
给定前面的token,预测下一个token。训练目标是使得模型预测的值尽可能接近真实值。
根据下一个token的实际值计算交叉熵,计算损失函数。
## SFT解决的问题
- 大模型的成功,来自于采用自监督学习的方式,对互联网上积累的海量数据的应用。
然而,互联网上的数据是有偏差的,无法符合人类的价值判断和对正确答案的要求。
通过SFT,可以让模型更好地向人类的偏好和价值观对齐,输出对人更有好的答案。
- 大模型在上线后,不可避免地会遇到各种各样的bad case。这些case的修复可以提升大模型产品的用户体验,并使得模型在某个应用上的能力更强。
## 如何用SFT训练模型
构造 问题 - 答案 数据对,答案就是对这个问题的正确答案。
训练模型在给定的问题时,输出尽可能和答案一致。
基本的流程是,收集并创建相关的SFT数据集,然后使用数据集训练模型。
## 应用举例——对模型的人格进行训练
首先,找到表现较好的模型,我们选用Llama-3.2-1B来进行教学,LLama本来的人格是Meta训练的对话机器人;
其次,找到一批人格数据,数据的内容是由LLM学习人员训练训练的教学小助手;
然后,使用这批数据训练模型,并进行结果的评估,看看模型的人格是否已经被训练;
最后,演示下混合精度训练对于模型训练效率的提升。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。