Uw gegevens voorbereiden om een chatvoltooiingsmodel af te stemmen

Voltooid

Het verfijnen omvat het combineren van een geschikt basismodel voor gebruik als basis en met een set trainingsgegevens met voorbeeldprompts en antwoorden waaruit het model kan leren.

Diagram van een basismodel plus trainingsgegevens, wat resulteert in een nauwkeurig afgestemd model.

Wanneer u besluit dat u een taalmodel wilt verfijnen, moet u de gegevensset identificeren die u kunt gebruiken om uw taalmodel af te stemmen.

Net als bij elk machine learning-model heeft de kwaliteit van de gegevensset een groot effect op de kwaliteit van uw model. Hoewel u minder gegevens nodig hebt dan wanneer u een volledig nieuw taalmodel zou trainen, hebt u mogelijk nog steeds voldoende gegevens nodig om de consistentie van het gewenste modelgedrag te maximaliseren. Hoeveel gegevens u nodig hebt, is afhankelijk van uw use-case.

Wanneer u een taalmodel voor voltooiing van chats verfijnt, zijn de gegevens die u gebruikt om een model af te stemmen een verzameling voorbeeldgesprekken. Meer specifiek moeten de gegevens drie onderdelen bevatten:

  • Het systeembericht
  • Het gebruikersbericht
  • Antwoord van de assistent

De drie variabelen komen samen in een JSON-lijn of JSONL-bestand. Eén regel in een dergelijke gegevensset kan er bijvoorbeeld als volgt uitzien:

{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Is Xbox better than PlayStation?"}, {"role": "assistant", "content": "I apologize, but I cannot provide personal opinions. My primary job is to assist you with any issues related to your Xbox device. Do you have any Xbox-related issues that need addressing?"}]}

In de gegevensset moet het ideale gedrag van het model worden weergegeven. U kunt deze gegevensset maken op basis van de chatgeschiedenis van een chattoepassing die u hebt. Houd rekening met enkele dingen om rekening mee te houden wanneer u echte gegevens gebruikt:

  • Verwijder persoonlijke of gevoelige informatie.
  • U kunt zich niet alleen richten op het maken van een grote trainingsgegevensset, maar ook om ervoor te zorgen dat uw gegevensset diverse voorbeelden bevat.

U kunt meerdere beurten van een gesprek opnemen op één regel in de gegevensset. Als u alleen specifieke assistentberichten wilt afstemmen, kunt u eventueel het weight sleutel-waardepaar gebruiken. Wanneer het gewicht is ingesteld op 0, wordt het bericht genegeerd. Wanneer het gewicht is ingesteld op 1, wordt het bericht opgenomen voor training.

Een voorbeeld van een meerstaps chatbestandformaat met gewichten:

{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the capital of France?"}, {"role": "assistant", "content": "Paris", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Paris, as if everyone doesn't know that already.", "weight": 1}]}

Wanneer u uw gegevensset voorbereidt om een taalmodel af te stemmen, moet u het gewenste modelgedrag begrijpen, een gegevensset maken in JSONL-indeling en ervoor zorgen dat de voorbeelden die u opneemt van hoge kwaliteit en divers zijn. Door uw gegevensset voor te bereiden, hebt u een hogere kans dat het nauwkeurig afgestemde model de prestaties van uw chattoepassing verbetert.