# BARThez

[BARThez](https://huggingface.co/papers/2010.12321) es un modelo [BART](./bart) diseñado para tareas de procesamiento del lenguaje francés. A diferencia de los modelos BERT franceses existentes, BARThez incluye un codificador-decodificador preentrenado, lo que le permite generar texto. Este modelo también está disponible como una variante multilingüe, mBARThez, al continuar el preentrenamiento de BART multilingüe en un corpus francés.

Puedes encontrar todos los puntos de control originales de BARThez en la colección [BARThez](https://huggingface.co/collections/dascim/barthez-670920b569a07aa53e3b6887).

> [!TIP]
> Este modelo fue aportado por [moussakam](https://huggingface.co/moussakam). Consulta la documentación de [BART](./bart) para más ejemplos de uso.

El siguiente ejemplo demuestra cómo predecir el token `<mask>` con [Pipeline](/docs/transformers/main/es/main_classes/pipelines#transformers.Pipeline), [AutoModel](/docs/transformers/main/es/model_doc/auto#transformers.AutoModel) y desde la línea de comandos.

```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)
```

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

**Parámetros:**

bos_token (`str`, *opcional*, valor predeterminado `"<s>"`) : El token de inicio de secuencia que se utilizó durante el preentrenamiento. Puede usarse como token de clasificador de secuencias. Al construir una secuencia con tokens especiales, este no es el token que se utiliza para el inicio de la secuencia. El token que se utiliza es `cls_token`.

eos_token (`str`, *opcional*, valor predeterminado `"</s>"`) : El token de fin de secuencia. Al construir una secuencia con tokens especiales, este no es el token que se utiliza para el fin de secuencia. El token que se utiliza es `sep_token`.

sep_token (`str`, *opcional*, valor predeterminado `"</s>"`) : El token separador, que se utiliza al construir una secuencia a partir de varias secuencias, por ejemplo, dos secuencias para la clasificación de secuencias o un texto y una pregunta para la respuesta a preguntas. También se utiliza como el último token de una secuencia construida con tokens especiales.

cls_token (`str`, *opcional*, valor predeterminado `"<s>"`) : El token clasificador que se utiliza al realizar clasificación de secuencias (clasificación de la secuencia completa en lugar de clasificación por token). Es el primer token de la secuencia cuando se construye con tokens especiales.

unk_token (`str`, *opcional*, valor predeterminado `"<unk>"`) : El token desconocido. Un token que no está en el vocabulario no se puede convertir en un ID y se establece como este token en su lugar.

pad_token (`str`, *opcional*, valor predeterminado `"<pad>"`) : El token utilizado para el relleno, por ejemplo, al agrupar secuencias de diferentes longitudes.

mask_token (`str`, *opcional*, valor predeterminado `"<mask>"`) : El token utilizado para enmascarar valores. Este es el token que se emplea al entrenar este modelo con modelado de lenguaje enmascarado. Es el token que el modelo intentará predecir.

vocab_file (`str`, *opcional*) : archivo [SentencePiece](https://github.com/google/sentencepiece) (generalmente con extensión *.spm*) que contiene el vocabulario necesario para instanciar un tokenizador.

vocab (`str`, `dict` o `list`, *opcional*) : Diccionario de vocabulario personalizado. Si no se proporciona, el vocabulario se carga desde vocab_file.

add_prefix_space (`bool`, *opcional*, valor predeterminado `True`) : Indica si se debe añadir un espacio inicial a la entrada. Esto permite tratar la palabra inicial como cualquier otra palabra.

Adaptado de [CamembertTokenizer](/docs/transformers/main/es/model_doc/camembert#transformers.CamembertTokenizer) y [BartTokenizer](/docs/transformers/main/es/model_doc/led#transformers.RobertaTokenizer). Construye un tokenizador "fast" de BARThez. Basado en [SentencePiece](https://github.com/google/sentencepiece).

Este tokenizador hereda de [PreTrainedTokenizerFast](/docs/transformers/main/es/main_classes/tokenizer#transformers.TokenizersBackend), que contiene la mayoría de los métodos principales. Los usuarios deben consultar esta superclase para obtener más información sobre dichos métodos.

