Gegevens voorbereiden voor het afstemmen van Foundation Model
Belangrijk
Deze functie bevindt zich in openbare preview in de volgende regio's: , centralus
, eastus
, en eastus2
northcentralus
.westus
In dit artikel worden de geaccepteerde bestandsindelingen voor trainings- en evaluatiegegevens voor Foundation Model Fine-tuning (nu onderdeel van Mosaic AI Model Training) beschreven.
Notebook: Gegevensvalidatie voor trainingsuitvoeringen
In het volgende notebook ziet u hoe u uw gegevens kunt valideren. Het is ontworpen om onafhankelijk te worden uitgevoerd voordat u begint met trainen. Het valideert dat uw gegevens de juiste indeling hebben voor Het verfijnen van Foundation Model en bevat code om u te helpen bij het schatten van de kosten tijdens de training, door uw onbewerkte gegevensset te tokeniseren.
Gegevens valideren voor trainingsuitvoeringennotitieblok
Gegevens voorbereiden op voltooiing van chat
Voor taken voor het voltooien van chats moeten gegevens in een .jsonl-bestand staan, waarbij elke regel een afzonderlijk JSON-object is dat één chatsessie vertegenwoordigt. Elke chatsessie wordt weergegeven als een JSON-object met één sleutel, messages
die wordt toegewezen aan een matrix met berichtobjecten. Als u wilt trainen op chatgegevens, geeft u de task_type = 'CHAT_COMPLETION'
op wanneer u uw trainingsuitvoering maakt.
Chatberichten worden automatisch opgemaakt volgens de chatsjabloon van het model, dus u hoeft geen speciale chattokens toe te voegen om het begin of einde van een chat handmatig aan te geven. Een voorbeeld van een model dat gebruikmaakt van een aangepaste chatsjabloon is Meta Llama 3.1 8B Instruct.
Elk berichtobject in de matrix vertegenwoordigt één bericht in het gesprek en heeft de volgende structuur:
-
role
: Een tekenreeks die de auteur van het bericht aangeeft. Mogelijke waarden zijnsystem
,user
enassistant
. Als de rol issystem
, moet dit de eerste chat in de berichtenlijst zijn. Er moet ten minste één bericht met de rolassistant
zijn en alle berichten na de (optionele) systeemprompt moeten wisselen tussen de gebruiker/assistent. Er mogen geen twee aangrenzende berichten met dezelfde rol zijn. Het laatste bericht in demessages
matrix moet de rol hebbenassistant
. -
content
: Een tekenreeks die de tekst van het bericht bevat.
Notitie
Mistrale modellen accepteren system
geen rollen in hun gegevensindelingen.
Hier volgt een voorbeeld van gegevens in chatindeling:
{"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."},
]
}
Gegevens voorbereiden voor vervolgtraining
Voor vervolgtrainingstaken zijn de trainingsgegevens uw ongestructureerde tekstgegevens. De trainingsgegevens moeten zich in een Unity Catalog-volume bevinden dat .txt bestanden bevat. Elk .txt bestand wordt behandeld als één voorbeeld. Als uw .txt bestanden zich in een volumemap van Unity Catalog bevinden, worden deze bestanden ook verkregen voor uw trainingsgegevens. Alle niet-TXT-bestanden in het volume worden genegeerd. Zie Bestanden uploaden naar een Unity Catalog-volume.
In de volgende afbeelding ziet u een voorbeeld van .txt bestanden in een Unity Catalog-volume. Als u deze gegevens wilt gebruiken in uw vervolgconfiguratie voor de uitvoering van de training, stelt u train_data_path = "dbfs:/Volumes/main/finetuning/cpt-data"
in en stelt u task_type = 'CONTINUED_PRETRAIN'
in.
Zelf gegevens opmaken
Waarschuwing
De richtlijnen in deze sectie worden niet aanbevolen, maar zijn beschikbaar voor scenario's waarin aangepaste gegevensopmaak is vereist.
Databricks raadt u ten zeerste aan om chatgeformatteerde gegevens te gebruiken, zodat de juiste opmaak automatisch wordt toegepast op uw gegevens op basis van het model dat u gebruikt.
Met Het verfijnen van het Foundation-model kunt u zelf gegevensopmaak uitvoeren. Gegevensformatering moet worden toegepast bij het trainen en inzetten van uw model. Als u uw model wilt trainen met behulp van uw opgemaakte gegevens, stelt u task_type = 'INSTRUCTION_FINETUNE'
in wanneer u de trainingsuitvoering maakt.
De trainings- en evaluatiegegevens moeten in een van de volgende schema's staan:
Prompt- en antwoordparen.
{"prompt": "your-custom-prompt", "response": "your-custom-response"}
Prompt- en voltooiingsparen.
{"prompt": "your-custom-prompt", "completion": "your-custom-response"}
Belangrijk
Prompt-response en prompt-voltooiing worden nietsjabloond, dus modelspecifieke tempatie, zoals mistral's instructopmaak , moet worden uitgevoerd als een voorverwerkingsstap.
Ondersteunde gegevensindelingen
Hieronder ziet u ondersteunde gegevensindelingen:
Een Unity Catalog-volume met een
.jsonl
bestand. De trainingsgegevens moeten de JSONL-indeling hebben, waarbij elke regel een geldig JSON-object is. In het volgende voorbeeld ziet u een voorbeeld van een prompt- en antwoordpaar:{"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."}
Een Delta-tabel die voldoet aan een van de hierboven genoemde geaccepteerde schema's. Voor Delta-tabellen moet u een
data_prep_cluster_id
parameter opgeven voor gegevensverwerking. Zie Een trainingsuitvoering configureren.Een openbare gegevensset met een knuffelend gezicht.
Als u een openbare Hugging Face-gegevensset gebruikt als uw trainingsgegevens, geeft u het volledige pad op met de splitsing, bijvoorbeeld
mosaicml/instruct-v3/train and mosaicml/instruct-v3/test
. Dit is een account voor gegevenssets met verschillende gesplitste schema's. Geneste gegevenssets van Hugging Face worden niet ondersteund.Zie de
mosaicml/dolly_hhrlhf
gegevensset op Hugging Face voor een uitgebreider voorbeeld.De volgende voorbeeldrijen met gegevens zijn afkomstig uit de
mosaicml/dolly_hhrlhf
gegevensset.{"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."}