Az AI alkalmazások létrehozásában, szakértőként felhívjuk az ügyfelek figyelmét az ehhez kapcsolódó sajátosságokra. Mivel a szoftvertermékek speciálisak, a minőségbiztosításuk is az. Az AI alkalmazások teszteléséről, kihívásairól, lehetséges edge case-eiről és a legjobb gyakorlatairól olvashatsz néhány gondolatot ebben a cikkben. Képet kapsz arról is, hogyan végzik a szakemberek a fejlesztés alatt álló AI rendszerek tesztelését.
Az AI alkalmazások tesztelése speciális megközelítést igényel és a hagyományos QA módszereket célszerű AI-specifikus tesztelési technikákkal kombinálni. A tesztelés során kiemelt figyelmet kell fordítani az alapvető AI algoritmusok és logika ellenőrzésére, hogy a várt eredményeket produkálják különböző forgatókönyvekben. Ezzel párhuzamosan vizsgálni kell a felhasználói élményt és a felhasználóbarát interakciót, különösen a természetes nyelvi megértés és hibakezelés terén.
Kulcsfontosságú ellenőrizni, hogy az AI modellek zökkenőmentesen tudjanak együttműködni más szoftverekkel, adatbázisokkal és külső API-kkal. A tesztelés során meg kell vizsgálni az AI szolgáltatások API végpontjainak helyes működését. Emellett kiemelt figyelmet kell fordítani a biztonsági tesztelésre is: védeni kell az adatokat és a modell beállításait, valamint meg kell akadályozni, hogy az AI képességeivel bárki visszaélhessen.
A sikeres tesztelés kulcsa a hagyományos és AI-specifikus módszerek rugalmas alkalmazása, az adott alkalmazás egyedi jellemzőinek figyelembevételével. Az AI rendszerek teszteléséhez számos specifikus eszköz használható. Ezek közül néhány hangsúlyosat kiemelek, de a sor még folytatható:
- TFX (TensorFlow’s TensorFlow Extended): olyan eszköz, amely a gépi tanulási modellek teljes életciklusát támogatja, a nyers adatok feldolgozásától egészen a modellek produkciós környezetben történő telepítéséig és felügyeletéig. Alkalmas adatvalidálásra és -feldolgozásra, modell-elemzésre és -képzésre, valamint modell-teljesítmény mérésére.
- Scikit-learn és PyTorch torch.testing modulja: általános célú keretrendszerek és könyvtárak, amelyek az AI-modell teszteléséhez használhatók.
- FairML: fontos eszköz a gépi tanulási modellek etikai kockázatainak csökkentésére és a méltányos, diszkriminációmentes működés biztosítására. Viszgálja a torzítást, ami olyan rendszerszintű hibát, vagy hibás előfeltevést jelent, amely szisztematikusan torzítja a modell kimenetét. Különböző formái lehetnek, mint az adattorzítás, amikor a betanító adatok nem reprezentálják megfelelően a teljes célpopulációt, az algoritmus-torzítás, amikor a gépi tanulási algoritmus nem teljesen korrekt vagy pártatlan, az emberi torzítás, amikor az adatcímkézés vagy a modell megtervezése során emberi előítéletek érvényesülnek, illetve az interakciós torzítás, amikor a modell és a felhasználó közötti interakció során további torzítások lépnek fel.
- TensorFlow Model Analysis: a modell-értékelésre alkalmas eszköz, vagyis segít eldönteni, hogy a gépi tanulási modell kellően jól teljesít-e a célfeladatban, így kulcsfontosságú a modell hatékony és etikus felhasználásához. Ennek keretében vizsgálja a modell predikciós pontosságát, általánosítási képességét, a túlilleszkedés elkerülését, a megbízhatóságot és kalibrálást, valamint a modell szemantikus és etikai aspektusait.
A tesztelési eszköztár folyamatosan bővül az AI-fejlesztések előre lepésével és a felhasználási formák bővülésével. A QA szakembereknek naprakésznek kell lenniük az elérhető eszközökre vonatkozóan, illetve a termék-specifikus igényeknek leginkább megfelelőket kell kiválasztaniuk, ezért jelentős kihívásokkal küzdenek az új terület növekedésével egyidejűleg.
Két fontos különbséget érdemes kiemelni az AI-rendszerek tesztelésével kapcsolatban. Egyrészt a tesztelésük dinamikus és folytonos odafigyelést igényel. Mivel ezek a rendszerek szakadatlan tanulnak és fejlődnek, ellenőrzésük nem egy egyszeri, statikus folyamat, hanem állandó monitorozást és finomhangolást követel meg, szemben a hagyományos szoftverek eseti újratesztelésével. Ezeket a termékeket állandóan frissíteni kell az új adatokhoz és bemenetekhez való alkalmazkodás érdekében, így a tesztelés is folyamatos.
Másrészt az AI-alkalmazások nem determinisztikus jellegűek, ezért a tesztelés nem csupán a hibák kiszűrésére szolgál, hanem szükséges a permanens optimalizálás, a modell teljesítményének javítására és a felmerülő új kihívásokhoz való alkalmazkodásra. Ez magában foglalja az AI-előrejelzések pontosságának, a chatbot-válaszok megbízhatóságának és a modellek robusztusságának ellenőrzését.
Az AI-alkalmazásokhoz szükséges adatok beszerzése, gyűjtése és előkészítése a tesztelési szakemberek aktív közreműködését igényli. Az adatok jellege az alkalmazás céljától függ, például számok, speciális szöveg, képek és hangok lehetnek. A tesztelési szakemberek feladata, hogy reprezentatív adatkészleteket biztosítsanak az AI-modellek betanításához és teszteléséhez, figyelembe véve a különböző környezeti tényezők, például a megvilágítás, a háttér és a zaj hatását.
Alább egy esettanulmány olvasható, aminek segítségével a fentebb leírtak könnyebben megérthetők. A feladatot a MobiDev cég vitte végig.
Interaktív alkalmazás 3D CG karakterrel
A projekt egy 5G-hálózatot népszerűsítő, mesterséges intelligenciával vezérelt 3D CG karaktert (virtuális ember, avatar) tartalmazott, amely képes emberekkel kommunikálni. A QA csapat végezte a végpontok közötti tesztelést, és részt vett az adathalmazok javításában.
A projekt technológiai stack-je a következő volt:
- Front-end: JS
- Back-end: Python, Unreal Engine szerver, REST API
- Állomás (kiosk) oldal: Android eszköz kamerával, külső mikrofonnal, TV-képernyővel és külső hangszórókkal.
Az AI részrendszer technológiai stack-je:
- Emberfelismerési megközelítés: MediaPipe Platform
- Beszédfelismerési megközelítés: NeMo modell a beszédfelismeréshez, Neuspell mint helyesírás-javító modell
- Természetes nyelvértés: RASA
- Hangfelismerési megközelítés: Dialogflow – konverzációs AI
A cég QA csapatának feladata volt a végpontok közötti tesztelés és az adathalmazok javításában való közreműködés.
Esetükben a tesztelés során a következő edge case-ekkel kellett számolni az AI részalkalmazásnál:
- Zajkihívás: Az AI-modelleknek meg kell küzdeniük a zajos környezetekkel, kiszűrve a nemkívánatos hangokat a beszéd pontos átiratához.
- Nem megfelelő távolság: A személy és a kamera-mikrofon rendszer közötti távolság változásai befolyásolhatják a hangbemenet minőségét, ami téves értelmezésekhez vezethet.
- Korlátozott betanító adatok: Amikor az AI-modellek csak korlátozott adatkészlettel rendelkeznek a betanításhoz, felismerési képességeik is sérülhetnek a különböző akcentusok, dialektusok és beszédstílusok tekintetében.
- Változó megvilágítási körülmények: A megvilágítás változásai befolyásolhatják a videó minőségét, ami hatással van a szájmozgásra támaszkodó beszédfelismerő rendszerekre.
- Nem és kiejtés: A férfi és női hangok megkülönböztetésének, valamint a szavak többféle kiejtésének kezelése további bonyolultságot ad a beszéd-szöveg modellek számára.
- Emberfelismerés: A különböző háttér, testtartás és takarás mellett az emberek robusztus azonosítása fejlett AI-algoritmusokat igényel.
- Gesztusértelmezés: A különböző gesztusok és testmozgások jelentésének megértése a viselkedés árnyalt megértését igényli a modell finomhangolása során.
- Érzelemfelismerés: Az arckifejezésekből és a testbeszédből az érzelmek megkülönböztetése a humán viselkedés és kultúra mélyreható megértését igényli.
A Chatbot részalkalmazás tesztelésekor az alábbi edge case-eket vizsgálta a MobiDev QA csapata:
- Tisztázatlan szándék: A felhasználók olyan lekérdezéseket adnak, amelyek nem illeszkednek egyetlen előre meghatározott szándékhoz sem. Ellenőrizni kell, hogyan kezeli ezt az esetet a chatbot.
- Túl sok módja a „szia” köszönésnek: A felhasználók ugyanazt a szándékot különböző kifejezések és nyelvi változatok használatával fejezhetik ki. Biztosítani kell, hogy a chatbot képes legyen dolgozni velük, és megfelelő választ tudjon adni.
- Témák közötti ugrálás: A felhasználók váltanak a szándékok között a beszélgetési kontextusban. Ellenőrizni kell, hogy a rendszer tud-e ezzel kezelni.
- Negatív kijelentések kezelése: A chatbotnak képesnek kell lennie a negatív felhasználói szándék megfelelő értelmezésére, és ennek megfelelően „reagálni”.
- A chatbot hatókörén vagy képességein kívüli felhasználói bemenetek: Biztosítani kell, hogy a chatbot kezelni tudja a küldetésével nem összefüggő adatokat, és udvariasan elutasítja az ilyen kérésekre adott válaszokat.
Összességében a chatbot tesztelése során kiemelt figyelmet kellett fordítani a természetes nyelv feldolgozásának (NLP) különböző kihívásaira, hogy a rendszer képes legyen megérteni a felhasználók szándékait és megfelelően tudjon válaszolni rájuk.
Forrás: https://mobidev.biz/blog/how-to-test-ai-ml-applications-chatbots


