The Hugging Face course on Transformers
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 4 个月前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 11 个月前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 6 个月前 | ||
| 2 年前 |
Hugging Face 课程
本仓库包含用于创建 Hugging Face 课程 的内容。该课程将教你如何将 Transformers 应用于自然语言处理及其他领域的各种任务。在此过程中,你将学习如何使用 Hugging Face 生态系统——🤗 Transformers、🤗 Datasets、🤗 Tokenizers 和 🤗 Accelerate,以及 Hugging Face Hub。这完全是免费且开源的!
🌎 语言与翻译
将课程翻译成你的语言
作为我们推动机器学习民主化使命的一部分,我们非常希望能让这门课程支持更多语言!如果你愿意帮助将课程翻译成你的语言,请按照以下步骤操作 🙏。
🗞️ 提交 issue
首先,请访问本仓库的 Issues 页面,查看是否已有针对你目标语言的 issue。如果没有,请点击“New issue”按钮,选择“Translation template”来创建一个新的 issue。
创建 issue 后,请在评论中说明你希望负责翻译的章节,我们会将你的名字添加到列表中。
🗣 加入我们的 Discord
由于通过 GitHub issues 快速讨论翻译细节可能不够便捷,我们在 Discord 服务器上为每种语言创建了专门的频道。如果你想加入,请按照此频道的说明操作 👉: https://discord.gg/JfAtkvEtRb
🍴 Fork 仓库
接下来,你需要 fork 此仓库。你可以通过点击本仓库页面右上角的 Fork 按钮来完成此操作。
Fork 仓库后,你需要将文件下载到本地机器进行编辑。你可以通过以下 Git 命令克隆这个 fork:
git clone https://github.com/YOUR-USERNAME/course
📋 复制粘贴英文文件并使用新的语言代码
课程文件组织在一个主目录下:
chapters:与课程相关的所有文本和代码片段。
你只需复制 chapters/en 目录中的文件,因此首先导航到你的仓库分支并运行以下命令:
cd ~/path/to/course
cp -r chapters/en/CHAPTER-NUMBER chapters/LANG-ID/CHAPTER-NUMBER
这里,CHAPTER-NUMBER 指的是你想要处理的章节,LANG-ID 应是 ISO 639-1 或 ISO 639-2 语言代码之一——你可以在这里查看便捷的代码表。
✍️ 开始翻译
接下来就是有趣的翻译环节了!我们建议你首先翻译 _toctree.yml 文件中与你所选章节对应的部分。该文件用于在网站上呈现目录,并提供指向 Colab 笔记本的链接。你只需修改 title 字段——例如,以下是我们为第 0 章翻译的 _toctree.yml 部分内容:
- title: 0. Setup # Translate this!
sections:
- local: chapter0/1 # Do not change this!
title: Introduction # Translate this!
🚨 确保
_toctree.yml文件只包含已翻译的章节!否则,你将无法在网站上或本地构建内容(请参阅下文了解方法)。
翻译完 _toctree.yml 文件后,你就可以开始翻译与你的章节相关的 MDX 文件了。
🙋 如果你的语言对应的
_toctree.yml文件尚不存在,你可以通过复制粘贴英文版的内容并删除与你的章节无关的部分来创建一个。确保该文件存在于chapters/LANG-ID/目录中!
👷♂️ 本地构建课程
当你对所做的更改满意后,可以通过首先安装我们用于构建 Hugging Face 所有文档的 doc-builder 工具来预览更改后的效果:
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install "git+https://github.com/huggingface/doc-builder.git"
doc-builder preview course ./chapters/LANG-ID --not_python_module
如果 LANG-ID 内容不完整,请确保 _toctree.yml 仅引用 chapters/LANG-ID 中存在的文件。
如果预览已启动,但所有路由均返回 404,这可能是 Python 包与 SvelteKit 模板之间存在本地 doc-builder 版本不匹配的问题:
python -m pip uninstall -y hf-doc-builder
python -m pip install "git+https://github.com/huggingface/doc-builder.git"
然后重启 doc-builder preview。
preview命令在 Windows 系统上无法使用。
这将在 http://localhost:5173/ 上构建并渲染课程。尽管课程内容在 Hugging Face 网站上显示效果更好,但此步骤仍能帮助你检查所有内容的格式是否正确。
🚀 提交拉取请求
如果本地翻译内容看起来没有问题,最后一步就是准备内容以提交拉取请求。首先需要检查的是文件格式是否正确。为此,你可以运行:
pip install -r requirements.txt
make style
运行完成后,请提交所有更改,打开一个拉取请求,并标记 @lewtun 和 @stevhliu 进行审核。如果你还认识其他能够审核翻译的母语人士,也可以标记他们寻求帮助。恭喜你,现在你已经完成了你的第一次翻译 🥳!
🚨 若要在网站上构建课程,请仔细检查你的语言代码是否存在于
.github文件夹中build_documentation.yml和build_pr_documentation.yml文件的languages字段中。如果不存在,请按字母顺序将其添加进去。
📔 Jupyter 笔记本
包含课程所有代码的 Jupyter 笔记本托管在 huggingface/notebooks 仓库中。如果你希望在本地生成它们,请首先安装所需的依赖项:
python -m pip install -r requirements.txt
然后运行以下脚本:
python utils/generate_notebooks.py --output_dir nbs
此脚本会从各章节中提取所有代码片段,并将其作为笔记本存储在 nbs 文件夹中(默认情况下 Git 会忽略该文件夹)。
✍️ 贡献新章节
注意:我们目前不接受社区贡献新章节。这些说明适用于 Hugging Face 的作者。
向课程添加新章节非常简单:
- 在
chapters/en/chapterX目录下创建一个新文件夹,其中chapterX是你想要添加的章节。 - 为每个小节添加编号的 MDX 文件
sectionX.mdx。如果需要包含图片,请将它们放在 huggingface-course/documentation-images 仓库中,并使用 HTML 图片语法,路径为https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/{langY}/{chapterX}/{your-image.png}。 - 更新
_toctree.yml文件,将你的章节小节包含进去——这些信息将在网站上呈现目录。如果你的小节同时涉及transformers的 PyTorch 和 TensorFlow API,请确保在colab字段中包含指向两个 Colab 的链接。
如果你遇到困难,可以查看现有的章节——这通常会向你展示预期的语法。
当你对内容满意后,打开一个拉取请求,并标记 @lewtun 进行审核。我们建议将第一章草稿作为单个拉取请求提交——团队随后会在内部提供反馈,以便对内容进行迭代改进 🤗!
部署到 hf.co/course(供 HF 员工使用)
课程内容通过从 release 分支触发 GitHub CI 部署到 hf.co/course。要触发构建,请先从 main 创建一个新分支,用于更新 release 上的当前状态:
git checkout main
git checkout -b bump_release
接下来,解决 release 分支和 bump_release 分支之间的任何冲突。由于手动解决这些冲突比较繁琐,我们可以通过以下操作来接受最新的更改:
git checkout bump_release
git merge -s ours release
接下来,推送 bump_release 分支并针对 release(而非 main!)创建一个 PR。这里有一个示例 PR。待 CI 检查通过后,合并该 PR,这将触发 GitHub CI 构建新的课程内容。此过程大约需要 10-15 分钟,之后最新更改将在 hf.co/course 上可见!
🙌 致谢
本仓库和 README 的结构灵感来源于出色的 Advanced NLP with spaCy 课程。