0%

LIMA是五月份的一篇网红文,发表后引起了广泛的讨论。它用极致简约的SFT方案训练了一个不错的模型,希望证实表面对齐假设 (Superficial Alignment Hypothesis):

大模型中几乎所有知识都是在预训练中学习的,指令微调只是一个很简单的过程,让模型学到与用户交互的形式。

为证明上述假设,作者们推测仅需要少量的指令微调数据(1000条)就可以教会模型产生高质量输出。此外,1000条SFT数据就达到了很好的指令微调效果,也说明了高质量数据对于模型的重要性,这一点与 Textbooks Are All You Need 有异曲同工之妙。

# LIMA: Less Is More for Alignment

力洛克T41自行洗油保养实录

手动上弦的问题并未解决,保养后不久,问题更加严重,仅能上弦约10圈(走时约10小时),便开始不断打滑,同时发出“咔咔”的异响。如小心继续上弦,发条会突然弹松,直接停表。针对此问题搜了许多国内外论坛,都没找到合适的解决方案,此处记录以飨后人。

前后花了约一个月,买了一根发条,两个发条盒总成件,捏断两根发条内钩,最终购买一套立轮和离合轮(合轮)彻底解决问题。

先买了一根新发条,换上之后问题依然存在。

由于出现突然弹松的现象,怀疑发条轴与发条内钩打滑所致,感觉是上链时二者一直打滑,出现“咔咔”的异响。打开看了看发条轴,似乎有一些磨损(它的凸起不太明显,不是非常有经验的老师傅不太容易看出是否磨损),干脆买了一个新的原装发条盒。换上之后问题依旧。

大模型可以仅凭指令或几个示例就能解决各种新任务,但在一些看似简单的算术或搜索任务上却表现欠佳。俗话说得好,人和动物的区别就是人可以更好地使用工具。于是,Meta AI提出了Toolformer,让LLM善假于物,通过自学使用外部工具。

Toolformer可以决定调用什么API、何时调用它们、传递什么参数及如何将API返回值融合。Toolformer以自监督方式训练,每个API仅需要几个示例。它在各种下游任务中显著提升了零样本性能,而不牺牲其核心语言模型能力。

# Toolformer: Language Models Can Teach Themselves to Use Tools

MSR使用“教科书”级的高质量数据训练了仅 1.3B 的面向代码任务的phi-1模型,在 HumanEval 和 MBPP 上取得了很高的准确率。

根据模型扩展法则,为提升模型性能,需要从增大算量和模型规模入手。这里则另辟蹊径:从数据质量出发。之前的研究证实:提升数据质量会大幅改变扩展法则趋势,能让小模型达到大模型的效果。本文则在此结论上更进一步,打破了已有的模型扩展法则,证明高质量的数据甚至可以在使用更少的数据和算量条件下超越大模型的SOTA

具体来说,用约 7B token 训练8轮,然后在少于 200M token的数据上微调得到 1.3B 的模型 phi-1

# Textbooks Are All You Need

开源的通用能力大模型越来越多,但真正有用和落地的是在某个领域专精的垂类模型。初看上去,似乎大模型仅需要少量prompt工作就可以很好地在垂类工作,可事实并非如此。不进行领域微调的通用模型可以很快地构建80分的应用,可是大部分的实用场景,需要95甚至98分的模型效果。这也是为什么在各个领域(如金融、车载、虚拟人)大家都在训练或微调自己大模型的原因。

微调这件事看上去不难,但却有很多未解问题:

  • 如何基于英文大模型继续训练一个中文大模型?
  • 垂类数据应该在预训练阶段引入,还是指令微调时引入?
  • 通用指令数据与垂类任务数据的混合比例有什么讲究?

上面的每个问题都有很多种不同的方案,但限于时间和成本,逐一实验是不可行的,AB测试也会带来额外的成本。所以有趣的事情出现了,各个玩家对自己训练时的细节都讳莫如深,自己训练的时候也都遇到过各种各样奇怪的坑。更有意思的是,即使别人提供了一些细节参考,自己在训练时未必能够复现 :-( 。

代码库: # Lawyer LLaMA

Lawyer LLaMA技术报告: # Lawyer LLaMA Technical Report

思维链采用逐步推理的方式得到最终结果,如果模型在某一步出现幻想 (Hallucination),则差之毫厘,谬以千里,后面的错误会被放大,导致错误结果。

OpenAI最近提出使用过程监督 (Process Supervision) 减少大模型幻想并提升大模型的数学推理能力,所以什么是过程监督?

过程监督 (Process Supervision) 是相对于之前的结果监督 (Outcome Supervison) 而言。众所周知,大模型基于人工反馈的强化学习部分需要用到奖励模型 (Reward Model, RM),数学推理能力是基于思维链 (Chain of Thought)。传统的奖励模型采用的是结果监督的方式,仅使用思维链的最终结果进行判别与反馈,而过程监督则是对思维链的每步推理都进行反馈。因此,过程监督是针对思维链和奖励模型的一种改进方案。

OpenAI开源了过程监督的数据集 PRM800K。论文的核心思想很直观,主要关注在实验设计。

OpenAI 博客: # Improving mathematical reasoning with process supervision

论文链接: # Let’s Verify Step by Step

好久没出去看大好河山,五一前休假去贵州自驾游,云贵川算是都打了卡。按照惯例,还是提前简单做下攻略,本想将行程设置宽松些,后来发现贵州的大部分景点门票预订(进景区时间)都要精确到小时,才不得不把行程提前细化。

贵州的主要景点也比较分散,不过都是以省会贵阳为中心放射状排列,本次自驾主要以黔东为主。之前找到一张不错的贵州景点分布图,记不清出处了:

3月22日,NVIDIA的CEO黄仁勋与OpenAI的创始人Ilya Sutskever进行了围炉对谈,通过视频可以更好地了解OpenAI是如何走到今天,又是如何理解ChatGPT和GPT-4这些大模型的。不过毕竟是非正式访谈,思路和观点略有发散,本文提取访谈中一些有意思的观点供参考。

BTW,网上的中文完整字幕翻译对某些观点的翻译解读有误,建议看原视频。

# AI Opener: OpenAI’s Sutskever in Conversation With Jensen Huang

戴了十几年的力洛克,一年前开始走时不准,最近每天能慢上一分钟,手动上弦似乎也有些问题,总是上不满弦,怀疑与之前疫情在家总手动上弦有关系 (最初怀疑发条断了)。

距上次保养已经5年有余,天梭官方授权的店保养一次 (所谓完全服务) 约一千块,而买块新的ETA-2824-2机芯也就差不多这个价,所以再去保养显得非常不划算。老爷子年轻时玩表修表,有此家学,再加上网上有许多机芯拆解洗油点油视频,看起来也不甚困难,跃跃欲试,决定自行保养维护。

前后历时一个月才保养完毕,趟坑无数。现在看来,动手时显然低估了保养洗油的难度,加之中间遇到的诸多难题,本想从玩表的过程获取些操作的成就感,不想却收获了诸多挫败感。修完后才感叹,授权店收一千块算是良心价了 :-) 。好在最终问题完美解决,记录下保养过程。

语言模型越来越大,但更大的模型并没有显示出更强的计算和推理能力。去年Google提出了Chain-of-Thought (CoT) 的方案,通过chain-of-thought提示,让模型逐步推断,使大模型的推理能力显著提升。本文来看一下chain-of-thought的原理。

Chain-of-Thought Prompting Elicits Reasoning in Large Language Models

Language Models Perform Reasoning via Chain of Thought

大规模语言模型的春风已经吹遍大地,大家都惊叹于大模型出色的对话能力,但是在训练大模型时遇到的训练不稳定问题(training instabilities),可能关注的人并不太多。所谓量变引起质变,模型每大一个量级,就可能会出现一些意想不到的问题,比如莫名其妙的训练崩溃。当然,也有好的方面,在模型有一定规模后,是否有可能表现出一些弱智能,也很难说。

言归正传,今天聊聊在训练10B以上模型时遇到的训练不稳定现象,问题原因及当前的解法。

ChatGPT的大火让Google也坐不住了,许多人认为这一波Google已落后一个身位。坊间甚至传言创始人谢尔盖・布林都已“躬身入局”,亲自写代码了。上面的说法可以当八卦看来一乐,不过昨天微软官宣Bing和Edge浏览器要集成ChatGPT时,Google也不甘示弱,表示也要上线大模型Bard (这个名字倒也颇具浪漫主义气质:吟游诗人)。

随着神经网络模型规模的不断增大,对硬件的显存和算力提出了新的要求。首先模型参数过多,导致单机内存放不下,即使能放得下,算力也跟不上。同时,硬件算力的增长远远比不上模型增长的速度,单机训练变得不再可行,需要并行化分布式训练加速。比如Megatron-Turing NLG有 530B 的参数,训练需要超过 10T 的内存来存储权重、梯度和状态。

同时,模型是一个有机的整体,简单增加机器数量并不能提升算力,需要有并行策略和通信设计,才能实现高效的并行训练。本文简要介绍目前主流的几种并行策略:数据并行,张量并行,流水线并行和混合并行。

# Using DeepSpeed and Megatron to Train Megatron-Turing NLG 530B, A Large-Scale Generative Language Model

近来被人们玩坏的ChatGPT推出了收费订阅ChatGPT Plus,每月20刀,提供更好的可用性,更快的回复时间,和提前试用新功能的权益。

这个订阅目前仅对美国地区开放,先从之前登记的waitlist上邀请试用,后续会开放更多国家和地区。

好消息是免费版继续可用,推出收费版后可以更好地服务于更多的免费用户。

最近升级NexT主题到最新版v8.14.1,相关文章功能从v8.10开始由hexo-related-popular-posts替换成了hexo-related-posts,后者是用tf-idf算法对文章全文进行相似度计算而得相关文章,比hexo-related-popular-posts要精准和先进一些,不过副作用是计算量变大,在文章数较多的情况下运行会比较慢,这样在写完文章后用hexo s进行本地调试效率就变低了,每次文章修改都要重新计算一遍tf-idf。好在 hexo-related-posts 考虑到了此问题,可以通过设置enable_env_name变量,只在特定环境(如生产环境)中才开启此功能。不过文档略有些问题,费了一番周折才设置环境变量成功。

短答案$ hexo <command> --<env_key> env_value

长答案:本文介绍了如何使用环境变量仅在生产环境开启相关文章功能。

DeepMind去年在 NeurIPS 2022 发表了一篇如何在给定计算资源条件下,用多少tokens训练最优大小的 Large Language Models (LLM)。之前的许多工作都仅专注于扩大模型规模,而并不增加训练数据规模,导致这些模型显著地训练不到位 (undertrained)。DeepMind训练用不同规模的数据 (从5B到500B tokens) 训练超过400个不同大小的模型 (从70M到超过16B),发现 模型和训练数据规模需要同比增大。根据这个假设,使用与 Gopher (280B) 同样的计算量且4倍的数据,训练了70B的最优模型 Chinchilla。它在许多下游任务上的性能显著超过了 Gopher (280B), GPT-3 (175B) Jurassic-1 (178B) 和 Megatron-Turing NLG (530B)。

[NeurIPS 2022] Training Compute-Optimal Large Language Models Training Compute-Optimal Large Language Models

本文的 Chinchilla 也是后续对话系统 Sparrow 的基模型。

最近微软投资ChatGPT的消息甚嚣尘上,二者的联手会给产业和用户带来什么?

# Microsoft in talks to invest $10 bln in ChatGPT-owner OpenAI

从新闻上来看,微软会将ChatGPT集成到Office和Bing Search。但实际情况可能不止于此,微软擅长做平台,CVP已经在 Azure Blog 称ChatGPT将不久在Azure OpenAI Service上可用:

Customers will also be able to access ChatGPT—a fine-tuned version of GPT-3.5 that has been trained and runs inference on Azure AI infrastructure—through Azure OpenAI Service soon.

好消息是这个服务可以直接让中小企业基于API研发产品而无须自行研发模型。坏消息是它的效果太好以至于自己训练的模型不能达到同水平的效果,形成对此底层服务的强依赖。