当前位置:   article > 正文

入门与 Follow GPT 的路径分析:LLM 道阻且长,行则将至

基于llm的plugin能力

动手点关注

e214d0d4f93d0752179afe930cb49c41.gif

干货不迷路

作为 CEO,Sam 将 OpenAI 的内部氛围组织的很好,有位 OpenAI 的前员工告诉拾象团队,当 2018 年 GPT-2 的论文被驳回时,Sam 在团队周会上将拒信的内容朗读给所有员工,并告诉大家在通往成功的路上总会有阻碍,但是大家一定要有信念。

本文试图从技术角度,借助 GPT 的公开资料,解读如何入门 GPT 以及相关大语言模型,形成自己对问题的认知体系,加速对新知识的吸收和理解; 并基于此讨论 LLM 的使用,以及带来的在产学研以及个人上带来的影响;最后提出需要关注的几个要点。

前言

基于当前 GPT-4 的已公开能力,以及 OpenAI 内部的一些消息,GPT-5 的能力会更加强大,但考虑到后续其他生态的配套等发展,下次发布可能会等生态的逐步完善和发展,而这个时候有可能会像 iphone4 一样经典。

最近这几个月,大家都感觉各个研究机构的人都不睡觉,你追我赶在疯狂发 paper,arxiv 这个平台的出现满足了他们的高产诉求。除了 paper,现在新的 git 项目,甚至新的公司都在层出不穷。奈何,他们前进的步伐不受狙击,所以如何才能更好更快的不被他们牵着鼻子走呢?

嗯,合理的方式,是将主要的脉络抓清楚,对问题有自己的框架认识。论文并非都需要读,抓到关键 paper,合理利用大佬发布的博客,加速对问题的理解。在基础了解之后,再阅读最新的 paper。很快,就会发现,emm 大部分论文……读起来变顺畅了。

在这个基础上,找到自己想要深入的点,再深入研究即可。

在 LLM 发展日新月异的今天,如何快速 follow,事半功倍,无论是针对技术还是非技术同学,都是一个需要思考的问题。

本文分为五个方面来切入,首先进行基础论文的分享和串讲,这些是从技术上了解当前 LLM 的基础,有了他们才有可能可以快速 follow 新的知识;第二部分重点讲复现和追赶,进行这个工作重点需要考虑哪些方面;第三部分基于 LLM 理解它会带来怎么样的变革和影响;第四部分是几个值得关注和讨论的要点;最后一部分是 take away,总结要点。

本文适合读者:想要 follow 新技术的技术/非技术从业者;想要检验一个人是否在不懂装懂……可以作为参考;作为建立对 LLM 认知体系的基础,这样每次看到新的知识是可以直接叠加进去的。

基础论文阅读

首先我们要明白一个事情。论文,一般都是针对某几个 SOTA 问题,甚至是一个 SOTA 问题的针对性讨论,其中附带了这个问题的前因后果,对其的实验论证和分析,以及给他人挖的坑,所以它天然就不是给初学者写的东西啊。

在读论文之前,先搞明白基础,然后再有顺序的,有根据,【有选择】的读论文,就不会出现理解上的困难。特意强调有选择,是有一些论文已经过时了,不用看了。除非要做相关问题研究,需要对比,或者了解前人做过的实验,否则,想学会怎么开汽车,或者学会怎么改装汽车轮胎,确实不需要知道怎么养马。

首先需要了解 LLM 的一些基础知识,入门一定要从语言模型入门,这个只要是个学过数学的学生就能看懂的,而且是要了解 LLM 的基础。

ChatGPT 原理介绍:

从语言模型走近 ChatGPT:https://zhuanlan.zhihu.com/p/608047052

7be9fa6a36f9cfba01446f7d65d5a71c.png

网络上有很整理的论文大集合,但这不是学习路线!https://github.com/Mooler0410/LLMsPracticalGuide

后面我将论文分为三大类,一类是与 ChatGPT 最相关的论文;一类则是与 OpenAI 有竞争相关的论文;最后一类则是基于这些论文的基础上,应该关心的其他相关研究。

这里仅放最重要的与 ChatGPT 相关的论文,其他内容放在最后的附录中。

  1. GPT 系列

【GPT-1】Improving Language Understanding by Generative Pre-Training. 

https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf 2018.6

【GPT-2】Language Models are Unsupervised Multitask Learners.

https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf 2019.2

【GPT-3】Language Models are Few-Shot Learners. 

https://arxiv.org/abs/2005.14165 2020.5

【CodeX】Evaluating Large Language Models Trained on Code.

https://arxiv.org/abs/2107.03374 2021.7

【WebGPT】WebGPT: Browser-assisted question-answering with human feedback. 

https://arxiv.org/abs/2112.09332 2021.11

【InstructGPT】Training language models to follow instructions with human feedback.

https://arxiv.org/pdf/2203.02155.pdf 2022.3

【ChatGPT】 

blog: https://openai.com/blog/chatgpt 2022.11.30

【GPT-4】

https://arxiv.org/pdf/2303.08774.pdf 2023.3R

  1. 重要支持论文

【RLHF】Augmenting Reinforcement Learning with Human Feedback. 

https://www.cs.utexas.edu/~ai-lab/pubs/ICML_IL11-knox.pdf 2011.7 

【PPO】Proximal Policy Optimization Algorithms.

https://arxiv.org/abs/1707.06347 2017.7

ChatGPT 的诞生

从时间上我们看一下,在 iGPT 出现之前,先后尝试了 CodeX、WebGPT 两个工作,然后在这个基础上训练了 iGPT 以及出圈的 cGPT。

下图我们看到,自 2017 年 tranformer 这个特征提取器发表以来,基于它其实有三条经典路线,GPT、T5、Bert。用直白的话讲,Decoder-only的是 GPT 系列,encoder-only 的是 bert 系列,而 T5 则是原本的 en-de,是在 transformer 的基础上发展来的。在这些信息的基础上,我们可以看到 gpt、t5 和 bert 本身是三条不同的技术路线,自然他们在擅长的任务,各自的特点上也有所不同。

  • GPT:自回归,适合做生成;由于其特点,为了在理解任务上达到和bert相同的效果,成本较高。

  • T5:en-de,理论上是结合了 GPT 和 BERT 的优点,但会带来参数的暴涨,训练成本很高,google 提出后并未过多发展,性价比相比 GPT 暂时未知(但我觉得潜力很大);T5 统一了 NLP 任务的形式,一切都可以是 Text2Text 的形式,与 GPT 解决问题的思路是一致的。

  • Bert:自编码,不适合做生成,在理解任务上 finetune 形式性价比很高。

c9a5c263f61c6f06aeb4c99f22701e19.png

当前我们来核心看看 cGPT 是怎么诞生的,其他就先不管了。

GPT1 到 GPT3,CodeX、WebGPT、InstructGPT 是关键的几个论文,也是我们能够最直接了解到 OpenAI 当前工作进展的几个开源工作,而 RLHF 与 PPO 则是训练方法相关的论文,为了达到 cGPT 的效果,这些训练方法起到了重要的作用。

  • GPT(GPT-1):这是 GPT 系列的第一个模型,发布于 2018 年。GPT-1 拥有 1.17 亿参数,其突破性之处在于引入了单向上下文建模,通过预测下一个词来生成连贯文本。

    • 从此时起,让 NLP 进入了预训练大语言模型+finetune 的时代。

  • GPT-2:发布于 2019 年,GPT-2 具有 15 亿参数,相较于 GPT-1 有很大的改进。它使用了更大的训练数据集,提升了模型在处理不同语言任务和生成连贯文本方面的能力。当时,GPT-2 因其生成能力强大而引起关注,甚至引发了有关潜在滥用风险的讨论。

    • 开放了 API,开源了一个相对小的模型,没有开源论文中的所有模型

    • 论证了 zero-shot 的效果和 promising 的前景

    • 开始了大数据,大模型的演进之路

  • GPT-3:发布于 2020 年,GPT-3 是当时最大、最强大的自然语言处理模型之一。它拥有 1750 亿参数,对比 GPT-2 有很大的扩展。GPT-3 在多种任务中表现出色,如代码生成、文本生成、问答等,甚至可以在未经微调的情况下完成某些任务。尽管 GPT-3 取得了显著的进步,但仍存在一些问题,如偶尔产生有害或不相关的内容。(开始 close AI)

    • 提出了 in-context learning,避免 fintune 会将模型的信息遗忘,导致能力下降。泛化性变弱。

    • 带领了 Prompt 的兴起(其实 GPT/bert 的时候就已经有了初步的 prompt,当时为了构建一些任务或者训练样本,会对数据做一些小改动)。

  • CodeX:发布于 2021,基于 GPT-3 finetune 得来,专门用于提高软件开发和编程的效率和质量,也是 Copilot 背后的技术支持。相关研究发现,在大量科学文献 / 代码上进行训练可以显著提高基础模型的推理/编码能力。

    • 在给定数据集 HumanEval 上论证了 LLM 在解决代码编写问题上的可能性,在 repeated sampling 机制下 Codex 能解决大部分的编程问题。

    • 引起广泛关注和讨论:CodeX 的发布引起了广泛的关注和讨论,认为它将极大地改变软件开发和编程的方式。但同时也引发了一些担忧和问题。

    • 这个工作的诞生为后续 ChatGPT 强大的代码能力埋下了伏笔(我理解也是坚定了 OpenAI 的信心)。

    • 代码的强逻辑性和规范性,猜测有利于 LLM 的能力优化。

  • WebGPT:同样在 2021 年,基于 GPT-3 finetune 得来,是一次与 Bing 的强联合,利用 Bing API 创建了一个模型和交互的搜索浏览环境,先利用 Bing API 进行信息检索,然后将检索的结果+问题交给 LLM 进行解答(这个过程会重复进行,由模型决策,pre-autogpt)。

    • 收集了用户行为数据,用来教模型决策(嗅到了 autogpt 的味道)。

    • 这里和后续的 cGPT 其实很像,都是对问题的回答,但用了 Bing 的检索结果作为 LLM 的 Prompt。

    • 这篇论文的训练方法中用到了基于 BC 的 SFT(这里的 BC 就是用户行为数据 Behavior cloning),基于 BC 模型训练了一个RM模型,从而将 RM 输出的奖励(惩罚)使用 PPO 算法在对 BC 模型进行微调,以进一步提高模型的学习效果。

    • 这篇工作就是 iGPT 的前序工作,只是在 iGPT 中将对齐的内容/目标做了改动,里面暴露了很多数据收集分析上的细节,同时也是LLM和搜索的一个结合的重要工作。

    • 果然是微软的一个研究院。

  • InstructGPT:较为详细的介绍了 iGPT,大家也是认为这个工作是 cGPT 的重点暴露,因为 cGPT 号称和 iGPT 的技术点几乎一模一样。而iGPT的核心主要有三点:

    • Alignment:与用户对齐的理念,好的技术方案设计和执行导致了其良好的效果。这一点非常关键

    • SFT 训练(supervised fine-tuning):收集prompt&Answer pair(对于 cGPT 来说,prompt&answer 的格式是 dialogue format 的),基于这些数据对 LM 进行 SFT 训练(supervised fine-tuning)

    • RLHF:

      • RM:奖励模型的训练(reward model training)。基于收集好的 prompt,让 SFT 好的模型输出结果,然后人工标注好,让 RM 学习哪些标注好的数据是正确的

      • PPO:近端策略优化模型( reinforcement learning via proximal policy optimization):基于上面训练好的两个模型,让 SFT 对 prompt 进行输出,然后基于 RM 给出的分数作为模型自我迭代的依据,从而不断优化模型。

  • cGPT:理论上和 instructGPT 是并行关系,只是在数据格式上有所不同:We mixed this new dialogue dataset with the InstructGPT dataset, which we transformed into a dialogue format.

c50c838abe3f686d301d8130c6d7ed8a.png

从上面的工作我们可以看到,18 年开始,确定一个技术方向,在这个过程中不断的尝试,不断基于之前的工作进行修正,探索,一步一步前进,这个过程很有趣,最终得到了 cGPT。

技术点概括

我们浏览一下以上的论文,可以总结出其取得当前成绩的关键点:

  • infra:需要提前建设

    • 算力:硬件(钱和基础设施支持。

    • 工程:随着数据上升,工程与算法的互相匹配实现就很重要。

  • 数据:决定了上限:公开数据有很多,但具体如何收集,如何处理、分析应用是关键。

    • 从论文中,我们看到即便是公开数据,也花了很大的功夫去分析比如 train/test 之间的覆盖,benchmark 对模型的评估与模型训练数据之间的关系等要素影响。

    • 训练数据的选择清洗很细节。

    • 收集用户标注数据的时候,有很细节的设计,包括但不限于 gui,数据可靠性机制设计等。

    • 决定了应用效果。

  • 算法:模型设计决定了能多逼近上限。

  • 评估标准:(量化)评估模型性能。论文中虽然没有提出一个评估标准,但是我们看到 OpenAI 做了大量的工作来分析模型性能,以及数据对模型性能的影响。有评估,才能知道模型当前的进展以及新的工作怎么发展。(参见 GLUE or CLUE)

  • Wrapper for 应用:

    • 技术应用:Prompt-engineer;梳子模型(梳子的齿是prompts,横着的齿根是 LLM 底座)。

    • 业务应用:ChatGPT 等。

    • 商业化方式:除了产品使用会员制外,暂无明确路径。

  • 团队构建:有动力,有灵魂人物拍板,合理的商业化运作(做事情是需要正反馈的)。

模型介绍
GPT4预计参数量 1-1.7w 亿,支持文本和图像,输出文本(但是可以支持编程绘图),在各项任务上表现更好
GPT3.5(instructGPT和chatGPT)1750 亿参数,文字输入输出;规范了 Alignment 这个概念,规范了训练流程:SFT、RLHF(RW+PPO);基于上文,我们看到这里集合了 WebGPT 和 CodeX 的优点。
GPT31750 亿参数,文字输入输出。提出 in-context learning(0/few-shot)
GPT215 亿参数,文字输入输出。弱化版 GPT3,也是大家摸索 GPT3 的重要参考
GPT11.17 亿参数,文字输入输出,无监督预训练,task oriented finetuning->下游任务上需要 finetune,没有足够泛化性,同时 finetune 需要数据

复现与追赶

在当前有一个真理可以记住,只要有人说:“论文都是公开的,技术都是现成的,只要有钱,给一定的时间,大家训练个大预言模型不是分分钟的事情。”就一定是外行。

ChatGPT 的工程、模型和算法细节没有公开,数据处理细节没有公开;当前openAI已经将相关技术作为商业机密进行保留,从 GPT-3 就开始保密,至今已经有三年。

当前大模型调研

由于我们是想要跟进最新的内容,所以自然可以放弃很多过程指标。之前讲到,整体其实有两条路线可以走,T5 和 GPT。我们以这样的方式列出来。

对于应用和学术,要以两种视角来看待。应用方,当前一定关心的是ChatLLM,因为这是一个可以在淘金时代卖水以及最快测试应用场景的基础应用;而技术视角,除了关心 chatLLM,还应该关注其底层的 LLM 是什么,这才是基础。

以下是截止成文的时候比较流行的工作,从开源程度,学习上手以及运行的成本看,推荐学校出得,ChatGLM 和 Moss 或许会友好一点。

名称介绍地址
Moss复旦大学邱老师组发布的语言模型,支持对话,全部开源,推荐了解和学习。https://github.com/OpenLMLab/MOSS
ChatYuan元语智能发布,孵化于中文 NLP 开源社区 CLUE。CLUE 整合大量中文资源,均由 NLP 自由开发/爱好者推动,推荐了解。https://github.com/clue-ai/ChatYuan
ChatGLM清华大学发布。ChatGLM 版本多,效果好,可以在自己电脑上运行,因此十分受欢迎。十分值得大家尝试!中英双语。另,推荐了解 GLM,chatGLM 的基座,yangzhilin(XLNet 作者)参与的工作https://arxiv.org/abs/2103.10360https://github.com/THUDM/ChatGLM-6B/blob/main/README_en.md
OPTMetaAI 发布,175B 模型,模型结构与 GPT-3 基本一致,推荐了解,可以帮助理解 GPT-3。单语言。https://github.com/facebookresearch/metaseq/tree/main/projects/OPT
Bloom多语言, Bigscience 发布,与 GPT-3 基本一致,全部开源,训练框架使用 Megatron-DeepSpeed,效果也很好,推荐了解和试用https://github.com/huggingface/transformers-bloom-inference
LamDA137B 参数,google 发布。decoder-only,理论上与 ChatGPT 架构相似。https://github.com/conceptofmind/LaMDA-rlhf-pytorch
LLaMALLaMA 是著名的 MetaAI 开源的大语言预训练模型,也因为它的开源以及斯坦福发布的 Alpaca 工作,让 LLaMA 成为最近这些天发布的模型的基础(也就是说最近很多模型都是用 LLaMA 微调的)。而这个是 Decapoda Research 在 HuggingFace 上部署的。是将原始的预训练结果转换成与 Transformers/HuggingFace 兼容的文件。https://github.com/juncongmoo/pyllama
百度、阿里、讯飞等当前国内的公司在不断的发展和推进,无论从使用上还是从底层技术上都推荐 follow。

大语言模型发展历程:https://briefgpt.xyz/lm

如何复现

既然在开头已经吐槽过,那么我们这里直接说复现思路——当一个强大的工程师,不需要思考,照着开源抄,就领先了 99% 的人。

从 GPT 已经公开的资料来看,LM 这个模型基底结构其实并不是最重要的,当前我们已经有的结构,只要包括了 decoder,其实都可以做到文本生成,在很多细节上,也有多种优化点。但当前能让 OpenAI 破局的,核心是如何构建数据,如何收集数据,如何将这些数据用来做模型训练,才是关键和核心。这些是需要格外注意的。

From Scratch

从 0 开始,有两种思路

  • 一种是基于 GPT-2 或者 Bloom 等 GPT 系列的 LM,参考其发展路线,自行实现;

  • 另一种则是基于当前已经摸索清楚路线,且开源的 Moss、LLama 等,依据实现。

听起来比较简单,需要重点解决的依然是上面提到过的一些要点:

  1. 数据:数据收集、数据清洗、数据标注等细节问题,包括成本与标准流程。

  2. 老师(算法细节)决定上限:当前无开源模型解决 GPT-4,且 GPT4 并非 OpenAI 内部最强的进展。这部分的差异需要自行推导摸索。LLM 时代,暴力穷举可能性,大力出奇迹来追赶 SOTA,特别算力受限,可能性不高。

  3. 工程:如何快速进行训练和推理,是一个好问题。

  4. 其他:很重要,但在解决上面的问题才会出现的,比如安全、评估、成本优化、效率等方面。

From a strong baseline

From scratch,讲的是技术路线甚至代码都已经 ready,但是模型是需要自己重新训练的,里面会有很多细节操作。

而从一个强有力的 baseline 开始,那么就是在一个已经有的模型的基础上进行改良。

需要关注和解决的问题是:

  1. 同样,上面提到的几项也很关键,对每一项的理解都很重要,但对实现的全面性和细节都要求更低。

  2. 要往哪个方向 fine-tining。

  3. 未开源部分依然需要自行摸索。

相信的力量

最近听一些分享/讲座等,有说到想象力、愿力、心力。都差不多。本质是需要有坚定的信念才可以。

OpenAI 在 GPT-2 被退稿的时候依然能够坚持这个方向(其实GPT系列被退也没错,Roberta 当年也没过,原因大差不差)。

有一些玄学,本质是需要有灵魂人物来带领。

评估的重要性

前面我们讲到了评估,这一点很重要,直接决定了这些追赶和复现的团队是否有足够明晰的目标和标尺来衡量自己的工作进展,而这一点当前很困难。

举个

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/822357
推荐阅读
相关标签