大模型理论调研
模型涌现能力
whale总结
涌现能力
指的是大型语言模型(它在小型模型中不明显)在未直接训练过的任务上表现出惊人性能的能力,这种能力源于大量的训练数据和高度复杂的网络结构。当模型的规模(计算量、模型参数或数据集大小)达到一定程度时,模型会在一些任务上开始发生涌现,即性能急剧上升。
开源模型
LLaMA系列模型是Meta开源的一组参数规模从7B到70B的基础语言模型,使用了大规模的数据过滤和清理技术,以提高数据指令和多样性,减少噪声和偏见(关于噪声见个人调研),LLaMA模型使用了高效的数据并行和流水线并行技术,以加速模型的训练和扩展。
LLaMA模型采用了decoder-only架构,同时也结合了一些前人工作的改进:
-
Pre-normalization 正则化:为了提高训练稳定性,LLaMA 对每个 Transformer子层的输入进行了 RMSNorm 归一化,这种归一化方法可以避免梯度爆炸和消失的问题,提高模型的收敛速度和性能;
-
SwiGLU 激活函数:将 ReLU 非线性替换为 SwiGLU 激活函数,增加网络的表达能力和非线性,同时减少参数量和计算量;
-
旋转位置编码(RoPE,Rotary Position Embedding):模型的输入不再使用位置编码,而是在网络的每一层添加了位置编码,RoPE 位置编码可以有效地捕捉输入序列中的相对位置信息,并且具有更好的泛化能力。
通义千问Qwen是一个 decoder-Only 的模型,采用 SwiGLU 激活、RoPE、multi-head attention的架构。
ChatGLM,ChatGLM3-6B 支持正常的多轮对话的同时,原生支持工具调用(Function Call)、代码执行(Code Interpreter)和 Agent 任务等复杂场景。
个人调研
模型数据搭配
模型参数量级的积累,和训练数据集的增加,哪个对性能提升帮助更大?
模型参数量的增加就会带来同样的性能提升?
根据缩放定律得:当我们给定特定的计算成本的前提下,语言模型的最佳性能不仅仅可以通过设计较大的模型搭配小一点的数据集得到,也可以通过设计较小的模型配合大量的数据集得到。
那么,相似成本训练 LLM,是大 LLM 配小数据训练,还是小 LLM 配大数据训练更好?
根据LLaMA: Open and Efficient Foundation Language Models这篇论文得出,作者认为,大部分人是用已经训练好的LLM进行推理的,所以,我们首选的模型应该不是训练最快的,而是推理最快的LLM。
所以,对于用已经训练好的LLM来说,小LLM配大数据训练更好,因为小LLM推理更友好。
参数规模的选择
百亿参数是模型具备涌现能力的门槛,千亿参数的模型具备较好的涌现能力,当模型参数量增长超过一定阈值时,模型能力表现出跃迁式的提升,表现出来语言理解能力、生成能力、逻辑推理能力等能力的显著提升,
DeepMind 的研究表明,如果把一个大模型训练充分,需要把每个参数量训练 20 个 Token。
API接口的选择
在选择大型模型的API接口时,应该考虑以下几个关键因素:
功能和任务需求,性能和准确度,支持的语言和功能,成本和价格,可扩展性,技术支持和文档
数据清洗:对于excel类型的数据集,清理的代码参考Halukisan/DataClean: 模型训练Excel数据的清理 (github.com)
停用词过滤和词频处理:同时可以利用词频和逆文档频率(TF-IDF)来识别常见、过于普遍的词语,对其进行过滤或赋予适当的权重。
噪音识别:将文本分为“高质量”、“噪音”和“低质量”三类。利用训练好的模型对数据进行分类,挑选出高质量数据。
文本聚类:将相似的文本数据分到一组
主题建模:通过主题建模技术(LDA)寻找数据中的主题结构,只保留与关键主题相关的内容。
人工审核
训练语料的处理非常重要,直接影响到后面模型的发挥。幻觉现象的发生,回答出现重复等现象的发生。
在处理语料的时候,(图片,我们只弄了多少)......对于重复数据的清理非常必要。但是如果清理掉了正确的数据会导致模型出现错误回答。所以,在清理重复之前,需要对初版的模型使用FacTool进行数据评测,然后再次处理语料,重复训练。3
-
对于数据去重:使用脚本代码设置正则表达式对数据进行过滤,筛选高质量的数据源,规范化文本、去除HTML和标记,过滤停用词和噪声词,处理拼写错误、清除敏感信息。
-
使用ai辅助进行数据清理,或者使用贝叶斯分类算法 - 知乎 (zhihu.com),也可以可以单独训练一个过滤模型,用于识别有害内容。
-
再次人工审查参考于数据清洗:大模型训练前的热身 - 知乎 (zhihu.com)对于刚刚提到到的贝叶斯分类算法,当这个算法运用到训练集以清理数据时,可能导致如下问题:零概率问题,就是在计算实例的概率时,如果某个量x,在观察样本库(训练集)中没有出现过,会导致整个实例的概率结果是0。为了解决这个问题,在算法中引入加法平滑方法,对于分类算法的计算公式的分母加上取值范围的大小,在分子加1.平滑的目的也是正则化的目的之一:它可以令w的任何一个分量相比较于剩余分量变化程度保持一致,不至于出现变化特别明显的分量。直接的作用就是防止模型“过拟合”,提高了模型的泛化性能。(减少模型出现“幻觉”的可能性)