Werken met tekstvoltooiingen in Azure OpenAI

Voltooid

De GPT-35-Turbo- en GPT-4-modellen zijn taalmodellen die zijn geoptimaliseerd voor gespreksinterfaces. De modellen gedragen zich anders dan de oudere GPT-3-modellen. Vorige modellen waren tekst-in en tekst-out, wat betekent dat ze een prompttekenreeks hebben geaccepteerd en een voltooiing hebben geretourneerd om aan de prompt toe te voegen zoals u zojuist hebt geleerd.

De GPT-35-Turbo- en GPT-4-modellen zijn echter gespreks- en berichtuitval. De modellen verwachten invoer die is opgemaakt in een specifieke transcriptie-indeling zoals chat en retourneert een voltooiing die een modelgeschreven bericht in de chat vertegenwoordigt.

GPT-35-Turbo en GPT-4 kunnen nog steeds tekstvoltooiingen accepteren en genereren, maar waar ze schijnen met chatten.

In Azure OpenAI zijn er twee verschillende opties voor interactie met dit type modellen:

  • Api voor voltooiing van chat.
  • Voltooiings-API met Chat Markup Language (ChatML).

De CHAT-voltooiings-API is een nieuwe toegewezen API voor interactie met de GPT-35-Turbo- en GPT-4-modellen en we gebruiken deze als we hier gaan.

Inzicht in de API-rollen voor chatvoltooiing

OpenAI heeft de GPT-35-Turbo- en GPT-4-modellen getraind om invoer te accepteren die is opgemaakt als een gesprek. Elke invoer of prompt die naar het model wordt verzonden en elk antwoord dat door het model wordt geretourneerd, wordt toegevoegd aan een algemeen gesprek in de CHAT-voltooiings-API.

De API voor chatvoltooiing verwijst naar de binnenkomende prompts en uitgaande antwoorden als berichten.

Het model accepteert een matrix met berichtobjecten met een gesprek dat is georganiseerd op basis van rollen. Er zijn drie typen rollen: Systeem, Gebruiker en Assistent.

De systeemrol

De systeemrol wordt ook wel het systeembericht genoemd, wordt aan het begin van de matrix opgenomen. Dit bericht bevat de eerste instructies voor het model. U kunt verschillende informatie opgeven in de systeemrol, waaronder:

  • Een korte beschrijving van de assistent
  • Persoonlijkheidskenmerken van de assistent
  • Instructies of regels die u wilt volgen door de assistent
  • Gegevens of informatie die nodig is voor het model, zoals relevante vragen uit een veelgestelde vragen

U kunt de systeemrol aanpassen voor uw use-case of alleen basisinstructies opnemen. De systeemrol/het bericht is optioneel, maar het wordt aanbevolen om ten minste een basisrol op te nemen om de beste resultaten te krijgen.

De gebruikers- en assistentrollen

Het gesprek vindt plaats tussen een gebruiker en de assistent. De gebruiker is de persoon die prompts invoert en communiceert met het model. De antwoorden van het model worden vertegenwoordigd door de systeemrol.

Het bericht dat de gebruiker naar het model verzendt, moet de aanbevolen procedures volgen voor het ontwerpen van prompts om de antwoorden van de hoogste kwaliteit te verkrijgen.

Voorbeelden van berichtprompt

Hier volgen enkele voorbeelden van verschillende stijlen met prompts die u kunt gebruiken met de GPT-35-Turbo- en GPT-4-modellen. De voorbeelden zijn slechts een uitgangspunt en u kunt experimenteren met verschillende prompts om het gedrag aan te passen.

Basisvoorbeeld

Als u wilt dat het GPT-35-Turbo-model zich op dezelfde manier gedraagt als chat.openai.com, kunt u een eenvoudig systeembericht gebruiken, zoals 'Assistent is een groottaalmodel dat is getraind door OpenAI'.

In de volgende les leert u hoe u de .NET SDK van de CHAT-voltooiings-API gebruikt. We houden nu vast aan variabelenamen als voorbeeld.


string systemMessage = "Assistant is a large language model trained by OpenAI";
string userMessage = "Who were the founders of Microsoft?";

Voorbeeld met instructies

Voor sommige scenario's wilt u mogelijk aanvullende instructies geven aan het model om kaders te definiƫren voor wat het model kan doen.

string systemMessage = """
Assistant is an intelligent chatbot designed to help users answer their tax related questions.
Instructions: 
- Only answer questions related to taxes. 
- If you're unsure of an answer, you can say "I don't know" or "I'm not sure" and recommend users go to the IRS website for more information. 
""";

string userMessage = "When are my taxes due?";

Gesprekken beheren

Het model heeft geen geheugen, dus er is een bijgewerkte transcriptie nodig met elke nieuwe vraag met alle vragen en antwoorden, anders gaat de context verloren.

Dit betekent dat u het hele, bijgewerkte gesprek naar het model moet verzenden telkens wanneer u ermee werkt en dat de tokenlimiet voor elk model eenvoudig kan worden bereikt.

De tokenlimiet voor gpt-35-turbo respectievelijk 4096 tokens, terwijl de tokenlimieten voor gpt-4 respectievelijk gpt-4-32k 8192 en 32768 zijn. U moet onder deze limieten blijven, anders ontvangt u een foutmelding.

U kunt het aantal tokens bijhouden en de oudste berichten verwijderen uit de matrix die naar het model is verzonden. Het is raadzaam om altijd het systeembericht te behouden en alleen assistent- of gebruikersberichten te verwijderen. In de loop van de tijd kan deze methode voor het beheren van het gesprek ertoe leiden dat de gesprekskwaliteit verslechtert omdat de context van eerdere delen van het gesprek verloren gaat.

Als de tokenlimiet is bereikt, kunt u de gebruiker ook vragen een nieuw gesprek te starten.

Kennis testen

1.

Wat is het belang van de systeemrol?