1,训练数据
英语在互联网上占据主导地位,其次是中文。那些训练数据有限的语言,被称为低资源语言。
能否将非英语语言的查询翻译成英语,获取回答后再翻译回原语言? 答案是否定的,首先,它需要模型充分理解代表性不足的语言,才能进行准确翻译;其次,翻译过程可能导致信息丢失。
数量、质量和多样性构成了训练数据的三大黄金法则。
参数量(代表模型的学习能力)、训练token数(代表模型学习到的知识量)、FLOPs(代表训练成本) 是衡量模型规模的三个关键指标。
2,建模
seq2seq架构的两个主要问题?
1,原始的seq2seq解码器仅使用输入序列的最终隐藏状态来生成输出token。(就像是只根据一本书的摘要来回答关于这本书的问题,从而限制了输出的质量)
2,RNN编码器和解码器的顺序处理特性导致输入处理和输出生成必须按顺序进行,这使得处理长序列时速度较慢。
但是!transformer architecture 通过注意力机制解决了这俩problem。
注意力机制允许模型在生成每个输出token时权衡不同输入token的重要性。
transformer架构:
注意力机制通过计算查询向量与键向量之间的点积,来确定对输入token分配多少注意力。
3,后训练
一个预训练模型通常存在两个问题,1是自监督优化的是文本补全,不是对话。2是如果模型的训练数据是从网上抓取的,质量参差不齐,那么它输出的内容很可能涉及违规。
后训练一般包括俩步骤,1,监督微调。2,偏好微调。
监督微调,使用高质量的数据对模型进行训练,使得输出更易被社会接受。
偏好微调,使用的技术,有 基于人类反馈的强化学习。
4,采样
模型通过一种称为"采样"的过程来生成输出。
4.1,采样的基础知识
给定一个输入,神经网络首先计算各种可能的结果的概率,对于语言模型,为了生成下一个token,模型首先计算记表中所有token的概率分布,当面对具有不同概率的多种可能的结果时,一个常见的策略是选择概率最高的结果,始终选择概率最高的结果称为贪心采样。
4.2,采样策略
1,温度
使用温度进行采样,较高的温度会降低常见token的概率,从而提高稀有token的概率。能使模型更有创造性。
对于需要创造性的应用场景,通常建议使用0.7的温度,因为它在创造性和可预测性之间取得了平衡。
2,top-k
top-k是一种采样策略,可以降低计算负担,softmax层用于计算可能值的概率分布,对于具有较大词表大小的语言模型,这个过程的计算开销很大,为了避免这一问题,在模型计算出logit后,我们只选取排名前k的logit,并仅对这些top-k的logit执行softmax操作。k的取值通常在50--500之间。
3,top-p
top-p,也称为核采样,允许动态的选择要采样的值。模型按照概率从高到低的顺序依次累加最可能的下一个值的概率,知道累计概率达到p为止,只有在累计概率范围内的值才会被考虑。语言模型中常用的top-p采样值通常在0.9到0.95之间。
4,停止条件
- 停止 token → 模型内部机制 如, <END>
- 停止词 → 你在调用模型时主动设定的规则如,###
一种简单的方法是让模型在生成固定数量的token后停止。缺点是句子被截断。
另一种方法是使用停止token或停止词。缺点是格式化输出如果过早停止会导致格式输出错误。