Ko AI agenti prehajajo iz eksperimentalnih prototipov v resnične aplikacije, postane ključnega pomena razumevanje njihovega vedenja, spremljanje njihovega delovanja in sistematično ocenjevanje njihovih rezultatov.
Po zaključku te lekcije boste znali/razumeli:
Cilj je, da pridobite znanje za preoblikovanje svojih “črnih škatel” agentov v pregledne, obvladljive in zanesljive sisteme.
Opomba: Pomembno je uvajati AI agente, ki so varni in vredni zaupanja. Oglejte si lekcijo Gradnja zaupanja vrednih AI agentov.
Orodja za opazovanje, kot sta Langfuse ali Azure AI Foundry, običajno predstavljajo izvajanje agentov kot sledi in razpone.
Brez opazovanja se AI agent lahko zdi kot “črna škatla” – njegovo notranje stanje in razmišljanje sta nejasna, kar otežuje diagnosticiranje težav ali optimizacijo delovanja. Z opazovanjem pa agenti postanejo “steklene škatle”, kar omogoča preglednost, ki je ključna za gradnjo zaupanja in zagotavljanje, da delujejo po pričakovanjih.
Prehod AI agentov v produkcijska okolja prinaša nove izzive in zahteve. Opazovanje ni več “lepa lastnost”, ampak ključna sposobnost:
Za spremljanje in razumevanje vedenja agenta je treba spremljati vrsto metrik in signalov. Čeprav se specifične metrike lahko razlikujejo glede na namen agenta, so nekatere univerzalno pomembne.
Tukaj je nekaj najpogostejših metrik, ki jih orodja za opazovanje spremljajo:
Zakasnitev: Kako hitro agent odgovori? Dolgi čakalni časi negativno vplivajo na uporabniško izkušnjo. Meriti morate zakasnitev za naloge in posamezne korake s sledenjem izvajanja agenta. Na primer, agent, ki za vse klice modela potrebuje 20 sekund, bi lahko pospešili z uporabo hitrejšega modela ali vzporednim izvajanjem klicev modela.
Stroški: Kakšni so stroški na izvajanje agenta? AI agenti se zanašajo na klice LLM, ki se zaračunavajo na token ali na zunanje API-je. Pogosta uporaba orodij ali več pozivov lahko hitro poveča stroške. Na primer, če agent petkrat pokliče LLM za marginalno izboljšanje kakovosti, morate oceniti, ali so stroški upravičeni ali pa zmanjšati število klicev ali uporabiti cenejši model. Spremljanje v realnem času lahko pomaga prepoznati nepričakovane konice (npr. napake, ki povzročajo prekomerne zanke API).
Napake pri zahtevah: Koliko zahtev je agentu spodletelo? To lahko vključuje napake API ali neuspele klice orodij. Da bi vaš agent postal bolj robusten v produkciji, lahko nastavite rezervne možnosti ali ponovne poskuse. Na primer, če je ponudnik LLM A nedosegljiv, preklopite na ponudnika LLM B kot rezervno možnost.
Povratne informacije uporabnikov: Neposredne ocene uporabnikov zagotavljajo dragocene vpoglede. To lahko vključuje eksplicitne ocene (👍thumbs-up/👎down, ⭐1-5 zvezdic) ali besedilne komentarje. Dosledne negativne povratne informacije bi vas morale opozoriti, saj to pomeni, da agent ne deluje po pričakovanjih.
Implicitne povratne informacije uporabnikov: Vedenje uporabnikov zagotavlja posredne povratne informacije, tudi brez eksplicitnih ocen. To lahko vključuje takojšnje preoblikovanje vprašanja, ponavljajoče se poizvedbe ali klik na gumb za ponovni poskus. Na primer, če opazite, da uporabniki večkrat postavljajo isto vprašanje, je to znak, da agent ne deluje po pričakovanjih.
Točnost: Kako pogosto agent ustvari pravilne ali zaželene rezultate? Definicije točnosti se razlikujejo (npr. pravilnost reševanja problemov, točnost pridobivanja informacij, zadovoljstvo uporabnikov). Prvi korak je opredeliti, kaj pomeni uspeh za vašega agenta. Točnost lahko spremljate prek avtomatiziranih preverjanj, ocenjevalnih točk ali oznak dokončanja nalog. Na primer, označevanje sledi kot “uspešno” ali “neuspešno”.
Avtomatizirane ocenjevalne metrike: Lahko nastavite tudi avtomatizirane ocene. Na primer, lahko uporabite LLM za ocenjevanje izhoda agenta, npr. ali je koristen, točen ali ne. Obstajajo tudi številne odprtokodne knjižnice, ki pomagajo oceniti različne vidike agenta. Na primer, RAGAS za RAG agente ali LLM Guard za zaznavanje škodljivega jezika ali vbrizgavanja pozivov.
V praksi kombinacija teh metrik zagotavlja najboljši pregled nad zdravjem AI agenta. V primeru zvezka v tem poglavju vam bomo pokazali, kako te metrike izgledajo v resničnih primerih, vendar se najprej naučimo, kako izgleda tipičen potek ocenjevanja.
Za zbiranje podatkov o sledenju boste morali instrumentirati svojo kodo. Cilj je instrumentirati kodo agenta, da oddaja sledi in metrike, ki jih lahko opazovalna platforma zajame, obdela in vizualizira.
OpenTelemetry (OTel): OpenTelemetry se je uveljavil kot industrijski standard za opazovanje LLM. Ponuja nabor API-jev, SDK-jev in orodij za generiranje, zbiranje in izvoz telemetrijskih podatkov.
Obstajajo številne knjižnice za instrumentiranje, ki ovijejo obstoječe okvirje agentov in omogočajo enostaven izvoz razponov OpenTelemetry v orodje za opazovanje. Spodaj je primer instrumentiranja agenta AutoGen z OpenLit knjižnico za instrumentiranje:
import openlit
openlit.init(tracer = langfuse._otel_tracer, disable_batch = True)
Primer zvezka v tem poglavju bo pokazal, kako instrumentirati vašega agenta AutoGen.
Ročno ustvarjanje razponov: Čeprav knjižnice za instrumentiranje zagotavljajo dobro osnovo, pogosto obstajajo primeri, ko so potrebne podrobnejše ali prilagojene informacije. Razpone lahko ročno ustvarite za dodajanje prilagojene logike aplikacije. Še pomembneje, lahko obogatite samodejno ali ročno ustvarjene razpone s prilagojenimi atributi (znanimi tudi kot oznake ali metapodatki). Ti atributi lahko vključujejo poslovno specifične podatke, vmesne izračune ali katero koli kontekstualno informacijo, ki bi lahko bila koristna za odpravljanje napak ali analizo, kot so user_id
, session_id
ali model_version
.
Primer ročnega ustvarjanja sledi in razponov z Langfuse Python SDK:
from langfuse import get_client
langfuse = get_client()
span = langfuse.start_span(name="my-span")
span.end()
Opazovanje nam daje metrike, vendar je ocenjevanje proces analiziranja teh podatkov (in izvajanja testov), da ugotovimo, kako dobro AI agent deluje in kako ga lahko izboljšamo. Z drugimi besedami, ko imate te sledi in metrike, kako jih uporabiti za oceno agenta in sprejemanje odločitev?
Redno ocenjevanje je pomembno, ker so AI agenti pogosto nedeterministični in se lahko razvijajo (prek posodobitev ali spreminjajočega vedenja modela) – brez ocenjevanja ne bi vedeli, ali vaš “pametni agent” dejansko dobro opravlja svoje delo ali pa je nazadoval.
Obstajata dve kategoriji ocenjevanja AI agentov: spletno ocenjevanje in nespletno ocenjevanje. Obe sta dragoceni in se medsebojno dopolnjujeta. Običajno začnemo z nespletnim ocenjevanjem, saj je to minimalni potrebni korak pred uvajanjem agenta.
To vključuje ocenjevanje agenta v nadzorovanem okolju, običajno z uporabo testnih podatkovnih zbirk, ne pa živih uporabniških poizvedb. Uporabljate kurirane podatkovne zbirke, kjer veste, kakšen je pričakovani rezultat ali pravilno vedenje, in nato preizkusite agenta na teh podatkih.
Na primer, če ste zgradili agenta za matematične besedilne probleme, bi lahko imeli testno podatkovno zbirko s 100 problemi z znanimi odgovori. Nespletno ocenjevanje se pogosto izvaja med razvojem (in je lahko del CI/CD procesov), da preverite izboljšave ali preprečite nazadovanja. Prednost je, da je ponovljivo in lahko dobite jasne metrike točnosti, saj imate resnico. Lahko tudi simulirate uporabniške poizvedbe in merite odzive agenta glede na idealne odgovore ali uporabite avtomatizirane metrike, kot je opisano zgoraj.
Ključni izziv pri nespletnem ocenjevanju je zagotoviti, da je vaša testna podatkovna zbirka celovita in ostaja relevantna – agent lahko dobro deluje na fiksnem testnem naboru, vendar naleti na zelo različne poizvedbe v produkciji. Zato morate testne nabore posodabljati z novimi mejami in primeri, ki odražajo resnične scenarije. Mešanica majhnih “dimnih testov” in večjih ocenjevalnih naborov je koristna: majhni nabori za hitre preveritve in večji za širše metrike delovanja.
To se nanaša na ocenjevanje agenta v živem, resničnem okolju, tj. med dejansko uporabo v produkciji. Spletno ocenjevanje vključuje spremljanje delovanja agenta na resničnih interakcijah uporabnikov in neprekinjeno analiziranje rezultatov.
Na primer, lahko spremljate stopnje uspešnosti, ocene zadovoljstva uporabnikov ali druge metrike na živem prometu. Prednost spletnega ocenjevanja je, da zajame stvari, ki jih morda ne bi predvideli v laboratorijskem okolju – lahko opazujete odmik modela skozi čas (če se učinkovitost agenta poslabša, ko se vzorci vhodnih podatkov spremenijo) in zaznate nepričakovane poizvedbe ali situacije, ki niso bile v vaših testnih podatkih. Ponuja resnično sliko, kako se agent obnaša v naravi.
Spletno ocenjevanje pogosto vključuje zbiranje implicitnih in eksplicitnih povratnih informacij uporabnikov, kot je bilo že omenjeno, in morda izvajanje senčnih testov ali A/B testov (kjer nova različica agenta deluje vzporedno za primerjavo s staro). Izziv je, da je lahko težko pridobiti zanesljive oznake ali ocene za žive interakcije – morda se zanašate na povratne informacije uporabnikov ali metrike navzdol (na primer, ali je uporabnik kliknil rezultat).
Spletno in nespletno ocenjevanje se ne izključujeta; močno se dopolnjujeta. Vpogledi iz spletnega spremljanja (npr. nove vrste uporabniških poizvedb, kjer agent slabo deluje) se lahko uporabijo za dopolnitev in izboljšanje nespletnih testnih podatkovnih zbirk. Nasprotno pa se agenti, ki dobro delujejo v nespletnih testih, lahko bolj samozavestno uvedejo in spremljajo spletno.
Pravzaprav mnoge ekipe sprejmejo zanko:
oceni nespletno -> uvedi -> spremljaj spletno -> zberi nove primere neuspehov -> dodaj v nespletni nabor podatkov -> izboljšaj agenta -> ponovi.
Ko uvajate AI agente v produkcijo, se lahko srečate z različnimi izzivi. Tukaj je nekaj pogostih težav in njihovih možnih rešitev:
Težava | Možna rešitev |
---|---|
AI agent ne izvaja nalog dosledno | - Izboljšajte poziv, ki ga dajete AI agentu; bodite jasni glede ciljev. - Ugotovite, kje bi razdelitev nalog na podnaloge in njihovo obravnavanje s strani več agentov lahko pomagala. |
AI agent zaide v neprekinjene zanke | - Poskrbite, da imate jasne pogoje za zaključek, da agent ve, kdaj ustaviti proces. |
Ko se AI agenti premaknejo iz faze razvoja v produkcijo, se pogosto pojavijo izzivi. Tukaj je nekaj pogostih težav, ki jih lahko srečate, skupaj s predlogi za njihovo reševanje.
Težava | Rešitev |
---|---|
Agent ne daje pričakovanih rezultatov | - Preverite, ali so podatki za usposabljanje ustrezni za vaš primer uporabe. - Preverite, ali so parametri in pozivi pravilno nastavljeni. |
Agent ne razume kompleksnih nalog | - Uporabite večji model, ki je specializiran za naloge, ki zahtevajo kompleksno razmišljanje. |
Orodja AI agenta ne delujejo dobro | - Testirajte in preverite rezultate orodij zunaj sistema agenta. - Izboljšajte definirane parametre, pozive in poimenovanje orodij. |
Sistem z več agenti ne deluje dosledno | - Izboljšajte pozive, ki jih prejme vsak agent, da zagotovite, da so specifični in se med seboj razlikujejo. - Zgradite hierarhični sistem z “usmerjevalnim” ali kontrolnim agentom, ki določi, kateri agent je pravi za nalogo. |
Veliko teh težav je mogoče učinkoviteje prepoznati z ustrezno opazljivostjo. Sledi in metrike, o katerih smo govorili prej, pomagajo natančno določiti, kje v delovnem toku agenta se pojavijo težave, kar omogoča hitrejše odpravljanje napak in optimizacijo.
Tukaj je nekaj strategij za upravljanje stroškov pri uvajanju AI agentov v produkcijo:
Uporaba manjših modelov: Majhni jezikovni modeli (SLM) lahko dobro delujejo pri določenih primerih uporabe agentov in znatno zmanjšajo stroške. Kot smo že omenili, je najboljši način za razumevanje, kako dobro bo SLM deloval za vaš primer uporabe, vzpostavitev sistema za ocenjevanje, ki primerja zmogljivost manjših modelov z večjimi. Razmislite o uporabi SLM za enostavnejše naloge, kot so klasifikacija namena ali ekstrakcija parametrov, medtem ko večje modele rezervirate za kompleksno razmišljanje.
Uporaba usmerjevalnega modela: Podobna strategija je uporaba raznolikosti modelov in velikosti. Uporabite LLM/SLM ali strežniško funkcijo za usmerjanje zahtev glede na kompleksnost k najbolj ustreznim modelom. To bo pomagalo zmanjšati stroške, hkrati pa zagotovilo zmogljivost za prave naloge. Na primer, preusmerite enostavna vprašanja k manjšim, hitrejšim modelom, medtem ko za kompleksne naloge uporabite dražje velike modele.
Predpomnjenje odgovorov: Prepoznavanje pogostih zahtev in nalog ter zagotavljanje odgovorov, preden gredo skozi vaš sistem agentov, je dober način za zmanjšanje obsega podobnih zahtev. Lahko celo implementirate proces za ugotavljanje, kako podobna je zahteva vašim predpomnjenim zahtevam, z uporabo bolj osnovnih AI modelov. Ta strategija lahko znatno zmanjša stroške za pogosto zastavljena vprašanja ali običajne delovne tokove.
V primerjalni beležki tega razdelka bomo videli primere, kako lahko uporabimo orodja za opazljivost za spremljanje in ocenjevanje našega agenta.
Pridružite se Azure AI Foundry Discord, kjer se lahko povežete z drugimi učenci, udeležite uradnih ur in dobite odgovore na svoja vprašanja o AI agentih.
Metakognitivni vzorec oblikovanja
Omejitev odgovornosti:
Ta dokument je bil preveden z uporabo storitve za prevajanje z umetno inteligenco Co-op Translator. Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem maternem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo profesionalni prevod s strani človeka. Ne prevzemamo odgovornosti za morebitna nesporazumevanja ali napačne razlage, ki bi nastale zaradi uporabe tega prevoda.