LLM 课程文档
引言
并获得增强的文档体验
开始使用
简介
欢迎来到 🤗 课程!
本课程将教您关于大型语言模型(LLM)和自然语言处理(NLP)的知识,并使用 Hugging Face 生态系统中的库 — 🤗 Transformers、🤗 Datasets、🤗 Tokenizers 和 🤗 Accelerate — 以及 Hugging Face Hub。
我们还将涵盖 Hugging Face 生态系统之外的库。这些都是对 AI 社区的了不起的贡献,也是非常有用的工具。
本课程完全免费,且无广告。
理解 NLP 和 LLM
虽然本课程最初侧重于自然语言处理(NLP),但现在已经发展为重点关注代表该领域最新进展的大型语言模型(LLM)。
它们之间有什么区别?
- NLP(自然语言处理)是一个更广泛的领域,专注于使计算机能够理解、解释和生成人类语言。NLP 涵盖了许多技术和任务,如情感分析、命名实体识别和机器翻译。
- LLM(大型语言模型)是 NLP 模型的一个强大子集,其特点是规模庞大、训练数据广泛,并能以最少的特定任务训练来执行各种语言任务。像 Llama、GPT 或 Claude 系列等模型都是 LLM 的例子,它们彻底改变了 NLP 领域中可能实现的一切。
在本课程中,您将学习传统的 NLP 概念和前沿的 LLM 技术,因为理解 NLP 的基础对于有效使用 LLM 至关重要。
课程内容预期
以下是课程的简要概述
- 第 1 到 4 章介绍了 🤗 Transformers 库的主要概念。在完成这部分课程后,您将熟悉 Transformer 模型的工作原理,并知道如何使用 Hugging Face Hub 上的模型,在数据集上对其进行微调,并在 Hub 上分享您的成果!
- 第 5 到 8 章在深入探讨经典的 NLP 任务和 LLM 技术之前,教授 🤗 Datasets 和 🤗 Tokenizers 的基础知识。在完成这部分课程后,您将能够独立应对最常见的语言处理挑战。
- 第 9 章超越了 NLP,涵盖了如何在 🤗 Hub 上为您的模型构建和分享演示。在完成这部分课程后,您将准备好向世界展示您的 🤗 Transformers 应用程序!
- 第 10 到 12 章深入探讨了高级 LLM 主题,如微调、策划高质量数据集以及构建推理模型。
本课程
- 要求您具备良好的 Python 知识
- 最好在学过一门入门级深度学习课程之后学习,例如 fast.ai 的《为程序员准备的实用深度学习》或 DeepLearning.AI 开发的某个项目
- 不要求具备 PyTorch 或 TensorFlow 的先验知识,但熟悉其中任一者都会有所帮助
完成本课程后,我们推荐您学习 DeepLearning.AI 的《自然语言处理专项课程》,该课程涵盖了各种传统的 NLP 模型,如朴素贝叶斯和 LSTM,这些都非常值得了解!
我们是谁?
关于作者
Abubakar Abid 在斯坦福大学获得应用机器学习博士学位。博士期间,他创立了 Gradio,这是一个开源 Python 库,已被用于构建超过 60 万个机器学习演示。Gradio 被 Hugging Face 收购,Abubakar 现在担任机器学习团队负责人。
Ben Burtenshaw 是 Hugging Face 的一名机器学习工程师。他在安特卫普大学获得自然语言处理博士学位,在那里他应用 Transformer 模型生成儿童故事以提高识字能力。此后,他专注于为更广泛的社区提供教育材料和工具。
Matthew Carrigan 是 Hugging Face 的一名机器学习工程师。他住在爱尔兰都柏林,之前在 Parse.ly 担任机器学习工程师,更早之前在都柏林三一学院担任博士后研究员。他不相信我们能通过扩展现有架构实现通用人工智能(AGI),但对机器人永生抱有很高的期望。
Lysandre Debut 是 Hugging Face 的一名机器学习工程师,自 🤗 Transformers 库早期开发阶段就一直参与其中。他的目标是通过开发具有非常简单 API 的工具,让每个人都能接触到自然语言处理。
Sylvain Gugger 是 Hugging Face 的研究工程师,也是 🤗 Transformers 库的核心维护者之一。他之前是 fast.ai 的研究科学家,并与 Jeremy Howard 合著了《基于 fastai 和 PyTorch 的深度学习实践》。他的主要研究重点是通过设计和改进技术,使模型能在有限资源下快速训练,从而让深度学习更加普及。
Dawood Khan 是 Hugging Face 的一名机器学习工程师。他来自纽约市,毕业于纽约大学,主修计算机科学。在担任 iOS 工程师几年后,Dawood 辞职与联合创始人一起创办了 Gradio。Gradio 最终被 Hugging Face 收购。
Merve Noyan 是 Hugging Face 的一名开发者关系倡导者,致力于开发工具并围绕这些工具创建内容,以实现机器学习的民主化。
Lucile Saulnier 是 Hugging Face 的一名机器学习工程师,负责开发和支持开源工具的使用。她还积极参与自然语言处理领域的许多研究项目,如协作训练和 BigScience。
Lewis Tunstall 是 Hugging Face 的一名机器学习工程师,专注于开发开源工具并使其对更广泛的社区开放。他也是 O’Reilly 出版的 《基于 Transformers 的自然语言处理》一书的合著者之一。
Leandro von Werra 是 Hugging Face 开源团队的一名机器学习工程师,也是 O’Reilly 出版的 《基于 Transformers 的自然语言处理》一书的合著者之一。他拥有多年将自然语言处理项目投入生产的行业经验,工作范围涵盖整个机器学习技术栈。
常见问题
以下是一些常见问题的解答
完成这门课程能获得证书吗? 目前我们不为这门课程提供任何证书。不过,我们正在为 Hugging Face 生态系统开发一个认证项目——敬请期待!
我应该在这门课程上花多少时间? 课程中的每一章都设计为在 1 周内完成,每周大约需要 6-8 小时的工作量。但是,您可以根据需要花任意长的时间来完成课程。
如果有问题,我可以在哪里提问? 如果您对课程的任何部分有疑问,只需点击页面顶部的“提问”横幅,即可自动重定向到 Hugging Face 论坛的相应版块。

请注意,如果您在完成课程后希望进行更多练习,论坛上也有一系列项目创意可供参考。
- 我在哪里可以找到课程代码? 对于每个部分,点击页面顶部的横幅,即可在 Google Colab 或 Amazon SageMaker Studio Lab 中运行代码。

包含课程所有代码的 Jupyter 笔记本托管在 huggingface/notebooks
仓库中。如果您想在本地生成它们,请查看 GitHub 上的 course
仓库中的说明。
我如何为课程做贡献? 有很多方式可以为课程做出贡献!如果您发现拼写错误或 bug,请在
course
仓库中提交一个 issue。如果您想帮助将课程翻译成您的母语,请查看此处的说明。每次翻译都做了哪些选择? 每个翻译版本都有一个词汇表和
TRANSLATING.txt
文件,详细说明了对机器学习术语等所做的选择。您可以在此处找到德语版本的示例。
- 我可以重用这门课程吗? 当然可以!本课程采用宽松的 Apache 2.0 许可证发布。这意味着您必须给予适当的署名,提供许可证链接,并说明是否进行了更改。您可以以任何合理的方式这样做,但不能以任何方式暗示许可方认可您或您的使用。如果您想引用本课程,请使用以下 BibTeX
@misc{huggingfacecourse,
author = {Hugging Face},
title = {The Hugging Face Course, 2022},
howpublished = "\url{https://huggingface.co/course}",
year = {2022},
note = "[Online; accessed <today>]"
}
语言和翻译
感谢我们出色的社区,本课程除了英语之外还有多种语言版本 🔥!请查看下表,了解有哪些语言可用以及翻译贡献者
语言 | 作者 |
---|---|
法语 | @lbourdois, @ChainYo, @melaniedrevet, @abdouaziz |
越南语 | @honghanhh |
中文 (简体) | @zhlhyx, petrichor1122, @yaoqih |
孟加拉语 (进行中) | @avishek-018, @eNipu |
德语 (进行中) | @JesperDramsch, @MarcusFra, @fabridamicelli |
西班牙语 (进行中) | @camartinezbu, @munozariasjm, @fordaz |
波斯语 (进行中) | @jowharshamshiri, @schoobani |
古吉拉特语 (进行中) | @pandyaved98 |
希伯来语 (进行中) | @omer-dor |
印地语 (进行中) | @pandyaved98 |
印度尼西亚语 (进行中) | @gstdl |
意大利语 (进行中) | @CaterinaBi, @ClonedOne, @Nolanogenn, @EdAbati, @gdacciaro |
日语 (进行中) | @hiromu166, @younesbelkada, @HiromuHota |
韩语 (进行中) | @Doohae, @wonhyeongseo, @dlfrnaos19 |
葡萄牙语 (进行中) | @johnnv1, @victorescosta, @LincolnVS |
俄语 (进行中) | @pdumin, @svv73 |
泰语 (进行中) | @peeraponw, @a-krirk, @jomariya23156, @ckingkan |
土耳其语 (进行中) | @tanersekmen, @mertbozkir, @ftarlaci, @akkasayaz |
中文 (繁体) (进行中) | @davidpeng86 |
对于某些语言,课程 YouTube 视频提供该语言的字幕。您可以通过先点击视频右下角的 CC 按钮来启用它们。然后,在设置图标 ⚙️ 下,通过选择字幕/CC 选项来选择您想要的语言。

出发吧 🚀
准备好了吗?在本章中,您将学习:
- 如何使用
pipeline()
函数解决文本生成和分类等 NLP 任务 - 关于 Transformer 架构
- 如何区分编码器、解码器和编码器-解码器架构及其用例