Tihi nedostatci ugrađivanja: Zašto je vaša AI pogrešna
Tihi nedostatci ugrađivanja: Zašto je vaša AI pogrešna
Nestrukturirani tekstualni podaci proširili su se nedavno, od tehničke dokumentacije i znanstvene literature do postova na društvenim mrežama i evaluacija klijenata.Poduzeća iz različitih sektora sve više shvaćaju da ovaj tekst nudi neprocjenjive uvidove, ali dobivanje, aranžiranje i korištenje tih podataka je teško.
Semantičko bogatstvo ljudskog jezika nije uhvaćeno konvencionalnim tehnikama obrade teksta zasnovanim na ključnim rečima, koje su se pokazale nedovoljnima.Na primjer, pretraživanje za "automobilske probleme" možda se ne pojavi u relevantnim dokumentima o "automobilskim problemima", a pregled proizvoda koji spominje "zamrzavanje ekrana" može biti propušten prilikom ispitivanja pritužbi kupaca o "sistemskim nesrećama".
Međutim, unatoč njihovoj široko rasprostranjenoj upotrebi, još uvijek ne razumijemo u potpunosti kako ti ugrađeni modeli funkcionišu u praktičnim postavkama.
- Drage pogreške u implementaciji koje se javljaju kada sustavi ne zadovoljavaju poslovne potrebe.
- Loše korisničko iskustvo kada relevantni sadržaj propuštaju sustavi pretraživanja ili preporuka. Razlike u performansi između različitih demografija korisnika, kategorija sadržaja i jezika.
- Neefikasno korištenje resursa od strane organizacija koje koriste prekomjerno složene modele
Relevancija i primjenjivost na industriju
Mnoge različite industrije mogu izravno imati koristi od ove analize:
Trgovina na malo i e-trgovina:
- Poboljšanje pretrage proizvoda kako bi se prihvatile višejezične upite, sinonimi i pogrešna pisanja.
- Poboljšanje sistema preporuka kako bi se identificirali usporedivi proizvodi s različitim opisima.
- Razvoj sofisticiranijih alata za analizu pregleda koji su svjesni suptilnosti u sentimentu.
Zdravstvena zaštita:
- Dozvoliti medicinsku terminologiju da bude usklađena kroz variacije notacije u sistemima za pronalaženje kliničkih dokumenata.
- Bez obzira na obrazovne postignuća, unapređenje lingvističke obrade pacijenata za opis simptoma.
- Poboljšanje pretraživanja medicinske literature boljim usklađivanjem koncepata preko tehnoloških varijabilnih
Finansije:
- Poboljšanje praćenja usklađenosti za povrede politika, bez obzira na tekst.
- Poboljšanje otkrivanja prijevara identifikacijom sumnjivih uzoraka u različitim jezicima.
- Poboljšanje usluge korisnicima bolje razumijevanjem različitih vrsta potrošačkih upita
Šta su tekstualni ugrađivači?
Za neinicirane, tekstualna ugradnja pretvara reči ili rečenice u numeričke vektore – u suštini duge liste brojeva, guste vektore sa mnogim dimenzijama. Ovi vektori su pozicionirani u visoko-dimenzionalnom prostoru gde se semantička sličnost predstavlja blizinom. U jednostavnijim izrazima, stvari sa sličnim značenjima trebaju biti blizu zajedno u ovom prostoru.
-
Kada pretražujete Google, razumije da ste mislili "New York hoteli" čak i ako ste uneli "mjesta za boravak u NYC."
-
Kada vaš e-mail klijent predlaže odgovore
-
Kada sistem preporuke sadržaja prikazuje članke koji vam se mogu svidjeti
Kada pretražujete Google, razumije da ste mislili "New York hoteli" čak i ako ste uneli "mjesta za boravak u New Yorku."
Kada pretražujete Google, razumije da ste mislili "New York hoteli" iako ste uneli "mjesta za boravak u New Yorku."
Kada vaš e-mail klijent predlaže odgovore
Kada vaš e-mail klijent predlaže odgovore
Kada sistem preporuke sadržaja izračunava članke koje vam se možda sviđaju
Kada sistem preporuke sadržaja izračunava članke koje bi vam se mogle svidjeti
Ova mogućnost omogućava brojne aplikacije:
- Semantički pretraživači
- Sistemi za preporuku sadržaja
- Identifikacija namere chatbota
- Organizacija i grupiranje dokumenata
- Sistemi za klasifikaciju teksta i odgovaranje na pitanja
Efektivnost ovih aplikacija u velikoj meri zavisi od toga koliko dobro model ugrađivanja upravlja različitim tekstovnim varijantama i jezičnim pojavama. Dok bi model koji je previše osjetljiv na male varijacije oblikovanja imao problema sa stvarnim upitima za pretraživanje, model koji tretira "Volim ovaj proizvod" i "Mrzim ovaj proizvod" kao gotovo identičan bio bi neučinkovit za analizu osjećaja.
Zašto sam počeo istraživati modele ugrađivanja
Nikada neću zaboraviti dan kada sam istraživao ugradnje modela za jednog od mojih klijenata sa uzorkom dokumenata. Pokušao sam tražiti "laptop bez zaslona na dodir", samo da bih dobio odgovor o laptopima na dodirnom zaslonu iz indeksa vektora.
Nakon dvije godine eksperimentiranja s različitim modelima ugrađivanja u različitim aplikacijama koristeći RAG Eksperiment Accelerator (https://github.com/microsoft/rag-experiment-accelerator), razvio sam sistematski način procjene kako ti modeli rukuju različitim vrstama varijacija rečenica.https://github.com/microsoft/rag-experiment-accelerator
Ovo nisu bile slučajne greške – to su bile duboke, sistematske slepe točke pečene u načinu na koji ti modeli vide jezik.I nitko nije govorio o tome.Ja dijelim ove nalaze jer sam vidio da su previše timova trošili mjeseci primenom sofisticiranih sistema zasnovanih na ugrađivanju samo da bi otkrili prekasno da se raspadaju na neočekivane načine.
Ovaj problem nije samo akademski.Konsekvencije pogrešnog razumijevanja ponašanja ugrađivanja su ozbiljne: Kolega u velikoj zdravstvenoj kompaniji rekao mi je da njihov sistem za prikupljanje medicinskih informacija nedostaje relevantne kliničke dokumente jer njihov model ugrađivanja nije mogao ispravno upravljati skraćenicama i varijacijama medicinske terminologije.
U firmi za finansijske usluge, njihov sistem za praćenje usklađenosti propustio je kršenje politika jer njihov model ugrađivanja nije mogao prepoznati da pasivne glasovne rečenice ("finansije su prenesene") znače istu stvar kao i aktivni glas ("neko je prenio sredstva").
Moj pristup testiranju
Ja sam razvio okvir za testiranje koji ispituje kako embedding modeli reagiraju na više različitih kategorija varijacija teksta. Koristeći cosine sličnost kao metrički (gde 1.0 znači identično značenje i 0.0 znači potpuno neovisno), ja sam pokrenuo stotine test slučajeva. Ja ću proći kroz ono što sam pronašao, fokusirajući se na više modela, uključujući MSMarco DistilBERT, OpenAI tekst embedding, i mnogi drugi, i ja sam video slične obrasce u većini embeddings na bazi transformatora.
MSMarco DistilBERT, OpenAI ugradnja teksta i još mnogo toga,Ne može se reći iznad od Lowercase (Uopšte)
Ovaj me šokirao.Ugrađivanje modela vidi "Apple objavio nove proizvode" i "apple objavio nove proizvode" kao TOČNO istu stvar - savršena 1.0 sličnost ocjena. Nema razlike uopće.
Apple objavio nove proizvode" i "apple objavio nove proizvode" kao TOČNO istu stvar - savršena 1.0 sličnost ocena.
Izašao sam u to sa sistemom kataloga proizvoda. pretraživanje nije moglo reći razliku između marke "Apple" i voća "apple".Klijenti koji su pretražili proizvode Apple dobili su recepte za jabukovo pecivo.Misliš li da će vaši kupci biti sretni gledajući rezultate?Sigurna sam da mi se neće svidjeti.
Zašto je to važno? Razmislite o svim slučajevima u kojima kapitalizacija mijenja značenje – „Poljski“ protiv „Poljski“, „Marš“ protiv „Marš“, „Bil“ protiv „Bil“. Za pravne ili medicinske tekstove, ove razlike mogu biti ključne. U osnovi radimo sa modelima koji su delimično slepi za čitavu dimenziju pismenog jezika. Postoji način da se ove vrste pitanja reše, a oni će biti pokriveni kasnije. Hajde da razumemo više problema s ugrađivanjem. Imajte na umu da bi to moglo biti korisno ako te razlike ne utiču na slučaj kojim se bavite.
Numeri mogu biti i izrađeni
Ovaj me je takođe podigao. Ugradnja modela vidi "Ulaganje se vraća 2% godišnje" i "Ulaganje se vraća 20% godišnje" kao istu stvar, ludo visoka ocjena sličnosti od 0,97. Nema vidljive razlike između dva scenarija.
Ugrađeni modeli vide "Ulaganje se vraća 2% godišnje" i "Ulaganje se vraća 20% godišnje" kao istu stvar, ludo visoka ocjena sličnosti od 0,97.
Izašao sam u ovo sa sistemom za pretraživanje finansijskih dokumenata. Algoritam nije mogao reći razliku između "pristojba za upravljanje: 0,2%" i "pristojba za upravljanje: 2,0%."Investitori koji traže fondove s niskim pristojbama dobili su preporučene skupe opcije umesto toga.Misliš li da bi tvoj račun za umirovljenje bio zadovoljan tom greškom?
Razmislite o svim slučajevima u kojima su numeričke vrednosti kritične upute za doziranje, inženjerske tolerancije, finansijski prinosi i rokovi ugovora. Za investicije ili medicinski tekst, ove razlike mogu biti život mijenjajuće.
Problem "Ne" je zastrašujuće
Ovo je zapravo opasno. Dodavanje "ne" u rečenicu – doslovno preokretanje njegovog značenja – jedva utiče na ocene sličnosti. Mi smo rutinski vidjeli ocene iznad 0,95 za potpune suprotnosti. "Lijek je poboljšao rezultate pacijenata" u odnosu na "Lijek nije poboljšao rezultate pacijenata" → 0,96 sličnost Kada sam to pokazao liječniku koji je koristio naš medicinski sistem pretrage, bio je užasnut.Rutinski smo vidjeli ocene iznad 0,95 za potpune suprotnosti. "Tratman je poboljšao rezultate pacijenata" u odnosu na "Tratman nije poboljšao rezultate pacijenata" → 0,96 sličnost
U healthcare, to bi moglo značiti preporuku štetnih tretmana. U legal dokumentima, to bi moglo u potpunosti preokrenuti ugovorne obaveze. U content umerenosti, možete propustiti razliku između "nasilje je prihvatljivo" i "nasilje nikada nije prihvatljivo."
zdravstvena zaštitapravniSadržajSpaces Don't Matter (Util They Really Do)
Extra prostori, kartice, čudno oblikovanje – modeli ne brinu. Sličnost ostaje iznad 0,995. Ali uklonite sve prostorije? Sličnost iznenada pada na 0,82. Susreo sam se sa ovim problemom dok sam radio sa sadržajem koji je bio skraćen i imao je nepravilnu razmaku zbog lošeg HTML-a. Izgradili smo ovaj prekrasan sistem pretraživanja za digitalnu biblioteku s hiljadama skraćenih dokumenata. Polovina upita vratila je ništa korisno zbog nedosljednog razmaka. Bibliotekarci su bili spremni da skraću ceo projekt.
Sličnost ostaje iznad 0,995. ali uklonite sve praznine? Sličnost iznenada pada na 0,82.
Ova čudesa postaje razarajuća kada se radi o sadržaju koji generira korisnik, dokumentima OCR'd ili jezicima koji ne koriste prostore na isti način kao što to radi engleski (kao što je tajlandski ili kineski).To također znači da se ovi modeli bore s hashtagovima, URL-ovima i kodovima proizvoda - stvarima koje stvarni ljudi traže svaki dan.
Referencije su izazovne
Ugrađeni modeli vide "Automobil je s lijeve strane stabla" i "Automobil je s desne strane stabla" kao gotovo identične – uzalud visoka ocjena sličnosti od 0,98. Iako opisuju suprotne perspektive, ugrađeni modeli ih percipiraju kao gotovo identične."Automobil je na levoj strani stabla" i "Automobil je na desnoj strani stabla" kao gotovo identični - ludilo visoka 0,98 ocjena sličnosti.
Razmislite o svim slučajevima u kojima su važni perspektiva i referentni okviri – navigacijski smjerovi, prostorne veze, relativno pozicioniranje u medicinskim postupcima i pravni opisi nesrećnih scena.Te razlike nisu trivijalne – u potpunosti mijenjaju značenje na osnovu perspektive.
Counterfactuals Get Completely Reversed
Preuzmite uputstvoOvaj me je nasmejao, a zatim plakao. Ugradni modeli vide "Ako potražnja raste, cijene će se povećati" i "Ako potražnja raste, cijene će pasti" kao praktički identične - šokantna ocjena sličnosti od 0,95."Ako potražnja raste, cene će se povećati" i "Ako potražnja raste, cene će pasti" kao praktički identični - šokantna 0,95 ocena sličnosti I zadobio sam ovaj problem izgradnja analitički sistem za ekonomske istraživačke radove. Algoritam nije mogao razlikovati između suprotstavljanje uzročne veze. Ekonomisti tražeći radove o povećanju cijena tokom porasta potražnje dobio rezultate o pada cijena tokom recesije umjesto. Mislite li da bi financijski analitičari koji donose odluke o ulaganju od milijun dolara cenili da dobiju tačno nazad informacije? Opet, razmislite o svim slučajevima u kojima je kontrafaktualno razmatranje kritično: ekonomske projekcije, medicinske odnose uzroka i učinka, pravne hipoteze i inženjerska analiza neuspjeha. Kada ne možete reći "ako X, onda Y" iz "ako ne-X, onda ne-Y", u osnovi pogrešno razumijete uzročnu vezu. Mi u osnovi radimo sa modelima koji ne mogu shvatiti osnovnu uvjetnu logiku uprkos rukovanju tekstom punim hipoteza i predviđanja. Ovaj me je ostavio bez reči. Ugradni modeli vide "Proizvod košta između 50 i 100 dolara" i "Proizvod košta točno 101 dolar" kao PREKAZNO istu stvar - neobičan rezultat sličnosti od 0,98.Ugrađeni modeli vide "Proizvod košta između 50 i 100 dolara" i "Proizvod košta točno 101 dolar" kao PREKOLIKO istu stvar - neobičan rezultat sličnosti od 0,98 Ovo sam otkrio dok sam izgradio sistem za usporedbu cijena za klijenta e-trgovine. pretraživanje nije moglo razlikovati između rasponova cijena i točnih cijena, čak i kada je tačna cijena bila izvan određenog raspona. Kupci sa strogim budžetom od 100 dolara tražeći proizvode "pod 100 dolara" i dalje se prikazuju predmeti koji koštaju 120 ili 150 dolara. Mislite li da kupci s fiksnim budžetom cijene da vide proizvode koje izričito ne mogu priuštiti? Pomislite na sve slučajeve u kojima su rasponi u odnosu na točne vrijednosti ključni - odluke o cijenama, raspon doziranja lijekova, zakonski rokovi, sigurnosne tolerancije i referentne vrijednosti performansi. Kada vaš model tretira "najmanje 25 dana" i "točno 20 dana" kao u osnovi identične, izgubili ste kritičko značenje. Ovde je usporedba između msmarco-distilbert-base-tas-b, all-mpnet-base-v2, i open-ai-text-embedding-3-large, i primijetit ćete da nema značajne razlike između izlaza ovih modela.
Range i točne vrednosti
Istina i rezultati
msmarco-distilbert-base-tas-b ugrađivanje rezultat u različitim test slučajevima
msmarco-distilbert-base-tas-b ugrađivanje rezultat u različitim test slučajevima
all-mpnet-base-v2 ugrađivanje rezultat u različitim test slučajevima
all-mpnet-base-v2 ugrađivanje rezultat u različitim test slučajevima
openai-text-embedding-3-large embedding score preko različitih test slučajeva
openai-text-embedding-3-veliki ugradni rezultat u različitim test slučajevima
Kako raditi sa ugrađivanjem
Pogledajte, ugrađivači su neverovatno korisni unatoč ovim problemima. Ne kažem da ih ne koristite – kažem da ih koristite otvorenim očima. Evo mojih borbenih savjeta nakon desetaka projekata i bezbroj neuspjeha:
-
Testirajte svoj model na stvarnim uzorcima jezika korisnika prije implementacije. Ne akademske reference, ne sanitizovane testne slučajeve – stvarni primjeri načina na koji vaši korisnici komuniciraju. Izgradili smo alatku za "lingvistički test stresa" koja simulira uobičajene varijacije kao što su negativnosti, tipovi i numeričke razlike u zdravstvenoj skrbi. Svaki sistem koji testiramo ne uspijeva u nekim područjima – pitanje je da li su ta područja bitna za vašu specifičnu aplikaciju.
Identificirajte ono što apsolutno ne može pogrešiti u vašem domenu, i uporedite specijalizirane zaštitne mjere.
-
Testirajte svoj model na stvarnim uzorcima jezika korisnika prije implementacije. Ne akademske referentne vrednosti, ne sanitizovane testne slučajeve – stvarni primjeri kako vaši korisnici komuniciraju. Izgradili smo alatku za „lingvistički test stresa“ koja simulira uobičajene varijacije kao što su negativnosti, tipovi i numeričke razlike. Svaki sistem koji testiramo ne uspijeva u nekim područjima – pitanje je da li su ta područja važna za vašu specifičnu aplikaciju.
-
Izgradite stražareve oko kritičnih slijepih točaka. Različite aplikacije imaju različite zahtjeve za neuspeh. Za zdravstvenu skrb, to je obično negiranje i entitetna preciznost. Za finansije, to su brojevi i vremenski odnosi. Za zakonske, to su uvjeti i obaveze. Identifikujte ono što apsolutno ne može pogrešiti u vašem domenu i implementirajte specijalizirane zaštitne mjere.
-
Budite transparentni sa korisnicima o tome šta sistem može i ne može da učini pouzdano. Dodali smo ocene povjerenja koje eksplicitno označavaju kada rezultat može uključivati negiranje, numeričko poređenje ili druge potencijalne slabosti.
Budite transparentni sa korisnicima o tome šta sistem može i ne može da učini pouzdano. Dodali smo ocene povjerenja koje eksplicitno označavaju kada rezultat može uključivati negiranje, numeričko poređenje ili druge potencijalne slabosti.
Ovo je najvažnija stvar koju sam naučio: ovi modeli ne razumeju jezik na način na koji to rade ljudi – razumeju statističke obrasce.Kada sam prestao očekivati ljudsko razumevanje i počeo ih tretirati kao sofisticirane alate za usklađivanje uzoraka sa specifičnim slijepim točkama, moji sustavi su postali bolji.
Ovo je najvažnija stvar koju sam naučio:
Slijepe točke koje sam opisao ne nestaju ni u kom trenutku – one su pečene u način na koji ti modeli rade. Ali ako znate da su tamo, možete dizajnirati oko njih.
Note: Imam mnogo više takvih slučajeva pronađenih kroz eksperimente, i ja ću ih pokriti u svom narednom postu zajedno sa kod primjera.
Note: Imam mnogo više takvih slučajeva pronađenih kroz eksperimente, i ja ću ih pokriti u svom narednom postu zajedno sa kod primjera.
Sljedeći članak će uskoro izaći.
Testirajte svoj model na stvarnim jezikovnim uzorcima korisnika prije implementacije. Ne akademske referentne točke, ne sanitizovane testne slučajeve – stvarni primjeri kako vaši korisnici komuniciraju. Izgradili smo alatku „lingvistički test stresa“ koja simulira uobičajene varijacije kao što su negativnosti, tipovi i numeričke razlike. Svaki sistem koji testiramo ne uspijeva u nekim područjima – pitanje je jesu li te oblasti važne za vašu specifičnu aplikaciju.
Izgradite stražareve oko kritičnih slijepih točaka. Različite aplikacije imaju različite zahtjeve koji ne mogu propasti. Za zdravstvenu skrb, to je obično negiranje i entitetna preciznost. Za finansije, to su brojevi i vremenski odnosi. Za zakonske, to su uvjeti i obaveze. Identifikujte ono što apsolutno ne može propasti u vašem domenu i implementirajte specijalizovane zaštitne mjere.