ITPub博客

首页 > 数据库 > 数据库开发技术 > Chatgpt内核(三)超越gpt3.5的Amazon多模态COT

Chatgpt内核(三)超越gpt3.5的Amazon多模态COT

原创 数据库开发技术 作者:Agent的潜意识 时间:2023-02-24 12:18:32 0 删除 编辑

多看paper,勤敲代码。今天给大家分享一下23年2月17号挂出来的这个paper:Multimodal Chain-of-Thought Reasoning in Language Models[1] 及代码[2]。


我也是看了机器之心这个报道才决定摸摸这个的。他这个标题有些夸张不符实际。事实上它这个论文只是在COT上构建了一个多模态打败了GPT3.5的单模态;注意:只是COT这一个点:并且也只是一个小数据集。他这样一些吸引眼球以为这个小模型可以完全替代chatgpt是不对的。

这次分享,要给大家讲清楚三件事情:一、如何构建一个数据集训练COT模型,二、两阶段训练COT;二、单模态与多模态COT是怎么实现的;
论文只是代码思维的文字化,总归是有gap的。很多细节还得看代码跑代码敲代码摸一遍。你对问题的理解是完全不一样的。我也是昨天晚上把这个项目搞明白的。

一、训练COT的数据集长相


搞算法先看数据,才有一个感性认识。
整个训练数据就是这样的。其中,pid_splits.json是做训练测试集划分的。Train数据集中的是图片。每个ID一张图片。Problems.json就是每个问题的定义和答案,以及COT的内容。我们先看问题内容:
第一个问题讲的是哪个州在最北边?然后,其中有solution和lecture来做解说,但他们都不是cot,cot是hint这一栏。第一个题目是没有cot的,第二题就有,他给你了提示。不过他在代码里构建prompt的时候把solution和lecture都加进去了。
我们来看图片,你一看就明白为啥多模态的效果这么好了。
问题对应的图片就是四个州在图片中有具体位置的。明眼人一看就知道是哪个州在最北方,还带了指南针说明的。因此你就理解了为啥这么小的模型能比GPT3.5好。因为他增加了图片这个更大信息熵的通道。

二、两阶段训练COT


这一块就是完全印证了我之前对COT的定义:先学一个条件概率P(思维链|input),然后学一个条件概率 P(answer|思维链)。这个论文中说分两步效果更好,根就在这里。我本来也是想从这入手发论文的,因为我觉得分两步做条件概率更好,没想到已经有人发表了。见上次分析:Chatgpt内核情景二:真正的思维CoT与prompt
训练也是分两步,预测也是分两步。
训练的checkpoint长这样,其中的pytorch_model.bin不是训练的结果,而是一个文本特征提取器。预测时,第一步生成这样的中间结果:
第二步拿着这样的中间结果去生产真正的answer。


论文核心架构图就是专门讲这个逻辑的。他一开始生成了一个逻辑推理中间结果,然后再预测答案。
三、单模和多模COT是怎么玩的

先说单模,他首先读取problem.json里的信息,然后把他们连在一起,接着用文本特征提取器构建成prompt。
读取Hint。
读取solution.
把他们连在一起,然后用特征提取器提取文本特征。
所谓的多模态COT,他用resnet提取了图片特征,并增加了一个注意力机制层进去了,然后做了一个torch cat,把图像特征和文本prompt结合到一起。核心代码在红框里:
滴水穿石,先把一些学术界的关于chatgpt的散状的点都囊起来,然后把他们连成线。
 通过这次实践,基本搞清楚了COT的训练过程包括多模态的COT,对两次条件概率的理解更深了。同时也是第一次训练cot模型,发现把batch调小一点,我的rtx titan 24G 还是够用的。





原文作者:Agent的潜意识;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2017-03-21

  • 博文量
    187
  • 访问量
    82256