AI-t tesztelnél? Mutatunk egy módszert!

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

Megosztás

Kérsz értesítést a legújabb cikkekről?

Kapcsolódó cikkek

A tesztpiramis: a stabil és kifizetődő tesztautomatizálás alapköve

Bevezető A szoftverfejlesztés világában az automatizálás gyakran úgy indul, mint egy lelkes fellángolás: „Minden manuális tesztet váltsunk ki automata scriptekkel!” A kezdeti eufória után azonban sok projektvezető és fejlesztő szembesül a kőkemény valósággal. A tesztek lassúak, gyakran ok nélkül elbuknak, a karbantartásuk pedig több időt emészt fel, mint amennyit maga a fejlesztés. Ilyenkor merül fel

Tesztautomatizálás: mikor érdemes belevágni, és mikor várjunk még?

Bevezető A szoftverfejlesztési projektek egyik legvitatottabb kérdése nem az, hogy kell-e automatizálni a tesztelést, hanem az, hogy mikor. „Már az első naptól írjunk automata teszteket, vagy ráérünk, ha már kész a funkciók nagy része?” – hangzik el a kérdés szinte minden projektindító megbeszélésen. A válasz azonban nem egy egyszerű dátum vagy verziószám. A tesztautomatizálás ugyanis

Tesztautomatizálás útmutató: mikor, hogyan és miért érdemes bevezetni?

Szoftvert fejleszteni ma már nem csak kódolást jelent. Egy termék sikere legalább annyira múlik azon, hogy a kiadás pillanatában stabilan, hibamentesen és megbízhatóan működjön, mint magán az ötleten. Ahogy az IT projektek egyre komplexebbé válnak, a hagyományos, tisztán manuális tesztelés egyre kevésbé tud lépést tartani a fejlesztés tempójával. Eljön a pont, amikor a tesztelés már

Scroll to Top