Eventi
Creare app e agenti di intelligenza artificiale
17 mar, 21 - 21 mar, 10
Partecipa alla serie meetup per creare soluzioni di intelligenza artificiale scalabili basate su casi d'uso reali con altri sviluppatori ed esperti.
Iscriviti subitoQuesto browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
In questa esercitazione viene valutata la coerenza, la pertinenza e l'attendibilità dei completamenti dei prompt di un LLM usando Azure OpenAI e Semantic Kernel SDK per .NET.
In questa esercitazione si apprenderà come:
Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
Ottieni l'origine per l'applicazione di valutazione e assicurati che possa essere costruita.
Clona il repository dotnet/ai-samples.
Dalla finestra del terminale o dal prompt dei comandi, passare alla directory ai-samples/src/llm-eval
.
Compilare l'applicazione di valutazione:
dotnet build .
Impostare il modello da testare e i modelli per eseguire valutazioni e generare dati di test.
È consigliabile usare un modello GPT-4 per eseguire la valutazione. È possibile usare una risorsa OpenAI di Azure, un'istanza OpenAI o qualsiasi LLM supportato da Semantic Kernel SDK. Questo articolo usa un modello GPT-4 distribuito in una risorsa OpenAI di Azure per le valutazioni.
La classe KernelFactory
(src/LLMEval.Test/KernelFactory.cs
) crea i kernel per le valutazioni, generando sia i dati di test che l'LLM da testare.
L'applicazione di valutazione verifica il modello restituito dal metodo KernelFactory.CreateKernelTest
.
Semantic Kernel SDK può integrare qualsiasi modello che supporti l'API OpenAI Chat Completion .
Aggiornare il metodo KernelFactory.CreateKernelTest
per restituire un oggetto Kernel
che utilizza il modello da testare. L'esempio seguente, ad esempio, crea un oggetto Kernel
che usa un modello Llama 3 distribuito e ospitato localmente usando Ollama:
public static Kernel CreateKernelTest()
{
IKernelBuilder builder = Kernel.CreateBuilder();
builder.AddOpenAIChatCompletion(
modelId: "phi3",
endpoint: new Uri("http://localhost:11434"),
apiKey: "api"
);
return builder.Build();
}
Usare i segreti utente .NET per archiviare le informazioni di distribuzione di Azure OpenAI. Dalla directory ai-samples/src/llm-eval/LLMEval.Test
eseguire i comandi seguenti:
dotnet user-secrets init
dotnet user-secrets set "AZURE_OPENAI_MODEL" "<deployment-name>"
dotnet user-secrets set "AZURE_OPENAI_ENDPOINT" "<deployment-endpoint>"
dotnet user-secrets set "AZURE_OPENAI_KEY" "<deployment-key>"
L'applicazione di valutazione è configurata per usare questi segreti per connettersi a un modello OpenAI di Azure per eseguire valutazioni. È possibile aggiornare questa configurazione nel metodo KernelFactory.CreateKernelEval
:
public static Kernel CreateKernelEval()
{
IConfigurationRoot config = new ConfigurationBuilder().AddUserSecrets<Program>().Build();
IKernelBuilder builder = Kernel.CreateBuilder();
builder.AddAzureOpenAIChatCompletion(
config["AZURE_OPENAI_MODEL"],
config["AZURE_OPENAI_ENDPOINT"],
config["AZURE_OPENAI_KEY"]
);
return builder.Build();
}
L'applicazione di valutazione è configurata per l'uso di i segreti impostati nel passaggio precedente per connettersi a un modello OpenAI di Azure per generare dati di test. È possibile aggiornare questa configurazione nel metodo KernelFactory.CreateKernelGenerateData
:
public static Kernel CreateKernelGenerateData()
{
IConfigurationRoot config = new ConfigurationBuilder().AddUserSecrets<Program>().Build();
IKernelBuilder builder = Kernel.CreateBuilder();
builder.AddAzureOpenAIChatCompletion(
config["AZURE_OPENAI_MODEL"],
config["AZURE_OPENAI_ENDPOINT"],
config["AZURE_OPENAI_KEY"]
);
return builder.Build();
}
L'applicazione di valutazione confronta l'output di un LLM con le risposte "ground truth", che sono coppie di domande-risposta ideali. È consigliabile avere almeno 200 coppie di domande-risposta per una valutazione.
È possibile usare l'applicazione di valutazione per generare un set iniziale di coppie di domande-risposte. Quindi curali manualmente riscrivendo o rimuovendo eventuali risposte di bassa qualità.
Suggerimenti per la generazione di dati di test:
Dalla directory ai-samples/src/llm-eval/LLMEval.Test
eseguire il comando seguente:
dotnet run .
Selezionare Genera le QA associate a un argomento ed esportale in JSON, quindi premere INVIO.
Immettere il numero di coppie di risposte alle domande da generare e il relativo argomento.
Viene visualizzata un'anteprima delle coppie di domande-risposte generate in formato JSON; immettere il percorso del file in cui salvare il file JSON.
Esaminare il codice JSON di output e aggiornare o rimuovere eventuali risposte errate o secondarie.
Dopo aver curato le coppie di domande-risposta, l'applicazione di valutazione può usarle per valutare gli output del modello di test.
Copiare il file JSON contenente le coppie di domande e risposte in ai-samples/src/llm-eval/LLMEval.Test/assets/qa-02.json
.
Dalla directory ai-samples/src/llm-eval/LLMEval.Test
eseguire il comando seguente:
dotnet run .
Selezionare
I risultati della valutazione vengono stampati in formato tabella.
I risultati della valutazione generati nel passaggio precedente includono una metrica di coerenza , pertinenza e di fondatezza . Queste metriche sono simili alle metriche predefinite fornite da Azure AI Studio.
ai-samples/src/LLMEval.Core/_prompts/coherence/skprompt.txt
ai-samples/src/LLMEval.Core/_prompts/relevance/skprompt.txt
ai-samples/src/LLMEval.Core/_prompts/groundedness/skprompt.txt
Se non sono più necessari, eliminare la risorsa OpenAI di Azure e la distribuzione del modello GPT-4.
Feedback su .NET
.NET è un progetto di open source. Selezionare un collegamento per fornire feedback:
Eventi
Creare app e agenti di intelligenza artificiale
17 mar, 21 - 21 mar, 10
Partecipa alla serie meetup per creare soluzioni di intelligenza artificiale scalabili basate su casi d'uso reali con altri sviluppatori ed esperti.
Iscriviti subitoFormazione
Modulo
Applicare la progettazione dei prompt con il servizio Azure OpenAI - Training
In questo modulo viene illustrato come la progettazione dei prompt può aiutare a creare e ottimizzare i prompt per i modelli di elaborazione del linguaggio naturale. La progettazione dei prompt implica la progettazione e il test di vari prompt per ottimizzare le prestazioni del modello nella generazione di risposte accurate e pertinenti.
Certificazione
Microsoft Certified: Azure AI Fundamentals - Certifications
Illustrare i concetti fondamentali dell'intelligenza artificiale correlati allo sviluppo di software e servizi di Microsoft Azure per creare soluzioni di intelligenza artificiale.