未接触 AI 或 NLP 领域的读者想入门大模型从哪里入手?那你就看这本《动手构建大模型》。

本书介绍了自然语言处理(Natural Language Processing ,NLP)的基础知识和一些新兴的 技术,特别关注大语言模型(Large Language Model ,LLM)的发展,并帮助读者深入理解神经 网络的内部工作机制。更重要的是,本书重点介绍了如何构建实用的 LLM 系统。书中提供了 独特的、易于上手的实用方法,兼顾理论和实践,面向所有希望构建可满足实际需求的 LLM 产 品的读者。本书还探讨了各种方法,以将基础 LLM 应用于特定任务,从而提高准确性、可靠 性和可扩展性。此外,本书还介绍了未来人工智能(Artificial Intelligence ,AI)开发者所需的 技术栈——提示工程微调检索增强生成(Retrieval-Augmented Generation ,RAG)和各种工 具的使用方法,以解决“开箱即用”LLM 可靠性不足的问题。

本书从基础知识开始介绍,通过探索 Transformer 架构的细节来介绍这些模型的训练原理, 以及如何使用提示技术与它们进行交互。随后,本书将焦点转向工业界所关注的应用层面,介绍 了两个广为人知的框架—LlamaIndex 和 LangChain,这两个框架可用于构建 RAG 系统。书中 包含了一系列项目案例,可以让读者实践操作, 有助于读者深入理解和应用理论知识。此外, 本书还探讨了一些高级技术,例如,使用智能体或微调来增强某个应用的功能。最后,本书讨 论了应用的部署,并提供了一些优化流程的高效策略。

本书旨在为那些尚未接触 AI 或 NLP 领域的读者提供专业指导。书中深入浅出地探讨了各个 核心主题, 目的是让读者在即将开展的项目中能够熟练运用 AI 的强大功能,或者将现有的项 目提升至更高水平。掌握一定 Python 编程语言的基础知识有助于读者更顺利地理解代码并实现 其功能,同时,本书对 LLM 的高级应用场景也进行了详细的阐释。

本书的每一章都围绕一个新主题展开,部分章会给出应用项目,并提供相应的实现指南(采用 Google Colab Notebook 形式),供读者亲手运行代码并重现书中的结果。这种理论与实践相结合的内容组织方法,不仅有助于读者深入理解各个概念,还能使读者更加有效地将所学知识应用到实际工作中。

LLM 是一个快速发展且竞争激烈的领域,新的模型和技术不断涌现。随着技术的发展, LLM 将不断解锁新的能力,当前 LLM 开发栈是可以移植的,并且对于将未来模型适配到特定数据 和行业仍至关重要。能够熟练使用当前模型的人最有可能在未来获得优势!我们专注于教授使 用 LLM 构建生产级产品的核心原理,这将使本书的内容在特定模型和代码迭代后依然实用。

本书各章的内容概述如下。

第 1 章:LLM 简介

运用 AI 进行项目开发的第一步是掌握其背后的核心原理。我们没有必要从头开始构建个人模型,因为可以借助 OpenAI 等提供的专用 API(Application Program Interface,应用程序接口)进行开发,同时对规模法则、上下文窗口、 提示词等概念的理解,也能够帮助我们认识到 LLM 的强大之处。第 1 章主要介绍 LLM 的组成,这对于深入理解后续内容具有重要意义。此外,本章还将提供简单的项目案例, 演示如何使用 LLM 进行翻译等, 以便使读者能够将所学知识应用于实际任务。

第 2 章:LLM 架构和概况

本章将深入分析各种模型架构, 并探讨其在不同应用场景中的设计选择。我们将着重阐 述 Transformer 架构及其组件,以及生成式预训练 Transformer(Generative Pre-trained Transformer, GPT)架构的系列模型, 这些模型构成了诸如 ChatGPT 等产品的技术基础。本章还将介绍这些 模型的训练目标,介绍一系列模型并探索它们的实际应用,最后我们将探讨它们如何为各行各业赋能。

至此,我们的理论学习旅程暂告一段落,但本书真正的探索之路从这里才正式开始! 第 3 章:LLM 实践

在实践中,LLM 仍然存在诸多局限(幻觉、延迟等)。突破这些局限使 LLM 适用于生产环 境,正是我们撰写本书的初衷。本章将探讨这类模型的多个已知问题,如幻觉,即模型高度自 信生成实际上错误的回复,以及可能产生性别或种族方面的偏见。我们将强调利用基准测试来 评价模型回复的重要性,并通过实验调整不同的超参数来控制模型的输出,例如,尝试不同的 解码方法,或通过调整温度参数来调节模型的创造力。随着模型的发展,即使未来模型变得更 易于处理,但只要它们不是有意识的,那么我们相信 LLM 的局限性仍将持续存在。

第 4 章:提示技术简介

一本关于 LLM 的书必须包含提示技术的相关内容, 即如何与模型进行对话。与指令微调 的 LLM(经过训练以遵循指令的语言模型, 如 ChatGPT)互动的最佳方式莫过于直接提问或者 明确我们的期望。这个过程被称为提示,现在已经演变成一种复杂且极具技巧性的实践技术。 在本章中,我们将通过代码示例测试不同的提示技术。这些技术包括小样本提示,即可以通过 向模型提供一些示例来说明我们的期望,以及链式提示技术,这种技术在为模型赋予角色时非 常有用。另外本章还将介绍更多先进的方法。

第 5 章:RAG

本章探讨 RAG 技术,主要介绍 RAG 的使用原则和向量数据库的重要性, 以及如何将这些 信息存储在数据库中,以实现更高效便捷的检索。此外,本章还将介绍如何构建 RAG 管道, 并强调其在开发智能、可靠的聊天机器人系统中的重要性。

第 6 章:LangChain 和 LlamaIndex 简介

本章介绍当前广泛使用的两个框架—LangChain 和 LlamaIndex,它们可以减少 LLM 的幻 觉和偏见,简化 LLM 的应用,让我们可以轻松地在自己的流程中集成 LLM。本章的目标是学习这两个框架的基础知识,并了解它们的应用场景。

第 7 章:使用LangChain 进行提示

LangChain 为多种提示技术提供了丰富的接口,使整个操作流程变得直观。本章将介绍如何使用不同的提示类型来为模型设定基本规则、管理人机互动及聊天机器人的回复,从而实现对整个互动过程的追踪。此外, 本章还强调使用输出解析器来管理模型输出的重要性,也将讨论如何以特定格式接收回复,以及提供解决格式问题的方案。本章专注于使用外部资源来增强模型的回复,并在多个项目中进行实践。

第 8 章:索引、检索与数据预处理

本章重点介绍索引创建、从各种数据源加载数据的不同方法, 以及将大量信息切分成较小 部分的技巧,并探讨如何将这些信息存储在数据库中,以便更容易和更快速地访问。本章还将 演示一些令人兴奋的项目实践, 例如,构建 YouTube 视频摘要器,为你的知识库创建语音助手, 以及搭建客服问答聊天机器人等。

第 9 章:高级 RAG

本章将介绍针对给定 RAG 管道的进阶优化技术。我们将重点关注 LlamaIndex 库,这个 库会不断引入新的解决方案(在未来仍会如此),如查询扩展、递归检索和从小到大的检索等。 本章将集中讨论可能遭遇的各类挑战、优化策略及聊天机器人性能评价的过程。此外, 本章 还涵盖 LangSmith 服务,该服务可为解决问题提供支持。

第 10 章:智能体

本章将介绍智能体的概念, 这些智能体可以与外部环境进行交互。它们不仅可以从各种资 源访问数据、调用 API,还可以使用运行函数等工具,并在没有指导的情况下完成任务。这些 智能体通常根据用户要求制定行动规划,然后按照规划一步一步地执行。本章将给出若干项目 来展示如何通过工具提升管道性能,还将探讨 BabyAGI 和 AutoGPT 等智能体,其中的示例可以 帮助我们创建自主的 AI 智能体。

第 11 章:微调

在追求提升模型或 RAG 管道性能的过程中, 最终且至关重要的技术策略无疑是对 LLM 进 行微调, 以满足特定应用或场景的需求, 这也是本章将介绍的内容。或者, 我们也可以运用 RLHF (Reinforcement Learning from Human Feedback,人类反馈强化学习)过程,来引导模型更加精 准地遵循用户预设的指令。这一过程可能涉及调整模型以采用某些风格,或者根据不同的场景 需求使用不同的工具。微调可能会消耗大量资源和时间, 于是我们引入 LoRA 和 QLoRA 技术, 这些技术将显著减少所需的资源。此外,我们还将介绍如何使用外部服务来微调专有 API,例如用医疗数据微调专有 API。

第 12 章:部署与优化

使用 LLM 时,一个重要的考虑事项是部署过程,尤其是当你想托管自己的模型而不是依 赖专有 API 时。因为这些模型往往具有资源密集性,所以部署的成本可能十分高昂。鉴于此, 我们将在本章中探讨部署过程中面临的挑战,并提供一些优化建议以降低成本,降低延迟和对 模型的占用,包括模型蒸馏、量化和剪枝等内容。

本书专注于讨论核心的技术栈,致力于使 LLM 适用于特定应用,并使其达到足够的准确 性和可靠性阈值, 以便付费客户进行扩展使用。 具体来说,本书涵盖提示工程、微调、 RAG 和 部署等内容。

使用这些模型构建自己的生产应用和产品仍然需要大量的开发工作, 因此阅读本书需要具 备一定的 Python 知识。当然, 本书的前几章仍然相对简单易懂。同时, 我们也建议读者查阅我 们提供的 Python 资源和其他资源,以深化对 AI 技术的理解。浏览 http://towardsai.net/book 上列出的 部分 Python 资源应该足够让你为阅读本书做好准备。当你对自己的编程技能信心倍增时, 就可 以回到书中以代码为中心的章节继续学习了。

尽管很多优秀的 AI 实验室和开源开发者在诸如 RLHF 等领域付出了重大努力,以使基础 模型能适应人类需求,但现成的基础模型仍然存在限制,不易于在生产中直接使用,除非面对 的是最简单的任务。

在适应特定应用和场景时,有多种策略可对现成的基础 LLM 进行调优。我们需要做出一个根本的决策: 是选择通过 API 直接使用LLM,还是选择一个更为灵活、允许我们全面访问模型权重的平台使用 LLM。尽管有些人可能想尝试训练自己的模型,然而,从实际操作和经济成本来看,这种方法通常只适用于领先的 AI 实验室和科技公司。现如今,已有超过 500 万人在 OpenAI 、Anthropic 、Nvidia 和 Hugging Face 等平台上积极构建 LLM。本书将引导你突破 LLM 的局限性,使用关键技术栈开发适合生产环境的 LLM 产品!

作者简介:

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐