De Meta Llama-familie van modellen gebruiken
Belangrijk
Items die in dit artikel zijn gemarkeerd (preview) zijn momenteel beschikbaar als openbare preview. Deze preview wordt aangeboden zonder een service level agreement en we raden deze niet aan voor productieworkloads. Misschien worden bepaalde functies niet ondersteund of zijn de mogelijkheden ervan beperkt. Zie Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews voor meer informatie.
In dit artikel leert u meer over de Meta Llama-familie van modellen en hoe u ze kunt gebruiken. Meta Llama-modellen en -hulpprogramma's zijn een verzameling vooraf getrainde en verfijnde AI-tekst- en afbeeldingsredenmodellen, variërend van schaal van SLM's (1B, 3B Base- en Instruct-modellen) voor apparaat- en randdeductie : tot middelgrote LLM's (7B- 8B- en 70B Base- en Instruct-modellen) en hoogwaardige modellen zoals Meta Llama 3.1 405B Instruct voor synthetische gegevensgeneratie- en distillatiegebruiksscenario's.
Bekijk onze aankondigingen van Meta's Llama 3.2-familiemodellen die nu beschikbaar zijn op Azure AI Model Catalog via de blog van Meta en microsoft Tech Community Blog.
Belangrijk
Modellen die in preview zijn, worden gemarkeerd als voorbeeld op hun modelkaarten in de modelcatalogus.
Meta Llama-familie van modellen
De Meta Llama-familie van modellen bevat de volgende modellen:
De Llama 3.2-verzameling van SLM's en modellen voor afbeeldingsredenering zijn nu beschikbaar. Binnenkort beschikbaar is Llama 3.2 11B Vision Instruct and Llama 3.2 90B Vision Instruct beschikbaar als een serverloos API-eindpunt via Models-as-a-Service. Vanaf vandaag zijn de volgende modellen beschikbaar voor implementatie via beheerde compute:
- Llama 3.2 1B
- Llama 3.2 3B
- Llama 3.2 1B Instruct
- Llama 3.2 3B Instruct
- Llama Guard 3 1B
- Llama Guard 11B Vision
- Llama 3.2 11B Vision Instruct
- Llama 3.2 90B Vision Instruct is beschikbaar voor beheerde rekenimplementatie.
Vereisten
Als u Meta Llama-modellen wilt gebruiken met Azure AI Foundry, hebt u de volgende vereisten nodig:
Een modelimplementatie
Implementatie naar serverloze API's
Meta Llama-modellen kunnen worden geïmplementeerd op serverloze API-eindpunten met betalen per gebruik-facturering. Dit soort implementatie biedt een manier om modellen als API te gebruiken zonder deze te hosten in uw abonnement, terwijl de bedrijfsbeveiliging en -naleving die organisaties nodig hebben, behouden blijven.
Voor implementatie naar een serverloos API-eindpunt is geen quotum van uw abonnement vereist. Als uw model nog niet is geïmplementeerd, gebruikt u de Azure AI Foundry-portal, De Azure Machine Learning SDK voor Python, de Azure CLI of ARM-sjablonen om het model te implementeren als een serverloze API.
Implementatie naar een zelf-hostende beheerde compute
Meta Llama-modellen kunnen worden geïmplementeerd in onze zelf-hostende beheerde deductieoplossing, waarmee u alle details over hoe het model wordt geleverd, kunt aanpassen en beheren.
Voor implementatie naar een zelf-hostende beheerde rekenkracht moet u voldoende quotum in uw abonnement hebben. Als u onvoldoende quotum beschikbaar hebt, kunt u onze tijdelijke quotumtoegang gebruiken door de optie te selecteren die ik wil gebruiken gedeeld quotum en ik bevestig dat dit eindpunt over 168 uur wordt verwijderd.
Het deductiepakket geïnstalleerd
U kunt voorspellingen van dit model gebruiken met behulp van het azure-ai-inference
pakket met Python. Als u dit pakket wilt installeren, hebt u de volgende vereisten nodig:
- Python 3.8 of hoger geïnstalleerd, inclusief pip.
- De eindpunt-URL. Als u de clientbibliotheek wilt maken, moet u de eindpunt-URL doorgeven. De eindpunt-URL heeft het formulier
https://your-host-name.your-azure-region.inference.ai.azure.com
, waaryour-host-name
de hostnaam van uw unieke modelimplementatie is enyour-azure-region
de Azure-regio is waar het model wordt geïmplementeerd (bijvoorbeeld eastus2). - Afhankelijk van uw modelimplementatie en verificatievoorkeur hebt u een sleutel nodig om te verifiëren bij de service of referenties voor Microsoft Entra ID. De sleutel is een tekenreeks van 32 tekens.
Zodra u aan deze vereisten voldoet, installeert u het Azure AI-deductiepakket met de volgende opdracht:
pip install azure-ai-inference
Lees meer over het Azure AI-deductiepakket en de naslaginformatie.
Werken met chatvoltooiingen
In deze sectie gebruikt u de deductie-API van het Azure AI-model met een model voor chatvoltooiing voor chatten.
Tip
Met de Azure AI-modeldeductie-API kunt u communiceren met de meeste modellen die zijn geïmplementeerd in de Azure AI Foundry-portal met dezelfde code en structuur, waaronder Meta Llama Instruct-modellen: alleen tekst of afbeeldingsredenmodellen.
Een client maken om het model te gebruiken
Maak eerst de client om het model te gebruiken. De volgende code maakt gebruik van een eindpunt-URL en -sleutel die zijn opgeslagen in omgevingsvariabelen.
import os
from azure.ai.inference import ChatCompletionsClient
from azure.core.credentials import AzureKeyCredential
client = ChatCompletionsClient(
endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
credential=AzureKeyCredential(os.environ["AZURE_INFERENCE_CREDENTIAL"]),
)
Wanneer u het model implementeert op een zelf-hostend online-eindpunt met ondersteuning voor Microsoft Entra ID , kunt u het volgende codefragment gebruiken om een client te maken.
import os
from azure.ai.inference import ChatCompletionsClient
from azure.identity import DefaultAzureCredential
client = ChatCompletionsClient(
endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
credential=DefaultAzureCredential(),
)
Notitie
Momenteel bieden serverloze API-eindpunten geen ondersteuning voor het gebruik van Microsoft Entra-id voor verificatie.
De mogelijkheden van het model ophalen
De /info
route retourneert informatie over het model dat is geïmplementeerd op het eindpunt. Retourneer de gegevens van het model door de volgende methode aan te roepen:
model_info = client.get_model_info()
Het antwoord is als volgt:
print("Model name:", model_info.model_name)
print("Model type:", model_info.model_type)
print("Model provider name:", model_info.model_provider_name)
Model name: Meta-Llama-3.1-405B-Instruct
Model type: chat-completions
Model provider name: Meta
Een aanvraag voor het voltooien van een chat maken
In het volgende voorbeeld ziet u hoe u een aanvraag voor voltooiing van een eenvoudige chat kunt maken voor het model.
from azure.ai.inference.models import SystemMessage, UserMessage
response = client.complete(
messages=[
SystemMessage(content="You are a helpful assistant."),
UserMessage(content="How many languages are in the world?"),
],
)
Het antwoord is als volgt, waar u de gebruiksstatistieken van het model kunt zien:
print("Response:", response.choices[0].message.content)
print("Model:", response.model)
print("Usage:")
print("\tPrompt tokens:", response.usage.prompt_tokens)
print("\tTotal tokens:", response.usage.total_tokens)
print("\tCompletion tokens:", response.usage.completion_tokens)
Response: As of now, it's estimated that there are about 7,000 languages spoken around the world. However, this number can vary as some languages become extinct and new ones develop. It's also important to note that the number of speakers can greatly vary between languages, with some having millions of speakers and others only a few hundred.
Model: Meta-Llama-3.1-405B-Instruct
Usage:
Prompt tokens: 19
Total tokens: 91
Completion tokens: 72
Inspecteer de usage
sectie in het antwoord om het aantal tokens te zien dat wordt gebruikt voor de prompt, het totale aantal gegenereerde tokens en het aantal tokens dat wordt gebruikt voor de voltooiing.
Inhoud streamen
Standaard retourneert de voltooiings-API de volledige gegenereerde inhoud in één antwoord. Als u lange voltooiingen genereert, kan het wachten op het antwoord vele seconden duren.
U kunt de inhoud streamen om deze te verkrijgen terwijl deze wordt gegenereerd. Met streaming-inhoud kunt u beginnen met het verwerken van de voltooiing wanneer inhoud beschikbaar komt. Deze modus retourneert een object dat het antwoord terugstuurt als gebeurtenissen die alleen door de server worden verzonden. Extraheer segmenten uit het deltaveld in plaats van het berichtveld.
result = client.complete(
messages=[
SystemMessage(content="You are a helpful assistant."),
UserMessage(content="How many languages are in the world?"),
],
temperature=0,
top_p=1,
max_tokens=2048,
stream=True,
)
Als u voltooiingen wilt streamen, stelt u in stream=True
wanneer u het model aanroept.
Als u de uitvoer wilt visualiseren, definieert u een helperfunctie om de stream af te drukken.
def print_stream(result):
"""
Prints the chat completion with streaming.
"""
import time
for update in result:
if update.choices:
print(update.choices[0].delta.content, end="")
U kunt visualiseren hoe streaming inhoud genereert:
print_stream(result)
Meer parameters verkennen die worden ondersteund door de deductieclient
Verken andere parameters die u kunt opgeven in de deductieclient. Zie de naslaginformatie over de Deductie-API voor Azure AI-modellen voor een volledige lijst met alle ondersteunde parameters en de bijbehorende documentatie.
from azure.ai.inference.models import ChatCompletionsResponseFormatText
response = client.complete(
messages=[
SystemMessage(content="You are a helpful assistant."),
UserMessage(content="How many languages are in the world?"),
],
presence_penalty=0.1,
frequency_penalty=0.8,
max_tokens=2048,
stop=["<|endoftext|>"],
temperature=0,
top_p=1,
response_format={ "type": ChatCompletionsResponseFormatText() },
)
Waarschuwing
Meta Llama-modellen bieden geen ondersteuning voor JSON-uitvoeropmaak (response_format = { "type": "json_object" }
). U kunt het model altijd vragen om JSON-uitvoer te genereren. Dergelijke uitvoer is echter niet gegarandeerd geldige JSON.
Als u een parameter wilt doorgeven die niet in de lijst met ondersteunde parameters staat, kunt u deze doorgeven aan het onderliggende model met behulp van extra parameters. Zie Extra parameters doorgeven aan het model.
Extra parameters doorgeven aan het model
Met de Azure AI-modeldeductie-API kunt u extra parameters doorgeven aan het model. In het volgende codevoorbeeld ziet u hoe u de extra parameter logprobs
doorgeeft aan het model.
Voordat u extra parameters doorgeeft aan de deductie-API van het Azure AI-model, moet u ervoor zorgen dat uw model deze extra parameters ondersteunt. Wanneer de aanvraag wordt ingediend bij het onderliggende model, wordt de header extra-parameters
met de waarde pass-through
doorgegeven aan het model. Met deze waarde wordt aan het eindpunt doorgegeven dat de extra parameters aan het model moeten worden doorgegeven. Het gebruik van extra parameters met het model garandeert niet dat het model deze daadwerkelijk kan verwerken. Lees de documentatie van het model om te begrijpen welke extra parameters worden ondersteund.
response = client.complete(
messages=[
SystemMessage(content="You are a helpful assistant."),
UserMessage(content="How many languages are in the world?"),
],
model_extras={
"logprobs": True
}
)
De volgende extra parameters kunnen worden doorgegeven aan Meta Llama-modellen:
Name | Omschrijving | Type |
---|---|---|
n |
Hoeveel voltooiingen moeten worden gegenereerd voor elke prompt. Opmerking: Omdat deze parameter veel voltooiingen genereert, kan deze snel uw tokenquotum gebruiken. | integer |
best_of |
Genereert best_of voltooiingen aan de serverzijde en retourneert het beste (de waarde met de laagste logboekkans per token). Resultaten kunnen niet worden gestreamd. Wanneer deze worden gebruikt, n bepaalt best_of het aantal voltooiingen van de kandidaat en n geeft aan hoeveel u wilt retourneren: best_of moet groter zijn dan n . Opmerking: Omdat deze parameter veel voltooiingen genereert, kan deze snel uw tokenquotum gebruiken. |
integer |
logprobs |
Een getal dat aangeeft dat de logboekkans op de logprobs moet worden opgenomen, waarschijnlijke tokens en de gekozen tokens. Als logprobs bijvoorbeeld 10 zijn, retourneert de API een lijst met de 10 meest waarschijnlijke tokens. de API retourneert altijd de logprob van het voorbeeldtoken, dus er kunnen maximaal logprobs+1 elementen in het antwoord zijn. | integer |
ignore_eos |
Of u het EOS token wilt negeren en tokens wilt blijven genereren nadat het EOS token is gegenereerd. |
boolean |
use_beam_search |
Hiermee wordt aangegeven of de zoekfunctie in plaats van steekproeven moet worden gebruikt. In dat geval moet de best_of temperatuur groter zijn dan 1 en moet de temperatuur 0 zijn. |
boolean |
stop_token_ids |
Lijst met id's voor tokens die, wanneer ze worden gegenereerd, verdere tokengeneratie stoppen. De geretourneerde uitvoer bevat de stoptokens, tenzij de stoptokens speciale tokens zijn. | array |
skip_special_tokens |
Of speciale tokens in de uitvoer moeten worden overgeslagen. | boolean |
Inhoudsveiligheid toepassen
De Azure AI-modeldeductie-API ondersteunt de veiligheid van Azure AI-inhoud. Wanneer u implementaties gebruikt waarbij de veiligheid van Azure AI-inhoud is ingeschakeld, passeren invoer en uitvoer een ensemble van classificatiemodellen die zijn gericht op het detecteren en voorkomen van de uitvoer van schadelijke inhoud. Het systeem voor inhoudsfiltering (preview) detecteert en onderneemt actie op specifieke categorieën van mogelijk schadelijke inhoud in invoerprompts en uitvoervoltooiingen.
In het volgende voorbeeld ziet u hoe gebeurtenissen worden verwerkt wanneer het model schadelijke inhoud detecteert in de invoerprompt en de veiligheid van inhoud is ingeschakeld.
from azure.ai.inference.models import AssistantMessage, UserMessage, SystemMessage
try:
response = client.complete(
messages=[
SystemMessage(content="You are an AI assistant that helps people find information."),
UserMessage(content="Chopping tomatoes and cutting them into cubes or wedges are great ways to practice your knife skills."),
]
)
print(response.choices[0].message.content)
except HttpResponseError as ex:
if ex.status_code == 400:
response = ex.response.json()
if isinstance(response, dict) and "error" in response:
print(f"Your request triggered an {response['error']['code']} error:\n\t {response['error']['message']}")
else:
raise
raise
Tip
Raadpleeg de documentatie over de veiligheid van Azure AI-inhoud voor meer informatie over hoe u de beveiligingsinstellingen voor Azure AI-inhoud kunt configureren en beheren.
Notitie
Azure AI-inhoudsveiligheid is alleen beschikbaar voor modellen die zijn geïmplementeerd als serverloze API-eindpunten.
Meta Llama-modellen
De Meta Llama-modellen bevatten de volgende modellen:
De Meta Llama 3.1 verzameling meertalige grote taalmodellen (LLM's) is een verzameling vooraf getrainde en instructiegestemde modellen in 8B-, 70B- en 405B-grootten (tekst in/tekst uit). De Llama 3.1-instructie die alleen tekstmodellen heeft afgestemd (8B, 70B, 405B) zijn geoptimaliseerd voor meertalige gebruiksscenario's voor dialoog en presteren veel van de beschikbare opensource- en gesloten chatmodellen op algemene benchmarks voor de industrie.
De volgende modellen zijn beschikbaar:
Vereisten
Als u Meta Llama-modellen wilt gebruiken met Azure AI Foundry, hebt u de volgende vereisten nodig:
Een modelimplementatie
Implementatie naar serverloze API's
Meta Llama-modellen kunnen worden geïmplementeerd op serverloze API-eindpunten met betalen per gebruik-facturering. Dit soort implementatie biedt een manier om modellen als API te gebruiken zonder deze te hosten in uw abonnement, terwijl de bedrijfsbeveiliging en -naleving die organisaties nodig hebben, behouden blijven.
Voor implementatie naar een serverloos API-eindpunt is geen quotum van uw abonnement vereist. Als uw model nog niet is geïmplementeerd, gebruikt u de Azure AI Foundry-portal, De Azure Machine Learning SDK voor Python, de Azure CLI of ARM-sjablonen om het model te implementeren als een serverloze API.
Implementatie naar een zelf-hostende beheerde compute
Meta Llama-modellen kunnen worden geïmplementeerd in onze zelf-hostende beheerde deductieoplossing, waarmee u alle details over hoe het model wordt geleverd, kunt aanpassen en beheren.
Voor implementatie naar een zelf-hostende beheerde rekenkracht moet u voldoende quotum in uw abonnement hebben. Als u onvoldoende quotum beschikbaar hebt, kunt u onze tijdelijke quotumtoegang gebruiken door de optie te selecteren die ik wil gebruiken gedeeld quotum en ik bevestig dat dit eindpunt over 168 uur wordt verwijderd.
Het deductiepakket geïnstalleerd
U kunt voorspellingen van dit model gebruiken met behulp van het @azure-rest/ai-inference
pakket van npm
. Als u dit pakket wilt installeren, hebt u de volgende vereisten nodig:
- LTS-versies van
Node.js
metnpm
. - De eindpunt-URL. Als u de clientbibliotheek wilt maken, moet u de eindpunt-URL doorgeven. De eindpunt-URL heeft het formulier
https://your-host-name.your-azure-region.inference.ai.azure.com
, waaryour-host-name
de hostnaam van uw unieke modelimplementatie is enyour-azure-region
de Azure-regio is waar het model wordt geïmplementeerd (bijvoorbeeld eastus2). - Afhankelijk van uw modelimplementatie en verificatievoorkeur hebt u een sleutel nodig om te verifiëren bij de service of referenties voor Microsoft Entra ID. De sleutel is een tekenreeks van 32 tekens.
Nadat u deze vereisten hebt, installeert u de Azure-deductiebibliotheek voor JavaScript met de volgende opdracht:
npm install @azure-rest/ai-inference
Werken met chatvoltooiingen
In deze sectie gebruikt u de deductie-API van het Azure AI-model met een model voor chatvoltooiing voor chatten.
Tip
Met de Azure AI-modeldeductie-API kunt u communiceren met de meeste modellen die zijn geïmplementeerd in de Azure AI Foundry-portal met dezelfde code en structuur, waaronder Meta Llama-modellen.
Een client maken om het model te gebruiken
Maak eerst de client om het model te gebruiken. De volgende code maakt gebruik van een eindpunt-URL en -sleutel die zijn opgeslagen in omgevingsvariabelen.
import ModelClient from "@azure-rest/ai-inference";
import { isUnexpected } from "@azure-rest/ai-inference";
import { AzureKeyCredential } from "@azure/core-auth";
const client = new ModelClient(
process.env.AZURE_INFERENCE_ENDPOINT,
new AzureKeyCredential(process.env.AZURE_INFERENCE_CREDENTIAL)
);
Wanneer u het model implementeert op een zelf-hostend online-eindpunt met ondersteuning voor Microsoft Entra ID , kunt u het volgende codefragment gebruiken om een client te maken.
import ModelClient from "@azure-rest/ai-inference";
import { isUnexpected } from "@azure-rest/ai-inference";
import { DefaultAzureCredential } from "@azure/identity";
const client = new ModelClient(
process.env.AZURE_INFERENCE_ENDPOINT,
new DefaultAzureCredential()
);
Notitie
Momenteel bieden serverloze API-eindpunten geen ondersteuning voor het gebruik van Microsoft Entra-id voor verificatie.
De mogelijkheden van het model ophalen
De /info
route retourneert informatie over het model dat is geïmplementeerd op het eindpunt. Retourneer de gegevens van het model door de volgende methode aan te roepen:
var model_info = await client.path("/info").get()
Het antwoord is als volgt:
console.log("Model name: ", model_info.body.model_name)
console.log("Model type: ", model_info.body.model_type)
console.log("Model provider name: ", model_info.body.model_provider_name)
Model name: Meta-Llama-3.1-405B-Instruct
Model type: chat-completions
Model provider name: Meta
Een aanvraag voor het voltooien van een chat maken
In het volgende voorbeeld ziet u hoe u een aanvraag voor voltooiing van een eenvoudige chat kunt maken voor het model.
var messages = [
{ role: "system", content: "You are a helpful assistant" },
{ role: "user", content: "How many languages are in the world?" },
];
var response = await client.path("/chat/completions").post({
body: {
messages: messages,
}
});
Het antwoord is als volgt, waar u de gebruiksstatistieken van het model kunt zien:
if (isUnexpected(response)) {
throw response.body.error;
}
console.log("Response: ", response.body.choices[0].message.content);
console.log("Model: ", response.body.model);
console.log("Usage:");
console.log("\tPrompt tokens:", response.body.usage.prompt_tokens);
console.log("\tTotal tokens:", response.body.usage.total_tokens);
console.log("\tCompletion tokens:", response.body.usage.completion_tokens);
Response: As of now, it's estimated that there are about 7,000 languages spoken around the world. However, this number can vary as some languages become extinct and new ones develop. It's also important to note that the number of speakers can greatly vary between languages, with some having millions of speakers and others only a few hundred.
Model: Meta-Llama-3.1-405B-Instruct
Usage:
Prompt tokens: 19
Total tokens: 91
Completion tokens: 72
Inspecteer de usage
sectie in het antwoord om het aantal tokens te zien dat wordt gebruikt voor de prompt, het totale aantal gegenereerde tokens en het aantal tokens dat wordt gebruikt voor de voltooiing.
Inhoud streamen
Standaard retourneert de voltooiings-API de volledige gegenereerde inhoud in één antwoord. Als u lange voltooiingen genereert, kan het wachten op het antwoord vele seconden duren.
U kunt de inhoud streamen om deze te verkrijgen terwijl deze wordt gegenereerd. Met streaming-inhoud kunt u beginnen met het verwerken van de voltooiing wanneer inhoud beschikbaar komt. Deze modus retourneert een object dat het antwoord terugstuurt als gebeurtenissen die alleen door de server worden verzonden. Extraheer segmenten uit het deltaveld in plaats van het berichtveld.
var messages = [
{ role: "system", content: "You are a helpful assistant" },
{ role: "user", content: "How many languages are in the world?" },
];
var response = await client.path("/chat/completions").post({
body: {
messages: messages,
}
}).asNodeStream();
Als u voltooiingen wilt streamen, gebruikt .asNodeStream()
u deze wanneer u het model aanroept.
U kunt visualiseren hoe streaming inhoud genereert:
var stream = response.body;
if (!stream) {
stream.destroy();
throw new Error(`Failed to get chat completions with status: ${response.status}`);
}
if (response.status !== "200") {
throw new Error(`Failed to get chat completions: ${response.body.error}`);
}
var sses = createSseStream(stream);
for await (const event of sses) {
if (event.data === "[DONE]") {
return;
}
for (const choice of (JSON.parse(event.data)).choices) {
console.log(choice.delta?.content ?? "");
}
}
Meer parameters verkennen die worden ondersteund door de deductieclient
Verken andere parameters die u kunt opgeven in de deductieclient. Zie de naslaginformatie over de Deductie-API voor Azure AI-modellen voor een volledige lijst met alle ondersteunde parameters en de bijbehorende documentatie.
var messages = [
{ role: "system", content: "You are a helpful assistant" },
{ role: "user", content: "How many languages are in the world?" },
];
var response = await client.path("/chat/completions").post({
body: {
messages: messages,
presence_penalty: "0.1",
frequency_penalty: "0.8",
max_tokens: 2048,
stop: ["<|endoftext|>"],
temperature: 0,
top_p: 1,
response_format: { type: "text" },
}
});
Waarschuwing
Meta Llama-modellen bieden geen ondersteuning voor JSON-uitvoeropmaak (response_format = { "type": "json_object" }
). U kunt het model altijd vragen om JSON-uitvoer te genereren. Dergelijke uitvoer is echter niet gegarandeerd geldige JSON.
Als u een parameter wilt doorgeven die niet in de lijst met ondersteunde parameters staat, kunt u deze doorgeven aan het onderliggende model met behulp van extra parameters. Zie Extra parameters doorgeven aan het model.
Extra parameters doorgeven aan het model
Met de Azure AI-modeldeductie-API kunt u extra parameters doorgeven aan het model. In het volgende codevoorbeeld ziet u hoe u de extra parameter logprobs
doorgeeft aan het model.
Voordat u extra parameters doorgeeft aan de deductie-API van het Azure AI-model, moet u ervoor zorgen dat uw model deze extra parameters ondersteunt. Wanneer de aanvraag wordt ingediend bij het onderliggende model, wordt de header extra-parameters
met de waarde pass-through
doorgegeven aan het model. Met deze waarde wordt aan het eindpunt doorgegeven dat de extra parameters aan het model moeten worden doorgegeven. Het gebruik van extra parameters met het model garandeert niet dat het model deze daadwerkelijk kan verwerken. Lees de documentatie van het model om te begrijpen welke extra parameters worden ondersteund.
var messages = [
{ role: "system", content: "You are a helpful assistant" },
{ role: "user", content: "How many languages are in the world?" },
];
var response = await client.path("/chat/completions").post({
headers: {
"extra-params": "pass-through"
},
body: {
messages: messages,
logprobs: true
}
});
De volgende extra parameters kunnen worden doorgegeven aan Meta Llama-modellen:
Name | Omschrijving | Type |
---|---|---|
n |
Hoeveel voltooiingen moeten worden gegenereerd voor elke prompt. Opmerking: Omdat deze parameter veel voltooiingen genereert, kan deze snel uw tokenquotum gebruiken. | integer |
best_of |
Genereert best_of voltooiingen aan de serverzijde en retourneert het beste (de waarde met de laagste logboekkans per token). Resultaten kunnen niet worden gestreamd. Wanneer deze worden gebruikt, n bepaalt best_of het aantal voltooiingen van de kandidaat en n geeft aan hoeveel u wilt retourneren: best_of moet groter zijn dan n . Opmerking: Omdat deze parameter veel voltooiingen genereert, kan deze snel uw tokenquotum gebruiken. |
integer |
logprobs |
Een getal dat aangeeft dat de logboekkans op de logprobs moet worden opgenomen, waarschijnlijke tokens en de gekozen tokens. Als logprobs bijvoorbeeld 10 zijn, retourneert de API een lijst met de 10 meest waarschijnlijke tokens. de API retourneert altijd de logprob van het voorbeeldtoken, dus er kunnen maximaal logprobs+1 elementen in het antwoord zijn. | integer |
ignore_eos |
Of u het EOS token wilt negeren en tokens wilt blijven genereren nadat het EOS token is gegenereerd. |
boolean |
use_beam_search |
Hiermee wordt aangegeven of de zoekfunctie in plaats van steekproeven moet worden gebruikt. In dat geval moet de best_of temperatuur groter zijn dan 1 en moet de temperatuur 0 zijn. |
boolean |
stop_token_ids |
Lijst met id's voor tokens die, wanneer ze worden gegenereerd, verdere tokengeneratie stoppen. De geretourneerde uitvoer bevat de stoptokens, tenzij de stoptokens speciale tokens zijn. | array |
skip_special_tokens |
Of speciale tokens in de uitvoer moeten worden overgeslagen. | boolean |
Inhoudsveiligheid toepassen
De Azure AI-modeldeductie-API ondersteunt de veiligheid van Azure AI-inhoud. Wanneer u implementaties gebruikt waarbij de veiligheid van Azure AI-inhoud is ingeschakeld, passeren invoer en uitvoer een ensemble van classificatiemodellen die zijn gericht op het detecteren en voorkomen van de uitvoer van schadelijke inhoud. Het systeem voor inhoudsfiltering (preview) detecteert en onderneemt actie op specifieke categorieën van mogelijk schadelijke inhoud in invoerprompts en uitvoervoltooiingen.
In het volgende voorbeeld ziet u hoe gebeurtenissen worden verwerkt wanneer het model schadelijke inhoud detecteert in de invoerprompt en de veiligheid van inhoud is ingeschakeld.
try {
var messages = [
{ role: "system", content: "You are an AI assistant that helps people find information." },
{ role: "user", content: "Chopping tomatoes and cutting them into cubes or wedges are great ways to practice your knife skills." },
];
var response = await client.path("/chat/completions").post({
body: {
messages: messages,
}
});
console.log(response.body.choices[0].message.content);
}
catch (error) {
if (error.status_code == 400) {
var response = JSON.parse(error.response._content);
if (response.error) {
console.log(`Your request triggered an ${response.error.code} error:\n\t ${response.error.message}`);
}
else
{
throw error;
}
}
}
Tip
Raadpleeg de documentatie over de veiligheid van Azure AI-inhoud voor meer informatie over hoe u de beveiligingsinstellingen voor Azure AI-inhoud kunt configureren en beheren.
Notitie
Azure AI-inhoudsveiligheid is alleen beschikbaar voor modellen die zijn geïmplementeerd als serverloze API-eindpunten.
Meta Llama-modellen
De Meta Llama-modellen bevatten de volgende modellen:
De Meta Llama 3.1 verzameling meertalige grote taalmodellen (LLM's) is een verzameling vooraf getrainde en instructiegestemde modellen in 8B-, 70B- en 405B-grootten (tekst in/tekst uit). De llama 3.1 instructie afgestemde tekst alleen modellen (8B, 70B, 405B) zijn geoptimaliseerd voor meertalige gebruiksscenario's voor dialoog en presteren veel van de beschikbare opensource- en gesloten modellen op gemeenschappelijke industriebenchmarks.
De volgende modellen zijn beschikbaar:
Vereisten
Als u Meta Llama-modellen wilt gebruiken met Azure AI Foundry, hebt u de volgende vereisten nodig:
Een modelimplementatie
Implementatie naar serverloze API's
Meta Llama-modellen kunnen worden geïmplementeerd op serverloze API-eindpunten met betalen per gebruik-facturering. Dit soort implementatie biedt een manier om modellen als API te gebruiken zonder deze te hosten in uw abonnement, terwijl de bedrijfsbeveiliging en -naleving die organisaties nodig hebben, behouden blijven.
Voor implementatie naar een serverloos API-eindpunt is geen quotum van uw abonnement vereist. Als uw model nog niet is geïmplementeerd, gebruikt u de Azure AI Foundry-portal, De Azure Machine Learning SDK voor Python, de Azure CLI of ARM-sjablonen om het model te implementeren als een serverloze API.
Implementatie naar een zelf-hostende beheerde compute
Meta Llama-modellen kunnen worden geïmplementeerd in onze zelf-hostende beheerde deductieoplossing, waarmee u alle details over hoe het model wordt geleverd, kunt aanpassen en beheren.
Voor implementatie naar een zelf-hostende beheerde rekenkracht moet u voldoende quotum in uw abonnement hebben. Als u onvoldoende quotum beschikbaar hebt, kunt u onze tijdelijke quotumtoegang gebruiken door de optie te selecteren die ik wil gebruiken gedeeld quotum en ik bevestig dat dit eindpunt over 168 uur wordt verwijderd.
Het deductiepakket geïnstalleerd
U kunt voorspellingen van dit model gebruiken met behulp van het Azure.AI.Inference
pakket van NuGet. Als u dit pakket wilt installeren, hebt u de volgende vereisten nodig:
- De eindpunt-URL. Als u de clientbibliotheek wilt maken, moet u de eindpunt-URL doorgeven. De eindpunt-URL heeft het formulier
https://your-host-name.your-azure-region.inference.ai.azure.com
, waaryour-host-name
de hostnaam van uw unieke modelimplementatie is enyour-azure-region
de Azure-regio is waar het model wordt geïmplementeerd (bijvoorbeeld eastus2). - Afhankelijk van uw modelimplementatie en verificatievoorkeur hebt u een sleutel nodig om te verifiëren bij de service of referenties voor Microsoft Entra ID. De sleutel is een tekenreeks van 32 tekens.
Nadat u deze vereisten hebt, installeert u de Azure AI-deductiebibliotheek met de volgende opdracht:
dotnet add package Azure.AI.Inference --prerelease
U kunt zich ook verifiëren met Microsoft Entra ID (voorheen Azure Active Directory). Als u referentieproviders wilt gebruiken die bij de Azure SDK zijn geleverd, installeert u het Azure.Identity
pakket:
dotnet add package Azure.Identity
Importeer de volgende naamruimten:
using Azure;
using Azure.Identity;
using Azure.AI.Inference;
In dit voorbeeld worden ook de volgende naamruimten gebruikt, maar u hebt ze mogelijk niet altijd nodig:
using System.Text.Json;
using System.Text.Json.Serialization;
using System.Reflection;
Werken met chatvoltooiingen
In deze sectie gebruikt u de deductie-API van het Azure AI-model met een model voor chatvoltooiing voor chatten.
Tip
Met de Azure AI-modeldeductie-API kunt u communiceren met de meeste modellen die zijn geïmplementeerd in de Azure AI Foundry-portal met dezelfde code en structuur, waaronder Meta Llama-chatmodellen.
Een client maken om het model te gebruiken
Maak eerst de client om het model te gebruiken. De volgende code maakt gebruik van een eindpunt-URL en -sleutel die zijn opgeslagen in omgevingsvariabelen.
ChatCompletionsClient client = new ChatCompletionsClient(
new Uri(Environment.GetEnvironmentVariable("AZURE_INFERENCE_ENDPOINT")),
new AzureKeyCredential(Environment.GetEnvironmentVariable("AZURE_INFERENCE_CREDENTIAL"))
);
Wanneer u het model implementeert op een zelf-hostend online-eindpunt met ondersteuning voor Microsoft Entra ID , kunt u het volgende codefragment gebruiken om een client te maken.
client = new ChatCompletionsClient(
new Uri(Environment.GetEnvironmentVariable("AZURE_INFERENCE_ENDPOINT")),
new DefaultAzureCredential(includeInteractiveCredentials: true)
);
Notitie
Momenteel bieden serverloze API-eindpunten geen ondersteuning voor het gebruik van Microsoft Entra-id voor verificatie.
De mogelijkheden van het model ophalen
De /info
route retourneert informatie over het model dat is geïmplementeerd op het eindpunt. Retourneer de gegevens van het model door de volgende methode aan te roepen:
Response<ModelInfo> modelInfo = client.GetModelInfo();
Het antwoord is als volgt:
Console.WriteLine($"Model name: {modelInfo.Value.ModelName}");
Console.WriteLine($"Model type: {modelInfo.Value.ModelType}");
Console.WriteLine($"Model provider name: {modelInfo.Value.ModelProviderName}");
Model name: Meta-Llama-3.1-405B-Instruct
Model type: chat-completions
Model provider name: Meta
Een aanvraag voor het voltooien van een chat maken
In het volgende voorbeeld ziet u hoe u een aanvraag voor voltooiing van een eenvoudige chat kunt maken voor het model.
ChatCompletionsOptions requestOptions = new ChatCompletionsOptions()
{
Messages = {
new ChatRequestSystemMessage("You are a helpful assistant."),
new ChatRequestUserMessage("How many languages are in the world?")
},
};
Response<ChatCompletions> response = client.Complete(requestOptions);
Het antwoord is als volgt, waar u de gebruiksstatistieken van het model kunt zien:
Console.WriteLine($"Response: {response.Value.Choices[0].Message.Content}");
Console.WriteLine($"Model: {response.Value.Model}");
Console.WriteLine("Usage:");
Console.WriteLine($"\tPrompt tokens: {response.Value.Usage.PromptTokens}");
Console.WriteLine($"\tTotal tokens: {response.Value.Usage.TotalTokens}");
Console.WriteLine($"\tCompletion tokens: {response.Value.Usage.CompletionTokens}");
Response: As of now, it's estimated that there are about 7,000 languages spoken around the world. However, this number can vary as some languages become extinct and new ones develop. It's also important to note that the number of speakers can greatly vary between languages, with some having millions of speakers and others only a few hundred.
Model: Meta-Llama-3.1-405B-Instruct
Usage:
Prompt tokens: 19
Total tokens: 91
Completion tokens: 72
Inspecteer de usage
sectie in het antwoord om het aantal tokens te zien dat wordt gebruikt voor de prompt, het totale aantal gegenereerde tokens en het aantal tokens dat wordt gebruikt voor de voltooiing.
Inhoud streamen
Standaard retourneert de voltooiings-API de volledige gegenereerde inhoud in één antwoord. Als u lange voltooiingen genereert, kan het wachten op het antwoord vele seconden duren.
U kunt de inhoud streamen om deze te verkrijgen terwijl deze wordt gegenereerd. Met streaming-inhoud kunt u beginnen met het verwerken van de voltooiing wanneer inhoud beschikbaar komt. Deze modus retourneert een object dat het antwoord terugstuurt als gebeurtenissen die alleen door de server worden verzonden. Extraheer segmenten uit het deltaveld in plaats van het berichtveld.
static async Task StreamMessageAsync(ChatCompletionsClient client)
{
ChatCompletionsOptions requestOptions = new ChatCompletionsOptions()
{
Messages = {
new ChatRequestSystemMessage("You are a helpful assistant."),
new ChatRequestUserMessage("How many languages are in the world? Write an essay about it.")
},
MaxTokens=4096
};
StreamingResponse<StreamingChatCompletionsUpdate> streamResponse = await client.CompleteStreamingAsync(requestOptions);
await PrintStream(streamResponse);
}
Als u voltooiingen wilt streamen, gebruikt CompleteStreamingAsync
u de methode wanneer u het model aanroept. In dit voorbeeld wordt de aanroep verpakt in een asynchrone methode.
Als u de uitvoer wilt visualiseren, definieert u een asynchrone methode om de stream in de console af te drukken.
static async Task PrintStream(StreamingResponse<StreamingChatCompletionsUpdate> response)
{
await foreach (StreamingChatCompletionsUpdate chatUpdate in response)
{
if (chatUpdate.Role.HasValue)
{
Console.Write($"{chatUpdate.Role.Value.ToString().ToUpperInvariant()}: ");
}
if (!string.IsNullOrEmpty(chatUpdate.ContentUpdate))
{
Console.Write(chatUpdate.ContentUpdate);
}
}
}
U kunt visualiseren hoe streaming inhoud genereert:
StreamMessageAsync(client).GetAwaiter().GetResult();
Meer parameters verkennen die worden ondersteund door de deductieclient
Verken andere parameters die u kunt opgeven in de deductieclient. Zie de naslaginformatie over de Deductie-API voor Azure AI-modellen voor een volledige lijst met alle ondersteunde parameters en de bijbehorende documentatie.
requestOptions = new ChatCompletionsOptions()
{
Messages = {
new ChatRequestSystemMessage("You are a helpful assistant."),
new ChatRequestUserMessage("How many languages are in the world?")
},
PresencePenalty = 0.1f,
FrequencyPenalty = 0.8f,
MaxTokens = 2048,
StopSequences = { "<|endoftext|>" },
Temperature = 0,
NucleusSamplingFactor = 1,
ResponseFormat = new ChatCompletionsResponseFormatText()
};
response = client.Complete(requestOptions);
Console.WriteLine($"Response: {response.Value.Choices[0].Message.Content}");
Waarschuwing
Meta Llama-modellen bieden geen ondersteuning voor JSON-uitvoeropmaak (response_format = { "type": "json_object" }
). U kunt het model altijd vragen om JSON-uitvoer te genereren. Dergelijke uitvoer is echter niet gegarandeerd geldige JSON.
Als u een parameter wilt doorgeven die niet in de lijst met ondersteunde parameters staat, kunt u deze doorgeven aan het onderliggende model met behulp van extra parameters. Zie Extra parameters doorgeven aan het model.
Extra parameters doorgeven aan het model
Met de Azure AI-modeldeductie-API kunt u extra parameters doorgeven aan het model. In het volgende codevoorbeeld ziet u hoe u de extra parameter logprobs
doorgeeft aan het model.
Voordat u extra parameters doorgeeft aan de deductie-API van het Azure AI-model, moet u ervoor zorgen dat uw model deze extra parameters ondersteunt. Wanneer de aanvraag wordt ingediend bij het onderliggende model, wordt de header extra-parameters
met de waarde pass-through
doorgegeven aan het model. Met deze waarde wordt aan het eindpunt doorgegeven dat de extra parameters aan het model moeten worden doorgegeven. Het gebruik van extra parameters met het model garandeert niet dat het model deze daadwerkelijk kan verwerken. Lees de documentatie van het model om te begrijpen welke extra parameters worden ondersteund.
requestOptions = new ChatCompletionsOptions()
{
Messages = {
new ChatRequestSystemMessage("You are a helpful assistant."),
new ChatRequestUserMessage("How many languages are in the world?")
},
AdditionalProperties = { { "logprobs", BinaryData.FromString("true") } },
};
response = client.Complete(requestOptions, extraParams: ExtraParameters.PassThrough);
Console.WriteLine($"Response: {response.Value.Choices[0].Message.Content}");
De volgende extra parameters kunnen worden doorgegeven aan Meta Llama-modellen:
Name | Omschrijving | Type |
---|---|---|
n |
Hoeveel voltooiingen moeten worden gegenereerd voor elke prompt. Opmerking: Omdat deze parameter veel voltooiingen genereert, kan deze snel uw tokenquotum gebruiken. | integer |
best_of |
Genereert best_of voltooiingen aan de serverzijde en retourneert het beste (de waarde met de laagste logboekkans per token). Resultaten kunnen niet worden gestreamd. Wanneer deze worden gebruikt, n bepaalt best_of het aantal voltooiingen van de kandidaat en n geeft aan hoeveel u wilt retourneren: best_of moet groter zijn dan n . Opmerking: Omdat deze parameter veel voltooiingen genereert, kan deze snel uw tokenquotum gebruiken. |
integer |
logprobs |
Een getal dat aangeeft dat de logboekkans op de logprobs moet worden opgenomen, waarschijnlijke tokens en de gekozen tokens. Als logprobs bijvoorbeeld 10 zijn, retourneert de API een lijst met de 10 meest waarschijnlijke tokens. de API retourneert altijd de logprob van het voorbeeldtoken, dus er kunnen maximaal logprobs+1 elementen in het antwoord zijn. | integer |
ignore_eos |
Of u het EOS token wilt negeren en tokens wilt blijven genereren nadat het EOS token is gegenereerd. |
boolean |
use_beam_search |
Hiermee wordt aangegeven of de zoekfunctie in plaats van steekproeven moet worden gebruikt. In dat geval moet de best_of temperatuur groter zijn dan 1 en moet de temperatuur 0 zijn. |
boolean |
stop_token_ids |
Lijst met id's voor tokens die, wanneer ze worden gegenereerd, verdere tokengeneratie stoppen. De geretourneerde uitvoer bevat de stoptokens, tenzij de stoptokens speciale tokens zijn. | array |
skip_special_tokens |
Of speciale tokens in de uitvoer moeten worden overgeslagen. | boolean |
Inhoudsveiligheid toepassen
De Azure AI-modeldeductie-API ondersteunt de veiligheid van Azure AI-inhoud. Wanneer u implementaties gebruikt waarbij de veiligheid van Azure AI-inhoud is ingeschakeld, passeren invoer en uitvoer een ensemble van classificatiemodellen die zijn gericht op het detecteren en voorkomen van de uitvoer van schadelijke inhoud. Het systeem voor inhoudsfiltering (preview) detecteert en onderneemt actie op specifieke categorieën van mogelijk schadelijke inhoud in invoerprompts en uitvoervoltooiingen.
In het volgende voorbeeld ziet u hoe gebeurtenissen worden verwerkt wanneer het model schadelijke inhoud detecteert in de invoerprompt en de veiligheid van inhoud is ingeschakeld.
try
{
requestOptions = new ChatCompletionsOptions()
{
Messages = {
new ChatRequestSystemMessage("You are an AI assistant that helps people find information."),
new ChatRequestUserMessage(
"Chopping tomatoes and cutting them into cubes or wedges are great ways to practice your knife skills."
),
},
};
response = client.Complete(requestOptions);
Console.WriteLine(response.Value.Choices[0].Message.Content);
}
catch (RequestFailedException ex)
{
if (ex.ErrorCode == "content_filter")
{
Console.WriteLine($"Your query has trigger Azure Content Safety: {ex.Message}");
}
else
{
throw;
}
}
Tip
Raadpleeg de documentatie over de veiligheid van Azure AI-inhoud voor meer informatie over hoe u de beveiligingsinstellingen voor Azure AI-inhoud kunt configureren en beheren.
Notitie
Azure AI-inhoudsveiligheid is alleen beschikbaar voor modellen die zijn geïmplementeerd als serverloze API-eindpunten.
Meta Llama-chatmodellen
De Meta Llama-chatmodellen omvatten de volgende modellen:
De Meta Llama 3.1 verzameling meertalige grote taalmodellen (LLM's) is een verzameling vooraf getrainde en instructiegestemde modellen in 8B-, 70B- en 405B-grootten (tekst in/tekst uit). De Llama 3.1-instructie die alleen tekstmodellen heeft afgestemd (8B, 70B, 405B) zijn geoptimaliseerd voor meertalige gebruiksscenario's voor dialoog en presteren veel van de beschikbare opensource- en gesloten chatmodellen op algemene benchmarks voor de industrie.
De volgende modellen zijn beschikbaar:
Vereisten
Als u Meta Llama-modellen wilt gebruiken met Azure AI Foundry, hebt u de volgende vereisten nodig:
Een modelimplementatie
Implementatie naar serverloze API's
Meta Llama-chatmodellen kunnen worden geïmplementeerd op serverloze API-eindpunten met betalen per gebruik-facturering. Dit soort implementatie biedt een manier om modellen als API te gebruiken zonder deze te hosten in uw abonnement, terwijl de bedrijfsbeveiliging en -naleving die organisaties nodig hebben, behouden blijven.
Voor implementatie naar een serverloos API-eindpunt is geen quotum van uw abonnement vereist. Als uw model nog niet is geïmplementeerd, gebruikt u de Azure AI Foundry-portal, De Azure Machine Learning SDK voor Python, de Azure CLI of ARM-sjablonen om het model te implementeren als een serverloze API.
Implementatie naar een zelf-hostende beheerde compute
Meta Llama-modellen kunnen worden geïmplementeerd in onze zelf-hostende beheerde deductieoplossing, waarmee u alle details over hoe het model wordt geleverd, kunt aanpassen en beheren.
Voor implementatie naar een zelf-hostende beheerde rekenkracht moet u voldoende quotum in uw abonnement hebben. Als u onvoldoende quotum beschikbaar hebt, kunt u onze tijdelijke quotumtoegang gebruiken door de optie te selecteren die ik wil gebruiken gedeeld quotum en ik bevestig dat dit eindpunt over 168 uur wordt verwijderd.
Een REST-client
Modellen die zijn geïmplementeerd met de Deductie-API van het Azure AI-model kunnen worden gebruikt met behulp van een REST-client. Als u de REST-client wilt gebruiken, hebt u de volgende vereisten nodig:
- Als u de aanvragen wilt maken, moet u de eindpunt-URL doorgeven. De eindpunt-URL heeft het formulier
https://your-host-name.your-azure-region.inference.ai.azure.com
, waarbijyour-host-name`` is your unique model deployment host name and
uw azure-regio de Azure-regio is waar het model is geïmplementeerd (bijvoorbeeld eastus2). - Afhankelijk van uw modelimplementatie en verificatievoorkeur hebt u een sleutel nodig om te verifiëren bij de service of referenties voor Microsoft Entra ID. De sleutel is een tekenreeks van 32 tekens.
Werken met chatvoltooiingen
In deze sectie gebruikt u de deductie-API van het Azure AI-model met een model voor chatvoltooiing voor chatten.
Tip
Met de Azure AI-modeldeductie-API kunt u communiceren met de meeste modellen die zijn geïmplementeerd in de Azure AI Foundry-portal met dezelfde code en structuur, waaronder Meta Llama-chatmodellen.
Een client maken om het model te gebruiken
Maak eerst de client om het model te gebruiken. De volgende code maakt gebruik van een eindpunt-URL en -sleutel die zijn opgeslagen in omgevingsvariabelen.
Wanneer u het model implementeert op een zelf-hostend online-eindpunt met ondersteuning voor Microsoft Entra ID , kunt u het volgende codefragment gebruiken om een client te maken.
Notitie
Momenteel bieden serverloze API-eindpunten geen ondersteuning voor het gebruik van Microsoft Entra-id voor verificatie.
De mogelijkheden van het model ophalen
De /info
route retourneert informatie over het model dat is geïmplementeerd op het eindpunt. Retourneer de gegevens van het model door de volgende methode aan te roepen:
GET /info HTTP/1.1
Host: <ENDPOINT_URI>
Authorization: Bearer <TOKEN>
Content-Type: application/json
Het antwoord is als volgt:
{
"model_name": "Meta-Llama-3.1-405B-Instruct",
"model_type": "chat-completions",
"model_provider_name": "Meta"
}
Een aanvraag voor het voltooien van een chat maken
In het volgende voorbeeld ziet u hoe u een aanvraag voor voltooiing van een eenvoudige chat kunt maken voor het model.
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "How many languages are in the world?"
}
]
}
Het antwoord is als volgt, waar u de gebruiksstatistieken van het model kunt zien:
{
"id": "0a1234b5de6789f01gh2i345j6789klm",
"object": "chat.completion",
"created": 1718726686,
"model": "Meta-Llama-3.1-405B-Instruct",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "As of now, it's estimated that there are about 7,000 languages spoken around the world. However, this number can vary as some languages become extinct and new ones develop. It's also important to note that the number of speakers can greatly vary between languages, with some having millions of speakers and others only a few hundred.",
"tool_calls": null
},
"finish_reason": "stop",
"logprobs": null
}
],
"usage": {
"prompt_tokens": 19,
"total_tokens": 91,
"completion_tokens": 72
}
}
Inspecteer de usage
sectie in het antwoord om het aantal tokens te zien dat wordt gebruikt voor de prompt, het totale aantal gegenereerde tokens en het aantal tokens dat wordt gebruikt voor de voltooiing.
Inhoud streamen
Standaard retourneert de voltooiings-API de volledige gegenereerde inhoud in één antwoord. Als u lange voltooiingen genereert, kan het wachten op het antwoord vele seconden duren.
U kunt de inhoud streamen om deze te verkrijgen terwijl deze wordt gegenereerd. Met streaming-inhoud kunt u beginnen met het verwerken van de voltooiing wanneer inhoud beschikbaar komt. Deze modus retourneert een object dat het antwoord terugstuurt als gebeurtenissen die alleen door de server worden verzonden. Extraheer segmenten uit het deltaveld in plaats van het berichtveld.
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "How many languages are in the world?"
}
],
"stream": true,
"temperature": 0,
"top_p": 1,
"max_tokens": 2048
}
U kunt visualiseren hoe streaming inhoud genereert:
{
"id": "23b54589eba14564ad8a2e6978775a39",
"object": "chat.completion.chunk",
"created": 1718726371,
"model": "Meta-Llama-3.1-405B-Instruct",
"choices": [
{
"index": 0,
"delta": {
"role": "assistant",
"content": ""
},
"finish_reason": null,
"logprobs": null
}
]
}
Het laatste bericht in de stream is finish_reason
ingesteld, wat de reden aangeeft waarom het generatieproces moet worden gestopt.
{
"id": "23b54589eba14564ad8a2e6978775a39",
"object": "chat.completion.chunk",
"created": 1718726371,
"model": "Meta-Llama-3.1-405B-Instruct",
"choices": [
{
"index": 0,
"delta": {
"content": ""
},
"finish_reason": "stop",
"logprobs": null
}
],
"usage": {
"prompt_tokens": 19,
"total_tokens": 91,
"completion_tokens": 72
}
}
Meer parameters verkennen die worden ondersteund door de deductieclient
Verken andere parameters die u kunt opgeven in de deductieclient. Zie de naslaginformatie over de Deductie-API voor Azure AI-modellen voor een volledige lijst met alle ondersteunde parameters en de bijbehorende documentatie.
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "How many languages are in the world?"
}
],
"presence_penalty": 0.1,
"frequency_penalty": 0.8,
"max_tokens": 2048,
"stop": ["<|endoftext|>"],
"temperature" :0,
"top_p": 1,
"response_format": { "type": "text" }
}
{
"id": "0a1234b5de6789f01gh2i345j6789klm",
"object": "chat.completion",
"created": 1718726686,
"model": "Meta-Llama-3.1-405B-Instruct",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "As of now, it's estimated that there are about 7,000 languages spoken around the world. However, this number can vary as some languages become extinct and new ones develop. It's also important to note that the number of speakers can greatly vary between languages, with some having millions of speakers and others only a few hundred.",
"tool_calls": null
},
"finish_reason": "stop",
"logprobs": null
}
],
"usage": {
"prompt_tokens": 19,
"total_tokens": 91,
"completion_tokens": 72
}
}
Waarschuwing
Meta Llama-modellen bieden geen ondersteuning voor JSON-uitvoeropmaak (response_format = { "type": "json_object" }
). U kunt het model altijd vragen om JSON-uitvoer te genereren. Dergelijke uitvoer is echter niet gegarandeerd geldige JSON.
Als u een parameter wilt doorgeven die niet in de lijst met ondersteunde parameters staat, kunt u deze doorgeven aan het onderliggende model met behulp van extra parameters. Zie Extra parameters doorgeven aan het model.
Extra parameters doorgeven aan het model
Met de Azure AI-modeldeductie-API kunt u extra parameters doorgeven aan het model. In het volgende codevoorbeeld ziet u hoe u de extra parameter logprobs
doorgeeft aan het model.
Voordat u extra parameters doorgeeft aan de deductie-API van het Azure AI-model, moet u ervoor zorgen dat uw model deze extra parameters ondersteunt. Wanneer de aanvraag wordt ingediend bij het onderliggende model, wordt de header extra-parameters
met de waarde pass-through
doorgegeven aan het model. Met deze waarde wordt aan het eindpunt doorgegeven dat de extra parameters aan het model moeten worden doorgegeven. Het gebruik van extra parameters met het model garandeert niet dat het model deze daadwerkelijk kan verwerken. Lees de documentatie van het model om te begrijpen welke extra parameters worden ondersteund.
POST /chat/completions HTTP/1.1
Host: <ENDPOINT_URI>
Authorization: Bearer <TOKEN>
Content-Type: application/json
extra-parameters: pass-through
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "How many languages are in the world?"
}
],
"logprobs": true
}
De volgende extra parameters kunnen worden doorgegeven aan Meta Llama-chatmodellen:
Name | Omschrijving | Type |
---|---|---|
n |
Hoeveel voltooiingen moeten worden gegenereerd voor elke prompt. Opmerking: Omdat deze parameter veel voltooiingen genereert, kan deze snel uw tokenquotum gebruiken. | integer |
best_of |
Genereert best_of voltooiingen aan de serverzijde en retourneert het beste (de waarde met de laagste logboekkans per token). Resultaten kunnen niet worden gestreamd. Wanneer deze worden gebruikt, n bepaalt best_of het aantal voltooiingen van de kandidaat en n geeft aan hoeveel u wilt retourneren: best_of moet groter zijn dan n . Opmerking: Omdat deze parameter veel voltooiingen genereert, kan deze snel uw tokenquotum gebruiken. |
integer |
logprobs |
Een getal dat aangeeft dat de logboekkans op de logprobs moet worden opgenomen, waarschijnlijke tokens en de gekozen tokens. Als logprobs bijvoorbeeld 10 zijn, retourneert de API een lijst met de 10 meest waarschijnlijke tokens. de API retourneert altijd de logprob van het voorbeeldtoken, dus er kunnen maximaal logprobs+1 elementen in het antwoord zijn. | integer |
ignore_eos |
Of u het EOS token wilt negeren en tokens wilt blijven genereren nadat het EOS token is gegenereerd. |
boolean |
use_beam_search |
Hiermee wordt aangegeven of de zoekfunctie in plaats van steekproeven moet worden gebruikt. In dat geval moet de best_of temperatuur groter zijn dan 1 en moet de temperatuur 0 zijn. |
boolean |
stop_token_ids |
Lijst met id's voor tokens die, wanneer ze worden gegenereerd, verdere tokengeneratie stoppen. De geretourneerde uitvoer bevat de stoptokens, tenzij de stoptokens speciale tokens zijn. | array |
skip_special_tokens |
Of speciale tokens in de uitvoer moeten worden overgeslagen. | boolean |
Inhoudsveiligheid toepassen
De Azure AI-modeldeductie-API ondersteunt de veiligheid van Azure AI-inhoud. Wanneer u implementaties gebruikt waarbij de veiligheid van Azure AI-inhoud is ingeschakeld, passeren invoer en uitvoer een ensemble van classificatiemodellen die zijn gericht op het detecteren en voorkomen van de uitvoer van schadelijke inhoud. Het systeem voor inhoudsfiltering (preview) detecteert en onderneemt actie op specifieke categorieën van mogelijk schadelijke inhoud in invoerprompts en uitvoervoltooiingen.
In het volgende voorbeeld ziet u hoe gebeurtenissen worden verwerkt wanneer het model schadelijke inhoud detecteert in de invoerprompt en de veiligheid van inhoud is ingeschakeld.
{
"messages": [
{
"role": "system",
"content": "You are an AI assistant that helps people find information."
},
{
"role": "user",
"content": "Chopping tomatoes and cutting them into cubes or wedges are great ways to practice your knife skills."
}
]
}
{
"error": {
"message": "The response was filtered due to the prompt triggering Microsoft's content management policy. Please modify your prompt and retry.",
"type": null,
"param": "prompt",
"code": "content_filter",
"status": 400
}
}
Tip
Raadpleeg de documentatie over de veiligheid van Azure AI-inhoud voor meer informatie over hoe u de beveiligingsinstellingen voor Azure AI-inhoud kunt configureren en beheren.
Notitie
Azure AI-inhoudsveiligheid is alleen beschikbaar voor modellen die zijn geïmplementeerd als serverloze API-eindpunten.
Meer deductievoorbeelden
Zie de volgende voorbeelden en zelfstudies voor meer voorbeelden van het gebruik van Meta Llama-modellen:
Beschrijving | Taal | Voorbeeld |
---|---|---|
CURL-aanvraag | Bash | Koppeling |
Azure AI-deductiepakket voor JavaScript | JavaScript | Koppeling |
Azure AI-deductiepakket voor Python | Python | Koppeling |
Python-webaanvragen | Python | Koppeling |
OpenAI SDK (experimenteel) | Python | Koppeling |
LangChain | Python | Koppeling |
LiteLLM | Python | Koppeling |
Kosten- en quotumoverwegingen voor Meta Llama-modellen die zijn geïmplementeerd als serverloze API-eindpunten
Het quotum wordt beheerd per implementatie. Elke implementatie heeft een frequentielimiet van 200.000 tokens per minuut en 1000 API-aanvragen per minuut. Momenteel beperken we echter tot één implementatie per model per project. Neem contact op met de ondersteuning voor Microsoft Azure als de huidige frequentielimieten niet voldoende zijn voor uw scenario's.
Meta Llama-modellen die zijn geïmplementeerd als een serverloze API, worden aangeboden door Meta via De Azure Marketplace en geïntegreerd met Azure AI Foundry voor gebruik. U krijgt de prijzen voor de Azure Marketplace wanneer u het model implementeert.
Telkens wanneer een project zich abonneert op een bepaalde aanbieding vanuit Azure Marketplace, wordt er een nieuwe resource gemaakt om de kosten te traceren die zijn gekoppeld aan het verbruik. Dezelfde resource wordt gebruikt om de kosten te traceren die zijn gekoppeld aan deductie; er zijn echter meerdere meters beschikbaar om elk scenario onafhankelijk te traceren.
Zie Monitoring van kosten voor modellen die worden aangeboden via Azure Marketplace voor meer informatie over het traceren van kosten.
Kosten- en quotumoverwegingen voor Meta Llama-modellen die zijn geïmplementeerd in beheerde compute
Meta Llama-modellen die zijn geïmplementeerd voor beheerde berekeningen, worden gefactureerd op basis van de kernuren van het bijbehorende rekenproces. De kosten van het rekenproces worden bepaald door de grootte van het exemplaar, het aantal actieve exemplaren en de duur van de uitvoering.
Het is een goede gewoonte om te beginnen met een laag aantal exemplaren en zo nodig omhoog te schalen. U kunt de kosten van het rekenproces bewaken in Azure Portal.