Delen via


Gegevens voorbereiden voor het afstemmen van Foundation Model

Belangrijk

Deze functie bevindt zich in openbare preview in de volgende regio's: , centralus, eastus, en eastus2northcentralus.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

Notebook downloaden

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, messagesdie 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 zijn system, useren assistant. Als de rol is system, moet dit de eerste chat in de berichtenlijst zijn. Er moet ten minste één bericht met de rol assistantzijn 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 de messages matrix moet de rol hebben assistant.
  • 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.

UC Volume met doorlopende voorbeelden van vooraf getrainde gegevenssetbestanden

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."}