Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Na pierwszy rzut oka
Celem: Testowanie błędów LLM, takich jak halucynacje
Czas: 15 minut
Plugins:LanguageModelFailurePlugin
Wymagania wstępne:konfigurowanie serwera proxy deweloperskiego
Podczas tworzenia aplikacji integrujących się z dużymi modelami językowymi (LLM) należy przetestować sposób obsługi różnych scenariuszy awarii llM przez aplikację. Serwer proxy deweloperski umożliwia symulowanie realistycznych błędów modelu języka w dowolnym interfejsie API LLM używanym w aplikacji przy użyciu elementu LanguageModelFailurePlugin.
Symulowanie błędów modelu języka w dowolnym interfejsie API LLM
Aby rozpocząć, włącz element LanguageModelFailurePlugin w pliku konfiguracji.
Plik: devproxyrc.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/rc.schema.json",
"plugins": [
{
"name": "LanguageModelFailurePlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"urlsToWatch": [
"https://api.openai.com/*",
"http://localhost:11434/*"
]
}
]
}
Dzięki tej podstawowej konfiguracji wtyczka losowo wybiera wszystkie dostępne typy błędów i stosuje je do pasujących żądań interfejsu API modelu języka.
Konfigurowanie określonych scenariuszy awarii
Aby przetestować konkretne scenariusze awarii, skonfiguruj wtyczkę do używania określonych typów błędów:
Plik: devproxyrc.json (wraz z typami błędów)
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/rc.schema.json",
"plugins": [
{
"name": "LanguageModelFailurePlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "languageModelFailurePlugin",
"urlsToWatch": [
"https://api.openai.com/*",
"http://localhost:11434/*"
]
}
],
"languageModelFailurePlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/languagemodelfailureplugin.schema.json",
"failures": [
"Hallucination",
"PlausibleIncorrect",
"BiasStereotyping"
]
}
}
Ta konfiguracja symuluje tylko nieprawidłowe informacje, wiarygodne, ale niepoprawne odpowiedzi i stronniczą zawartość.
Testowanie różnych interfejsów API LLM
Różne interfejsy API usługi LLM można przetestować, konfigurując wiele wystąpień wtyczki przy użyciu różnych wzorców adresów URL:
Plik: devproxyrc.json (wiele wystąpień wtyczki)
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/rc.schema.json",
"plugins": [
{
"name": "LanguageModelFailurePlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "openaiFailures",
"urlsToWatch": [
"https://api.openai.com/*"
]
},
{
"name": "LanguageModelFailurePlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "ollamaFailures",
"urlsToWatch": [
"http://localhost:11434/*"
]
}
],
"openaiFailures": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/languagemodelfailureplugin.schema.json",
"failures": ["Hallucination", "OutdatedInformation"]
},
"ollamaFailures": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/languagemodelfailureplugin.schema.json",
"failures": ["Overgeneralization", "IncorrectFormatStyle"]
}
}
Wskazówka
Skonfiguruj różne scenariusze awarii dla różnych dostawców usługi LLM, aby przetestować sposób obsługi zachowań specyficznych dla dostawcy przez aplikację. Nadaj configSection nazwę usłudze LLM, którą testujesz, aby ułatwić zrozumienie i konserwację konfiguracji.
Typowe scenariusze testowania
Poniżej przedstawiono kilka zalecanych kombinacji błędów dla różnych scenariuszy testowania:
Testowanie dokładności zawartości
Przetestuj sposób obsługi nieprawidłowych lub wprowadzających w błąd informacji w aplikacji:
Plik: devproxyrc.json (tylko sekcja languageModelFailurePlugin)
{
"languageModelFailurePlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/languagemodelfailureplugin.schema.json",
"failures": [
"Hallucination",
"PlausibleIncorrect",
"OutdatedInformation",
"ContradictoryInformation"
]
}
}
Testowanie stronniczości i sprawiedliwości
Przetestuj, jak aplikacja reaguje na stronniczą lub stereotypowa zawartość:
Plik: devproxyrc.json (tylko sekcja languageModelFailurePlugin)
{
"languageModelFailurePlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/languagemodelfailureplugin.schema.json",
"failures": [
"BiasStereotyping",
"Overgeneralization"
]
}
}
Instrukcje testowania poniżej
Przetestuj sposób obsługi odpowiedzi przez aplikację, które nie są zgodne z instrukcjami:
Plik: devproxyrc.json (tylko sekcja languageModelFailurePlugin)
{
"languageModelFailurePlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/languagemodelfailureplugin.schema.json",
"failures": [
"FailureFollowInstructions",
"Misinterpretation",
"IncorrectFormatStyle"
]
}
}
Testowanie jakości odpowiedzi
Przetestuj sposób obsługi niejasnych lub zbyt złożonych odpowiedzi w aplikacji:
Plik: devproxyrc.json (tylko sekcja languageModelFailurePlugin)
{
"languageModelFailurePlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/languagemodelfailureplugin.schema.json",
"failures": [
"AmbiguityVagueness",
"OverSpecification",
"CircularReasoning",
"FailureDisclaimHedge"
]
}
}
Uruchom serwer proxy dewelopera przy użyciu pliku konfiguracji i użyj aplikacji, aby zobaczyć, jak obsługuje symulowane błędy modelu językowego. Wtyczka przechwytuje odpowiedzi z interfejsów API modelu języka i zastępuje je syntetycznymi odpowiedziami na błędy, które wykazują skonfigurowane zachowania błędów.
Tworzenie niestandardowych scenariuszy błędów
Niestandardowe scenariusze niepowodzeń można utworzyć, dodając .prompty pliki do ~appFolder/prompts katalogu. Aby stworzyć na przykład błąd „nadużycia technicznego żargonu”:
Tworzenie pliku o nazwie
lmfailure_technical-jargon-overuse.promptyZdefiniuj zachowanie przy awarii w pliku
.prompty.--- name: Technical Jargon Overuse model: api: chat sample: scenario: Simulate a response that overuses technical jargon and unnecessarily complex terminology, making simple concepts difficult to understand. --- user: How do I create a simple web page? user: You are a language model under evaluation. Your task is to simulate incorrect responses. {{scenario}} Do not try to correct the error. Do not explain or justify the mistakes. The goal is to simulate them as realistically as possible for evaluation purposes.Odwołuj się do niej w konfiguracji jako
TechnicalJargonOverusePlik: devproxyrc.json (tylko sekcja languageModelFailurePlugin)
{ "languageModelFailurePlugin": { "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/languagemodelfailureplugin.schema.json", "failures": [ "TechnicalJargonOveruse", "Hallucination" ] } }
Następny krok
Dowiedz się więcej o pliku LanguageModelFailurePlugin.