Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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 cikk utasításait követve a következőket kell követnie:
- 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 a létrehozott felhasználói kérdéseket tartalmazó mintakérdés használatával.
- 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 könnyen üzembe helyezhető, jól karbantartott referencia-implementációkat biztosítanak. 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.
- Microsoft AI-csevegési protokoll: A protokoll szabványosított API-szerződéseket biztosít az 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: Az eszköz számos kérdést generálhat az egyes dokumentumokhoz, valamint az alapigaz választ. Minél több kérdés merül fel, annál hosszabbak az értékelések.
- Kiértékelő: Az eszköz mintakérdéseket futtat, és rákérdez a csevegőalkalmazásra, és visszaadja az eredményeket.
- Felülvizsgálati eszköz: Az eszköz áttekinti az értékelések eredményeit.
- Diff eszköz: Az eszköz összehasonlítja a válaszokat az értékelések között.
Amikor üzembe helyezi ezt a kiértékelési szolgáltatást az Azure-ban, az Azure OpenAI-szolgáltatásvégpont létrejön a modellhez saját GPT-4kapacitással. A csevegőalkalmazások értékelésekor fontos, hogy a kiértékelő saját Azure OpenAI-erőforrással GPT-4 rendelkezzen saját kapacitásával.
Előfeltételek
Egy Azure-előfizetés. Hozzon létre egyet ingyen
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 van szüksége az üzembe helyezésrő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 upfolyamat végén jelenik meg. - Azure AI Search. A következő értékek szükségesek:
- Erőforrás neve: A folyamat során
Search servicejelentettazd upAzure AI Search-erőforrás neve. - Index neve: Annak az Azure AI Search-indexnek a neve, amelyben a dokumentumok találhatók. Az index nevét az Azure Portalon találja a Keresési szolgáltatáshoz.
- 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. Ez a cikk többször hivatkozik a csevegőalkalmazásra , amely bemutatja, hogyan használja a Kiértékelési alkalmazás . Ne törölje a csevegőalkalmazás erőforrásait, amíg be nem fejezi a cikk összes lépését.
- 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
Fejlesztői környezet megnyitása
A cikk elvégzéséhez kövesse az alábbi utasításokat egy előre konfigurált fejlesztési környezet beállításához az összes szükséges függőséggel együtt. Rendezze el a monitor-munkaterületet, hogy egyszerre láthassa ezt a dokumentációt és a fejlesztési környezetet.
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. A cikk elvégzéséhez a megfelelő fejlesztői eszközökkel és függőségekkel rendelkezik.
Fontos
Minden GitHub-fiók legfeljebb 60 órán át használhatja a GitHub Codespace-eket havonta két alapvető példánnyal. További információ: GitHub Codespaces havonta tartalmazza a tárterületet és az alapórákat.
Indítsa el az új GitHub-kódtér létrehozását az
mainGitHub-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-codeMá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 szükséges Azure-erőforrás, az Azure OpenAI Szolgáltatás kiépítése:
azd upEz a
AZDparancs 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 Keresősávon megjelenik a GitHub-adattár neve. 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 kiértékelési 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.
Hozzon létre egy
.envfájlt a.env.samplealapján.cp .env.sample .envFuttassa ezt a parancsot, hogy lekérje a szükséges értékeket a
AZURE_OPENAI_EVAL_DEPLOYMENTésAZURE_OPENAI_SERVICEelemekhez az üzembe helyezett erőforráscsoportból. Illessze be ezeket az értékeket a.envfájlba.azd env get-value AZURE_OPENAI_EVAL_DEPLOYMENT azd env get-value AZURE_OPENAI_SERVICEAdja hozzá a következő értékeket a csevegőalkalmazás Azure AI Search példányához az
.envfájlhoz, amelyet az Előfeltételek szakaszban gyűjtött össze.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 specifikációját, egy nyílt forráskódú, felhőbeli és nyelvi agnosztikus AI-végpont API-szerződést, amelyet használathoz és értékeléshez használnak. Ha az ügyfél- és középszintű 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.jsonfá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_resultsmappát.Az
overridesobjektum az alkalmazáshoz szükséges konfigurációs beállításokat tartalmazza. 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ási tulajdonság Leírás semantic_rankerA 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_modeA használni kívánt lekérési mód. Az alapértelmezett érték hybrid.temperatureA modell hőmérséklet-beállítása. Az alapértelmezett érték 0.3.topA visszaadni kívánt keresési eredmények száma. Az alapértelmezett érték 3.prompt_templateA 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. seedA 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 az
target_urlértéket a 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 egy alapigaz válaszhoz kell hasonlítani őket, amely ideális válasz egy adott kérdésre. Kérdések és válaszok létrehozása a csevegőalkalmazás Azure AI Searchben tárolt dokumentumaiból.
Másolja a
example_inputmappát egy új, névvel ellátottmy_inputmappá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). Gyártási értékeléshez több kérdés- és válaszpárt kell létrehozni. Ehhez az adatkészlethez több mint 200 készül.
Feljegyzés
Forrásonként csak néhány kérdés és válasz jön létre, hogy gyorsan elvégezhesse ezt az eljárást. Nem éles értékelésnek szánták, amelynek forrásonként több kérdésnek és válasznak kell lennie.
Az első értékelés futtatása pontosított kéréssel
Szerkessze a
my_config.jsonkonfigurációs fájl tulajdonságait.Tulajdonság Új érték results_dirmy_results/experiment_refinedprompt_template<READFILE>my_input/prompt_refined.txtA 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 a 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=14Ez 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.Fájlnév Leírás config.jsonA kiértékeléshez használt konfigurációs fájl másolata. evaluate_parameters.jsonA kiértékeléshez használt paraméterek. Hasonló más metaadatokhoz config.json, például időbélyegekhez.eval_results.jsonlMinden kérdés és válasz, valamint az egyes kérdés-válasz párok GPT-metrikái. summary.jsonAz általános eredmények, például az átlagos GPT-metrikák.
Futtassa a második értékelést egy gyenge utasítással
Szerkessze a
my_config.jsonkonfigurációs fájl tulajdonságait.Tulajdonság Új érték results_dirmy_results/experiment_weakprompt_template<READFILE>my_input/prompt_weak.txtEnnek 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
A harmadik kiértékelés futtatása adott hőmérséklettel
Használjon egy parancssort, amely nagyobb kreativitást tesz lehetővé.
Szerkessze a
my_config.jsonkonfigurációs fájl tulajdonságait.Meglévő Tulajdonság Új érték Meglévő results_dirmy_results/experiment_ignoresources_temp09Meglévő prompt_template<READFILE>my_input/prompt_ignoresources.txtÚj temperature0.9Az alapértelmezett érték
temperature0,7. Minél magasabb a hőmérséklet, annál kreatívabb a válasz.A
ignoreparancssor 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 a következő példához hasonlóan kell kinéznie, kivéve, hogy az elérési útra cserélte
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_resultsAz 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 Ellenőrzi, 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 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 Ellenőrzi, hogy a modell válaszai logikailag konzisztensek-e. A koherens válasz egy logikai folyamatot tart fenn, és nem mond ellent önmagának. Idézés Azt jelzi, hogy a válasz a kérdésben kért formátumban lett-e visszaadva. Hossz 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_temp09legalacsonyabb volt a relevanciája.Válassza ki a mappát a kiértékelés konfigurációjának megtekintéséhez.
Az alkalmazásból való kilépéshez és a terminálhoz való visszatéréshez írja be a CtrlC + .
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_temp09Tekintse át az eredményeket. Az eredmények eltérőek lehetnek.
Az alkalmazásból való kilépéshez és a terminálhoz való visszatéréshez írja be a CtrlC + .
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.jsonfájlt az olyan paraméterek módosításához, minttemperaturepéldául a kísérletek, éssemantic_rankerfuttassa ú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élda:
Please answer in about 3 sentences.
Erőforrások és függőségek eltávolítása
Az alábbi lépések végigvezetik a használt erőforrások megtisztításának folyamatán.
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
A GitHub Codespaces és a Visual Studio Code 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ópultba.
Keresse meg az Azure-Samples/ai-rag-chat-evaluator GitHub-adattárból származó jelenleg futó kódtereket.
Nyissa meg a kódtér helyi menüjét, majd válassza a Törléslehetőséget.
Menjen vissza a csevegőalkalmazás cikkéhez az erőforrások megtisztítása érdekében.
Kapcsolódó tartalom
- Tekintse meg a kiértékelési adattárat.
- Tekintse meg a vállalati csevegőalkalmazás GitHub-adattárát.
- csevegőalkalmazás létrehozása az Azure OpenAI ajánlott eljárások megoldásarchitektúrájával.
- Az Azure AI Searchsegítségével megismerheti
generatív AI-alkalmazások hozzáférés-vezérlését. - nagyvállalati használatra kész Azure OpenAI-megoldás létrehozása az Azure API Managementhasználatával.
- Lásd Azure AI Search: A vektorkeresés túllépése hibrid lekérési és rangsorolási képességekkel.