AGI 领域的常见词汇及参数

1. 微调(Fine-Tuning)

微调是基于一个预训练模型(通常是在大规模数据集上进行训练得到的模型,如ChatGLM2-6B、BaiChuan2-13B等),然后在一个特定任务或领域上进一步调整模型的权重,以使其适应新任务或领域的需求。

2. Prompt

Prompt是输入给大模型的文本,用来指示或引导大模型给出符合预期的输出。一个完整的prompt一般包含以下几个要素:

  • 指令:希望模型执行的特定任务或指令。
  • 上下文:提供背景信息,包含外部信息或额外的上下文信息,有助于引导模型更好地响应。
  • 输入数据:告知模型需要处理的数据。
  • 输出指示:指定模型要输出的类型或格式。

注:并非所有任务都需要以上所有要素,具体取决于我们希望模型完成的任务类型以及模型自身的能力。

3. Embedding

在自然语言处理(NLP)领域中,Embedding通常指的是将单词、短语或句子映射到一个低维向量空间的过程,可以将文本中的离散符号(例如单词或字符)转换为连续的、稠密的向量表示,便于进行语义相似度的比较。在NLP任务中具有重要的作用,能够捕捉语义和上下文信息。

4. Token

在NLP中,Tokenization是将一个句子或文本分成tokens的过程,而token是指文本中的一个最小单位。通常,一个token可以是一个单词、一个标点符号、一个数字等。

在大语言模型的训练和应用中,模型接收一串tokens作为输入,并尝试预测下一个最可能的token。**Token越长代表大模型的输入输出越长,即用户的对话请求和模型返回的内容数量越多。**但这同时也会增加模型的计算复杂度和存储成本,因此在实践中往往会限制文本的最大长度。

另外,2K、4K tokens的长度是一个平衡计算效率、存储需求、模型性能和硬件能力等多方面因素的折中结果,已经足够覆盖大部分自然语言场景。在实践中,我们可以根据任务需求和实际情况通过截断、滑动窗口等方式进行适当的调整和优化。

5. Temperature

Temperature是用于调整随机程度的数字。当模型在根据上文计算下一个token时,它会先得到一组候选tokens及每一个token的原始概率(原始概率取决于训练方法、训练采用的数据和prompt))。然后使用数学方法softmax调整候选tokens的概率分布。这时temperature就会起作用,它会改变候选tokens的概率。

下图表示在不同的temperature下softmax对原始概率(the:0.5,a:0.25,an:0.15,some:0.08,this:0.02)的影响:

如何选择Temperature:

**较低的temperature意味着较少的随机性,temperature为0将始终产生相同的输出。**执行具有“正确”答案的任务(如问题回答或总结)时,较低的temperature(小于1)更合适。如果模型开始自我重复,则表明temperature过低。

**更高temperature意味着更多的随机性,这可以帮助模型给出更有创意的输出。**如果模型开始偏离主题或给出无意义的输出,则表明temperature过高。

可以针对不同的问题调整temperature,但大多数人会发现温度1是一个很好的起点。

随着序列变长,模型自然会对其预测更有信心,因此可以在不偏离主题的情况下为长提示提高temperature。相反,在短提示上使用高temperature会导致输出非常不稳定。

6. Top_k、Top_p

选择输出标记的方法是使用语言模型生成文本的一个关键概念。有几种方法(也称为解码策略)用于选择输出token,其中两种主要方法是top_k采样和top_p采样。

Top_k:允许其他高分候选tokens有机会被选中。 这种采样引入的随机性有助于在很多情况下生成的质量。Top_k参数设置为3意味着选择前三个候选tokens。

Top_p:动态设置tokens候选列表的大小(候选tokens的数量)。将可能性之和不超过特定值的top tokens列入候选名单。Top_p通常设置为较高的值(如0.75),目的是限制可能被采样的低概率token的长尾。

假设有这几个tokens可以选择:the:0.5,a:0.25,an:0.15,some:0.08,this:0.02。如果我们设定top_p=0.7,模型使用以下逻辑选择部分token加入下一个候选列表:

  1. 对所有tokens按照概率从大到小进行排序;
  2. 将tokens的概率逐个相加,当超过0.7时停止处理后面的token。

考虑the,将它加入候选列表。它的概率 (前面的概率之和是0.5) 小于0.7,于是继续考虑下一个token。
考虑a,它的概率是0.25,加上前面的所有概率得到0.75。这时已经超过了0.7的阈值。a会被加入候选列表,但是不再处理后面的token。

我们可以同时使用top_k和top_p。如果k和p都启用,则p在k之后起作用。

如何选择Temperature和Top_p:

**Top_p对回答的影响时机,是在temperature调整完token概率之后。**但是官方建议不要同时使用这两个参数(从资料上看,如果同时使用top_p和temperature会导致模型的输出更不可控,可能导致意外的输出)。

使用temperature比top_p更容易控制创造性的回答。当需要获得更有创意、更多样性的回答时,可以把 temperature设置为2。当需要多次询问且获得一致性的回答时,可以把temperature设置为0。

使用top_p比temperature更容易控制输出的质量。Top_p可以把较低概率的tokens滤掉,避免得到低质量的回答,也避免得到不常见的tokens。

参考知乎文档:https://zhuanlan.zhihu.com/p/658845607

7. RAG(Retrieval Augmented Generation),是指通过检索的方法来增强生成的模型架构。

RAG 的本质可以简单理解为:检索 + 生成

为什么要用 RAG,因为 LLM 的知识存在固有缺陷:

  • 知识不新:由于训练的时间和成本,大模型的知识往往是旧的,如 GPT-4 Turbo 的知识库截至时间是 2023 年 4 月
  • 知识不全:缺少专业的领域知识或私有的业务知识