大型语言模型课程

大型语言模型 (LLM) 课程是为人们进入 LLM 领域而准备的主题和教育资源集合。它包含两个主要路线图
- 🧑🔬 **LLM 科学家** 专注于使用最新技术构建最佳 LLM。
- 👷 **LLM 工程师** 专注于创建基于 LLM 的应用程序并进行部署。
基于本课程,我与 Paul Iuzstin 合著了《LLM 工程师手册》。这是一本实践性强且详细的图书,涵盖了从设计到部署的端到端 LLM 应用程序。LLM 课程将始终免费,但您可以通过购买本书来支持我的工作。
为了提供本课程的交互式版本,我创建了一个 LLM 助手,它将在 **HuggingChat**(推荐)或 **ChatGPT** 上以个性化的方式回答问题并测试您的知识。
🧑🔬 LLM 科学家
本课程的这一部分重点是学习如何使用最新技术构建最佳 LLM。
1. LLM 架构
不需要深入了解 Transformer 架构,但理解现代 LLM 的主要步骤很重要:通过分词将文本转换为数字,通过包括注意力机制在内的层处理这些分词,最后通过各种采样策略生成新文本。
- **架构概述**:了解从编码器-解码器 Transformer 到仅解码器架构(如 GPT)的演变,它们构成了现代 LLM 的基础。重点关注这些模型如何高层次地处理和生成文本。
- **分词**:学习分词原理——文本如何转换为 LLM 可以处理的数字表示。探索不同的分词策略及其对模型性能和输出质量的影响。
- **注意力机制**:掌握注意力机制的核心概念,特别是自注意及其变体。了解这些机制如何使 LLM 能够处理长距离依赖并维护序列中的上下文。
- **采样技术**:探索各种文本生成方法及其权衡。比较确定性方法(如贪婪搜索和束搜索)与概率性方法(如温度采样和核采样)。
📚 **参考资料**
- Transformer 的可视化介绍,作者:3Blue1Brown:针对完全初学者的 Transformer 可视化介绍。
- LLM 可视化,作者:Brendan Bycroft:LLM 内部的交互式 3D 可视化。
- nanoGPT,作者:Andrej Karpathy:一个长达 2 小时的 YouTube 视频,从头开始重新实现 GPT(面向程序员)。他还制作了一个关于分词的视频。
- 注意力?注意力!,作者:Lilian Weng:介绍注意力机制需求的历史概述。
- LLM 中的解码策略,作者:Maxime Labonne:提供代码和不同解码策略的可视化介绍以生成文本。
2. 预训练模型
预训练是一个计算密集型且昂贵的过程。虽然它不是本课程的重点,但对模型如何进行预训练,尤其是在数据和参数方面,有一个扎实的理解很重要。预训练也可以由业余爱好者以小规模进行,使用小于 1B 的模型。
- **数据准备**:预训练需要海量数据集(例如,Llama 3.1 在 15 万亿个 token 上进行了训练),需要仔细的整理、清洗、去重和分词。现代预训练管道实施了复杂的过滤以去除低质量或有问题的内容。
- **分布式训练**:结合不同的并行策略:数据并行(批量分发)、流水线并行(层分发)和张量并行(操作拆分)。这些策略需要优化 GPU 集群间的网络通信和内存管理。
- **训练优化**:使用带有预热的自适应学习率、梯度剪裁和归一化以防止梯度爆炸、用于内存效率的混合精度训练,以及带有调整超参数的现代优化器(AdamW、Lion)。
- **监控**:使用仪表盘跟踪关键指标(损失、梯度、GPU 统计),为分布式训练问题实施有针对性的日志记录,并设置性能分析以识别跨设备计算和通信中的瓶颈。
📚 **参考资料**
- FineWeb,作者:Penedo 等人:一篇关于重建用于 LLM 预训练的大规模数据集(15T)的文章,包括高质量子集 FineWeb-Edu。
- RedPajama v2,作者:Weber 等人:另一篇关于带有许多有趣质量过滤器的大规模预训练数据集的文章和论文。
- nanotron,作者:Hugging Face:用于构建 SmolLM2 的极简 LLM 训练代码库。
- 并行训练,作者:Chenyan Xiong:优化和并行技术概述。
- 分布式训练,作者:Duan 等人:一篇关于在分布式架构上高效训练 LLM 的调查。
- OLMo 2,作者:AI2:包含模型、数据、训练和评估代码的开源语言模型。
- LLM360,作者:LLM360:一个用于开源 LLM 的框架,包含训练和数据准备代码、数据、指标和模型。
3. 后训练数据集
后训练数据集具有精确的结构,包括指令和答案(监督微调)或指令和选择/拒绝的答案(偏好对齐)。对话结构比用于预训练的原始文本稀有得多,这就是为什么我们经常需要处理种子数据并对其进行优化,以提高样本的准确性、多样性和复杂性。更多信息和示例请参阅我的代码库 💾 LLM 数据集。
- **存储与聊天模板**:由于对话结构,后训练数据集以特定格式存储,如 ShareGPT 或 OpenAI/HF。然后,这些格式被映射到聊天模板,如 ChatML 或 Alpaca,以生成模型训练的最终样本。
- **合成数据生成**:使用 GPT-4o 等前沿模型,基于种子数据创建指令-响应对。这种方法允许灵活且可扩展地创建高质量答案的数据集。关键考虑因素包括设计多样化的种子任务和有效的系统提示。
- **数据增强**:使用验证输出(使用单元测试或求解器)、拒绝采样多重答案、Auto-Evol、思维链、分支-解决-合并、角色等技术增强现有样本。
- **质量过滤**:传统技术包括基于规则的过滤、去除重复或近似重复(使用 MinHash 或嵌入),以及 n-gram 去污。奖励模型和判断 LLM 通过精细和可定制的质量控制来补充这一步骤。
📚 **参考资料**
- 合成数据生成器,作者:Argilla:一种在 Hugging Face Space 中使用自然语言构建数据集的初学者友好方式。
- LLM 数据集,作者:Maxime Labonne:精选的后训练数据集和工具列表。
- NeMo-Curator,作者:Nvidia:用于预训练和后训练数据的数据准备和整理框架。
- Distilabel,作者:Argilla:用于生成合成数据的框架。它还包括 UltraFeedback 等论文的有趣复现。
- Semhash,作者:MinishLab:一个用于使用蒸馏嵌入模型进行近似去重和去污的极简库。
- 聊天模板,作者:Hugging Face:Hugging Face 关于聊天模板的文档。
4. 监督微调
SFT 将基础模型转化为有用的助手,能够回答问题和遵循指令。在此过程中,它们学习如何组织答案并重新激活预训练期间学到的部分知识。灌输新知识是可能的,但只是表面上的:它不能用于学习一门全新的语言。始终优先考虑数据质量而不是参数优化。
- **训练技术**:完全微调会更新所有模型参数,但需要大量的计算。参数高效微调技术(如 LoRA 和 QLoRA)通过训练少量适配器参数同时保持基础权重冻结来减少内存需求。QLoRA 将 4 位量化与 LoRA 相结合,以减少显存使用。
- **训练参数**:关键参数包括带有调度器的学习率、批量大小、梯度累积、epoch 数量、优化器(如 8 位 AdamW)、用于正则化的权重衰减以及用于训练稳定性的预热步数。LoRA 还增加了三个参数:秩(通常为 16-128)、alpha(1-2 倍秩)和目标模块。
- **分布式训练**:使用 DeepSpeed 或 FSDP 在多个 GPU 上进行扩展训练。DeepSpeed 提供三个 ZeRO 优化阶段,通过状态分区逐步提高内存效率。两种方法都支持梯度检查点以提高内存效率。
- **监控**:跟踪训练指标,包括损失曲线、学习率调度和梯度范数。监控常见问题,如损失尖峰、梯度爆炸或性能下降。
📚 **参考资料**
- 使用 Unsloth 超高效微调 Llama 3.1,作者:Maxime Labonne:关于如何使用 Unsloth 微调 Llama 3.1 模型的实践教程。
- Axolotl - 文档,作者:Wing Lian:许多与分布式训练和数据集格式相关的有趣信息。
- 精通 LLM,作者:Hamel Husain:关于微调(以及 RAG、评估、应用和提示工程)的教育资源集合。
- LoRA 见解,作者:Sebastian Raschka:关于 LoRA 以及如何选择最佳参数的实用见解。
5. 偏好对齐
偏好对齐是后训练流程的第二阶段,重点是使生成的答案与人类偏好对齐。此阶段旨在调整 LLM 的语气并减少毒性和幻觉。然而,它对于提高其性能和改进实用性也变得越来越重要。与 SFT 不同,偏好对齐算法有很多种。这里,我们将重点关注最重要的两种:DPO 和 PPO。
- **拒绝采样**:对于每个提示,使用训练好的模型生成多个响应,并对其进行评分以推断选择/拒绝的答案。这会创建基于策略的数据,其中两个响应都来自正在训练的模型,从而提高对齐稳定性。
- **直接偏好优化** 直接优化策略以最大化选择响应相对于拒绝响应的可能性。它不需要奖励建模,这使得它比 PPO 更具计算效率,但在质量方面略逊一筹。
- **近端策略优化**:迭代更新策略以最大化奖励,同时保持与初始行为接近。它使用奖励模型对响应进行评分,并需要仔细调整超参数,包括学习率、批量大小和 PPO 剪辑范围。
- **监控**:除了 SFT 指标外,您还希望最大化选择答案和偏好答案之间的差距。准确率也应逐渐提高,直到趋于稳定。
📚 **参考资料**
- RLHF 演示,作者:Hugging Face:RLHF 简介,包括奖励模型训练和强化学习微调。
- LLM 训练:RLHF 及其替代方案,作者:Sebastian Rashcka:RLHF 过程和 RLAIF 等替代方案的概述。
- 偏好调整 LLM,作者:Hugging Face:DPO、IPO 和 KTO 算法进行偏好对齐的比较。
- 使用 DPO 微调 Mistral-7b,作者:Maxime Labonne:使用 DPO 微调 Mistral-7b 模型并重现 NeuralHermes-2.5 的教程。
- DPO Wandb 日志,作者:Alexander Vishnevskiy:展示了要跟踪的主要指标和预期趋势。
6. 评估
可靠地评估 LLM 是一项复杂但必不可少的任务,可指导数据生成和训练。它提供了宝贵的改进领域反馈,可用于修改数据混合、质量和训练参数。然而,我们始终要记住古德哈特定律:“当一项衡量标准成为目标时,它就不再是一个好的衡量标准。”
- **自动化基准**:使用精选数据集和指标(如 MMLU)评估模型在特定任务上的表现。它适用于具体任务,但在抽象和创造性能力方面表现不佳。它也容易受到数据污染。
- **人工评估**:涉及人类提示模型并对响应进行评分。方法从氛围检查到具有特定准则和大规模社区投票(竞技场)的系统注释。它更适合主观任务,对事实准确性不太可靠。
- **基于模型的评估**:使用判断模型和奖励模型来评估模型输出。它与人类偏好高度相关,但存在对其自身输出的偏见和评分不一致的问题。
- **反馈信号**:分析错误模式以识别特定的弱点,例如在遵循复杂指令方面的限制、缺乏特定知识或容易受到对抗性提示的影响。这可以通过更好的数据生成和训练参数来改进。
📚 **参考资料**
- 评估指南,作者:Clémentine Fourrier:关于 LLM 评估的实践见解和理论知识。
- 开放 LLM 排行榜,作者:Hugging Face:主要排行榜,以开放和可复现的方式(自动化基准)比较 LLM。
- 语言模型评估工具,作者:EleutherAI:一个流行的用于使用自动化基准评估 LLM 的框架。
- Lighteval,作者:Hugging Face:替代评估框架,也包括基于模型的评估。
- 聊天机器人竞技场,作者:LMSYS:基于人类比较(人工评估)的通用 LLM Elo 评级。
7. 量化
量化是将模型的参数和激活使用较低精度进行转换的过程。例如,使用 16 位存储的权重可以转换为 4 位表示。这项技术对于降低与 LLM 相关的计算和内存成本变得越来越重要。
- **基本技术**:学习不同精度级别(FP32、FP16、INT8 等)以及如何使用 absmax 和零点技术进行朴素量化。
- **GGUF 和 llama.cpp**:最初设计用于在 CPU 上运行,llama.cpp 和 GGUF 格式已成为在消费级硬件上运行 LLM 最流行的工具。它支持将特殊标记、词汇表和元数据存储在单个文件中。
- **GPTQ 和 AWQ**:GPTQ/EXL2 和 AWQ 等技术引入了逐层校准,可在极低位宽下保持性能。它们通过动态缩放、选择性跳过或重新对齐最重的参数来减少灾难性异常值。
- **SmoothQuant 和 ZeroQuant**:新的量化友好型转换 (SmoothQuant) 和基于编译器的优化 (ZeroQuant) 有助于在量化之前缓解异常值。它们还通过融合某些操作和优化数据流来减少硬件开销。
📚 **参考资料**
- 量化简介,作者:Maxime Labonne:量化、absmax 和零点量化以及 LLM.int8() 的代码概述。
- 使用 llama.cpp 量化 Llama 模型,作者:Maxime Labonne:关于如何使用 llama.cpp 和 GGUF 格式量化 Llama 2 模型的教程。
- 使用 GPTQ 进行 4 位 LLM 量化,作者:Maxime Labonne:关于如何使用 AutoGPTQ 和 GPTQ 算法量化 LLM 的教程。
- 了解激活感知权重量化,作者:FriendliAI:AWQ 技术及其优势概述。
- Llama 2 7B 上的 SmoothQuant,作者:MIT HAN Lab:关于如何在 8 位精度下使用 Llama 2 模型和 SmoothQuant 的教程。
- DeepSpeed 模型压缩,作者:DeepSpeed:关于如何使用 DeepSpeed 压缩和 ZeroQuant 以及极限压缩 (XTC) 的教程。
8. 新趋势
以下是一些未归入其他类别的重要主题。有些是已有的技术(模型合并、多模态),但其他一些更具实验性(可解释性、测试时计算扩展),并且是大量研究论文的焦点。
- **模型合并**:合并训练好的模型已成为一种无需任何微调即可创建高性能模型的流行方式。流行的 mergekit 库实现了最流行的合并方法,如 SLERP、DARE 和 TIES。
- **多模态模型**:这些模型(如 CLIP、Stable Diffusion 或 LLaVA)通过统一的嵌入空间处理多种类型的输入(文本、图像、音频等),从而解锁了文本到图像等强大应用。
- **可解释性**:稀疏自编码器 (SAE) 等机制可解释性技术在提供对 LLM 内部工作原理的见解方面取得了显著进展。这也已应用于消除等技术,允许您在不训练的情况下修改模型的行为。
- **测试时计算**:在测试时扩展计算预算需要多次调用并涉及过程奖励模型 (PRM) 等专门模型。具有精确评分的迭代步骤显著提高了复杂推理任务的性能。
📚 **参考资料**
- 使用 mergekit 合并 LLM,作者:Maxime Labonne:关于使用 mergekit 进行模型合并的教程。
- Smol Vision,作者:Merve Noyan:专门用于小型多模态模型的笔记本和脚本集合。
- 大型多模态模型,作者:Chip Huyen:多模态系统概述以及该领域的近期历史。
- 使用消融技术去除任何 LLM 的审查,作者:Maxime Labonne:可解释性技术在修改模型风格方面的直接应用。
- SAE 的直观解释,作者:Adam Karvonen:关于 SAE 工作原理及其对可解释性有意义的文章。
- 扩展测试时计算,作者:Beeching 等人:教程和实验,旨在用 3B 模型在 MATH-500 上超越 Llama 3.1 70B。
👷 LLM 工程师
本课程的这一部分重点是学习如何构建可用于生产的 LLM 驱动应用程序,重点是增强模型和部署它们。
1. 运行 LLM
由于高硬件要求,运行 LLM 可能很困难。根据您的用例,您可能只想通过 API (如 GPT-4) 使用模型,或者在本地运行它。无论如何,额外的提示和指导技术可以改善和限制您的应用程序的输出。
- **LLM API**:API 是部署 LLM 的便捷方式。该领域分为私有 LLM(OpenAI、Google、Anthropic、Cohere 等)和开源 LLM(OpenRouter、Hugging Face、Together AI 等)。
- **开源 LLM**:Hugging Face Hub 是查找 LLM 的好地方。您可以直接在 Hugging Face Spaces 中运行其中一些,也可以使用 LM Studio 等应用程序或通过 llama.cpp 或 Ollama 在 CLI 中下载并本地运行它们。
- **提示工程**:常用技术包括零样本提示、少样本提示、思维链和 ReAct。它们与大型模型配合得更好,但可以适用于小型模型。
- **结构化输出**:许多任务需要结构化输出,如严格的模板或 JSON 格式。像 LMQL、Outlines、Guidance 等库可以用来指导生成并遵守给定结构。
📚 **参考资料**
- 使用 LM Studio 本地运行 LLM,作者:Nisha Arya:关于如何使用 LM Studio 的简短指南。
- 提示工程指南,作者:DAIR.AI:包含示例的详尽提示技术列表
- Outlines - 快速入门:Outlines 支持的引导生成技术列表。
- LMQL - 概述:LMQL 语言简介。
2. 构建向量存储
创建向量存储是构建检索增强生成 (RAG) 管道的第一步。文档被加载、分割,然后相关的块被用于生成向量表示(嵌入),这些表示被存储以供将来推理时使用。
- **摄取文档**:文档加载器是方便的封装器,可以处理多种格式:PDF、JSON、HTML、Markdown 等。它们还可以直接从某些数据库和 API(GitHub、Reddit、Google Drive 等)检索数据。
- **分割文档**:文本分割器将文档分解为更小、语义上有意义的块。与其在 _n_ 个字符后分割文本,不如通过标题或递归地分割,并添加一些额外的元数据,通常会更好。
- **嵌入模型**:嵌入模型将文本转换为向量表示。它允许对语言有更深入和细致的理解,这对于执行语义搜索至关重要。
- **向量数据库**:向量数据库(如 Chroma、Pinecone、Milvus、FAISS、Annoy 等)旨在存储嵌入向量。它们能够根据向量相似性高效检索与查询“最相似”的数据。
📚 **参考资料**
- LangChain - 文本分割器:LangChain 中实现的各种文本分割器列表。
- Sentence Transformers 库:用于嵌入模型的流行库。
- MTEB 排行榜:嵌入模型排行榜。
- 五大向量数据库,作者:Moez Ali:最佳和最流行的向量数据库比较。
3. 检索增强生成
通过 RAG,LLM 从数据库中检索上下文文档以提高其答案的准确性。RAG 是一种流行的增强模型知识而无需任何微调的方法。
- **编排器**:编排器(如 LangChain、LlamaIndex、FastRAG 等)是连接您的 LLM 与工具、数据库、内存等的流行框架,并增强它们的能力。
- **检索器**:用户指令并未针对检索进行优化。可以应用不同的技术(例如多查询检索器、HyDE 等)来重新措辞/扩展它们并提高性能。
- **内存**:为了记住之前的指令和答案,LLM 和聊天机器人(如 ChatGPT)会将此历史记录添加到它们的上下文窗口中。此缓冲区可以通过摘要(例如使用较小的 LLM)、向量存储 + RAG 等进行改进。
- **评估**:我们需要评估文档检索(上下文精确度和召回率)和生成阶段(忠实度和答案相关性)。这可以使用 Ragas 和 DeepEval 等工具进行简化。
📚 **参考资料**
- Llamaindex - 高级概念:构建 RAG 管道时需要了解的主要概念。
- Pinecone - 检索增强:检索增强过程概述。
- LangChain - RAG 问答:构建典型 RAG 管道的分步教程。
- LangChain - 内存类型:不同内存类型及其相关用法的列表。
- RAG 管道 - 指标:用于评估 RAG 管道的主要指标概述。
4. 高级 RAG
实际应用可能需要复杂的管道,包括 SQL 或图数据库,以及自动选择相关工具和 API。这些高级技术可以改进基线解决方案并提供附加功能。
- **查询构建**:存储在传统数据库中的结构化数据需要特定的查询语言,如 SQL、Cypher、元数据等。我们可以直接将用户指令转换为查询以使用查询构建访问数据。
- **代理和工具**:代理通过自动选择最相关的工具来增强 LLM,以提供答案。这些工具可以像使用 Google 或 Wikipedia 一样简单,也可以像 Python 解释器或 Jira 一样复杂。
- **后处理**:处理 LLM 输入的最后一步。它通过重排序、RAG-fusion 和分类增强检索到的文档的相关性和多样性。
- **程序 LLM**:像 DSPy 这样的框架允许您以编程方式根据自动化评估优化提示和权重。
📚 **参考资料**
- LangChain - 查询构建:关于不同类型查询构建的博客文章。
- LangChain - SQL:关于如何使用 LLM 与 SQL 数据库交互的教程,包括 Text-to-SQL 和可选的 SQL 代理。
- Pinecone - LLM 代理:代理和工具的介绍以及不同类型。
- LLM 驱动的自主代理,作者:Lilian Weng:一篇关于 LLM 代理的更具理论性的文章。
- LangChain - OpenAI 的 RAG:OpenAI 采用的 RAG 策略概述,包括后处理。
- DSPy 8 步:DSPy 的通用指南,介绍了模块、签名和优化器。
5. 推理优化
文本生成是一个昂贵的过程,需要昂贵的硬件。除了量化之外,还提出了各种技术来最大化吞吐量并降低推理成本。
- **Flash Attention**:注意力机制的优化,将其复杂度从二次方转换为线性,从而加速训练和推理。
- **键值缓存**:了解键值缓存以及 多查询注意力 (MQA) 和 分组查询注意力 (GQA) 中引入的改进。
- **推测解码**:使用小型模型生成草稿,然后由大型模型进行审查,以加速文本生成。
📚 **参考资料**
- GPU 推理,作者:Hugging Face:解释如何优化 GPU 上的推理。
- LLM 推理,作者:Databricks:关于如何在生产中优化 LLM 推理的最佳实践。
- 优化 LLM 以提高速度和内存,作者:Hugging Face:解释了三种主要的优化速度和内存的技术,即量化、Flash Attention 和架构创新。
- 辅助生成,作者:Hugging Face:HF 的推测解码版本,这是一篇关于其工作原理和实现代码的有趣博客文章。
6. 部署 LLM
大规模部署 LLM 是一项工程壮举,可能需要多个 GPU 集群。在其他场景中,演示和本地应用程序可以通过低得多的复杂性实现。
- **本地部署**:隐私是开源 LLM 相对于私有 LLM 的一个重要优势。本地 LLM 服务器(LM Studio、Ollama、oobabooga、kobold.cpp 等)利用这一优势来支持本地应用程序。
- **演示部署**:像 Gradio 和 Streamlit 这样的框架有助于原型应用程序和共享演示。您还可以轻松地将它们托管在线,例如使用 Hugging Face Spaces。
- **服务器部署**:大规模部署 LLM 需要云(另请参阅 SkyPilot)或本地基础设施,并且通常利用优化的文本生成框架,如 TGI、vLLM 等。
- **边缘部署**:在受限环境中,高性能框架(如 MLC LLM 和 mnn-llm)可以在网络浏览器、Android 和 iOS 上部署 LLM。
📚 **参考资料**
- Streamlit - 构建一个基本的 LLM 应用:使用 Streamlit 制作一个基本的 ChatGPT 类应用的教程。
- HF LLM 推理容器:使用 Hugging Face 的推理容器在 Amazon SageMaker 上部署 LLM。
- Philschmid 博客,作者:Philipp Schmid:关于使用 Amazon SageMaker 部署 LLM 的高质量文章合集。
- 优化延迟,作者:Hamel Husain:TGI、vLLM、CTranslate2 和 MLC 在吞吐量和延迟方面的比较。
7. 保护 LLM 安全
除了与软件相关的传统安全问题外,LLM 由于其训练和提示方式而具有独特的弱点。
- **提示劫持**:与提示工程相关的不同技术,包括提示注入(额外指令以劫持模型的答案)、数据/提示泄露(检索其原始数据/提示)和越狱(精心制作提示以绕过安全功能)。
- **后门**:攻击向量可以针对训练数据本身,通过污染训练数据(例如,使用虚假信息)或创建后门(在推理过程中改变模型行为的秘密触发器)。
- **防御措施**:保护您的 LLM 应用程序的最佳方法是针对这些漏洞对其进行测试(例如,使用红队和像 garak 这样的检查)并在生产中观察它们(使用像 langfuse 这样的框架)。
📚 **参考资料**
- OWASP LLM 十大漏洞,作者:HEGO Wiki:LLM 应用程序中常见的 10 个最关键漏洞列表。
- 提示注入入门,作者:Joseph Thacker:面向工程师的提示注入简要指南。
- LLM 安全,作者:@llm_sec:与 LLM 安全相关的资源大量列表。
- 红队 LLM,作者:Microsoft:关于如何使用 LLM 进行红队的指南。
结论
我的主要建议是做一些你喜欢的事情。在 Google Colab 笔记本中安装库,玩转它们,在 Hugging Face Spaces 上部署模型,破解一个应用程序,量化一个 LLM,或者对其进行微调以用于 RAG。找到自己的利基市场并不断探索它,阅读论文,并实现自己的想法。这是一个庞大的领域,拥有广泛的研究和资金。成为本课程中一项事物的专家,你将变得不可或缺!:)