Skip to content

Commit

Permalink
Merge pull request huggingface#534 from gxy-gxy/main
Browse files Browse the repository at this point in the history
docs(zh-cn): Reviewed Chapter 4/2
  • Loading branch information
xianbaoqian authored Apr 10, 2023
2 parents 98218c6 + 2c4bea8 commit f381a75
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 11 deletions.
2 changes: 1 addition & 1 deletion chapters/zh-CN/_toctree.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@
- local: chapter4/1
title: The Hugging Face Hub
- local: chapter4/2
title: 使用预训练的模型
title: 使用预训练模型
- local: chapter4/3
title: 分享预训练的模型
- local: chapter4/4
Expand Down
19 changes: 9 additions & 10 deletions chapters/zh-CN/chapter4/2.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<FrameworkSwitchCourse {fw} />

# 使用预训练的模型 [[使用预训练的模型]]
# 使用预训练模型 [[使用预训练模型]]

{#if fw === 'pt'}

Expand All @@ -22,15 +22,15 @@

{/if}

模型中心使选择合适的模型变得简单,因此只需几行代码即可在任何下游库中使用它。让我们来看看如何实际使用这些模型之一,以及如何回馈社区
模型中心使选择合适的模型变得简单,因此只需几行代码即可在任何下游库中使用它。让我们来看看如何使用这些模型,以及如何将模型贡献到社区

假设我们正在寻找一种可以执行**mask**填充的French-based模型
假设我们正在寻找一种可以执行 mask 填充的 French-based 模型

<div class="flex justify-center">
<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/camembert.gif" alt="Selecting the Camembert model." width="80%"/>
</div>

我们选择 **camembert-base** 检查点来尝试一下。我们需要做的仅仅是输入 `camembert-base`标识符!正如您在前几章中看到的,我们可以使用 **pipeline()** 功能:
我们选择 `camembert-base` 检查点来尝试一下。我们需要做的仅仅是输入 `camembert-base` 标识符!正如你在前几章中看到的,我们可以使用 `pipeline()` 功能:

```py
from transformers import pipeline
Expand All @@ -49,13 +49,13 @@ results = camembert_fill_mask("Le camembert est <mask> :)")
]
```

如您所见,在管道中加载模型非常简单。您唯一需要注意的是所选检查点是否适合它将用于的任务。例如,这里我们正在加载 **camembert-base** 检查点在 **fill-mask** 管道,这完全没问题。但是如果我们要在 **text-classification** 管道,结果没有任何意义,因为 **camembert-base** 不适合这个任务!我们建议使用 Hugging Face Hub 界面中的任务选择器来选择合适的检查点:
如你所见,在管道中加载模型非常简单。你唯一需要注意的是所选检查点是否适合它将用于的任务。例如,这里我们正在将 `camembert-base` 检查点加载在 `fill-mask` 管道,这完全没问题。但是如果我们在 `text-classification` 管道加载检查点,结果没有任何意义,因为 `camembert-base` 不适合这个任务!我们建议使用 Hugging Face Hub 界面中的任务选择器来选择合适的检查点:

<div class="flex justify-center">
<img src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter4/tasks.png" alt="The task selector on the web interface." width="80%"/>
</div>

您还可以直接使用模型架构实例化检查点
你还可以直接使用模型架构实例化检查点

{#if fw === 'pt'}
```py
Expand All @@ -65,7 +65,7 @@ tokenizer = CamembertTokenizer.from_pretrained("camembert-base")
model = CamembertForMaskedLM.from_pretrained("camembert-base")
```

然而,我们建议使用[Auto*](https://huggingface.co/transformers/model_doc/auto.html?highlight=auto#auto-classes)因为Auto* 类设计与架构无关。前面的代码示例将只能在 CamemBERT 架构中加载可用的检查点,但使用 **Auto*** 类使切换检查点变得简单
然而,我们建议使用 [`Auto*`](https://huggingface.co/transformers/model_doc/auto.html?highlight=auto#auto-classes)因为 `Auto*` 类设计与架构无关。前面的代码示例将只能在 CamemBERT 架构中加载可用的检查点,但使用 `Auto*` 类使切换不同的检查点变得简单

```py
from transformers import AutoTokenizer, AutoModelForMaskedLM
Expand All @@ -81,8 +81,7 @@ tokenizer = CamembertTokenizer.from_pretrained("camembert-base")
model = TFCamembertForMaskedLM.from_pretrained("camembert-base")
```

However, we recommend using the [`TFAuto*` classes](https://huggingface.co/transformers/model_doc/auto.html?highlight=auto#auto-classes) instead, as these are by design architecture-agnostic. While the previous code sample limits users to checkpoints loadable in the CamemBERT architecture, using the `TFAuto*` classes makes switching checkpoints simple:
然而,我们建议使用[`TFAuto*`](https://huggingface.co/transformers/model_doc/auto.html?highlight=auto#auto-classes),因为`TFAuto*`类设计与架构无关。前面的代码示例将只能在 CamemBERT 架构中加载可用的检查点,但使用 `TFAuto*` 类使切换检查点变得简单:
然而,我们建议使用 [`TFAuto*`](https://huggingface.co/transformers/model_doc/auto.html?highlight=auto#auto-classes),因为 `TFAuto*` 类设计与架构无关。前面的代码示例将只能在 CamemBERT 架构中加载可用的检查点,但使用 `TFAuto*` 类使切换不同的检查点变得简单:

```py
from transformers import AutoTokenizer, TFAutoModelForMaskedLM
Expand All @@ -93,5 +92,5 @@ model = TFAutoModelForMaskedLM.from_pretrained("camembert-base")
{/if}

<Tip>
使用预训练模型时,一定要检查它是如何训练的,在哪些数据集上,它的限制和它的偏差。所有这些信息都应在其模型卡片上注明。
使用预训练模型时,一定要检查它是如何训练的、在哪些数据集上训练的、它的局限性和偏差。所有这些信息都应在其模型卡片上注明。
</Tip>

0 comments on commit f381a75

Please sign in to comment.