带你自学大语言模型系列 —— 前言

今天开始,我计划开启一个系列 《带你自学大语言模型》,内容也已经准备了一段时间了。

该系列的落脚点是“自学”和“大语言模型”,二者不分伯仲,这也是本系列和其他技术文章不一样的地方。

至于原因,我不想只做大语言模型知识的传递,互联网上已经有太多同质化的信息了;我希望能以学习大语言模型作为开始,帮助你一步步养成自学的能力,“大语言模型”只是你迈出的第一步。

欢迎关注同名公众号【陌北有棵树】,关注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等,但可能会有调整。

四、写在最后

又给自己开了个天坑要填,在给自己挖坑这件事儿上,我一直都很清新脱俗…

求鼓励求建议,要不然感觉很难坚持下去了哈哈哈…

如果对这个系列有什么想法和诉求,十分欢迎交流讨论!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/21096.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】STL中vector常见功能的模拟实现

前言:在上一篇中我们讲到了Vector的一些常见功能的使用方式,今天为了进一步的去学习Vector和能够更深度的去理解Vector的一些底层的原理。 💖 博主CSDN主页:卫卫卫的个人主页 💞 👉 专栏分类:高质量C学习 &…

鸿蒙ArkTS声明式开发:跨平台支持列表【禁用控制】 通用属性

禁用控制 组件是否可交互,可交互状态下响应[点击事件]、[触摸事件]、[拖拽事件]、[按键事件]、[焦点事件]和[鼠标事件]。 说明: 开发前请熟悉鸿蒙开发指导文档: gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到…

【一刷《剑指Offer》】面试题 30:最小的 k 个数

牛客对应题目链接:最小的K个数_牛客题霸_牛客网 (nowcoder.com) 力扣对应题目链接:LCR 159. 库存管理 III - 力扣(LeetCode) 核心考点 : topK 问题。 一、《剑指Offer》内容 二、分析题目 1、排序(O(Nlo…

接口interfance的基本使用

一.为什么有接口? 接口:就是一种规则。 二.接口的定义和使用 1.接口用关键字interface来定义 public interface 接口名{} 2.接口不能实例化 3.接口和类之间是实现关系,通过implements关键字表示 4.接口的子类(实现类) 注意1: 接口和类的实现关系…

43.自定义线程池(一)

ThreadPool是线程池,里面是一定数量的线程,是消费者。 BlockingQueue阻塞队列,线程池中的线程会从阻塞队列中去拿任务执行。任务多了线程池处理不过来了,就会到Blocking Queue中排队,等待执行。链表结构,特…

Netfilter/iptables

1. Netfilter组件图 https://en.wikipedia.org/wiki/Netfilter 其中: etables作用于数据链路层,arptables针对ARP, iptables/ip6tables针对IP层。 nftables 是新的包过滤组件. nft是相对应的新的用户态组件,用于替换etables,arptables,ipt…

从tensorflow导入EarlyStopping能运行但是一直提示未解析

在pycharm中导入早停机的库时,碰上一个问题 from tensorflow.keras.callbacks import EarlyStopping这一条代码中,EarlyStopping一直有个红色波浪线,代表着找不到这个库,提示未解析啥的。 但是运行是可以运行的,虽然可…

GPT-4o如何重塑AI未来!

如何评价GPT-4o? 简介:最近,GPT-4o横空出世。对GPT-4o这一人工智能技术进行评价,包括版本间的对比分析、GPT-4o的技术能力以及个人感受等。 GPT-4o似乎是一个针对GPT-4模型进行优化的版本,它在性能、准确性、资源效率以及安全和…

Anolis OS 8.9安装Linux 服务器运维管理面板“1Panel”

一、简介 1.Linux 服务器运维管理面板“1Panel” 使用go语言编写 2.很多的项目的应用都是采用 docker 技术来实现,这让 Linux 服务器的运维管理更简单、更安全。 3.1Panel 采纳最新的前端技术,并通过精心设计的UX 交互,为用户提供更好的用户…

Linux系统tab键无法补齐命令-已解决

在CentOS中,按下tab键就可以自动补全,但是在最小化安装时,没有安装自动补全的包,需要安装一个包才能解决 bash-completion 1.检查是否安装tab补齐软件包(如果是最小化安装,默认没有) rpm -q ba…

关于sprintboot3版本以上中的swagger3.0的使用

文章目录 1.配置pom.xml(添加以下内容,记住点一下右上方maven下载)2.application.properties添加以下配置信息3.新建swagger的config配置信息,文件位置如下4.添加接口注释信息访问swagger文档 1.配置pom.xml(添加以下内容,记住点一下右上方ma…

抽象一个通用的配置冲突解决方案

最近的开发项目中遇到了一个关于配置冲突的解决和产品设计,一直以来都没有处理好。最近抽空整理了一下思路和设计,并做了抽象,后续的类似使用,可以做到直接复用。 思路和代码见:github地址:https://github…

基于java18多端展示+ idea hbuilder+ mysql家政预约上门服务系统,源码交付,支持二次开发

基于java18多端展示 idea hbuilder mysql家政预约上门服务系统,源码交付,支持二次开发 家政预约上门系统是一种通过互联网或移动应用平台,为用户提供在线预约、下单、支付和评价家政服务的系统。该系统整合了家政服务资源,使用户能…

RabbitMQ三、springboot整合rabbitmq(消息可靠性、高级特性)

一、springboot整合RabbitMQ(jdk17)(创建两个项目,一个生产者项目,一个消费者项目) 上面使用原生JAVA操作RabbitMQ较为繁琐,很多的代码都是重复书写的,使用springboot可以简化代码的…

Vue3集成Phaser-飞机大战游戏(设计与源码)

文章目录 引言项目初始化游戏设计和结构游戏程序实现Vue页面嵌入PhaserPreloader 场景加载游戏场景功能实现功能类定义Boom爆炸类Bullet子弹类Enemy敌军类Player玩家类End游戏结束类 总结 更多相关内容可查看 引言 飞机大战(也被称为射击游戏或空战游戏&#xff09…

轻松上手MYSQL:优化MySQL慢查询,让数据库起飞

​🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》《MYSQL应用》 💪🏻 制定明确可量化的目标,坚持默默的做事。 ✨欢迎加入探索MYSQL慢查询之旅✨ 👋 大家好!我是你们的…

如何优雅简洁的使用YOLOv8

如何优雅简洁的使用YOLOv8 目录训练调用代码如何一键训练多个yamlexport模型测试多个yaml是否运行正常predict本文提供了 如何优雅简洁的使用YOLOv8 🗝️YOLOv8实战宝典--星级指南:从入门到精通,您不可错过的技巧   -- 聚焦于YOLO的 最新版本, 对颈部网络改进、添加局…

Crosslink-NX器件应用连载(11): 图像(数据)远程传输

作者:Hello,Panda 大家下午好,晚上好。这里分享一个Lattice Crosslink-NX器件实现图像或数据(卫星数据、雷达数据、ToF传感器数据等)远程传输的案例(因为所描述的内容颇杂,晒图不好晒&#xff…

文件批量改后缀名,轻松实现TXT到DOCX格式转换,高效管理您的文件库!

文件处理与管理已成为我们日常生活和工作中不可或缺的一环。然而,面对海量的文件,如何高效地进行格式转换和管理,却成为了一道难题。今天,我们将为您揭晓一个神奇的解决方案——文件批量改后缀名功能,让您轻松实现TXT到…

【docker】docker的安装

如果之前安装了旧版本的docker我们需要进行卸载: 卸载之前的旧版本 卸载 # 卸载旧版本 sudo apt-get remove docker docker-engine docker.io containerd runc # 卸载历史版本 apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker…