Préparer des données pour le réglage précis du modèle Foundation
Important
Cette fonctionnalité est disponible en préversion publique dans les régions suivantes : centralus
, eastus
, eastus2
, northcentralus
et westus
.
Cet article décrit les formats de fichiers de données d'apprentissage et d'évaluation acceptés pour l'affinage de modèle Foundation (qui fait désormais partie de la Formation de Modèles AI de Mosaic).
Notebook : Validation des données pour les sessions d’entraînement
Le notebook suivant montre comment valider vos données. Il est conçu pour s’exécuter indépendamment avant de commencer l’entraînement. Il valide que vos données sont au format correct pour le réglage précis du modèle Foundation et incluent du code pour vous aider à estimer les coûts pendant l’exécution de l’entraînement en tokenisant votre jeu de données brut.
Notebook de validation des données pour les exécutions d’entraînement
Préparer les données pour l’achèvement de la conversation
Pour les tâches d’achèvement de conversation, les données au format conversation doivent se trouver dans un fichier .jsonl, où chaque ligne est un objet JSON distinct représentant une session de conversation unique. Chaque session de conversation est représentée sous la forme d’un objet JSON avec une clé unique, messages
, qui est mappée à un tableau d’objets de message. Pour effectuer l’apprentissage sur les données de conversation, fournissez task_type = 'CHAT_COMPLETION'
lorsque vous créez votre session d'apprentissage.
Les messages au format de conversation sont automatiquement mis en forme selon le modèle de conversation , il n'est donc pas nécessaire d’ajouter des jetons spéciaux pour signaler manuellement le début ou la fin d’un tour de conversation. Un exemple de modèle qui utilise un modèle de conversation personnalisé est Meta Llama 3.1 8B Instruct.
Chaque objet de message dans le tableau représente un message unique dans la conversation et est structuré de la manière suivante :
role
: chaîne indiquant l’auteur du message. Les valeurs possibles sontsystem
,user
etassistant
. Si le rôle estsystem
, il doit s’agir de la première conversation dans la liste des messages. Il doit y avoir au moins un message avec le rôleassistant
, et tous les messages après l’invite système (facultatif) doivent alterner les rôles entre l’utilisateur et l’assistant. Il ne doit pas y avoir deux messages adjacents avec le même rôle. Le dernier message du tableaumessages
doit avoir le rôleassistant
.content
: chaîne contenant le texte du message.
Remarque
Les modèles Mistral n’acceptent pas system
rôles dans leurs formats de données.
Voici un exemple de données au format conversation :
{"messages": [
{"role": "system", "content": "A conversation between a user and a helpful assistant."},
{"role": "user", "content": "Hi there. What's the capital of the moon?"},
{"role": "assistant", "content": "This question doesn't make sense as nobody currently lives on the moon, meaning it would have no government or political institutions. Furthermore, international treaties prohibit any nation from asserting sovereignty over the moon and other celestial bodies."},
]
}
Préparer les données pour un préentraînement continu
Pour les tâches de préentraînement continu, les données d’entraînement sont vos données de texte non structurées. Les données d’apprentissage doivent se trouver dans un volume de catalogue Unity contenant des fichiers .txt. Chaque fichier .txt est traité comme un seul exemple. Si vos fichiers .txt se trouvent dans un dossier de volume catalogue Unity, ces fichiers sont également obtenus pour vos données d’apprentissage. Tous les fichiers non txt du volume sont ignorés. Consultez Charger des fichiers dans un volume Unity Catalog.
L’image suivante montre les fichiers exemple .txt dans un volume de Unity Catalog. Pour utiliser ces données dans votre configuration continue de l’exécution de pré-apprentissage, définissez train_data_path = "dbfs:/Volumes/main/finetuning/cpt-data"
et task_type = 'CONTINUED_PRETRAIN'
.
Mettre en forme des données vous-même
Avertissement
Les conseils de cette section ne sont pas recommandés, mais disponibles pour les scénarios où la mise en forme des données personnalisées est requise.
Databricks recommande vivement d’utiliser données mises en forme par conversation afin que la mise en forme appropriée soit automatiquement appliquée à vos données en fonction du modèle que vous utilisez.
Le réglage précis du modèle de base vous permet d’effectuer vous-même une mise en forme des données. Toute mise en forme des données doit être appliquée lors de l’entraînement et du service de votre modèle. Pour entraîner votre modèle à l’aide de vos données mises en forme, définissez task_type = 'INSTRUCTION_FINETUNE'
lorsque vous créez votre exécution d’entraînement.
Les données d’apprentissage et d’évaluation doivent se trouver dans l’un des schémas suivants :
Paires d’invite et de réponse.
{"prompt": "your-custom-prompt", "response": "your-custom-response"}
Paires d’invite et d’achèvement.
{"prompt": "your-custom-prompt", "completion": "your-custom-response"}
Important
La réponse aux prompts et la complétion des prompts ne sont pasbasées sur un modèle : la création de modèles spécifiques à un modèle, comme la mise en forme d’instruction de Mistral, doit donc être effectuée à titre d’étape de prétraitement.
Formats de données pris en charge
Voici les formats de données pris en charge :
Volume de catalogue Unity avec un fichier
.jsonl
. Les données d’apprentissage doivent être au format JSONL, où chaque ligne est un objet JSON valide. L’exemple suivant montre un exemple de paire d’invite et de réponse :{"prompt": "What is Databricks?","response": "Databricks is a cloud-based data engineering platform that provides a fast, easy, and collaborative way to process large-scale data."}
Table Delta qui respecte l’un des schémas acceptés mentionnés ci-dessus. Pour les tables Delta, vous devez fournir un paramètre
data_prep_cluster_id
pour le traitement des données. Consultez Configurer une exécution d’entraînement.Un jeu de données Hugging Face public.
Si vous utilisez un jeu de données Hugging Face public comme données d’apprentissage, spécifiez le chemin complet avec le fractionnement, par exemple,
mosaicml/instruct-v3/train and mosaicml/instruct-v3/test
. Cela tient compte des jeux de données qui ont des schémas fractionnés différents. Les jeux de données imbriqués de Hugging Face ne sont pas pris en charge.Pour obtenir un exemple plus complet, consultez le jeu de données
mosaicml/dolly_hhrlhf
sur Hugging Face.Les exemples de lignes de données suivants proviennent du jeu de données
mosaicml/dolly_hhrlhf
.{"prompt": "Below is an instruction that describes a task. Write a response that appropriately completes the request. ### Instruction: what is Databricks? ### Response: ","response": "Databricks is a cloud-based data engineering platform that provides a fast, easy, and collaborative way to process large-scale data."} {"prompt": "Below is an instruction that describes a task. Write a response that appropriately completes the request. ### Instruction: Van Halen famously banned what color M&Ms in their rider? ### Response: ","response": "Brown."}