Otestuj mou aplikaci s chybami jazykového modelu

Na první pohled
Cílem: Testování selhání LLM, jako jsou halucinace
Čas: 15 minut
Pluginy:LanguageModelFailurePlugin
Požadavky:Nastavení dev proxy serveru

Při vytváření aplikací, které se integrují s velkými jazykovými modely (LLM), byste měli otestovat, jak vaše aplikace zpracovává různé scénáře selhání LLM. Dev Proxy umožňuje simulovat realistická selhání jazykového modelu v libovolném rozhraní LLM API, které ve své aplikaci používáte, pomocí LanguageModelFailurePlugin.

Simulace selhání jazykového modelu v libovolném rozhraní LLM API

Začněte tím, že ve svém konfiguračním souboru povolíte LanguageModelFailurePlugin.

Soubor: devproxyrc.json

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.4.0/rc.schema.json",
  "plugins": [
    {
      "name": "LanguageModelFailurePlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "urlsToWatch": [
        "https://api.openai.com/*",
        "http://localhost:11434/*"
      ]
    }
  ]
}

S touto základní konfigurací modul plug-in náhodně vybere všechny dostupné typy selhání a použije je pro odpovídající požadavky rozhraní API jazykového modelu.

Konfigurace konkrétních scénářů selhání

Pokud chcete otestovat konkrétní scénáře selhání, nakonfigurujte modul plug-in tak, aby používal konkrétní typy selhání:

Soubor: devproxyrc.json (kompletní s typy selhání)

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.4.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.4.0/languagemodelfailureplugin.schema.json",
    "failures": [
      "Hallucination",
      "PlausibleIncorrect",
      "BiasStereotyping"
    ]
  }
}

Tato konfigurace simuluje pouze nesprávné informace, přijatelné, ale nesprávné odpovědi a zkreslený obsah.

Testování různých rozhraní LLM API

Různá rozhraní API LLM můžete otestovat konfigurací několika instancí modulu plug-in s různými vzory adres URL:

Soubor: devproxyrc.json (více instancí modulu plug-in)

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.4.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.4.0/languagemodelfailureplugin.schema.json",
    "failures": ["Hallucination", "OutdatedInformation"]
  },
  "ollamaFailures": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.4.0/languagemodelfailureplugin.schema.json",
    "failures": ["Overgeneralization", "IncorrectFormatStyle"]
  }
}

Návod

Nakonfigurujte různé scénáře selhání pro různé poskytovatele LLM a otestujte, jak vaše aplikace zpracovává chování specifické pro poskytovatele. Pojmenujte configSection podle služby LLM, kterou testujete, aby byla konfigurace snadněji pochopitelná a udržovatelná.

Běžné testovací scénáře

Tady je několik doporučených kombinací selhání pro různé testovací scénáře:

Testování přesnosti obsahu

Otestujte, jak vaše aplikace zpracovává nesprávné nebo zavádějící informace:

Soubor: devproxyrc.json (pouze oddíl languageModelFailurePlugin)

{
  "languageModelFailurePlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.4.0/languagemodelfailureplugin.schema.json",
    "failures": [
      "Hallucination",
      "PlausibleIncorrect",
      "OutdatedInformation",
      "ContradictoryInformation"
    ]
  }
}

Testování předsudků a nestrannosti

Otestujte, jak vaše aplikace reaguje na zkreslený nebo stereotypní obsah:

Soubor: devproxyrc.json (pouze oddíl languageModelFailurePlugin)

{
  "languageModelFailurePlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.4.0/languagemodelfailureplugin.schema.json",
    "failures": [
      "BiasStereotyping",
      "Overgeneralization"
    ]
  }
}

Následující pokyny k testování

Otestujte, jak vaše aplikace zpracovává odpovědi, které nedodržují pokyny:

Soubor: devproxyrc.json (pouze oddíl languageModelFailurePlugin)

{
  "languageModelFailurePlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.4.0/languagemodelfailureplugin.schema.json",
    "failures": [
      "FailureFollowInstructions",
      "Misinterpretation",
      "IncorrectFormatStyle"
    ]
  }
}

Testování kvality odezvy

Otestujte, jak vaše aplikace zpracovává nejasné nebo příliš složité odpovědi:

Soubor: devproxyrc.json (pouze oddíl languageModelFailurePlugin)

{
  "languageModelFailurePlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.4.0/languagemodelfailureplugin.schema.json",
    "failures": [
      "AmbiguityVagueness",
      "OverSpecification",
      "CircularReasoning",
      "FailureDisclaimHedge"
    ]
  }
}

Spusťte dev Proxy s konfiguračním souborem a pomocí aplikace zjistěte, jak zpracovává selhání simulovaného jazykového modelu. Plug-in zachycuje odpovědi z API jazykového modelu a nahrazuje je syntetickými selhávajícími odpověďmi, které vykazují nakonfigurované chování selhání.

Vytváření vlastních scénářů selhání

Vlastní scénáře selhání můžete vytvořit přidáním .prompty souborů do ~appFolder/prompts adresáře. Pokud chcete například vytvořit příklad selhání způsobeného nadužíváním technického žargonu:

  1. Vytvoření souboru s názvem lmfailure_technical-jargon-overuse.prompty

  2. Definujte chování selhání v .prompty souboru:

    ---
    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.
    
  3. Odkazujte na ni v konfiguraci jako TechnicalJargonOveruse

    Soubor: devproxyrc.json (pouze oddíl languageModelFailurePlugin)

    {
      "languageModelFailurePlugin": {
        "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.4.0/languagemodelfailureplugin.schema.json",
        "failures": [
          "TechnicalJargonOveruse",
          "Hallucination"
        ]
      }
    }
    

Další krok

Další informace o nástroji LanguageModelFailurePlugin.