Hugging Face 课程
此仓库包含用于创建 Hugging Face 课程 的内容。该课程教你如何将 Transformers 应用于自然语言处理及其他各种任务。在此过程中,你将学习如何使用 Hugging Face 生态系统——🤗 Transformers、🤗 Datasets、🤗 Tokenizers 和 🤗 Accelerate——以及 Hugging Face Hub。它是完全免费的开源课程!
🌎 语言和翻译
将课程翻译成你的语言
作为我们民主化机器学习使命的一部分,我们希望课程能以更多的语言提供!如果你愿意帮助将课程翻译成你的语言,请按照以下步骤操作 🙏。
🗞️ 打开一个问题
首先,导航到此仓库的 问题 页,并检查是否有人已为你的语言打开了问题。如果没有,请通过选择“新建问题”按钮中的“翻译模板”来打开一个新问题。 一旦问题创建后,发表评论指明你想要处理的章节,我们会将你的名字添加到名单中。
🗣 加入我们的Discord
由于在GitHub问题上快速讨论翻译细节可能会有难度,我们在Discord服务器上为每种语言创建了专门的频道。如果你想加入,按这个频道中的说明操作👉:https://discord.gg/JfAtkvEtRb
🍴 Fork这个仓库
接下来,你需要fork这个仓库。你可以通过点击此仓库页面右上角的Fork按钮来完成。
一旦你fork了这个仓库,你会想把文件下载到你的本地计算机进行编辑。你可以通过如下方式使用Git克隆这个fork:
git clone https://github.com/YOUR-USERNAME/course
📋 复制粘贴英文文件并使用新的语言代码
课程文件组织在一个主目录下:
chapters
: 与课程相关的所有文本和代码片段。
你只需复制chapters/en
目录下的文件,首先导航到你fork的仓库并运行如下命令:
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. 设置 # Translate this!
sections:
- local: chapter0/1 # 不要更改这个!
title: 介绍 # Translate this!
🚨 确保
_toctree.yml
文件只包含已翻译的部分!否则无法在网站或本地构建内容(如下所示)。
一旦你翻译了_toctree.yml
文件,你可以开始翻译与你章节相关的MDX文件。
🙋 如果当前语言还没有
_toctree.yml
文件,你可以简单地通过复制粘贴英文版并删除与你章节无关的部分来创建一个。确保它存在于chapters/LANG-ID/
目录中!
👷♂️ 本地构建课程
一旦你对更改感到满意,你可以通过首先安装我们用于构建所有Hugging Face文档的doc-builder
工具来预览它们的样子:
pip install hf-doc-builder
doc-builder preview course ../course/chapters/LANG-ID --not_python_module
**preview
命令不支持Windows。
这将构建并渲染课程在http://localhost:3000/上。尽管内容在Hugging Face网站上看起来更好,但此步骤仍然允许你检查所有内容格式是否正确。
🚀 提交一个pull request
如果翻译在本地查看没有问题,最后一步是准备内容以供pull request。首先检查文件格式是否正确。你可以运行:
pip install -r requirements.txt
make style
一旦运行完成,提交任何更改,打开一个pull request,并标记@lewtun进行审核。恭喜你,你现在已经完成了你的第一个翻译🥳!
🚨 要在网站上构建课程,请双重检查你的语言代码是否存在于
.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笔记本的链接。
如果你遇到困难,查看现有章节——这通常会向你展示预期的语法。
一旦你对内容感到满意,打开一个pull request并标记@lewtun进行审核。我们建议将第一个章节草稿作为单个pull request添加——团队然后会在内部提供反馈以迭代内容🤗!
🙌 致谢
这个仓库和README的结构灵感来自于精彩的Advanced NLP with spaCy课程。