今天开始,我计划开启一个系列 《带你自学大语言模型》,内容也已经准备了一段时间了。
该系列的落脚点是“自学”和“大语言模型”,二者不分伯仲,这也是本系列和其他技术文章不一样的地方。
至于原因,我不想只做大语言模型知识的传递,互联网上已经有太多同质化的信息了;我希望能以学习大语言模型作为开始,帮助你一步步养成自学的能力,“大语言模型”只是你迈出的第一步。
欢迎关注同名公众号【陌北有棵树】,关注AI最新技术与资讯。
我始终坚信并努力践行一句话:
坚持用正确的方法做对的事,所谓成功,就是解答题高手做对了选择题。
再进一步,我认为,“正确的自学方法”,是做解答题的必备技能,是需要一辈子的时间来打磨的;“学习大语言模型”是当前环境下的最优解,是选择题的正确答案。
一、关于「自学」
在我看来,相比于掌握任何一门知识或技能,你更需要掌握的,是 「快速自学」 这门技能。
因为一旦你掌握了自学这个技能,意味着你可以学会任何你想学会的技能。
这里我暂且将技能分为工具类技能和知识类技能,每学会一项新技能,其实相当于你的能力完成了一次内部增强或外部拓展。
工具类技能帮你外部拓展,例如外语,学会它,帮你看得更广;例如开车,学会它,帮你走得更远;例如编程,学会它,能给自己外接一个自定义机器;比如大模型,学会它,能给自己外接一个自定义大脑;
知识类技能帮你做内部增强,例如学会心理学,帮你升级内核中的理解人的模块,例如经济学,帮你升级内核中理解世界的模块。
然而,习惯了被“填鸭式教学”的我们,其实绝大部分并不具备自学能力。或许你不认同,请思考下面这个问题,这是本系列我提出的第一个问题。
提问是贯穿在这个系列的核心方法之一。因为,提问的深度,往往决定了你思考的深度。爱因斯坦曾说:“如果我必须用一小时解决一个重要问题,我会花55分钟考虑我是否问对了问题。”
【说明】在后续的每章里,我会提出很多问题,这些问题是组成章节脉络的关键点,本书里的每个问题我都会给出参考答案,但我不会直接给,而是打散在具体内容里,需要你去归纳总结;同时我更希望的是,你能自己思考每个问题,甚至更进一步,你能够尝试提出自己的问题,并尝试查找资料去解决。
【问题】为什么互联网上大模型、ChatGPT的教程和资讯铺天盖地,同时你又想学,但你没学会?
再扩展一下,回想你想学任何一项技能,你所需要的所有资料从互联网上都可以找到,为什么你还是没学会?
“信息传递”不是“学习”,“知识管理” 也不是学习。
互联网时代的到来,世界早已不缺信息;AI时代的到来,世界也将不缺知识。
技术进步的太快,这世界也变化的太快,随之带来的,一定是更进一步的分化,一门手艺吃一辈子可能不复存在。如果不具备自学能力,在未来的几十年,只能眼睁睁看着自己被时代抛下而无能为力…
不过好在,自学这件事,本身也是可以学习的,是有技巧的,会穿插在这个系列的各章节的适当部分里。
二、关于「大语言模型」
在开始阅读本系列之前,请先认真思考这个问题:“你为什么要学习大语言模型?”
这个问题我问过很多来向我咨询如何学习大模型的人,他们的回答大部分都是“现在太火了,不学怕被落下”“多了解一点总没坏处”之类的,这种我统一称之为「跟风式学习」。
「跟风式学习」的目的,本质上不是为了学习,是为了缓解焦虑。
毕竟,在这个肉眼可见的飞速发展的世界里,如果你一直原地踏步,又怎么会不焦虑呢?
所以,除了大模型,我相信你也一定抱着这样的心态学过很多东西,回想一下结果如何?是不是往往都半途而废了?虽然你看似学了很多东西,但其实这并不是真的“学习”
但也正因为如此,你的信念不够深,于是稍微遇到点困难就放弃了。
所以,你需要暂停几分钟深入思考,你为什么要学习大语言模型?学习它对你是不是必要?
如果只是为了缓解焦虑,那么你读完本系列的第一部分,就可以结束了。
但如果你想在这条路上走更远,就还需要作用一些「心理建设」。
我希望你坚持下来,同时又不希望你是靠努力和意志力坚持下来,因为需要努力和意志力才能坚持下来的事情,说明你骨子里根本不愿意做,骨子里不愿意做的事,大概率是做不成的。
好在这件事也是有技巧的,这里我分享两个:
第一,在开始之前,想办法为这件事赋予极大的意义。
第二,还可以反向想一下,如果没有这项技能,你会失去什么?
总之,“动机”是很重要的,它决定了你的信念,要保持你的动机,要么强化继续前行的理由,要么弱化停下脚步的理由。
我简单说说我是如何思考这件事的。
首先,大模型是未来至少十年甚至几十年的最大增量。虽然我承认目前大模型的确被炒得过热,并且很可能会冷却下来进入一段低谷,但这与我这个判断并不冲突,因为人们往往高估了新技术在短期内的影响,而低估了它在长期内的影响。
互联网技术也是遵循这样的发展路径,互联网泡沫期间,许多与互联网相关的公司被炒得过高,泡沫破裂后,市场进入了冷静期,但长期来看,互联网的发展和普及已经深刻改变了我们的生活和工作方式。
正如Gartner曲线展示的那样,许多新技术会经历一个炒作高峰,然后进入一个低谷期,最终达到稳定发展和广泛应用的阶段。
目前来说,大模型的潜力还没有释放出来。当前制约大模型发展的主要因素在于计算资源和成本问题,而从历史中以往经验来看,成本问题最终都会因为技术的创新和发展被解决。当算力成本下降,大模型会真正普惠到中小企业和个人。
在互联网时代,国内相较于国外,更擅长在基础技术之上,做商业模式的创新,但这在接下来的AI时代是否还适用,需要打一个问号。提早掌握大模型的底层原理和相关技术栈下面的所有知识,在未来会有先发优势。
基于此,我认为学习大模型是一个正确的选项,虽然我们可能会经历短期的波动和挑战,但请不要短视,要长期,不要跟风,要看十年后的世界。这也是我对自己的期许,望诸君共勉。
三、本系列大纲
本系列预计更新四个模块:
【1】走进大语言模型:帮你对大模型有一个定性的认识。
【2】构建大语言模型:帮你对大模型有一个定量的认识,这部分开始加大难度,深入到具体的理论、技术细节、框架、代码。
【3】典型大语言模型详细解读:分析当前热门大模型的技术细节。
【4】基于大语言模型的应用开发:一些基于大语言模型的开发框架和应用层技术。
第一部分 走进大语言模型
本部分计划目录:
- 第一章 走进大语言模型
- 第一节 从图灵机到GPT,人工智能经历了什么?
- 第二节 如何让机器理解人类语言?
- 第三节 大语言模型,大在哪?
- 第四节 Transformer做对了什么?
- 第五节 OpenAI的技术路线带来的启示
- 第六节 大语言模型现状及未来趋势
- 第七节 大语言模型的技术栈和学习路径
这部分我会尽可能避免使用公式,用最简明直白的文字。正如我之前说的,大语言模型知识并不高深,但需要你在深入学习他之前,真正认识到他底层的逻辑是什么,从概念上认识到它到底是什么。
这一部分里,我首先会由浅入深的,由表及里的带你走进大语言模型,前三节我会按照 人工智能 → 自然语言处理 → 语言模型 → 基于神经网络的语言模型 → 基于预训练的大语言模型 的顺序,梳理从图灵机到ChatGPT,这中间都发生了什么。接下来回到当下,看时下最火的基于Transformer的架构的大语言模型的现状,分析OpenAI技术路线的核心,以及目前的大模型还有哪些问题需要继续探索。最后会从相对宏观的视角来总结大语言模型的技术栈,以及给出一份学习路线图。
关于第一部分的学习方法:
在学习任何一个学科的知识时,都有一些很重要的概念,我称之为「必要核心概念」,掌握这些概念,你就完成了这个领域的“快速入门”,本系列的第一部分就是在带你完成这件事。
这些核心概念,构建了这个领域的基石。很多人在学习的时候盲目追逐最新的技术和发展,而忽略这些必要核心概念,以前的我也是这样,现在看来,这真的是舍本逐末的做法。
当需要获得某项技能的时候,一定要想办法在最短的时间里弄清楚都有哪些「必须掌握的核心概念」,然后迅速掌握它们。
第一节 从图灵机到GPT,人工智能经历了什么
本节我们首先到人工智能和自然语言处理两个领域的源头,主要目的是厘清「人工智能」、「自然语言处理」、「语言模型」、「大语言模型」之间的关系。
一个领域的「必要核心概念」,往往在其源头就被定义了,所以我们要去到知识的源头,那里的知识浓度和质量最高。
下面是一个问题清单,帮助你在学习一个新领域时,把握其核心脉络。后面我在细化每个技术细节时,内在逻辑上也会遵循这个问题清单。
- 最初被提出是为了解决哪些问题?
- 分别经历了哪些阶段?
- 在各个阶段中,提出了哪些解决方案?
- 新方案又带来了哪些新的问题?
- 这些新的问题在下一个阶段是如何被克服的?
当涉及两个技术时(例如本节的人工智能和自然语言处理),还需要增加几个问题:
- 它们之间的关系是什么?是包含,对立,递进,关联?
- 在各自的各个发展阶段,有什么交集?
第二节 如何让机器理解人类语言?
在对人工智能和自然语言处理两个领域有了基本的认知后,第二节我们深入「语言模型」,
简而言之,语言模型的最核心任务,就是解决如何让计算机理解人类语言。
从N-gram到大语言模型,是目前而言,探索出的效果最好的道路。
同理基于上一节的问题清单,我们探寻这条路径上都有哪些技术值得学习和思考。
第三节 大语言模型,大在哪?
在了解了基于统计的语言模型是如何在自然语言处理领域发挥作用后,本节我们进一步深入,探索大模型相较于之前的语言模型,有什么差别。
首先介绍当模型参数达到一定量级后,所展现出的小模型不具备的“涌现能力”,主要包括上下文理解能力、复杂任务推理能力、通用任务解决能力、指令遵循能力等;还会介绍大模型时代的摩尔定律——“缩放定律”(Scaling Law)的相关理论,并分析缩放定律与大模型涌现能力的关系。
后面几节的介绍后续陆续补充~~
第二部分 构建大语言模型
通过第一部分的学习,你已经掌握了「大语言模型」领域的“必要核心概念”。接下来,你将进入深水区。
以下是暂定的目录,后面可能还会动态调整,这一部分会讲构建一个大语言模型所涉及的关键技术,包括预训练、微调、 基于人类反馈的强化学习、部署和推理、
- 第二章 基础知识
- 第一节 大语言模型的构建过程
- 第二节 大模型理论基础:Transformer (理论+代码实战)
- 第三节 大模型硬件基础:AI芯片和集群
- 第三章 预训练
- 第一节:预训练关键因素——数据
(包括数据来源、预处理技术、开源数据集) - 第二节:预训练关键因素——分布式集群
(包括并行策略、现有框架) - 第三节:预训练方法
- 第一节:预训练关键因素——数据
- 第四章 有监督微调
- 第一节 微调指令数据构建
- 第二节 微调常用方法
- 第三节 微调实战(包括框架+实操)
- 第五章 强化对齐
- 强化学习基础
- 奖励模型
- InstructGPT详解
- 强化对齐实战
- 第六章 部署和推理
- 大模型部署和量化技术及框架
- 推理优化技术
- 上下文扩展技术
关于第二部分的学习方法:
首先,我想告诉你的是,“请不要幻想自己一次就能学会”,任何一个领域都是一个"复杂的集合体",所以,不要低估学习任务的复杂程度,要刻意练习,不断地重复。
重复的刻意练习,是从笨拙达到熟练的唯一通路。所谓刻意练习,说白了就是反复运用、反复琢磨、反复调整,把不熟练变成熟练。
按照《刻意练习》一书中的观点,你需要多次重复,以创建有效的心理表征。所谓的“心理表征”,用神经科学的理论解释,其实就是“通过大量的重复动作,最终使大脑中两个或者多个原本并无关联的神经元之间通过反复刺激而产生强关联”。
所以,耐心是必需的。如果你学不会一个技能,不要推卸给天赋,绝大部分情况只是因为,你重复的次数不够多…
在这一部分,理论基础、最新技术进展和框架、代码实操都是必需的,基本上每个技术点我都会覆盖这几个方面。
在对每个技术点的理解上,我推荐使用2W1H框架,具体来讲就是,在每一小节的阅读前,你需要问自己三个问题:What(这门技术是什么),Why(是为了解决什么问题),How(是如何解决的),同时,每个小节里可能有嵌套了多个技术点,每个技术点都包含这三个问题。在学习结束后,要自己列举出所有涉及的技术点,总结出这三个问题的答案。
代码实操也是必不可少的,毕竟我们学习的目的是为了应用,针对每个技术点,也都会提供一个实操案例,希望你可以一起动手实践。
第三部分 典型大语言模型详细解读
经过第二部分的学习,你已经掌握了构建大模型所需要的技术,基于这些知识,再去分析当前比较热门的几款大模型,会有更加深刻的认识。
暂定会解读的模型是GPT系列模型、LLaMa系列模型、Qwen系列模型。
第四部分 基于大语言模型的应用开发
之所以把这部分放在最后,是因为大语言模型本身还在发展中,基于大模型的上层框架,目前还处于不稳定的状态,
从长期主义的角度来看,我更希望找到那些变化中不变的东西。
暂定会写Prompt工程、RAG、Agent、Langchain等,但可能会有调整。
四、写在最后
又给自己开了个天坑要填,在给自己挖坑这件事儿上,我一直都很清新脱俗…
求鼓励求建议,要不然感觉很难坚持下去了哈哈哈…
如果对这个系列有什么想法和诉求,十分欢迎交流讨论!