大语言模型使用
- 1.in context learning(上下文)
- 1.1经典案例
- 1.2 ICL能力的解释
- 1.3 ICL能力介绍
- 1.3.1 zero-shot、one-shot、few-shot
- 1.3.2 chain-of-thought
- 1.3.3 提示词的设计-角色
- 1.3.4 Magical word(关键的提示)
- 1.4 ICL现象
- 1.4.1 fine-tune会伤害ICL
- 1.4.2 ICL输入错误样本,正向影响
- 1.4.3 ICL压到先验知识
- 1.5上面ICL的现象原因
- 1.6 FineTune与ICL比较
- 2.大语言模型的评价
- 2.1 MMLU
- 2.1.1 CMMLU
- 2.2CEVAL
- 2.3GSM8k
- 2.4HumanEval
- 2.5GPQA
- 2.6 MATH
- 2.7 Chatbot Arena
- 2.8 缺点分析
- 3.大语言模型可解释性
- 3.1 大语言模型学到了什么?
- 3.1.1 验证方法--Probing探针法
- 3.1.2 Probing探针法结论
- 3.2 claude文章
- 3.2.1 价值
- 4. 解码策略 Dola
- 4.1 实验原理
- 4.1.1 中间层结果如何获得?
- 4.1.2 两个不同层输出的词概率分布差异如何计算?
- 4.1.3 结论
1.in context learning(上下文)
释义: ICL指在使用大语言模型在具体的任务场景时,通过对任务的描述的输入以及相关的提示,使得大语言模型能够不进行微调,理解任务并将其完成。
1.1经典案例
上述任务中,不需要经过专门的训练,只需要描述任务,模型在不改变任务权重参数的情况下,就能完成任务,相对以往模型的能力是一种颠覆。
未来: :未来ICL方法的完全成熟,意味着fine-tune范式的终结。
1.2 ICL能力的解释
简介: 在当前还没一个清晰具体的理解,大家的解释还在浅层,总的来说,是由于模型的参数量级达到某个零界点后,产生的一种涌现、突显的能力。
1.3 ICL能力介绍
1.3.1 zero-shot、one-shot、few-shot
释义:
- zero-shot: 只描述任务,让模型进行解答
- one-shot: 描述任务,并举出一个例子,让模型解答
- few-shot:描述任务,并举出多个例子,让模型解答
1.3.2 chain-of-thought
思维链: 指在交由大模型任务时,先举一个例子,并将解答过程按照步骤或者计算过程表达出来,这样大模型能够给出良好解答,并且完成一些具有逻辑性较复杂的任务。
1.3.3 提示词的设计-角色
释义: 通过指定角色,或者能力的描述;让大模型能够在某些任务上展示出优秀的能力,效果甚至超过举例。
1.3.4 Magical word(关键的提示)
释义: 上面的几个例子中,红色部分通过提示模型按照步骤去思考,即获得良好的答案。
下面是该论文中,实验的不同的提示带来的效果。
1.4 ICL现象
1.4.1 fine-tune会伤害ICL
释义: 大模型本身通过ICL具有各类任务能力的泛化性;针对某些场景的fine-tune调优,会导致原有的这种能力退化。
1.4.2 ICL输入错误样本,正向影响
释义: 即ICL输入的例子是错误样本时,对模型理解任务和完成任务也可能产生正向影响,不一定影响准确率。
比如: 翻译任务中,将中文翻译成法语,给模型的例子中,法语内容是错位的,但是模型仍然能正确完成任务。
1.4.3 ICL压到先验知识
释义: ICL可以压倒先验知识,即指模型对某个观点有一个判断,由于ICL中给讲解的例子或者告诉的判断,与其相反,它会采用ICL的逻辑。
举例: “聪明的男孩”这句话,模型本身判断是正向夸奖的;但是在ICL中,将“蠢成猪”类似的多个句子定义为正向,最后模型会按照ICL中的判断要求来输出。
1.5上面ICL的现象原因
目前的尚未有统一的观点,大多数猜测都未被广泛采纳和认可。
可以简答概况:输出的概率是由:模型本身的权重、输入的问题、输入的案例、输出的前文四个部分共同影响的,其中输入的案例在模型的效果,类似等价于做了这类的微调训练,从而导致相关的输出概率增高。
1.6 FineTune与ICL比较
2.大语言模型的评价
简介: 大语言模型涌现了思维链、zero-shot等能力,对于同一个测试题,由于给到的提示词不一样,那模型的结果和准确率肯定也是不一样的。
测试比较: 在做能力对比时,同样的测试数据集,必须要在相同的提示词下测试;或者是根据例子的不同、是否加思维链的来进行区分
;例如: one-shot、zero-shot等
;一般在开源模型的github上都会有介绍,当前的分数是基于什么样的条件达成的。
2.1 MMLU
释义: 多语言理解
简介: 测试涵盖小学数学、美国历史、计算机科学、法律等。为了在该测试中获得高精度,模型必须具有广泛的世界知识和解决问题的能力。
形式如下:让模型输出正确的结果
2.1.1 CMMLU
简介: 中国人自己的MMLU;
形式如下:与MMLU相似
2.2CEVAL
简介: 和MMLU形式类似,CEVAL主要是测试模型对中文的理解能力,包含语数外等知识。
2.3GSM8k
简介: 全称为Grade School Math;主要是数学方面的题,重点在于大模型的逻辑能力上。
形式:
2.4HumanEval
简介: 主要是一些代码编写的题,根据模型实现代码后运行的通过率来作为评价指标。
2.5GPQA
简介: 和MMLU的形式类似,根据题目和答案选项给出正确的结果。但是题目的难度相对大一些,而且当前的各类测试集的题目难度也是在不断增加的。
2.6 MATH
简介: 数学方面的测试集,难度是比较大的。
2.7 Chatbot Arena
简介: 即通过人来进行打分判断,具体为:将同一个问题交由多个大模型来回答,回答的内容,在页面上都进行展示,由使用的人进行判断,那个模型的回答比较好。
2.8 缺点分析
- 使用数据集来进行模型能力验证,存在两个问题,即验证的材料可能在预训练时就使用了。–刷分
- 训练集中有一大部分是事实性的知识,模型回答的好不好,跟有没有训练这方面的材料、或者训练的材料够不够有关,而业绩更关注的是模型的问题理解泛化能力、逻辑推理、能力
- 即使用人工进行判断优劣,由于输出的内容过多时,人可能不会把每个输出都看一遍;更有可能是选择输出材料格式更加整齐的。
3.大语言模型可解释性
3.1 大语言模型学到了什么?
来自论文: LANGUAGE MODELS REPRESENT SPACE AND TIME。
简介 : 大语言模型本质是基于数据训练拟合的模型,从数学上看是一种概率模型;当前的大语言模型涌现了一些超出意外的理解能力;
问题: 模型学到的究竟是概率分布,还是确实能够理解其现实意义呢?
举例说明: 中国、美国这两个词,模型是从概率上计算知道是相类似的东西,还是知道中国在地球亚洲、美国在北美,这样的现实意义呢?
3.1.1 验证方法–Probing探针法
原理:
- 模型输出的内容,比如城市,如果已经
学习到了现实的地理信息,那么其输出中国这个词的向量内必然蕴含这些信息
,只是需要通过其他方式激发出来。- 如果确定是否蕴含呢?假设,包含;则可以通过这些输出的向量,和对应的城市的经纬度进行训练,找到其他蕴含的规律,因为包含信息,所以一定存在规律。
城市的向量蕴含的地理信息越多,那么模型越容易找到,需要的模型层数越少。
- 即通过模型需训练,
输入:
大语言模型输出的城市的向量,预测时最后的输出的向量;预测信息
:对应城市的经纬度;进行模型训练。- 通
过训练得到的模型,再输入其他城市,看能不能正确映射到对应的经纬度
,如果能则,包含信息;不能,就说明不包含信息
实现如下:
- 让模型输出某一实体(如中国)的表示向量。
- 以表示向量为特征,训练浅层模型(如线性回归)来拟合某一个与输入实体相关的信息(如经纬度)。
公式如下:
3.1.2 Probing探针法结论
实验使用的模型是:Llama-2-7b/13b/70b
结论1: 事实证明是大语言模型输出的实体向量中包含了实体的空间信息。
结论2:模型(不论大小)在50%左右的层之后,空间时间信息就出现了
结论3: 提示词的输入会影响输出的结果,但是对输出内容包含的时空信息影响不大,即通过提示词输出的中国,和输出中国的向量中蕴含的时空信息变化不大。
3.2 claude文章
简介: 这也是一篇关于大语言模型能力的可解释性文章。主要是研究模型中的具体参数对结果的影响或者说是神经元的可解释性。神经元可解释性相关文章,没有使用一个开源大模型进行研究,而是使用一个小transformer来研究神经元。
实验方式: 通过扩大输出层,可以用相同数量的神经元得到更多的特征,而这些特征可以分析出各自的特点
结论1: 不同位置的神经元对不同语言、不同的词性、字符类型有显著的表达的特性。比如第765号参数,在预测值为中文时,值较大,表达显著,比如:0.8,而为英文时,则不怎么表达,值较小,比如-0.6;
结论2: 对于神经元的一种认识,认为单个神经元可能表达多个特征,每个神经元都处于一种叠加状态,同时负责多种事务。
3.2.1 价值
一旦我们能够了解语言模型的工作原理,就能很容易地判断一个模型是否安全,从而决定它是否应该被社会和企业所采用。而通过人为地刺激其中任一特征,就能引导模型给出我们预期之内的输出。比如开启DNA特征就能使模型输出DNA,开启阿拉伯文字特征就让模型输出阿拉伯文字。
4. 解码策略 Dola
目标能为模型带来如下影响:
- 增强模型回复的真实性(减少幻觉)
- 提升事实推理能力
- 输出更有信息量和符合事实的结果
4.1 实验原理
核心思想: 利用模型中间层的输出,辅助解码。
举例:
- 如果某个单词的概率值,在中间层和最终层差距很小,则该词可信度一般,比如上面的Seattle。
- 如果某个单词的概率值,从中间层到最终层概率值不断上升,则该词的可信度高,比如:Olympia。
4.1.1 中间层结果如何获得?
答: 将原本最后一个transformer层后的词表映射层(lm head,hidden size * vocab size维度)直接作用于中间层的输出。这种做法被称为early exit.
4.1.2 两个不同层输出的词概率分布差异如何计算?
答: Jensen-Shannon Divergence (JSD),是KR散度得一种 。衡量不同层的值得差异大小;如果差异大,KR散度就较大;差异小,KR三散度就小。
4.1.3 结论
通过逐偶数层观察词的概率分布,得到两个发现
-
在预测 important name entities or dates(即实体、日期)的时候,即便在高层,JSD分布也变化很大,所以倾向于使用从底层到高层概率变大得词。
-
在预测function words, such as was, the, to, in(即关联词、介词), 或者从原文中抄的的词的时候,JSD分布从底层开始就几乎不变了
提出了一种动态挑选premature layer(即前文的不可信层)的方法:
方案:(不可信层--指模型前面得模型层输出;可信层指模型靠后模型层的输出)
不可信层高概率 and 可信层低概率 惩罚(降低概率)
不可信层低概率 and 可信层高概率 奖励(提高概率)
公式简介:
qm代表不可信层,qn是最终层
不难看出,qm小qn大则结果大;qm大qn小,则结果小
补充: 有可能存在正确词在不可信层和可信层都很大的情况,如果继续按上式计算,会导致被惩罚,因此额外设置了退出策略。概率较大就直接使用最终层了。