Első lépések a válaszok kiértékeléséhez egy JavaScript-alapú csevegőalkalmazásban
Ez a cikk bemutatja, hogyan értékelheti ki egy csevegőalkalmazás válaszait a helyes vagy ideális válaszok (az úgynevezett alapigazságok) alapján. Ha olyan módon módosítja a csevegőalkalmazást, hogy az hatással legyen a válaszokra, futtasson egy értékelést a módosítások összehasonlítása érdekében. Ez a bemutató alkalmazás olyan eszközöket kínál, amelyekkel ma egyszerűbbé teheti az értékelések futtatását.
A cikkben található utasításokat követve a következőket fogja követni:
- A megadott mintakéréseket a tárgytartományra szabva használhatja. Ezek a kérések már szerepelnek az adattárban.
- Saját dokumentumaiból mintafelhasználói kérdéseket és alapigaz válaszokat hozhat létre.
- Kiértékelések futtatása egy mintakérdés használatával a létrehozott felhasználói kérdésekkel.
- Tekintse át a válaszok elemzését.
Feljegyzés
Ez a cikk egy vagy több AI-alkalmazássablont használ a cikkben szereplő példák és útmutatók alapjául. Az AI-alkalmazássablonok jól karbantartott, könnyen üzembe helyezhető referencia-implementációkat biztosítanak, amelyek segítenek magas színvonalú kiindulópontot biztosítani az AI-alkalmazások számára.
Architekturális áttekintés
Az architektúra fő összetevői a következők:
- Azure-ban üzemeltetett csevegőalkalmazás: A csevegőalkalmazás a Azure-alkalmazás Szolgáltatásban fut.
- A Microsoft AI Chat Protocol szabványos API-szerződéseket biztosít AI-megoldások és nyelvek között. A csevegőalkalmazás megfelel a Microsoft AI csevegési protokolljának, amely lehetővé teszi, hogy a kiértékelési alkalmazás a protokollnak megfelelő csevegőalkalmazásokkal fusson.
- Azure AI Search: A csevegőalkalmazás az Azure AI Search használatával tárolja az adatokat a saját dokumentumaiból.
- Mintakérdés-generátor: Számos kérdést generálhat az egyes dokumentumokhoz, valamint az alapigazságra adott választ. Minél több a kérdés, annál hosszabb az értékelés.
- Az értékelő mintakérdéseket és kérdéseket futtat a csevegőalkalmazáson, és visszaadja az eredményeket.
- A Felülvizsgálati eszköz lehetővé teszi az értékelések eredményeinek áttekintését.
- A Diff eszköz lehetővé teszi a válaszok összehasonlítását az értékelések között.
Amikor üzembe helyezi ezt az értékelést az Azure-ban, az Azure OpenAI-végpont létrejön a modellhez saját GPT-4
kapacitással. A csevegőalkalmazások kiértékelésekor fontos, hogy a kiértékelő saját OpenAI-erőforrással GPT-4
rendelkezik saját kapacitással.
Előfeltételek
Egy Azure-előfizetés. Hozzon létre egyet ingyen
A hozzáférést az Azure OpenAI a kívánt Azure-előfizetésen belül kapja meg.
Ezen szolgáltatáshoz jelenleg csak alkalmazás útján kapható hozzáférés. Az Azure OpenAI-hoz való hozzáférésre a következő https://aka.ms/oai/accessűrlap kitöltésével jelentkezhet: .
Csevegőalkalmazás üzembe helyezése
Ezek a csevegőalkalmazások betöltik az adatokat az Azure AI Search-erőforrásba. Ez az erőforrás szükséges a kiértékelési alkalmazás működéséhez. Ne fejezze be az előző eljárás Erőforrások törlése szakaszát.
A következő Azure-erőforrásadatokra lesz szüksége az üzemelő példányból, amelyet ebben a cikkben csevegőalkalmazásnak nevezünk:
- Chat API URI: A szolgáltatás háttérrendszerének végpontja, amely a
azd up
folyamat végén jelenik meg. - Azure AI Search. A következő értékek szükségesek:
- Erőforrás neve: A folyamat során
azd up
jelentettSearch service
Azure AI Search-erőforrás neve. - Index neve: Annak az Azure AI Search-indexnek a neve, amelyben a dokumentumok találhatók. Ez a Search szolgáltatás az Azure Portalon található.
- Erőforrás neve: A folyamat során
A Chat API URL-címe lehetővé teszi, hogy a kiértékelők kéréseket intézhessenek a háttéralkalmazáson keresztül. Az Azure AI Search adatai lehetővé teszik, hogy a kiértékelési szkriptek ugyanazt az üzembe helyezést használják, mint a háttérrendszer, és a dokumentumokkal betöltve.
Miután összegyűjtötte ezeket az információkat, nem kell újra használnia a csevegőalkalmazás fejlesztési környezetét. A cikk későbbi részében többször is hivatkozunk rá, hogy jelezze, hogyan használja a csevegőalkalmazást a Evaluations alkalmazás. Ne törölje a csevegőalkalmazás erőforrásait, amíg el nem végzi a jelen cikkben szereplő teljes eljárást.
- Chat API URI: A szolgáltatás háttérrendszerének végpontja, amely a
A cikk elvégzéséhez szükséges összes függőséget tartalmazó fejlesztői tárolókörnyezet érhető el. A fejlesztői tárolót a GitHub Codespacesben (böngészőben) vagy helyileg is futtathatja a Visual Studio Code használatával.
- GitHub-fiók
Nyílt fejlesztési környezet
Kezdje most a jelen cikk végrehajtásához telepített összes függőséget tartalmazó fejlesztői környezettel. Gondoskodjon a monitor-munkaterületről, hogy egyszerre jelenhesse meg ezt a dokumentációt és a fejlesztési környezetet is.
Ezt a cikket teszteltük a switzerlandnorth
régióval az értékelés üzembe helyezéséhez.
A GitHub Codespaces egy, a GitHub által felügyelt fejlesztői tárolót futtat a Webes Visual Studio Code-tal felhasználói felületként. A legegyszerűbb fejlesztési környezethez használja a GitHub Codespacest, hogy a megfelelő fejlesztői eszközökkel és függőségekkel rendelkezzen a cikk elvégzéséhez.
Fontos
Minden GitHub-fiók legfeljebb 60 órán át használhatja a Codespace-eket havonta 2 magpéldánysal. További információ: GitHub Codespaces havonta tartalmazza a tárterületet és az alapórákat.
Indítsa el az új GitHub Codespace létrehozásának folyamatát a
main
Azure-Samples/ai-rag-chat-evaluator
GitHub-adattár ágán.A fejlesztési környezet és az egyidejűleg elérhető dokumentáció megjelenítéséhez kattintson a jobb gombbal az alábbi gombra, és válassza a Hivatkozás megnyitása lehetőséget az új ablakban.
A Kódtér létrehozása lapon tekintse át a kódtér konfigurációs beállításait, majd válassza az Új kódtér létrehozása lehetőséget
Várja meg, amíg a kódtér elindul. Ez az indítási folyamat eltarthat néhány percig.
A képernyő alján lévő terminálon jelentkezzen be az Azure-ba az Azure Developer CLI használatával.
azd auth login --use-device-code
Másolja ki a kódot a terminálból, majd illessze be egy böngészőbe. Kövesse az utasításokat az Azure-fiókkal való hitelesítéshez.
A kiértékelési alkalmazáshoz ki kell építenie a szükséges Azure-erőforrást, az Azure OpenAI-t.
azd up
Ez
AZD command
nem telepíti a kiértékelési alkalmazást, de létrehozza az Azure OpenAI-erőforrást egy szükségesGPT-4
üzembe helyezéssel a kiértékelések helyi fejlesztési környezetben való futtatásához.A cikkben szereplő fennmaradó feladatok ennek a fejlesztési tárolónak a kontextusában történnek.
A GitHub-adattár neve megjelenik a keresősávon. Ez a vizuális jelzés segít megkülönböztetni a kiértékelési alkalmazást a csevegőalkalmazástól. Ezt
ai-rag-chat-evaluator
az adattárat ebben a cikkben a Evaluations alkalmazásnak nevezzük.
Környezeti értékek és konfigurációs információk előkészítése
Frissítse a környezeti értékeket és a konfigurációs adatokat a kiértékelési alkalmazás előfeltételei során összegyűjtött információkkal.
.env
Fájl létrehozása a következő alapján.env.sample
:cp .env.sample .env
Futtassa ezt a parancsot az üzembe helyezett erőforráscsoporthoz szükséges értékek lekéréséhez
AZURE_OPENAI_EVAL_DEPLOYMENT
,AZURE_OPENAI_SERVICE
majd illessze be ezeket az értékeket a.env
fájlba:azd env get-value AZURE_OPENAI_EVAL_DEPLOYMENT azd env get-value AZURE_OPENAI_SERVICE
Adja hozzá a következő értékeket az Azure AI Search-példányhoz tartozó csevegőalkalmazásból az
.env
előfeltételek szakaszban összegyűjtött értékhez:AZURE_SEARCH_SERVICE="<service-name>" AZURE_SEARCH_INDEX="<index-name>"
Konfigurációs információk a Microsoft AI Csevegőprotokoll használatával
A csevegőalkalmazás és a kiértékelési alkalmazás egyaránt implementálja a Microsoft AI Chat Protocol specification
használathoz és értékeléshez használt, nyílt forráskódú, felhőbeli és nyelvi AI-végpont API-szerződést. Ha az ügyfél- és a középső szintű végpontok betartják ezt az API-specifikációt, folyamatosan felhasználhatja és futtathatja a kiértékeléseket az AI-háttérrendszereken.
Hozzon létre egy új, elnevezett
my_config.json
fájlt, és másolja a következő tartalmat a fájlba:{ "testdata_path": "my_input/qa.jsonl", "results_dir": "my_results/experiment<TIMESTAMP>", "target_url": "http://localhost:50505/chat", "target_parameters": { "overrides": { "top": 3, "temperature": 0.3, "retrieval_mode": "hybrid", "semantic_ranker": false, "prompt_template": "<READFILE>my_input/prompt_refined.txt", "seed": 1 } } }
A kiértékelési szkript létrehozza a
my_results
mappát.Az
overrides
objektum tartalmazza az alkalmazáshoz szükséges konfigurációs beállításokat. Minden alkalmazás saját beállítástulajdonságokat határoz meg.Az alábbi táblázat segítségével megismerheti a csevegőalkalmazásnak küldött beállítástulajdonságok jelentését:
Beállítások tulajdonság Leírás semantic_ranker A szemantikai rangsoroló használata olyan modell, amely szemantikai hasonlóságon alapuló keresési eredményeket ad vissza a felhasználó lekérdezéséhez. A költségek csökkentése érdekében letiltjuk ezt az oktatóanyagot. retrieval_mode A használni kívánt lekérési mód. Az alapértelmezett érték hybrid
.hőmérséklet A modell hőmérséklet-beállítása. Az alapértelmezett érték 0.3
.top A visszaadni kívánt keresési eredmények száma. Az alapértelmezett érték 3
.prompt_template A kérdés és a keresési eredmények alapján a válasz létrehozásához használt kérdés felülbírálása. mag A GPT-modellek felé irányuló hívások kezdőértéke. A magok beállítása konzisztensebb eredményeket eredményez az értékelések során. Módosítsa a
target_url
csevegőalkalmazás URI-értékére, amelyet az előfeltételek szakaszban gyűjtött össze. A csevegőalkalmazásnak meg kell felelnie a csevegési protokollnak. Az URI formátuma a következőhttps://CHAT-APP-URL/chat
. Győződjön meg arról, hogy a protokoll és azchat
útvonal az URI része.
Mintaadatok létrehozása
Az új válaszok kiértékeléséhez össze kell hasonlítani őket egy "alapigazsággal", amely egy adott kérdés ideális válasza. Kérdések és válaszok létrehozása az Azure AI Searchben tárolt dokumentumokból a csevegőalkalmazáshoz.
Másolja a
example_input
mappát egy új nevűmy_input
mappába.Egy terminálban futtassa a következő parancsot a mintaadatok létrehozásához:
python -m evaltools generate --output=my_input/qa.jsonl --persource=2 --numquestions=14
A kérdés-válasz párokat a rendszer a következő lépésben my_input/qa.jsonl
használt kiértékelő bemeneteként hozza létre és tárolja (JSONL formátumban). Az éles kiértékeléshez több minőségbiztosítási párt hozna létre, több mint 200-et ehhez az adatkészlethez.
Feljegyzés
A forrásonkénti kérdések és válaszok száma azt jelenti, hogy lehetővé teszi az eljárás gyors elvégzését. Ez nem egy éles értékelés, amelynek forrásonként több kérdésre és válaszra van szükség.
Az első értékelés futtatása pontosított kéréssel
A konfigurációs fájl tulajdonságainak
my_config.json
szerkesztése:Tulajdonság Új érték results_dir my_results/experiment_refined
prompt_template <READFILE>my_input/prompt_refined.txt
A pontosított kérés a tárgytartományra vonatkozik.
If there isn't enough information below, say you don't know. Do not generate answers that don't use the sources below. If asking a clarifying question to the user would help, ask the question. Use clear and concise language and write in a confident yet friendly tone. In your answers ensure the employee understands how your response connects to the information in the sources and include all citations necessary to help the employee validate the answer provided. For tabular information return it as an html table. Do not return markdown format. If the question is not in English, answer in the language used in the question. Each source has a name followed by colon and the actual information, always include the source name for each fact you use in the response. Use square brackets to reference the source, e.g. [info1.txt]. Don't combine sources, list each source separately, e.g. [info1.txt][info2.pdf].
Egy terminálban futtassa a következő parancsot a kiértékelés futtatásához:
python -m evaltools evaluate --config=my_config.json --numquestions=14
Ez a szkript létrehozott egy új kísérletmappát
my_results/
a kiértékeléssel. A mappa tartalmazza az értékelés eredményeit, beleértve a következőket:Fájlnév Leírás config.json
A kiértékeléshez használt konfigurációs fájl másolata. evaluate_parameters.json
A kiértékeléshez használt paraméterek. Nagyon hasonló, config.json
de további metaadatokat is tartalmaz, például az időbélyeget.eval_results.jsonl
Minden kérdés és válasz, valamint az egyes minőségbiztosítási párok GPT-metrikái. summary.json
Az általános eredmények, például az átlagos GPT-metrikák.
Második értékelés futtatása gyenge kéréssel
A konfigurációs fájl tulajdonságainak
my_config.json
szerkesztése:Tulajdonság Új érték results_dir my_results/experiment_weak
prompt_template <READFILE>my_input/prompt_weak.txt
Ennek a gyenge kérésnek nincs kontextusa a tárgytartományról:
You are a helpful assistant.
Egy terminálban futtassa a következő parancsot a kiértékelés futtatásához:
python -m evaltools evaluate --config=my_config.json --numquestions=14
Harmadik értékelés futtatása adott hőmérséklettel
Használjon egy parancssort, amely nagyobb kreativitást tesz lehetővé.
A konfigurációs fájl tulajdonságainak
my_config.json
szerkesztése:Meglévő Tulajdonság Új érték Meglévő results_dir my_results/experiment_ignoresources_temp09
Meglévő prompt_template <READFILE>my_input/prompt_ignoresources.txt
Új hőmérséklet 0.9
Az alapértelmezett érték
temperature
0,7. Minél magasabb a hőmérséklet, annál kreatívabb a válasz.A
ignore
parancssor rövid:Your job is to answer questions to the best of your ability. You will be given sources but you should IGNORE them. Be creative!
A konfigurációs objektumnak az alábbihoz hasonlóan kell kinéznie, kivéve, ha az elérési útra cseréli
results_dir
:{ "testdata_path": "my_input/qa.jsonl", "results_dir": "my_results/prompt_ignoresources_temp09", "target_url": "https://YOUR-CHAT-APP/chat", "target_parameters": { "overrides": { "temperature": 0.9, "semantic_ranker": false, "prompt_template": "<READFILE>my_input/prompt_ignoresources.txt" } } }
Egy terminálban futtassa a következő parancsot a kiértékelés futtatásához:
python -m evaltools evaluate --config=my_config.json --numquestions=14
Az értékelési eredmények áttekintése
Három kiértékelést hajtott végre különböző kérések és alkalmazásbeállítások alapján. Az eredmények a my_results
mappában vannak tárolva. Tekintse át, hogyan különböznek az eredmények a beállítások alapján.
Az értékelés eredményeinek megtekintéséhez használja a felülvizsgálati eszközt:
python -m evaltools summary my_results
Az eredmények a következőképpen néznek ki:
A függvény minden értéket számként és százalékértékként ad vissza.
Az értékek jelentésének megértéséhez használja az alábbi táblázatot.
Érték Leírás Alapozottság Ez azt jelenti, hogy a modell válaszai mennyire alapulnak tényszerű, ellenőrizhető információkon. A válasz akkor tekinthető megalapozottnak, ha tényszerűen pontos, és tükrözi a valóságot. Relevancia Ez azt méri, hogy a modell válaszai mennyire összhangban vannak a környezettel vagy a kéréssel. A releváns válasz közvetlenül a felhasználó lekérdezésére vagy utasítására vonatkozik. Koherencia Ez azt jelenti, hogy a modell válaszai logikailag konzisztensek. A koherens válasz egy logikai folyamatot tart fenn, és nem mond ellent önmagának. Idézés Ez azt jelzi, hogy a válasz a kérdésben kért formátumban lett-e visszaadva. Hossz Ez a válasz hosszát méri. Az eredményeknek azt kell jeleznie, hogy mindhárom értékelésnek magas volt a relevanciája, míg a
experiment_ignoresources_temp09
legalacsonyabb volt a relevanciája.Válassza ki a mappát a kiértékelés konfigurációjának megtekintéséhez.
A Ctrl C billentyűkombinációval + lépjen ki az alkalmazásból, és térjen vissza a terminálhoz.
A válaszok összehasonlítása
Hasonlítsa össze a kiértékelésekből kapott válaszokat.
Válassza ki az összehasonlítandó értékelések közül kettőt, majd ugyanazt a felülvizsgálati eszközt használva hasonlítsa össze a válaszokat:
python -m evaltools diff my_results/experiment_refined my_results/experiment_ignoresources_temp09
Tekintse át az eredményeket. Az eredmények eltérőek lehetnek.
A Ctrl C billentyűkombinációval + lépjen ki az alkalmazásból, és térjen vissza a terminálhoz.
Javaslatok további értékelésekhez
- Szerkessze a kérdéseket
my_input
, és szabja testre a válaszokat, például a tárgytartományt, a hosszt és más tényezőket. - Szerkessze a
my_config.json
fájlt az olyan paraméterek módosításához, minttemperature
például a kísérletek, éssemantic_ranker
futtassa újra a kísérleteket. - Hasonlítsa össze a különböző válaszokat annak megértéséhez, hogy a kérdés és a kérdés hogyan befolyásolja a válasz minőségét.
- Az Azure AI Search-index minden dokumentumához külön kérdéseket és alapigaz válaszokat hozhat létre. Ezután futtassa újra az értékeléseket, hogy lássa, miben különböznek a válaszok.
- Módosítsa az utasításokat a rövidebb vagy hosszabb válaszok jelzésére a követelménynek a parancssor végéhez való hozzáadásával. Például:
Please answer in about 3 sentences.
.
Erőforrások és függőségek eltávolítása
Azure-erőforrások tisztítása
A cikkben létrehozott Azure-erőforrások számlázása az Azure-előfizetésbe kerül. Ha a jövőben nem lesz szüksége ezekre az erőforrásokra, törölje őket, hogy elkerülje a további költségek felmerülését.
Az Azure-erőforrások törléséhez és a forráskód eltávolításához futtassa a következő Azure Developer CLI-parancsot :
azd down --purge
GitHub-kódterek eltávolítása
A GitHub Codespaces-környezet törlése biztosítja, hogy maximálisan kihasználható legyen a fiókhoz tartozó ingyenes óránkénti jogosultság.
Fontos
A GitHub-fiók jogosultságairól további információt a GitHub Codespaces havi tartalmazza a tárterületet és az alapórákat.
Jelentkezzen be a GitHub Codespaces irányítópultjára (https://github.com/codespaces).
Keresse meg a Jelenleg futó, a
Azure-Samples/ai-rag-chat-evaluator
GitHub-adattárból származó kódtereket.Nyissa meg a kódtér helyi menüjét, majd válassza a Törlés lehetőséget.
Térjen vissza a csevegőalkalmazás cikkéhez, hogy megtisztítsa ezeket az erőforrásokat.
Következő lépések
- Kiértékelési adattár
- Vállalati csevegőalkalmazás GitHub-adattára
- Csevegőalkalmazás létrehozása az Azure OpenAI ajánlott eljárású megoldásarchitektúrájával
- Hozzáférés-vezérlés Generatív AI-alkalmazásokban az Azure AI Search használatával
- Nagyvállalati használatra kész OpenAI-megoldás létrehozása az Azure API Management használatával
- A vektorkeresés túllépése hibrid lekérési és rangsorolási képességekkel