> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://fr.nvidia-localization.ferndocs.com/fr/nemo/rl/0-3-0/data-format/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://fr.nvidia-localization.ferndocs.com/_mcp/server. # Format des Données Ce guide décrit le format de données requis pour les ensembles de données de chat Hugging Face et montre comment utiliser des modèles de chat avec les tokenizers Hugging Face pour ajouter des jetons spéciaux ou des informations spécifiques à une tâche. ## Ensembles de Données de Chat Hugging Face Les ensembles de données de chat Hugging Face doivent avoir la structure suivante : Chaque exemple de l'ensemble de données doit être un dictionnaire avec une clé `messages`. Les `messages` doivent être une liste de dictionnaires, chacun ayant une clé `role` et `content`. Le `role` a généralement l'une des valeurs suivantes : `system`, `user` et `assistant`. Par exemple : ```json { "messages": [ { "role": "system", "content": "Ceci est un message système utile." }, { "role": "user", "content": "Voici une question d'utilisateur" }, { "role": "assistant", "content": "Voici la réponse de l'assistant." } ] } ``` ## Modèles de Chat La mise en forme des données de cette manière nous permet de tirer parti de la fonctionnalité `apply_chat_template` des tokenizers Hugging Face pour combiner les messages. Les modèles de chat peuvent être utilisés pour ajouter des jetons spéciaux ou des informations spécifiques à une tâche à chaque exemple de l'ensemble de données. Consultez la [documentation HuggingFace apply\_chat\_template](https://huggingface.co/docs/transformers/main/en/chat_templating#using-applychattemplate) pour plus de détails. Par défaut, `apply_chat_template` tente d'appliquer le `chat_template` associé au tokenizer. Cependant, dans certains cas, les utilisateurs peuvent souhaiter spécifier leur propre modèle de chat. Notez également que de nombreux tokenizers n'ont pas de `chat_template` associés, auquel cas un modèle de chat explicite est requis. Les utilisateurs peuvent spécifier une chaîne de modèle de chat explicite au format Jinja et la transmettre à `apply_chat_template`. Voici un exemple utilisant un modèle simple qui ajoute un en-tête de rôle à chaque tour : ```{testcode} from transformers import AutoTokenizer example_template = "{% for message in messages %}{% set content = '<|start_header_id|>' + message['role'] + '<|end_header_id|>\n\n'+ message['content'] | trim + '<|eot_id|>' %}{{ content }}{% endfor %}" example_input = [ { 'role': 'user', 'content': 'Bonjour !' }, { 'role': 'assistant', 'content': 'Salut !' } ] tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3.2-1B") output = tokenizer.apply_chat_template(example_input, chat_template=example_template, tokenize=False) ## c'est la chaîne de sortie que nous attendons expected_output = '<|start_header_id|>user<|end_header_id|>\n\nBonjour !<|eot_id|><|start_header_id|>assistant<|end_header_id|>\n\nSalut !<|eot_id|>' assert output == expected_output ``` ```{testoutput} :hide: ``` Pour plus de détails sur la création de modèles de chat, consultez la [documentation Hugging Face](https://huggingface.co/docs/transformers/v4.34.0/en/chat_templating#how-do-i-create-a-chat-template).