# BARThez

[BARThez](https://huggingface.co/papers/2010.12321) 是一个专为法语任务设计的 [BART](./bart) 模型。与现有的法语 BERT 模型不同，BARThez 包含一个预训练的编码器-解码器，因此它也能生成文本。该模型还提供了一个多语言变体 mBARThez，它是通过在法语语料库上继续预训练多语言 BART 得到的。

您可以在 [BARThez](https://huggingface.co/collections/dascim/barthez-670920b569a07aa53e3b6887) 集合中找到所有原始的 BARThez 检查点。

> [!TIP]
> 该模型由 [moussakam](https://huggingface.co/moussakam) 贡献。有关更多使用示例，请参阅 [BART](./bart) 文档。

以下示例演示了如何使用 [Pipeline](/docs/transformers/main/zh/main_classes/pipelines#transformers.Pipeline)、[AutoModel](/docs/transformers/main/zh/model_doc/auto#transformers.AutoModel) 以及命令行来预测 `<mask>` 标记。

```python
from transformers import pipeline

pipeline = pipeline(
    task="fill-mask",
    model="moussaKam/barthez",
    device=0
)
pipeline("Les plantes produisent <mask> grâce à un processus appelé photosynthèse.")
```

```python
import torch

from transformers import AutoModelForMaskedLM, AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained(
    "moussaKam/barthez",
)
model = AutoModelForMaskedLM.from_pretrained(
    "moussaKam/barthez",
    device_map="auto",
)
inputs = tokenizer("Les plantes produisent <mask> grâce à un processus appelé photosynthèse.", return_tensors="pt").to(model.device)

with torch.no_grad():
    outputs = model(**inputs)
    predictions = outputs.logits

masked_index = torch.where(inputs['input_ids'] == tokenizer.mask_token_id)[1]
predicted_token_id = predictions[0, masked_index].argmax(dim=-1)
predicted_token = tokenizer.decode(predicted_token_id)

print(f"The predicted token is: {predicted_token}")
```

## BarthezTokenizer[[transformers.BarthezTokenizer]]

#### transformers.BarthezTokenizer[[transformers.BarthezTokenizer]]

```python
transformers.BarthezTokenizer(vocab: str | dict | list | None = None, bos_token = '<s>', eos_token = '</s>', sep_token = '</s>', cls_token = '<s>', unk_token = '<unk>', pad_token = '<pad>', mask_token = '<mask>', add_prefix_space = True, **kwargs)
```

[来源](https://github.com/huggingface/transformers/blob/main/src/transformers/models/barthez/tokenization_barthez.py#L32)

**参数：**

bos_token (`str`, *可选*, 默认为 `"<s>"`) : 预训练期间使用的序列起始标记。可用作序列分类标记。 在使用特殊标记构建序列时，序列起始处使用的并非此标记，而是 `cls_token`。

eos_token (`str`, *可选*, 默认为 `"</s>"`) : 序列结束标记。 在使用特殊标记构建序列时，序列结束使用的标记并非此标记，而是 `sep_token`。

sep_token (`str`，*可选*，默认为 `"</s>"`)：分隔符标记，用于从多个序列构建序列时，例如用于序列分类的两个序列，或用于问答的文本和问题。它也用作使用特殊标记构建的序列的最后一个标记。

cls_token (`str`，*可选*，默认为 `"<s>"`)：用于执行序列分类（对整个序列进行分类，而非逐 token 分类）的分类器 token。当使用特殊 token 构建序列时，它是序列的第一个 token。

unk_token (`str`，*可选*，默认为 `"<unk>"`)：未知标记。不在词汇表中的标记无法转换为 ID，因此会被设置为该标记。

pad_token (`str`，*可选*，默认为 `"<pad>"`)：用于填充的标记，例如在对长度不同的序列进行批处理时。

mask_token (`str`，*可选*，默认为 `"<mask>"`)：用于掩码值的标记。这是在通过掩码语言建模训练该模型时所使用的标记。模型将尝试预测此标记。

vocab_file (`str`, *可选*) : [SentencePiece](https://github.com/google/sentencepiece) 文件（通常具有 *.spm* 扩展名），其中包含实例化分词器所需的词汇表。

vocab (`str`、`dict` 或 `list`，*可选*)：自定义词汇表。如果未提供，则从 vocab_file 加载词汇表。

add_prefix_space (`bool`，*可选*，默认为 `True`)：是否要在输入前添加一个初始空格。这样可以使开头的单词与其他单词一样被处理。

改编自 [CamembertTokenizer](/docs/transformers/main/zh/model_doc/camembert#transformers.CamembertTokenizer) 和 [BartTokenizer](/docs/transformers/main/zh/model_doc/led#transformers.RobertaTokenizer)。构建一个“快速”的 BARThez 分词器。基于 [SentencePiece](https://github.com/google/sentencepiece)。

该分词器继承自 [PreTrainedTokenizerFast](/docs/transformers/main/zh/main_classes/tokenizer#transformers.TokenizersBackend)，后者包含了大部分主要方法。用户应参考该父类以获取有关这些方法的更多信息。

