Préparer les données pour l'affinement du modèle de fondation (obsolète)
L'affinement des modèles de fondation est obsolète et devrait être supprimé le 14 août 2026. Les exécutions d'affinement existantes continuent de fonctionner et peuvent être réentraînées, mais les nouvelles installations du package databricks_genai et de l'interface utilisateur d'affinement du modèle de fondation seront bloquées après cette date.
Databricks vous recommande de migrer vers AI Runtime, qui fournit un environnement serverless, basé sur un GPU, pour l'entraînement et l'affinement des modèles de base.
Aperçu
Cette fonctionnalité est en Aperçu public dans us-east-1 et us-west-2.
Cet article décrit les formats de fichier de données d'entraînement et d'évaluation acceptés pour l'affinement de modèle de base (maintenant partie de Databricks Model Training).
Notebook : validation des données pour les exécutions d'entraînement
Le Notebook suivant montre comment valider vos données. Il est conçu pour s'exécuter indépendamment avant que vous ne commenciez la formation. Il valide que vos données sont au bon format pour l'affinement du modèle de fondation et inclut du code pour vous aider à estimer les coûts pendant l'exécution de l'entraînement en tokenisant votre dataset brut.
Valider les données pour les exécutions d'entraînement Notebook
Préparez les données pour l'achèvement du chat.
Pour les tâches d'achèvement de chat, les données formatées pour le chat doivent être dans un fichier .jsonl. fichier, où chaque ligne est un objet JSON distinct représentant une seule session de chat. Chaque session de chat est représentée comme un objet JSON avec une seule clé, messages, qui mappe à un tableau d'objets message. Pour entraîner sur des données de chat, fournissez le task_type = 'CHAT_COMPLETION' lorsque vous créez votre exécution d'entraînement.
Les messages au format de chat sont automatiquement mis en forme en fonction du Template de chat du modèle, il n'est donc pas nécessaire d'ajouter des jetons de chat spéciaux pour signaler manuellement le début ou la fin d'un tour de chat. Un exemple de modèle qui utilise un Template de chat personnalisé est Meta Llama 3.1 8B Instruct.
Chaque objet de message dans le tableau représente un seul message dans la conversation et a la structure suivante :
role: Une chaîne de caractères indiquant l'auteur du message. Les valeurs possibles sontsystem,useretassistant. Si le rôle estsystem, il doit être le premier chat de la liste des messages. Il doit y avoir au moins un message avec le rôleassistant, et tout message après l'invite système (facultative) doit alterner les rôles entre utilisateur/assistant. Il ne doit pas y avoir deux messages adjacents avec le même rôle. Le dernier message du tableaumessagesdoit avoir le rôleassistant.content: Chaîne contenant le texte du message.
Les modèles Mistral n'acceptent pas les rôles system dans leurs formats de données.
Voici un exemple de données au format chat :
{
"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 la pré-formation continue
Pour les tâches de pré-entraînement continu, les données d'entraînement sont vos données textuelles non structurées. Les données d'entraînement doivent se trouver dans un volume Unity Catalog contenant des fichiers .txt fichiers. Chaque fichier .txt le fichier est traité comme un échantillon unique. Si votre .txt si les fichiers se trouvent dans un dossier de volume Unity Catalog, ces fichiers sont également obtenus pour vos données d'entraînement. Tous les fichiers non .txt dans le volume sont ignorés. Consultez Utiliser des fichiers dans les volumes Unity Catalog.
L'image suivante montre un fichier .txt d'exemple fichiers dans un volume Unity Catalog. Pour utiliser ces données dans votre configuration d'exécution de pré-formation continue, définissez train_data_path = "dbfs:/Volumes/main/finetuning/cpt-data" et définissez task_type = 'CONTINUED_PRETRAIN'.

Formatez vous-même les données.
Les conseils de cette section ne sont pas recommandés, mais disponibles pour les scénarios où un formatage de données personnalisé est requis.
Databricks recommande fortement d'utiliser des données au format conversationnel afin que le formatage approprié soit automatiquement appliqué à vos données en fonction du modèle que vous utilisez.
L'affinement des modèles de fondation vous permet d'effectuer le formatage des données vous-même. 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 formatées, définissez task_type = 'INSTRUCTION_FINETUNE' lorsque vous créez votre exécution d'entraînement.
Les données de formation et d'évaluation doivent être dans l'un des schémas suivants :
-
Paires de prompts et de réponses.
JSON{ "prompt": "your-custom-prompt", "response": "your-custom-response" } -
Paires de prompt et de complétion.
JSON{ "prompt": "your-custom-prompt", "completion": "your-custom-response" }
La réponse aux prompts et la complétion de prompts ne sont pas générées à partir de modèles. Toute modélisation spécifique au modèle, telle que le formatage d'instructions de Mistral, doit donc être effectuée en tant qu'étape de prétraitement.
Formats de données pris en charge
Les formats de données pris en charge sont les suivants :
-
Un volume Unity Catalog avec un fichier
.jsonl. Les données d'entraînement doivent être au format JSONL, où chaque ligne est un objet JSON valide. L'exemple suivant montre un exemple de paire d'invites et de réponses :JSON{
"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."
} -
Une table Delta qui adhère à l'un des schémas acceptés mentionnés ci-dessus. Pour les tables Delta, vous devez fournir un
data_prep_cluster_idparameter pour le traitement des données. Consultez Configurer une exécution d'entraînement. -
Un dataset public Hugging Face.
Si vous utilisez un dataset public Hugging Face comme données d'entraînement, spécifiez le chemin complet avec le fractionnement, par exemple,
mosaicml/instruct-v3/train and mosaicml/instruct-v3/test. Cela tient compte des datasets qui ont des schémas de division différents. Les jeux de données imbriqués de Hugging Face ne sont pas pris en charge.Pour un exemple plus détaillé, consultez le dataset
mosaicml/dolly_hhrlhfsur Hugging Face.Les lignes de données d'exemple suivantes proviennent du dataset
mosaicml/dolly_hhrlhf.JSON{"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."}