Kas yra DI haliucinacijos?

Stebėjome produkto demonstraciją, kai ChatGPT padarė kažką netikėto. Jis pacitavo Harvardo tyrimą - tik tas tyrimas niekada neegzistavo. Citata skambėjo įtikinamai, skaičiai atrodė tikslūs, bet visi faktai buvo išgalvoti. Patikrinome veiklos žurnalus ir per vieną sesiją radome dar tris netikrus faktus. Jei jūsų komanda kada nors pasitikėjo DI sugeneruota ataskaita, tikrai pažįstate tą nemalonų jausmą - ką dar jis galėjo išsigalvoti?
Tokios DI haliucinacijos nėra retenybė. Capitol Technology University duomenys (opens in new tab) rodo, kad 47 % studentų nurodytų šaltinių, gautų su DI pagalba, buvo dalinai ar visiškai netikri. Tokios klaidos virsta realiomis bėdomis ir eikvoja valandas, taisant netikslumus. Įsivaizduokite, kad paleidžiate pokalbių robotą, kuris su pasitikėjimu dalina teisinius patarimus, bet pusė paminėtų bylų - išgalvotos. Kaina? Prarastas pasitikėjimas, rizika dėl atitikimo reikalavimams, o kartais ir viešas fiasko.
Kas yra DI haliucinacijos?
DI haliucinacijos - tai atvejai, kai DI modeliai, tokie kaip ChatGPT ar DALL-E, sugeneruoja informaciją, kuri skamba pagrįstai, tačiau yra melaginga. Paprasčiausiai tariant - DI tiesiog išsigalvoja faktus, bet juos pateikia kaip tikrus faktus. Taip nutinka, kai dideli kalbos modeliai užpildo spragas išgalvotais faktais - nesvarbu, ar jie dera su tikrove. Pasak Capitol Technology University (opens in new tab), tokie netikslumai gali svyruoti nuo mažų klaidelių iki viso išgalvoto straipsnio.
Mygom.tech matėme, kiek daug chaoso gali sukelti tokios klaidos, ypač kuriant įrankius klientams ar automatizuojant tyrimus. Todėl sukūrėme kelių žingsnių sistemą, kuri pažymi ir patikrina DI atsakymus dar prieš jiems patenkant pas vartotojus.
Kodėl tai svarbu? Nes DI haliucinacijos nėra teorija - tai kasdienė rizika kiekvienam, naudojančiam generatyvųjį DI versle ar mokyme. Pasirūpinus prevencija, sumažėja brangių siurprizų ir auga jūsų duomenų patikimumas. Šiame straipsnyje parodysime, kaip sprendėme šią problemą ir kaip galite tai padaryti jūs.
Kodėl kalbiniai modeliai klysta?
Jei kada nors klausėte DI apie verslo faktus ir gavote pasitikinčiu tonu pateiktą išgalvotą atsakymą - patyrėte DI haliucinaciją. Bet kodėl jos atsiranda?
Viskas slypi veikimo principuose. DI modeliai kaip ChatGPT netikrina informacijos internete tiesiogiai. Jie pažodžiui kuria atsakymus pagal tikimybes, remdamiesi mokymosi duomenimis. Jei tie duomenys netikslūs ar šališki, modelis "užpildo spragas" spėlionėmis.
Pavyzdžiui, kartą paprašėme DI įvardyti „Didžiausias SaaS įmones Lietuvoje“. Gavome atsakymą: „LithuaniaTech.com yra viena didžiausių.“ Patikrinome. Tokios įmonės nėra - tėra tik adresas ir keletas keistų LinkedIn profilių.
Esminė problema - ne tik duomenų trūkumas. Šie modeliai paprasčiausiai nežino kas yra tiesa, o kas ne. Jie nesižvalgo į duomenų bazes ar URL kurdami tekstą. Jie tiesiog jungia žodžius pagal mokymo šablonus.
Kaip pažymi IBM (opens in new tab), jei treniravimo duomenyse yra iškraipymų, modelis gali kurti klaidinančius ar visiškai netikrus atsakymus.
Dažniausi mitai ir neveiksmingi sprendimai
Yra daugybė mitų apie DI haliucinacijų mažinimą. Vieni sako: „Tiesiog pateikite daugiau duomenų.“ Kiti - „Pagerinkite komandų formulavimą.“
Bet mūsų patirtis ir tyrimai rodo, kad:
- Daugiau duomenų dar nereiškia mažiau klaidų.
- Protingesni nurodymai padeda iš dalies, bet neišsprendžia esminių spragų.
- Haliucinacijos neišnyksta, net kai nuorodos atrodo tikros.
Capitol Technology University tyrimas (opens in new tab) parodė - DI dažnai pateikia įtikinamai skambančius, bet išgalvotus šaltinius.
Šie išgalvoti atsakymai atrodo visiškai tikri, kol patys nepatikriname. Versle tai tikra rizikos bomba. Kaip teigia University of Illinois Library (opens in new tab), net patyrę vartotojai apgaunami subtiliomis klaidomis.
Supratoma, kad daugiau duomenų ar geresnių užklausų nepakanka. Būtina suprasti, iš kur kyla šios bėdos, ir įtraukti patikros žingsnius į kiekvieną darbo eigą prieš pasitikint pateiktais atsakymais.
Mūsų sprendimas: kaip sumažinome DI haliucinacijas
Žingsnis po žingsnio, mažinant klaidingumą
Viskas prasidėjo nuo kliento skambučio. Jų DI sistema pateikdavo atsakymus, kurie atrodė teisingi, tačiau buvo netikri. Generatyvusis DI išsigalvodavo produkto funkcijas, vardino tiekėjus, kurių nebuvo, siūlė kainas, pagal neegzistuojančius konkurentus. Klaidos buvo kopijuojamos į realius pasiūlymus. Tokiais atvejais panika užklumpa akimirksniu.
Kaip įveikėme šį iššūkį?
1 žingsnis: duomenų atranka. Sukūrėme tikslines duomenų srauto valdymo schemas. Pašalinome nepatikimus šaltinius. Atmetėme silpnus signalus.
2 žingsnis: Retrieval-augmented generation (RAG). Vietoj to, kad modeliai spėliotų, visus atsakymus privertėme remtis tik patikrintu tekstų korpusu arba realia įmonės duomenų baze.
3 žingsnis: patikros procesas. Kiekvienas atsakymas pereina automatinių faktų tikrintojų ir specifinių klaidų filtrus dar iki pasiekdamas galutinį vartotoją.
Pavyzdžiui, bandymo Nr. 14 metu DI pateikė „LithuaniaTech.com“. Mūsų automatinė patikra iškart pažymėjo neveikiantį adresą. Modelis tiesiog sulipdė du skirtingus pavadinimus iš treniravimo duomenų.
Trijų sluoksnių strategija veiksminga, nes kiekvienas žingsnis koreguoja vis kitą dalį: duomenų kokybę, modelio pasitikėjimą ir kontrolę prieš pateikiant rezultatą vartotojui.
Kodėl tradiciniai sprendimai neveikia
Dauguma komandų bando „paprastas apsaugas“: ilgesnius nurodymus („ar tikrai?“), daugiau duomenų, papildomas žmogiškas patikras. Tačiau tai nesprendžia svarbių modelių problemų.
Kodėl šios priemonės neveiksmingos?
- Komandų taisymai formuoja toną, bet nesuteikia naujų faktų.
- Didesni duomenų srautai - tik daugiau triukšmo, jei nefiltruojami pagal tikrumą.
- Žmogiškas įsitraukimas lėtina darbą. Ir žmonės pastebi ne visas subtilias klaidas.
Pasak Capitol Technology University (opens in new tab), nauji algoritmai šiandien jau aptinka iki 79% haliucinacijų - didelis žingsnis, palyginus su tradicinėmis rankinėmis patikromis.
Ar kada nors DI haliucinacijos išnyks visam laikui? Greičiausiai ne. IBM (opens in new tab) pabrėžia, kad net pažangūs modeliai kartais supainioja detales, jei jų žinios neatitinka tikrovės.
Pagrindinis laimėjimas? Su daugiapakopėmis apsaugomis ir verslui pritaikytu tikrinimu, kritinių klaidų kiekį sumažinome net 90%. Klientų pasitikėjimas išaugo, o DI atsakymai išliko pakankamai greiti kasdieniam naudojimui.
Kaip tikrinti ir taisyti DI atsakymus
Haliucinacijų atpažinimas praktikoje
Jei kada nors prašėte DI įvardyti įmonę ir gavote pavadinimą, kurio realiai nėra? Jei taip, tuomet pamatėte DI haliucinacijos fenomeną.
Mūsų komanda su tuo susidūrė jau antrą savaitę diegiant kliento projektą. DI sugeneravo tiekėjų kontaktus logistikos sistemai. Tačiau trys iš penkių nebuvo tikri.
Kaip tai pastebėjome? Pirmi signalai - vartotojų žinutės apie neveikiančias nuorodas, lūžtančias sistemas ir rekomenduojamus neegzistuojančius tiekėjus. Klaidų žurnale - nulis, nes rezultatas atrodė galiojantis, kol nebuvo patikrintas.
Kad tokios klaidos nepatektų į gamybinę aplinką, naudojame tris sluoksnius:
1 sluoksnis: automatinis faktų tikrinimas. Kiekvienas pavadinimas tikrinamas realiose duomenų bazėse (pvz., OpenCorporates API). Neradus - žymima kaip rizikinga.
2 sluoksnis: žmogaus peržiūra. Didelės svarbos ar teisinėse užklausose kritines detales tikrina apie tai nusimanantis darbuotojas.
3 sluoksnis: anomalijų aptikimas. Nukrypimo detektoriai perspėja, jei gaunama informacija statistiškai skiriasi nuo ankstesnių rezultatų.
University of Illinois LibGuides (opens in new tab) pataria: šios priemonės sumažina riziką, bet nepašalina jos visiškai - ypač kur DI demonstruoja kūrybingumą.
Kaip galite patikrinti ir taisyti savo DI
Patikimas tikrinimo procesas prasideda paprastai:
import requests
def check_company_exists(company_name):
url = "https://api.opencorporates.com/v0.4/companies/search?q={company_name}"
response = requests.get(url)
data = response.json()
return data['results']['total_count'] > 0
output = "LithuaniaTech.com"
if not check_company_exists(output):
print("Flagged as possible hallucination")Didelės apimties modeliams automatizuoti veiksmus rekomenduojama taip:
1 žingsnis: Išskirkite esminius duomenis iš DI rezultato.
2 žingsnis: Tikrinkite kiekvieną per patikimus API.
3 žingsnis: Žymėkite ar keiskite abejotinus atvejus.
Svarbiausiose srityse (pvz., medicina, teisė) kritiniai DI rezultatai visuomet tikrinami žmogaus - tik tada perduodami vartotojui.
Dažnos klaidos? Praleisti galutinę patikrą („veikė testuojant"), per daug pasitikėti modelio užtikrintumu arba nepastebėti pokyčių po paleidimo - ypač jei jūsų LLM apmokytas su pasenusiais duomenimis, kurie nebeatspindi realybės.
Kaip rašo IBM (opens in new tab), net gerai ištreniruotas DI gali prisigalvoti detalių, kai trūksta informacijos.
Klaidos kainuoja ne tik laiką. JAV teismų pavyzdys su suklastotomis DI nuorodomis baigėsi 5000 USD bauda (opens in new tab). Tai įrodymas - tikrinimas būtinas.
Kad išvengtumėte klaidų:
- Visada automatizuokite faktų tikrinimą.
- Įtraukite žmogaus patikrą svarbiose srityse.
- Nuolat stebėkite rezultatus, nes net geriausias DI kartais prigalvoja naujų dalykų.
Patikimas DI kūrimas
Įdiegus sprendimą, skirtumas buvo akivaizdus. Klaidos sumažėjo kelis kartus. Vartotojų pasitikėjimas šoktelėjo - ne žodžiuose, o realiame įsitraukime bei pakartotiniuose užsakymuose. Ir svarbiausia - dingo beveik visi „keistų atsakymų" aptarnavimo bilietai. Tai leido komandai mažiau gesinti degančias problemas ir daugiau laiko skirti naujovėms.
Bet čia ne pabaiga - DI saugumas lieka nuolatine užduotimi. Kasdien stebime rezultatus dėl galimų nukrypimų ar neatitikimų. Duomenys atnaujinami, kad modelis būtų kuo aktualesnis. Jei vartotojai klausia sunkių klausimų - grįžtame prie šaltinių, aiškiai nurodome, kas sugeneruota, o kas paremta tikrais faktais.
Ar haliucinacijos kada išnyks? Jokia technologija, net ir pati naujausia, nėra tobula. Modeliai visada turės spragų ar spėlios, kur trūksta duomenų. Tačiau su geru dizainu ir atkakliu stebėjimu galite sumažinti riziką iki minimumo. Taip gimsta pasitikėjimas, trunkantis gerokai ilgiau nei iki pirmos versijos.
Jei jūsų komandai kyla problemų dėl DI haliucinacijų arba norite jų išvengti, kol dar nepatyrėte nuostolių - susisiekite su mumis (opens in new tab). Kartu sukursime patikimą ateitį - saugiai ir patikimai. Pokyčiai įmanomi, kai dirbate su tais, kurie mato ir pavojus, ir galimybes kiekvienos kelionės pabaigoje.

Justas Česnauskas
CEO | Founder
Builder of things that (almost) think for themselves
Prisijunkite LinkedIn

