购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

前言

大语言模型(large language model,LLM) 已经对世界产生了深远的影响。通过使机器更好地理解和生成人类语言,LLM 在人工智能(artificial intelligence,AI)领域开创了新的可能性,并影响了众多行业。

本书以图文并茂的方式,全面介绍了 LLM 领域,涵盖了理论基础和实践应用两个方面。从深度学习之前的词表示方法,到撰写本书时最先进的 Transformer 架构,我们将探索 LLM 的历史与演进,深入研究 LLM 的内部运作机制,探讨其架构、训练方法和微调技术。我们还将考察 LLM 在文本分类、聚类、主题建模、聊天机器人、搜索引擎等领域的各种应用。

本书独特地结合了直观理解、实际应用和图解风格,我们希望那些想探索 LLM 这一激动人心的领域的读者能够通过本书打下坚实的基础。无论你是初学者还是专家,我们都诚挚地邀请你与我们一起踏上这段探索 LLM 的旅程。

本书的主要目标是帮助读者直观地理解 LLM。语言人工智能(Language AI)领域发展迅猛,试图紧跟最新技术让人很有“压力”。因此,我们将重点放在 LLM 的基础知识上,致力于提供一个轻松、有趣的学习过程。

为了实现这种以直观理解为先的理念,我们大量运用视觉语言。插图将帮助读者对 LLM 学习过程中的主要概念和流程建立直观认识。通过这种图解式的叙事方法,我们希望带你踏上通往这个令人振奋且可能改变世界的领域的旅程。

在本书中,我们明确区分表示模型和生成模型。表示模型不生成文本,通常用于特定任务,如分类;而生成模型则可以生成文本,如 GPT 模型。尽管提到 LLM 时人们首先想到的通常是生成模型,但表示模型仍然具有重要用途。此外,我们对“大语言模型”中“大”这个字的使用较为宽松,常常简单地称之为“语言模型”,因为对规模的描述往往比较随意,并不总能反映模型的实际能力。

本书假定读者具有 Python 编程经验,并熟悉机器学习的基础知识。我们将重点放在建立直观理解上,而不是推导数学公式。因此,图解配合实践示例将贯穿本书的学习过程。本书不要求读者预先了解 PyTorch 或 TensorFlow 等流行的深度学习框架,也不需要生成式建模的相关知识。

如果你不熟悉 Python,推荐从 LearnPython 网站开始,这个网站上有许多关于 Python 基础知识的教程。为了进一步简化学习过程,本书的所有代码都可在 Google Colab 上直接运行,你无须在本地安装任何软件。

本书大致分为三部分。图 P-1 展示了全书结构。请注意,每章都可以独立阅读,因此你可以略过已经熟悉的章节。

在第一部分中,我们探索大、小语言模型的内部运作机制。首先概述该领域和常用技术(见第 1 章),然后讨论这些模型的两个核心组件(见第 2 章):词元(token)和嵌入(embedding)。本部分最后是对 Jay 的大名鼎鼎的文章“The Illustrated Transformer”的更新和扩展,深入探讨了这些模型的架构(见第 3 章)。本部分还将介绍许多贯穿全书的术语及其定义。

在第二部分中,我们通过常见用例探索如何使用 LLM。我们将使用预训练模型并展示它们的功能,无须进行微调。

你将学习如何使用语言模型进行监督分类(见第 4 章)、文本聚类和主题建模(见第 5 章),利用嵌入模型进行文本生成(见第 6 章和第 7 章)、语义搜索(见第 8 章),以及将文本生成能力扩展到视觉领域(见第 9 章)。

学习这些独立的语言模型功能将使你具备用 LLM 解决问题的技能,并能够构建越来越高级的系统和流程。

在第三部分中,我们通过训练和微调各种语言模型来探索高级概念。我们将探讨如何构建和微调嵌入模型(见第 10 章),回顾如何针对分类任务微调 BERT(见第 11 章),并以几种生成模型的微调方法结束本书(见第 12 章)。

图 P-1:本书章节结构

运行生成模型通常是计算密集型任务,需要配备高性能 GPU 的计算机。由于并非每位读者都具备这样的硬件条件,本书中的所有示例都可在在线平台 Google Colab 上运行。在撰写本书时,该平台允许你免费使用 NVIDIA GPU(T4)来运行代码。这款 GPU 有 16 GB 显存(GPU 的内存),这是我们对本书示例的最低显存要求。

需要注意的是,并非所有章节都需要最少 16 GB 显存,因为某些示例(如训练和微调)比其他示例(如提示工程)更消耗计算资源。在本书代码仓库中,你可以找到每章的最低 GPU 要求。

所有代码、相关要求和附加教程都可以在本书 GitHub 仓库( https://github.com/HandsOnLLM/Hands-On-Large-Language-Models )中找到。如果你想在本地运行示例,我们建议使用配备至少 16 GB 显存的 NVIDIA GPU。如需本地安装,例如使用 conda,你可以按照以下步骤创建环境:

conda create -n thellmbook python=3.10
conda activate thellmbook

要安装所有必要的依赖项,首先 fork 或克隆代码仓库,然后在新创建的 Python 3.10 环境中运行以下命令:

pip install -r requirements.txt

在示例中,我们同时使用开源模型和专有模型来展示它们各自的优势和劣势。对于专有模型,使用 OpenAI 和 Cohere 的服务前,你需要创建一个免费账户。

OpenAI

在网站上点击“Sign Up”(注册)创建免费账户。该账户允许你创建 API 密钥,用于访问 GPT-3.5。然后,进入“API keys”(API 密钥)创建密钥。

Cohere

在网站上注册免费账户。然后,进入“API keys”创建密钥。

请注意,这两个账户都有使用速率限制,这些免费 API 密钥每分钟只允许有限次数的调用。在所有示例中,我们都考虑到了这一点,并在必要时提供了本地替代方案。

对于开源模型,除了第 2 章中的 Llama 2 模型外,你无须创建账户。要使用该模型,你需要一个 Hugging Face 账户。

Hugging Face

在 Hugging Face 网站上点击“Sign Up”创建免费账户。然后,在“Settings”(设置)中进入“Access Tokens”(访问令牌)创建令牌,用于下载某些 LLM。

本书使用以下排版约定:

黑体

表示新术语或重点强调的内容。

等宽字体( constant width

表示程序片段,以及正文中出现的变量、函数、数据库、数据类型、环境变量、语句和关键字等。

等宽粗体( constant width bold

表示用户应该逐字键入的命令或其他文本。

等宽斜体( constant width italic

表示应该用用户提供的值或上下文决定的值替换的文本。

该图标表示提示或建议。

该图标表示一般注释。

补充材料(代码示例、练习等)可以从本书 GitHub 仓库下载。

如果你有技术问题或使用代码示例时遇到问题,请发送电子邮件至 support@oreilly.com

本书旨在帮助你完成工作。一般来说,如果书中提供了示例代码,你可以在程序和文档中使用。除非你要复制大量代码,否则无须联系我们获得许可。例如,编写的程序使用了本书的几个代码片段,就不需要许可。销售或分发 O'Reilly 图书中的示例需要获得许可。通过引用本书的内容或引用示例代码来回答问题不需要获得许可。将本书中大量示例代码整合到产品文档中需要获得许可。

引用书中的示例代码通常不要求注明出处,但如果你能够注明,我们表示感谢。出处信息通常包括书名、作者、出版商和 ISBN。例如,英文版可以这样注明: Hands-On Large Language Models by Jay Alammar and Maarten Grootendorst (O'Reilly). Copyright © 2024 Jay Alammar and Maarten Pieter Grootendorst, 978-1-098-15096-9;中文版可以这样注明:《图解大模型:生成式 AI 原理与实战》(李博杰译,人民邮电出版社),原始版本 Hands-On Large Language Models by Jay Alammar and Maarten Grootendorst (O'Reilly)。如果你认为自己对代码示例的使用超出了合理使用范围或上述许可范围,请随时通过 permissions@oreilly.com 与我们联系。

40 多年来,O'Reilly Media 致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。

我们拥有独特的由专家和创新者组成的庞大网络,他们通过图书、文章和我们的在线学习平台分享他们的知识和经验。O'Reilly 在线学习平台让你能够按需访问现场培训课程、深入的学习路径、交互式编程环境,以及 O'Reilly 和 200 多家其他出版商提供的大量文本资源和视频资源。更多信息,请访问 https://www.oreilly.com

请把对本书的评价和问题发给出版社。

美国:

O'Reilly Media, Inc.

1005 Gravenstein Highway North

Sebastopol, CA 95472

中国:

北京市西城区西直门南大街 2 号成铭大厦 C 座 807 室(100035)

奥莱利技术咨询(北京)有限公司

对于本书的评论和技术性问题,请发送电子邮件到 errata@oreilly.com.cn

要了解更多 O'Reilly 图书和培训课程等信息,请访问以下网站: https://www.oreilly.com

我们在 LinkedIn 的地址如下: https://linkedin.com/company/oreilly-media

我们的 YouTube 视频地址如下: https://youtube.com/oreillymedia

撰写本书对我们来说是一种不可思议的体验、一次精诚的合作,也是一段难忘的旅程。

LLM 是当今最具活力的技术领域之一。在写作本书期间,我们目睹了这个领域的惊人进展。然而,尽管变化迅猛,但其基本原理始终如一,这也为写作增添了不少趣味。我们非常感激能有机会在这个关键时刻深入探索这一领域。

与 O'Reilly 团队的合作令人难忘!特别感谢 Michele Cronin 从本书创作之初就以满腔热忱投入其中,给予我们宝贵的反馈和坚定的支持。你是我们见过的最棒的编辑——你太出色了!感谢 Nicole Butterfield 策划这本书并帮助我们在整个写作过程中遵循结构化方法。感谢 Karen Montgomery 设计了精彩的封面,我们很喜欢封面上的袋鼠!非常感谢 Kate Dullea,在陪我们反复检查数百幅插图的过程中,始终极富耐心。Clare Laylock 及时发布的预览版让我们得以见证工作的进展,这极大地激励了我们,谢谢你。感谢 Ashley Stussy 和 Charles Roumeliotis 在出版最后阶段的工作,同时也感谢 O'Reilly 团队的其他所有贡献者。

感谢出色的技术审阅团队——Harm Buisman、Emir Muñoz、Luba Elliott、Guarav Chawla、Rafael V. Pierre、Tarun Narayanan、Nikhil Buduma 和 Patrick Harrison 为我们提供了宝贵的反馈。

向我的家人表达最深切的感激,感谢你们给予我坚定不移的支持和源源不断的启发。特别感谢我的父母 Abdullah 和 Mishael,以及我的两位姑姑 Hussah 和 Aljoharah。

感谢那些在理解和阐释书中复杂概念方面给予我帮助的朋友、同事和合作伙伴,也感谢 Cohere 团队营造了支持学习和分享的环境。感谢 Adrien Morisot、Aidan Gomez、Andy Toulis、Anfal Alatawi、Arash Ahmadian、Bharat Venkitesh、Edward Grefenstette、Ivan Zhang、Joao Araújo、Luis Serrano、Matthias Gallé、Meor Amer、Nick Frosst、Patrick Lewis、Phil Blunsom、Sara Hooker 和 Suhas Pai。

如果没有我的合著者 Maarten 非凡的才华和不懈的努力,我无法想象这个项目能达到如今的高度。你在反复推敲技术细节(从第 n 导入依赖的固定版本到最新的 LLM 量化技术)的同时,还能创造出世界上最好的视觉叙事,这真是令人叹为观止!

最后,要向沙特阿拉伯首都利雅得那些绝妙的咖啡馆致敬——那真是集中注意力写作的好去处,我常常从黎明待到午夜,需要提神醒脑的时候就喝喝咖啡。正是在这些咖啡馆里,我阅读了大部分与 LLM 相关的论文并形成了自己的见解(特别是 Elixir Bunn 咖啡馆,向你致意)。

首先,衷心感谢我的合著者 Jay。你的见解不仅使这本书成为可能,而且让写作过程变得无比充实。这段旅程绝对精彩,与你合作是一种纯粹的快乐。

真诚地感谢 IKNL 优秀的同事们在这段旅程中持续给予的支持。特别要提一下 Harm——每周一早上跟你讨论这本书的咖啡时光对我来说一直是莫大的鼓励。

感谢我的家人和朋友们坚定不移的支持,特别是我的父母。爸爸,尽管面对重重困难,但在我最需要的时候,你总能出现在我身边,谢谢你。妈妈,我们作为怀抱写作梦想的朋友之间的对话异常精彩,这对我的激励超出了你的想象。感谢两位无尽的支持和鼓励。

最后,语言已经难以表达我对爱妻 Ilse 的感激之情。你那无限的热情和耐心令人敬佩,特别是当我长时间滔滔不绝地谈论最新的 LLM 进展时——你是我最大的支持。对不起,我可爱的女儿 Sarah,才两岁的你已经耳闻了远超常人一生所能听到的 LLM 相关知识!我保证我们会用数不尽的游戏时光和冒险来弥补这一切。 WSUf9U+WqRRDcbfdk87IaNZK9TM6aUCgo3MvpaBqMGab4lGBEOH0JOpIVYkJS9uI

点击中间区域
呼出菜单
上一章
目录
下一章
×