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, eastus2, en northcentraluswestus.

In dit artikel worden de geaccepteerde bestandsindelingen voor trainings- en evaluatiegegevens voor de Foundation Model Fine-tuning (nu onderdeel van Mozaïek AI Model Training) taken beschreven: onder supervisie afstemmen, voltooien van chats en vervolgtraining.

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 voor afstemming onder supervisie

Voor taken onder supervisie kunnen de trainingsgegevens zich in een van de volgende schema's hebben:

  • Prompt- en antwoordparen.

    {"prompt": "your-custom-prompt", "response": "your-custom-response"}
    
  • Prompt- en voltooiingsparen.

    {"prompt": "your-custom-prompt", "completion": "your-custom-response"}
    

Notitie

Prompt-response en prompt-voltooiing worden niet sjabloond, dus modelspecifieke tempatie, zoals mistral's instructopmaak , moet worden uitgevoerd als een voorverwerkingsstap.

Geaccepteerde gegevensindelingen zijn:

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

Gegevens voorbereiden voor voltooiing van chat

Voor taken voor het voltooien van chats moeten de gegevens in chatindeling een bestandsindeling .jsonl hebben, 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 gewoon de task_type = 'CHAT_COMPLETION'.

Berichten in chatindeling 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 te signaleren. Een voorbeeld van een model dat gebruikmaakt van een aangepaste chatsjabloon, is Mistral-instruct.

Notitie

Mistrale modellen accepteren system geen rollen in hun gegevensindelingen.

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", "user"en "assistant". Als de rol is system, moet dit de eerste chat in de berichtenlijst zijn. Er moet ten minste één bericht met de rol "assistant"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 de "messages" matrix moet de rol hebben "assistant".
  • content: Een tekenreeks die de tekst van het bericht bevat.

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 met bestanden bevinden .txt . 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-bestandentxt in het volume worden genegeerd. Zie Bestanden uploaden naar een Unity Catalog-volume.

In de volgende afbeelding ziet u voorbeeldbestanden .txt in een Unity Catalog-volume. Als u deze gegevens wilt gebruiken in uw vervolgconfiguratie voor de uitvoering van de training, stelt u deze in train_data_path = "dbfs:/Volumes/main/finetuning/cpt-data".

UC Volume met doorlopende voorbeelden van vooraf getrainde gegevenssetbestanden