读论文日记

省流:另一种做题笔记。

2024-06-10

https://arxiv.org/pdf/2305.00833

研究动机(Motivation):
大型语言模型(LLMs)在多步推理任务中表现不佳,并且无法保留先前的推理步骤以供将来使用。这限制了它们在复杂问题解答中的性能。

解决的问题(Problem Solved):
论文提出了一种名为“Self-Notes”的方法,旨在解决上述问题。这种方法允许模型在阅读上下文时,随时偏离输入内容生成明确的推理标记(即“Self-Notes”),以增强其记忆并实现多步推理。

使用的方法(Method Used):

  • Self-Notes:与链式思维(Chain-of-Thought)或草稿板(Scratchpad)方法不同,Self-Notes 允许模型在任何时候插入与输入上下文和问题交织的内部推理笔记。
  • 模型架构:考虑了一个自回归的变换器模型,该模型在生成最终输出之前,可以通过生成“笔记标记”来丰富上下文。

https://arxiv.org/pdf/2404.14963v3

大型语言模型(LLMs)在各种自然语言处理任务中表现出色,但在处理复杂的数学文字题时,它们的推理能力常常不尽人意。这类问题通常包含三种错误:语义理解错误、计算错误和步骤遗漏错误。尽管已有研究关注计算错误和步骤遗漏错误,但语义理解错误作为限制LLMs性能的主要因素,却被忽视了。

论文提出了一种简单但有效的方法,称为“Deeply Understanding the Problems”(DUP),通过解决语义理解错误来提高LLMs解决数学问题的能力。DUP方法的核心是鼓励LLMs深入理解问题,提取关键的解题信息,以进行更好的推理。

DUP(Deeply Understanding the Problems)方法是一种针对大型语言模型(LLMs)的提示策略,旨在提高它们解决数学文字题的能力。以下是DUP方法的详细步骤和特点:

  1. 揭示核心问题(Reveal the Core Question)
    这是DUP方法的第一阶段,目的是从复杂和冗长的问题描述中明确问题的核心。通过设计一个提示,要求LLM明确提取问题的核心部分,从而帮助模型集中注意力于问题的目标。

  2. 提取解题信息(Extract the Problem-solving Information)
    第二阶段进一步从问题描述中提取对解决核心问题至关重要的信息。这一步骤通过一个提示来实现,该提示要求LLM列出与核心问题直接相关的最有用的信息。

  3. 生成并提取答案(Generate and Extract the Answer)
    在前两个阶段的基础上,第三阶段将核心问题和解题信息结合起来,生成详细的回答,并从中提取最终答案。这一步骤通过一个模板提示来实现,该模板明确指出了目标和解决问题所需的必要信息。

刷榜神文……

2024-06-06

https://arxiv.org/pdf/2304.14106

只能说看 paper 不能当真吧。

https://arxiv.org/pdf/2402.16667

之前以为这是在完成软工的事情,今天发现他们是完成了 repository 级别的代码文档的维护。这个工作的关注点还是相当好的。

我个人对repository级别代码理解这个domain 的理解有点有限。做法似乎还是人工去规定哪些内容被塞进 prompt。

https://arxiv.org/pdf/2305.10250

这篇文章似乎是提出了长期记忆的概念。在做法上也是基础的 storage 和 retrieval 的结构。在长期记忆中还有一个问题是记忆的更新,这个文章的做法是用艾宾浩斯遗忘曲线。

https://arxiv.org/pdf/2306.03901

这篇文章的思路是将 memory 改成结构化内容进行维护。

image

这个想法就需要 backbone model 输出schema的

2024-06-03

https://arxiv.org/pdf/2302.02676

Our key idea is that humans are capable of learning from rich and detailed feedback in the form of comparisons

RL 的数值确实反映了 comparison,同时使用了 SFT 的格式。还

2024-05-31

https://arxiv.org/pdf/2212.01378

之前有人管这个叫联邦学习来着。

https://arxiv.org/pdf/2112.08810

大概解决了一个长尾分布的问题,做法是直接加入 pure noise 数据,然后改了改 normalization 的方式。读了一遍他关于这个做法正确性的证明,说的实在是不能更对了。

https://aclanthology.org/2022.acl-short.76.pdf

有个文章模仿了一下,大概是对基座模型参数加噪声之后再到下游任务上微调,中了 ACL。zhihu 分析文章全是喷提升有限的,真蚌埠住了

这 paper 似乎还不分析理论。但是有另一篇在 embedding 上加噪声的似乎就写得不错:https://arxiv.org/pdf/2310.05914

2024-05-30

https://arxiv.org/pdf/2307.12856

在真实世界网站的性能仍然受限于几个关键问题:开放领域性、有限的上下文长度、以及缺乏对 HTML 的归纳偏差

它通过自我经验学习来完成真实网站上的任务,遵循自然语言指令。WebAgent 通过将指令分解为子指令来进行计划,将长的 HTML 文档总结为与任务相关的片段,并通过生成的 Python 程序来操作网站。研究者们设计了 WebAgent,使用了 Flan-U-PaLM 用于基于代码生成的地面化,以及 HTML-T5,一个新的预训练 LLM,用于处理长 HTML 文档,它采用局部和全局注意力机制以及长跨度去噪目标的混合,用于计划和总结。

image

我的理解是 finetune 得到了一个新模型挂到了 PaLM 得到了一个 Agent。没找到创新点在哪里/wul

https://arxiv.org/pdf/2204.03044

这篇更是重量级。

motivation 是 pretrain 的计算开销太大了,并不是所有人都能负担的起的。(靠之前还真不知道 pretrain 和 finetune 在资源开销上有什么区别,答案是 预训练 batch size 大,但是 finetune 就是开小一些,这可能导致显存消耗不同;预训练的电量消耗很大;预训练存 gradient 的需求比 finetune 要大一些)。对于特定的下游任务,finetune 的开销就小很多。

我们希望找到一个 finetune 的起点,使得在同样的训练方式下最终的效果会更好。这个文章的做法是让一些其它任务已经 finetune 好的模型直接求平均。效果大概是这样的???

image

仔细读了读,发现之前理解全错了。不难发现这个方法是 model initialization 方面的,那么不难联想到 meta Learning。图穷匕见,这篇文章的 motivation 是 meta learning 的一些工作。所以我又不懂了呵呵。

2024-05-28

https://arxiv.org/pdf/2307.09668

论文解决了以下几个关键的强化学习挑战:
在稀疏奖励环境中有效探索。
重用收集到的数据来加速新任务的学习。
安排学习到的技能来解决新任务。
通过观察专家智能体来学习。

https://arxiv.org/pdf/2305.14992

LLMs在某些对人类来说简单的问题上仍然存在困难,比如在环境中生成实现给定目标的行动计划,或执行复杂的数学或逻辑推理。这些问题的根源在于LLMs缺乏一个内部世界模型来预测世界状态(例如,环境状态,中间变量值)并模拟行动的长期结果。

我的理解是 LLM 没有什么想象能力。

为了克服这些限制,作者提出了RAP框架,该框架将LLM重新用作世界模型和推理代理,并结合了基于蒙特卡洛树搜索(Monte Carlo Tree Search, MCTS)的原则性规划算法,用于在广阔的推理空间中进行策略性探索。在推理过程中,LLM(作为代理)在LLM(作为世界模型)的指导和奖励下逐步构建推理树,并有效地获得具有适当探索与利用平衡的高奖励推理路径。

首先我们引入 world model 来给当前动作提供 reward 和 next state。又考虑到这是一个推理模型,那么我们不能上一些时间开销大的算法,于是就选一个 MCTS

https://arxiv.org/pdf/2402.15809

代理在学习从试错中获取新行为的能力方面存在限制.人类通过经验学习自然地扩展其行为空间并发展技能,而LLM代理通常在预定的行为空间内操作。为了克服这些挑战,作者提出了一种新颖的学习范式,专注于通过行动学习来扩展和改进行为空间。

为了解决上述问题,作者介绍了一个名为LearnAct的框架,该框架采用迭代学习策略,以Python函数的形式创建和改进行为。在每次迭代中,LLM根据在不成功的训练任务中识别出的错误来修订和更新当前可用的行为,从而提高行为的有效性。

以下是action生成的详细步骤:
  1. 接收任务指令

    • LLM代理首先接收基本任务指令,这些指令定义了任务的目标和上下文。
  2. 生成高层次行为步骤

    • 代理需要将任务指令转化为高层次的行为步骤。这些步骤是高级的Python函数,它们封装了多个基本动作(basic actions),以完成特定的子任务。
  3. 定义Python函数

    • 每个高层次的行为步骤都被定义为一个Python函数。这些函数将接受输入参数,而不是在函数内部固定值。这样做增加了行为的灵活性和可重用性。
  4. 使用示例和描述

    • 对于每个生成的高层次函数,LearnAct还需要生成描述和使用示例。描述提供了函数预期结果、必要条件和输入输出格式的概览。使用示例则指导代理如何在适当的场景中使用新的行为。
  5. 迭代学习和改进

    • 在初步创建行为函数之后,代理将通过试错来学习并改进这些函数。在训练阶段,代理尝试使用当前可用的行为空间解决问题,并根据执行反馈识别失败的行为。
  6. 行动学习的两种策略

    • 函数更新(Function Updating):当发现行为失败时,代理可以选择通过修改Python函数来纠正误解或忽视任务的情况。
    • 写注释(Writing Notes):或者,代理可以通过增加注释来增强函数的描述,指导代理更准确地使用行为。
  7. 多样本学习

    • 为了提高学习过程的稳定性和每一步的质量,LearnAct在每次迭代中进行多次抽样(例如K次),生成K个修订后的结果。然后,每个行为-策略对在训练集上进行评估,选择最佳的行为样本进行下一步迭代。
  8. 选择最佳行为

    • 使用特定的评分系统,基于在训练实例中的成功率和成功执行动作的比例,选择最有益和可行的行为样本。

这里的 python 函数主要是想利用它的嵌套结构。

2024-05-27

https://arxiv.org/pdf/2303.08268

将LLMs与多模态感官输入和连续动作输出相结合,同时使机器人能够与环境互动并获取新信息,仍然是一个挑战。
使用的方法:

  • Matcha(多模态环境聊天)代理:提出了一个交互感知框架,以LLM作为其核心,利用其能力来指导认识性动作,并对由此产生的多模态感觉进行推理,以及基于交互获取的信息来规划整个任务的执行。
  • 多模态感知模块:为了处理各种感官数据并适应机器人和环境条件的变化,研究者设计了针对每种模态的训练有素的模块,并将它们插入到LLM主干中。每个模块将多模态感觉语义转换为自然语言,以便LLM能够理解并统一处理。
  • 低层次命令执行策略:结合由LLM生成的命令和视觉感知模块提供的视觉信息,执行策略模块定位目标对象并执行特定动作,同时收集环境反馈供多模态感知模块进一步处理。

image

框架开发工程

https://arxiv.org/pdf/2303.16563

研究动机与问题:

  • 在没有人类演示的情况下,使用强化学习(RL)在大型开放世界环境中学习完成长期任务是非常低效的。这是因为开放世界环境(如Minecraft)通常具有极大的世界尺寸和多样化的任务,导致RL在没有演示数据集的情况下面临探索难题和样本效率低下的问题。

使用的方法:

  • 论文以Minecraft游戏作为测试平台,提出了三种细粒度的基本技能:探索技能(Finding-skills)、操作技能(Manipulation-skills)和制作技能(Crafting-skills)。
  • 使用强化学习(RL)和内在奖励来获取技能,特别是提出了一种新的探索技能(Finding-skill),以探索并找到多样化的物品,为其他技能提供更好的初始化,从而提高学习样本效率。
  • 利用大型语言模型(LLM)中的先验知识来发现技能之间的关系,并构建技能图谱(skill graph)。
  • 在任务解决过程中,智能体通过在技能图谱上进行搜索,生成合适的技能计划。

我的理解是,如果探索空间太大 RL 随便跑可能效率低的问题,可以引入人类先验知识。我觉得先验知识肯定可以 LLM 提出,那么进一步优化似乎变成了一个 RL 提升效率的问题,我并不是很理解这个。似乎可以找人问一下。

实际上,我对 RL Agent 完全不懂。有时间似乎需要仔细读一些文章。呃呃似乎是对 RL 完全不懂。

https://arxiv.org/pdf/2303.17651

研究动机:

  • 与人类在撰写文本时会不断修正改进类似,大型语言模型(LLMs)在初次生成输出时也并非总是最优的。
  • 现有的LLMs在处理具有复杂目标的任务(如对话响应生成)或难以明确定义目标的任务(如提高程序可读性)时,可能会生成可理解但需要进一步细化的初始输出。
  • 为了进一步提升输出质量,需要一种有效的细化方法,该方法不需要大量的监督数据或额外的训练。

解决的问题:

  • 如何在不需要额外训练数据、额外训练或强化学习的情况下,通过迭代反馈和细化来提高LLMs生成的输出质量。

使用的方法:

  • SELF-REFINE方法的核心思想是使用同一个LLM生成初始输出,然后让该模型对自己的输出提供反馈,并利用这些反馈来不断细化自己。
  • 该方法不需要任何监督训练数据、额外训练或强化学习,而是使用单个LLM作为生成器、细化器和反馈提供者。
  • 通过少量示例(few-shot prompting)引导模型生成反馈和将反馈整合到改进的草稿中。

这个好像很有名,也是对人类的一个行为的建模。按照我的理解,这个可以通过 prompt 和改改 parser 实现。

https://arxiv.org/abs/2304.05128

研究动机(解决了什么问题):
大型语言模型(LLMs)在代码生成方面取得了令人印象深刻的性能,但在复杂的编程任务中,一次性生成正确的解决方案变得具有挑战性。以往的工作设计了程序修复方法来提高代码生成性能,但这些方法需要对代码修复模型进行额外的训练。为了解决这个问题,作者提出了一种名为SELF-DEBUGGING的方法,它通过少量示例教学,使得大型语言模型能够通过自我调试来改进其预测的程序。

解决的方法(讲了一个什么故事):
SELF-DEBUGGING方法教会大型语言模型通过执行代码,然后基于代码及其执行结果生成反馈信息,来识别和修复代码中的错误。这个过程类似于人类程序员的“橡皮鸭调试法”(rubber duck debugging),即通过向橡皮鸭逐行解释代码来显著提高调试效率,而无需专家指导。

这个多少有点无聊了。

2024-02-03

【Toolformer: Language Models Can Teach Themselves to Use Tools】

本质上是让 LLM 自己标注样本。这是因为人类其实并不能理解 LLM 学习的机理,那么人类标注的数据不一定对 LLM 的学习是有价值的。当然我们也不知道 LLM 自己标注样本对自己的学习是否有价值 但是节省了人力

  1. 让 LLM 通过 in context learning 来进行训练数据集标注,通过加阈值让有价值的 API 信息保留下来。

  2. 让 LLM 在有 API 调用的数据上进行 fine tuning

通过本文大概学到了一些做实验的流程。

2024-01-31

上午理论上还学习了 proximal policy optimization,但是 rl 这方面从来没跑过代码,有点虚

【are emergent abilities of large language models a mirage】

观点就是评估方式太拉了,二元的 01 得分实在是不太牛。如果我们将 multiple choice 活着两位数乘法、四位数加法的评估方式换成一个稍微渐进一点的方法就会好很多。比如后者使用“编辑距离”。

2024-01-26

【Voyager: An Open-Ended Embodied Agent with Large Language Models】

不知道 novelty 在哪里,可能是提出了新的框架。做法还都是比较传统的 CoT/评分 llm/RAG 检索等等。

2024-01-25

【Efficient Streaming Language Models with Attention Sinks】

研究人员发现 在 decoder only 结构中,我们解码需要所有上下文 token 的 KV 信息,这太多了。他们打了个表发现 \(QK^T\) 这个矩阵,当 layer 深度比较大的时候,有这么一个特性:

image

负数的部分因为有激活函数的原因所以可以直接扔掉,所以可以保留最前面一溜和最后一些跑就行了。

难以评价。这甚至是现在处理上下文的最好的方法。

【LLM Augmented LLMS - Expanding Capabilities Through Composition 】

顾名思义,训练一个 anchor model(通用大模型) 和一个 domain-specific augmented model(另外训练的小模型) 结合起来来做到两者分开就达不到的效果。

这是为了解决:1.用不了这么多数据。2, catastrophic forgetting 3.基于anchor model agumenting成本大

组合的规则:不能改权重;一个 anchor model 和多个 agumenting model 对应;可以另外附上一些数据训练组合之后的结果。

左右两边分别是 agumenting model 和 anchor model,参数不变。中间再加一个 attention block 并进行训练以调用左右的 model.

这个文章 method 部分好像没什么可以说的了。图中表示:你可以从 A模型任一层把参数抽出来,先经过 projection layer 把词向量的维度对齐之后,和 B 中的某层做一个 Attention(图中 QKV 的来源和 transformer 的 decoder block 中 qkv 来源一致,B 的下一层就是 Attention 结果和 B 中该层结果相加(residual)

反向传播的时候修改 attention block 参数即可

相比于 LoRA/Delta-tuning ,calm 可以让 \(m_A\) 对 task 的一个 part 进行用该 part 的数据进行训练,让 \(m_B\) 对 task 的另一个 part 用该 part 的数据进行训练,然后用少量数据训练 \(m_c\)。结合图片,什么都能理解。

【copy is all you need】

image1

等看懂了更新。

【large language models as optimizers】

一个玩 prompt 的手法,框架为下图。

image1 image2

llm 生成新的结果的时候需要参考之前的 output 的 score。可能可以理解成一种打磨的方法。

有些其它的点可能需要记录一下:

  • 这个 meta prompt 初始化可以是空,可以是一些人造的 prompt,所以其实可以理解为一个搜索的过程,每次在状态空间里面添加元素。考虑到搜索初期(这个阶段模型的探索属性强,而精益求精的优化属性较弱),为了避免 evaluator 产出的 scores 波动过大,可以每次让 optimizer generate 多个结果喂过去,再往 prompt list 中 append。这个“多个结果”,根据实验,选择数字 8 的效果最好

  • 对于探索和优化两维平衡的问题,这个是通过 temperature 来控制的。根据 github 代码,一共两种情况:temperature 是 constant 或者 线性变化。如果是探索性比较强的状态下,就可以给 score 比较低的一些 Output 一些增加。

image

2024-01-23/24

听了一些强化学习理论知识,把 policy gradient 鸽了,打算回头找个作业写一写把原理再搞明白一些再去深入。本来想写一个【学习笔记】,但是能写的东西实在是太 low 了就鸽了。

24 号 thunlp 发了一篇推送说中了一大堆 iclr,感觉很牛。

2024-01-22

早上想了一小会,跟学长聊了一下,他说这个是 RAG,有点难绷。

学长还说长文本用 streaming llm 相当多;lora 可以用在绘画生成上,比如,训一个山水的,训一个花鸟的,往 foundation model 上一加;tools 套 lora 这件事情已经被做过了。

什么都不会,怎么办!

2024-01-21

读了 graph of thoughts 和 algorithms of thoughts。前者就是纯纯水文。后者居然还是 prompt 研究,感觉一点也不牛。都没有 ToT 牛。

今天写了 assignment II ,发现自己好像不太能看清楚损失函数和什么变量有关系,一点代码能力也没有了。

晚上 follow 了一下 toolkenGPT 的工作,读了读他们的 dataset

2024-01-20

读了 lora 和 glove。本来还想读 toolkenlization 的论文但是白烂了

更了 pca 和 svd 的博客。

这天写完了 assignment I

2024-01-19

书接上文。这天应该想读 word2vec 来着,但是因为 svd pca 这些都不会就白烂了。

这天应该是开始写 cs224n assignment I

2024-01-18

Generative Agents: Interactive Simulacra of Human Behavior

这个好像是著名的 斯坦福小镇。

为了实现生成性代理,我们描述了一个代理架构,该架构使用大型语言模型存储、合成和应用相关记忆以生成可信的行为。我们的架构包括三个主要组件。第一个是记忆流,它是一个长期记忆模块,以自然语言记录代理的经历的综合列表。一个记忆检索模型结合相关性、新近性和重要性,以呈现在代理逐时行为所需的记录。第二个是反思,它将记忆在时间上合成为更高层次的推断,使代理能够得出关于自身和他人的结论,以更好地指导其行为。第三个是规划,它将这些结论和当前环境转化为高层次的行动计划,然后递归地转化为详细的行为用于行动和反应。这些反思和计划被反馈到记忆流中,以影响代理的未来行为。

2024-01-17

每日一乐:transformer architecture 让 ChatGPT 给翻译成 变压器架构 了。目测 T 换大写就行了。

1.llm agent 的

  • construction

    目的:使 llm 成为六边形战士 -> 成为了六边形战士之后要在各项评测任务中表现得更好。原文中做的类比是 构建基础神经网络架构 & 让神经网络在训练中学习参数。

    对于 architecture,survey 中提出了一种统一的架构,由一个分析模块、一个记忆模块、一个规划模块和一个行动模块组成。

    • 分析模块

      目的是识别代理的角色 & 其它基本信息。它们可以手动指定,但是非常耗时;可以直接让 LLM 生成,需要 种子/ few shot 示例,显然,这种做法精确度有点问题,不知道能不能使用 self consistency,或者使用了这种手法仍然很拉;可以从数据集里面找自然语言描述
      这些方法显然不是独立的。

    • 记忆模块

      人类有“感觉记忆(感受器输入),短时记忆,长时记忆”。LLM 也可以分为短期记忆和长期记忆,前者是上下文信息/场景图/环境反馈,后者是额外维护的向量集,LLM 可以快速获取其信息。不过容易发现不存在只有长期记忆的结构,只有纯短期记忆/混合记忆。

      此时需要考虑 format & operation

      format 顾名思义,就是 data 存储的方式,那么显然有很多 database 的 work。有些工作和这个相关。

      CHATDB: AUGMENTING LLMS WITH DATABASES AS THEIR SYMBOLIC MEMORY
      VOYAGER: An Open-Ended Embodied Agent with Large Language Models

      reading -> 读取当前交互最需要的 memory,考虑 memory 是否 recent,和 interaction 的 relavance 以及 memory 自己的 importance.
      writing -> 问题有二 :duplicated (在 OpenAI. GPT-4 technical report, 2023. 中有涉及解决方法)和 overflow(可以考虑 queue)
      reflection -> 和 human 一样,但是 survey 写得太抽象,可能要读:

      Expel:Llm agents are experiential learners
      host in the minecraft: Generally capable agents for open-world enviroments via large language models with text-based knowledge and memory.
      Generative agents: Interactive simulacra of human behavior.

    • 规划模块

      这个应当是我比较熟悉的了,后面把 CoT 的各种衍生体读一手。
      可能我对 plan 理解有点狭隘。话说在自然语言中的 plan 是怎么定义的,可能还是把 task 分成 subtask 这样?
      CoT 和后续工作是无 feedback 的 plan。而有 feedback 的 planning 重要的一点就是将反馈纳入推理,其实主要还是为了缓解幻觉问题。

      来自模型反馈的这一段因为 reference 太多导致我没看明白。把ChatGPT的翻译粘到这里,等把论文里的方法看了再说。

      模型反馈:除了前述的外部环境和人类反馈之外,研究人员还研究了来自代理自身的内部反馈的利用。这种类型的反馈通常是基于预训练模型生成的。具体而言,Self-refine: Iterative refinement with self-feedback 提出了一种自我完善机制。该机制由输出、反馈和完善三个关键组件组成。首先,代理生成一个输出。然后,它利用LLMs对输出提供反馈,并指导如何完善它。最后,通过反馈和完善改进输出。这个输出-反馈-完善的过程迭代直至达到某些期望条件。 [SelfCheck: Using LLMs to zero-shot check their own step-by-step reasoning] 允许代理检查和评估其在各个阶段生成的推理步骤。它们然后可以通过比较结果来纠正任何错误。InterAct [InterAct: Exploring the potentials of ChatGPT as a cooperative agent.] 使用不同的语言模型(如ChatGPT和InstructGPT)作为辅助角色,例如检查器和排序器,帮助主要语言模型避免错误和低效的行动。ChatCoT [ChatCoT: Tool-augmented chain-of-thought reasoning on chat-based large language models.] 利用模型反馈来提高其推理过程的质量。模型反馈是由监控代理推理步骤的评估模块生成的。Reflexion [Reflexion: Language agents with verbal reinforcement learning] 旨在通过详细的口头反馈增强代理的规划能力。在这个模型中,代理首先基于其记忆产生一个动作,然后,评估者通过将代理轨迹作为输入生成反馈。与以前的研究不同,其中反馈以标量值的形式给出,该模型利用LLMs提供更详细的口头反馈,这可以为代理的计划提供更全面的支持。

    行动模块负责将代理的决策转化为具体的输出。 理论上应该记录 frame 的,但是我太颓废了,摆烂了。
    image

    当我们得到 agent 的结构之后还有一个问题就是 capability acquisition。有 使用 来自 human/llm/real world dataset 的 fine tune 和 不使用 fine tune 另寻 Prompt engineering/Mechanism Engineering,后者有类似强化学习的 trial & error / 类似 self consistency 但是单步迭代的做法/在试错中找正确做法 等等。

  • application

  • evaluation

    白烂了。

2024-01-16

  • Chain of Thought

    人工构造思考过程。

    后面有一篇 llms are zero-shot reasoners,具体而言,是在提问之后添加一个“let's think step by step.” 的 prompt 就会很大地提升正确率。(最没得写,最需要编故事的一集)在 CoT 原论文中提到实验过程中的 CoT 对于所有 dataset 都是人手造的而且都一样,那么有一个想法就是对同的 dataset 设计不同的 prompt。于是想让大模型自己生成 CoT 。做法是提前问一些问题,问题后面加上 “let's think step by step.”,再把新问题和之前 llm 生成的 CoT 放到测试提问中,又能提升正确率。最后的做法被称为是 auto CoT。

    CoT 的简便性(已经 simple 得不能 simpler 了)可以通过消融实验来证明。

    最开头的论文中提到,CoT 可以将计算资源分配给推理过程/提升可解释性。

    关于 llms 在给出 CoT 时的可信度,鸽了不写

有人说可以通过阅读实验过程写得详尽的文章来获得灵感,但是我太颓废了。

posted @ 2024-01-15 11:05  yspm  阅读(290)  评论(1编辑  收藏  举报