Ezt a bejegyzést Stanislav Yeshchenko-val közösen írta a Q4 Inc.-től.
A vállalatok a Retrieval Augmented Generation (RAG) megoldást veszik igénybe, mint általános megközelítést a Q&A chatbotok létrehozásához. Továbbra is új kihívásokat látunk, amelyek a rendelkezésre álló adatkészletek választékából fakadnak. Ezek az adatkészletek gyakran numerikus és szöveges adatok keverékei, időnként strukturáltak, strukturálatlanok vagy félig strukturáltak.
Q4 Inc. az AWS-re épülő mesterséges intelligencia-használati eseteik egyikében meg kell oldani e kihívások némelyikét. Ebben a bejegyzésben megvitatjuk a Q4 által megvalósított Q&A bot használati esetet, a numerikus és strukturált adatkészletek kihívásait, és azt, hogy a Q4 hogyan jutott arra a következtetésre, hogy az SQL használata életképes megoldás lehet. Végül közelebbről megnézzük, hogyan használta a Q4 csapat Amazon alapkőzet és az SQLDatabaseChain egy RAG-alapú megoldás megvalósításához SQL generálással.
Használati eset áttekintése
A torontói székhelyű, New York-i és londoni irodákkal rendelkező Q4 Inc. vezető tőkepiaci hozzáférési platform, amely átalakítja a kibocsátók, befektetők és eladók hatékony kapcsolattartását, kommunikációját és kapcsolattartását. A Q4 Platform megkönnyíti az interakciókat a tőkepiacokon az IR webhelytermékeken, a virtuális események megoldásán, az elkötelezettség-elemzésen, a befektetői kapcsolatok ügyfélkapcsolat-kezelésén (CRM), a részvényesi és piacelemzésen, a felügyeleten és az ESG-eszközökön keresztül.
A mai rohanó és adatvezérelt pénzügyi környezetben az Investor Relations Officers (IRO) kritikus szerepet játszik a vállalat és részvényesei, elemzői és befektetői közötti kommunikáció elősegítésében. Napi feladataik részeként az IRO-k különféle adatkészleteket elemeznek, beleértve a CRM-et, a tulajdonosi nyilvántartásokat és a tőzsdei adatokat. Ezen adatok összesítése pénzügyi jelentések készítésére, befektetői kapcsolati célok kitűzésére, valamint meglévő és potenciális befektetőkkel való kommunikáció kezelésére szolgál.
A hatékony és dinamikus adatvisszakeresés iránti növekvő igény kielégítésére a Q4 célja egy chatbot Q&A eszköz létrehozása volt, amely intuitív és egyszerű módszert biztosít az IRO-k számára, hogy felhasználóbarát formátumban hozzáférjenek a szükséges információkhoz.
A végső cél egy olyan chatbot létrehozása volt, amely zökkenőmentesen integrálja a nyilvánosan elérhető adatokat a védett, ügyfélspecifikus Q4-adatokkal együtt, miközben fenntartja a legmagasabb szintű biztonságot és adatvédelmet. Ami a teljesítményt illeti, a cél az volt, hogy a lekérdezésekre másodperces válaszidőt tartsanak fenn, hogy pozitív élményt biztosítsanak a végfelhasználók számára.
A pénzügyi piacok szabályozott iparág, nagy tétekkel. A helytelen vagy elavult információk megadása az egyéb lehetséges adatvédelmi kockázatok mellett befolyásolhatja a befektetők és a részvényesek bizalmát. Az iparágat és a követelményeket megértve a Q4 az adatvédelmet és a válaszok pontosságát határozza meg vezérelvként bármely megoldás piaci bevezetése előtti értékelése során.
A koncepció bizonyítására a Q4 úgy döntött, hogy egy pénzügyi tulajdonjogi adatkészletet használ. Az adatkészlet idősoros adatpontokból áll, amelyek a tulajdonban lévő eszközök számát reprezentálják; a befektetési intézmények, magánszemélyek és állami vállalatok közötti tranzakciók története; és még sok más elem.
Mivel a Q4 biztosítani akarta, hogy megfeleljen az összes általunk tárgyalt funkcionális és nem funkcionális követelménynek, a projektnek kereskedelmileg is megvalósíthatónak kellett maradnia. Ezt a megközelítésről, az architektúráról, a technológiaválasztásról és a megoldás-specifikus elemekről szóló döntési folyamat során végig tiszteletben tartották.
Kísérletezés és kihívások
Kezdettől fogva világos volt, hogy egy emberi nyelvi kérdés megértéséhez és a pontos válaszok generálásához a Q4-nek nagy nyelvi modelleket (LLM) kell használnia.
Íme néhány a csapat által végzett kísérlet, valamint az azonosított kihívások és a levont tanulságok:
- Előképzés – A Q4 megértette az LLM-ek saját adatkészletét használó előképzésének összetettségét és kihívásait. Gyorsan nyilvánvalóvá vált, hogy ez a megközelítés erőforrás-igényes, sok nem triviális lépéssel, mint például az adatok előfeldolgozása, képzése és értékelése. Az ezzel járó erőfeszítésen túlmenően költséges lenne. Figyelembe véve az idősoros adatkészlet természetét, a Q4 arra is rájött, hogy folyamatosan növekményes előképzést kell végeznie, amint új adatok érkeznek. Ehhez egy adattudományban, gépi tanulásban és tartományban jártas, dedikált, több tudományágat átfogó csapatra lett volna szükség. tudás.
- Finomhangolás – Egy előre betanított alapmodell (FM) finomhangolása több megjelölt példa felhasználásával járt. Ez a megközelítés kezdetben némi sikert mutatott, de sok esetben a modell-hallucináció kihívást jelentett. A modell nehezen értette meg az árnyalt kontextuális jelzéseket, és helytelen eredményeket adott.
- RAG szemantikus kereséssel – A hagyományos RAG szemantikus kereséssel volt az utolsó lépés az SQL-generálásra való átállás előtt. A csapat kereséssel, szemantikus kereséssel és beágyazással kísérletezett a kontextus kinyerésére. A beágyazási kísérlet során az adatkészletet beágyazásokká alakították, vektoros adatbázisban tárolták, majd a kontextus kinyerése érdekében párosították a kérdés beágyazásaival. A három kísérlet bármelyikében letöltött kontextust ezután az eredeti prompt kiegészítésére használták fel az LLM bemeneteként. Ez a megközelítés jól működött szöveges tartalom esetén, ahol az adatok természetes nyelvből állnak, szavakkal, mondatokkal és bekezdésekkel. Figyelembe véve a negyedik negyedév adatkészletének jellegét, amely többnyire számokból, pénzügyi tranzakciókból, részvényárfolyamokból és dátumokból álló pénzügyi adatokból áll, az eredmények mindhárom esetben szuboptimálisak voltak. A számokból generált beágyazások még a beágyazások használatakor is küszködtek a hasonlósági rangsorolással, és sok esetben téves információk lekéréséhez vezettek.
Q4 következtetése: Az SQL generálása a továbblépés
Figyelembe véve a hagyományos RAG-módszertant használó kihívásokat, a csapat elkezdett foglalkozni az SQL generálásával. Az ötlet az volt, hogy az LLM segítségével először generáljunk egy SQL utasítást a felhasználói kérdésből, amelyet természetes nyelven mutatunk be az LLM-nek. A generált lekérdezés ezután lefut az adatbázisban a releváns kontextus lekéréséhez. A kontextust végül az összegzési lépés beviteli promptjának kiegészítésére használják.
A Q4 hipotézise az volt, hogy a visszahívási lépéshez, különösen a numerikus adatkészlethez való nagyobb visszahívás eléréséhez először SQL-t kellett generálni a felhasználói kérdésből. Úgy gondolták, hogy ez nem csak a pontosságot növeli, hanem az üzleti területen belül is megtartja az adott kérdés kontextusát. A lekérdezés generálásához és a pontos SQL generálásához a Q4-nek szüksége volt arra, hogy az LLM teljeskörűen tisztában legyen az adatkészlet szerkezetével. Ez azt jelentette, hogy az adatbázissémát, néhány minta adatsort és az ember által olvasható mezőmagyarázatot kellett megadni a nem könnyen érthető mezőkhöz.
A kezdeti tesztek alapján ez a módszer nagyszerű eredményeket mutatott. Az összes szükséges információval felszerelt LLM képes volt előállítani a megfelelő SQL-t, amelyet azután az adatbázison futtatva lekérte a megfelelő kontextust. Az ötlettel való kísérletezés után a Q4 úgy döntött, hogy az SQL generálása jelenti a továbblépést a kontextus-kinyerési kihívások megoldására saját adatkészletükkel kapcsolatban.
Kezdjük az átfogó megoldási megközelítés leírásával, bontsuk le összetevőire, majd rakjuk össze a darabokat.
Megoldás áttekintése
Az LLM-ek nagyméretű modellek milliárdnyi paraméterrel, amelyeket előre betanítottak a különféle forrásokból származó nagyon nagy mennyiségű adat felhasználásával. A képzési adatkészletek szélessége miatt az LLM-ektől elvárják, hogy általános ismeretekkel rendelkezzenek számos területen. Az LLM-ek gondolkodási képességeikről is ismertek, amelyek modellenként változnak. Ez az általános viselkedés egy adott tartományra vagy iparágra optimalizálható az alapmodell további tartományspecifikus előképzési adatok felhasználásával történő további optimalizálásával vagy a címkézett adatokkal történő finomhangolással. A megfelelő kontextussal, metaadatokkal és utasításokkal egy jól megválasztott általános célú LLM jó minőségű SQL-t tud előállítani, amennyiben hozzáfér a megfelelő tartományspecifikus kontextushoz.
A Q4 használati esetében az ügyfél kérdésének SQL-re történő lefordításával kezdjük. Ezt úgy tesszük, hogy a felhasználói kérdést, az adatbázissémát, néhány minta adatbázissort és részletes utasításokat kombinálunk az LLM-nek az SQL létrehozásához. Miután megvan az SQL, lefuttathatunk egy érvényesítési lépést, ha szükségesnek tartjuk. Amikor elégedettek vagyunk az SQL minőségével, lefuttatjuk a lekérdezést az adatbázisban, hogy lekérjük a következő lépéshez szükséges releváns kontextust. Most, hogy megvan a megfelelő kontextus, visszaküldhetjük a felhasználó eredeti kérdését, a lekért kontextust és egy utasításkészletet az LLM-nek, hogy megkapjuk a végső összefoglaló választ. Az utolsó lépés célja, hogy az LLM összefoglalja az eredményeket, és kontextus szerinti és pontos választ adjon, amelyet aztán továbbíthat a felhasználónak.
A folyamat minden szakaszában használt LLM kiválasztása nagymértékben befolyásolja a pontosságot, a költségeket és a teljesítményt. Ha olyan platformot vagy technológiát választ, amely lehetővé teszi az LLM-ek közötti váltás rugalmasságát ugyanazon a használati eseten belül (több LLM-út a különböző feladatokhoz), vagy különböző használati esetek között, előnyös lehet a kimenet minőségének, a késleltetésnek és a költségnek az optimalizálása szempontjából. . Az LLM kiválasztásával ebben a bejegyzésben később foglalkozunk.
Megoldás építőelemei
Most, hogy a megközelítést magas szinten kiemeltük, merüljünk el a részletekben, kezdve a megoldás építőelemeivel.
Amazon alapkőzet
Az Amazon Bedrock egy teljesen felügyelt szolgáltatás, amely a vezető vállalatok, köztük az AI21 Labs, az Anthropic, a Cohere, a Meta, a Stability AI és az Amazon nagy teljesítményű FM-jeit kínálja. Az Amazon Bedrock eszközök széles skáláját kínálja, amelyek szükségesek a generatív AI-alkalmazások létrehozásához, a fejlesztési folyamat egyszerűsítéséhez, valamint a magánélet és a biztonság fenntartásához. Ezenkívül az Amazon Bedrock segítségével különféle FM-opciók közül választhat, és saját adatai alapján tovább finomíthatja a modelleket, hogy a modellek válaszait a használati eset követelményeihez igazítsa. Az Amazon Bedrock teljesen kiszolgáló nélküli, és nincs mögöttes infrastruktúra, amely egyetlen API-n keresztül kezelné az elérhető modellekhez való hozzáférés kiterjesztését. Végül az Amazon Bedrock számos biztonsági és adatvédelmi követelményt támogat, beleértve a HIPAA jogosultságot és a GDPR megfelelést.
A negyedik negyedéves megoldásban az Amazon Bedrock-ot használjuk szerver nélküli, API-alapú, több alapra épülő modell építőelemként. Mivel ugyanazon a használati eseten belül több utat is szeretnénk megtenni az LLM-hez, a feladat típusa alapján kiválaszthatjuk azt a modellt, amely a legoptimálisabb egy adott feladathoz, legyen az SQL generálás, érvényesítés vagy összegzés.
LangChain
LangChain egy nyílt forráskódú integrációs és hangszerelési keretrendszer előre beépített modulokkal (I/O, visszakeresés, láncok és ügynökök), amelyek segítségével az FM-ek, adatforrások és eszközök közötti feladatokat integrálhatja és hangszerelheti. A keretrendszer megkönnyíti a generatív AI-alkalmazások létrehozását, amelyek több lépés megszervezését igénylik a kívánt kimenet előállításához anélkül, hogy a semmiből kellene kódot írniuk. A LangChain támogatja az Amazon Bedrock-ot, mint több alapozású modell API-t.
A Q4 használati esetére jellemzően a LangChaint használjuk munkafolyamatunkban a feladatok koordinálására és összehangolására, beleértve az adatforrásokhoz és LLM-ekhez való kapcsolódást. Ez a megközelítés leegyszerűsítette a kódunkat, mert használhatjuk a meglévő LangChain modulokat.
SQLDatabaseChain
SQLDatabaseChain egy LangChain lánc, amely a langchain_experimental webhelyről importálható. Az SLDatabaseChain egyszerűvé teszi az SQL-lekérdezések létrehozását, megvalósítását és futtatását hatékony szöveg-SQL konverziói és megvalósításai segítségével.
Használati esetünkben az SQLDatabaseChain-t használjuk az SQL-generálás során, egyszerűsítve és összehangolva az adatbázis és az LLM közötti interakciókat.
Az adatkészlet
Strukturált adatkészletünk SQL-adatbázisban, adattóban vagy adattárházban is elhelyezhető mindaddig, amíg támogatjuk az SQL-t. Megoldásunkban bármilyen adatkészlet-típust használhatunk SQL támogatással; ezt elvonatkoztatni kell a megoldástól, és semmilyen módon nem szabad megváltoztatnia a megoldást.
A megvalósítás részletei
Most, hogy megvizsgáltuk a megoldás megközelítését, a megoldás összetevőit, a technológia és az eszközök megválasztását, összerakhatjuk a darabokat. A következő diagram a végpontok közötti megoldást emeli ki.
Nézzük végig a megvalósítás részleteit és a folyamat menetét.
Az SQL lekérdezés létrehozása
A kódolás egyszerűsítése érdekében meglévő keretrendszereket használunk. A LangChaint hangszerelési keretként használjuk. Kezdjük a beviteli szakaszsal, ahol természetes nyelven kapjuk meg a felhasználói kérdést.
Ebben az első szakaszban ezt a bemenetet vesszük, és egy ekvivalens SQL-t generálunk, amelyet futtathatunk az adatbázison a környezet kivonásához. Az SQL generálásához az SQLDatabaseChaint használjuk, amely az Amazon Bedrock-ra támaszkodik a kívánt LLM-hez való hozzáféréshez. Az Amazon Bedrock segítségével egyetlen API használatával számos mögöttes LLM-hez juthatunk hozzá, és minden egyes LLM-úthoz kiválaszthatjuk a megfelelőt. Először létesítünk kapcsolatot az adatbázissal, és lekérjük a szükséges táblasémát, valamint néhány mintasort a használni kívánt táblákból.
Tesztelésünk során azt találtuk, hogy 2–5 sornyi táblaadat elegendő ahhoz, hogy elegendő információt adjon a modellnek anélkül, hogy túl sok felesleges többletköltséget okozna. Három sor éppen elég volt ahhoz, hogy kontextust biztosítson anélkül, hogy túl sok inputtal túlterhelné a modellt. A mi használati esetünkben az Anthropic-kal kezdtük Claude V2. A modell fejlett érveléséről és kontextuális válaszairól ismert, ha megfelelő kontextussal és utasításokkal látják el. Az utasítások részeként további pontosító részleteket is csatolhatunk az LLM-hez. Például leírhatjuk azt az oszlopot Comp_NAME
a cég nevét jelenti. A promptot most összeállíthatjuk úgy, hogy a felhasználói kérdést úgy, ahogy van, az adatbázissémát, a használni kívánt táblából három mintasort és egy utasításkészletet kombinálunk a szükséges SQL tiszta SQL formátumban, megjegyzések és kiegészítések nélkül történő előállításához.
Az összes bemeneti elem együttesen modellbeviteli promptnak minősül. A jól megtervezett beviteli prompt, amely a modell preferált szintaxisához van szabva, nagymértékben befolyásolja a kimenet minőségét és teljesítményét. Az adott feladathoz használandó modell kiválasztása szintén fontos, nem csak azért, mert hatással van a kimenet minőségére, hanem azért is, mert költség- és teljesítményvonzatai vannak.
Ebben a bejegyzésben később tárgyaljuk a modellválasztást, valamint az azonnali tervezést és optimalizálást, de érdemes megjegyezni, hogy a lekérdezésgenerálási szakaszban észrevettük, hogy a Claude Instant összehasonlítható eredményeket tudott produkálni, különösen akkor, ha a felhasználói kérdés jól megfogalmazott és nem olyan kifinomult. A Claude V2 azonban még összetettebb és közvetettebb felhasználói bevitel mellett is jobb eredményeket produkált. Megtudtuk, hogy bár bizonyos esetekben Claude Instant megfelelő pontosságot biztosíthat jobb késleltetési idő és ár mellett, a mi esetünk a lekérdezés generálásához jobban megfelelt a Claude V2-höz.
Ellenőrizze az SQL lekérdezést
Következő lépésünk annak ellenőrzése, hogy az LLM sikeresen generálta-e a megfelelő lekérdezési szintaxist, és hogy a lekérdezésnek kontextusban van-e értelme, figyelembe véve az adatbázissémákat és a példasorokat. Ehhez az ellenőrzési lépéshez visszatérhetünk a natív lekérdezés-érvényesítéshez az SQLDatabaseChain-en belül, vagy futtathatunk egy második utat az LLM-hez, beleértve az érvényesítési utasítással együtt generált lekérdezést.
Ha az érvényesítési lépéshez LLM-et használunk, akkor használhatjuk ugyanazt az LLM-et, mint korábban (Claude V2), vagy egy kisebb, nagyobb teljesítményű LLM-et egy egyszerűbb feladathoz, például Claude Instanthoz. Mivel Amazon Bedrockot használunk, ez egy nagyon egyszerű beállítás. Ugyanazt az API-t használva megváltoztathatjuk a modell nevét az API-hívásunkban, amely gondoskodik a módosításról. Fontos megjegyezni, hogy a legtöbb esetben egy kisebb LLM jobb hatékonyságot tud biztosítani mind a költségek, mind a késleltetés tekintetében, ezért érdemes megfontolni – mindaddig, amíg eléri a kívánt pontosságot. Esetünkben a tesztelés bebizonyította, hogy a generált lekérdezés következetesen pontos és megfelelő szintaxissal rendelkezik. Ennek tudatában ki tudtuk hagyni ezt az ellenőrzési lépést, és megtakarítottuk a késleltetést és a költségeket.
Futtassa az SQL lekérdezést
Most, hogy megvan az ellenőrzött SQL-lekérdezés, lefuttathatjuk az SQL-lekérdezést az adatbázisban, és lekérhetjük a megfelelő kontextust. Ennek egyértelmű lépésnek kell lennie.
Fogjuk a generált kontextust, átadjuk az általunk választott LLM-nek a kezdeti felhasználói kérdéssel és néhány utasítással, és megkérjük a modellt, hogy készítsen kontextuális és tagolt összefoglalót. Ezután bemutatjuk a generált összefoglalót a felhasználónak a kezdeti kérdésre adott válaszként, mindezt az adatkészletünkből kivont kontextushoz igazítva.
Az összegzési lépésben részt vevő LLM-hez használhatjuk a Titan Text Express-t vagy a Claude Instant-t. Mindketten jó lehetőségeket kínálnának az összegzési feladathoz.
Alkalmazás integráció
A Q&A chatbot képesség a Q4 AI egyik szolgáltatása. A modularitás és a méretezhetőség biztosítása érdekében a Q4 olyan mikroszolgáltatásokként építi ki az AI-szolgáltatásokat, amelyek API-kon keresztül elérhetők a Q4-alkalmazások számára. Ez az API-alapú megközelítés lehetővé teszi a zökkenőmentes integrációt a Q4 Platform ökoszisztémával, és megkönnyíti az AI-szolgáltatások képességeinek feltárását a platformalkalmazások teljes készlete számára.
Az AI-szolgáltatások fő célja, hogy egyszerű képességeket biztosítsanak az adatok lekéréséhez bármilyen nyilvános vagy védett adatforrásból, természetes nyelv bemeneteként. Ezen túlmenően az AI-szolgáltatások további absztrakciós rétegeket biztosítanak annak biztosítására, hogy a funkcionális és nem funkcionális követelmények teljesüljenek, mint például az adatvédelem és a biztonság. A következő diagram az integrációs koncepciót mutatja be.
Megvalósítási kihívások
A strukturált, numerikus adatkészlet természetéből adódó kihívásokon túl, amelyekről korábban beszéltünk, a negyedik negyedév számos egyéb megvalósítási kihívással is szembesült, amelyeket kezelni kellett.
LLM kiválasztása és teljesítménye
A feladathoz megfelelő LLM kiválasztása kulcsfontosságú, mert közvetlenül befolyásolja a kimenet minőségét és a teljesítményt (az oda-vissza késés). Íme néhány tényező, amelyek szerepet játszanak az LLM kiválasztási folyamatban:
- LLM típusa – Az FM-ek felépítésének módja és a modell előzetes betanításának kezdeti adatai meghatározzák, hogy az LLM milyen típusú feladatokra lenne jó, és mennyire lesz jó. Például egy szöveges LLM jó lenne a szöveggenerálásban és az összegzésben, míg a szöveg-kép vagy kép-szöveg modell inkább a képelemzésre és a generálási feladatokra irányulna.
- LLM méret – Az FM méreteket az adott modell modellparamétereinek számával mérik, a modern LLM-ek esetében jellemzően milliárdokban. Általában minél nagyobb a modell, annál drágább a kezdeti betanítás vagy a későbbi finomhangolás. Másrészt általánosságban elmondható, hogy ugyanazon modellarchitektúra esetében minél nagyobb a modell, annál intelligensebben várjuk el tőle azt a típusú feladatot, amelyre irányul.
- LLM teljesítmény – Általában minél nagyobb a modell, annál több időbe telik a kimenet generálása, feltételezve, hogy ugyanazokat a számítási és I/O paramétereket használja (prompt és kimeneti méret). Ezenkívül azonos modellméret esetén a teljesítményt nagymértékben befolyásolja a prompt optimalizáltsága, az I/O tokenek mérete, valamint a prompt tisztasága és szintaxisa. Egy jól megtervezett prompt az optimalizált I/O token mérettel együtt javíthatja a modell válaszidejét.
Ezért a feladat optimalizálásakor vegye figyelembe a következő bevált módszereket:
- Válasszon egy modellt, amely megfelel az adott feladatnak
- Válassza ki a legkisebb modellméretet, amely a keresett pontosságot képes elérni
- Optimalizálja a prompt szerkezetét, és a lehető legpontosabb legyen az utasításokkal oly módon, hogy a modell könnyen érthető legyen
- Használja a legkisebb beviteli promptot, amely elegendő utasítást és kontextust biztosít a keresett pontossági szint eléréséhez
- Korlátozza a kimeneti méretet a legkisebb méretre, amely hasznos lehet az Ön számára, és kielégíti a kimeneti követelményeket
A modellválasztási és teljesítményoptimalizálási tényezőket figyelembe véve elkezdtük optimalizálni az SQL-generáció használati esetét. Némi tesztelés után észrevettük, hogy a megfelelő kontextus és utasítások birtokában a Claude Instant ugyanazokkal az azonnali adatokkal összehasonlítható minőségű SQL-t produkál, mint a Claude V2, sokkal jobb teljesítmény és ár mellett. Ez akkor igaz, ha a felhasználói bevitel közvetlenebb és egyszerűbb jellegű. A kifinomultabb bevitelhez Claude V2-re volt szükség a kívánt pontosság eléréséhez.
Ugyanezt a logikát alkalmazva az összegzési feladatban arra a következtetésre jutottunk, hogy a Claude Instant vagy a Titan Text Express használata sokkal jobb teljesítményponton biztosítaná a szükséges pontosságot, mintha egy nagyobb modellt, például a Claude V2-t használnánk. A Titan Text Expressed jobb ár-teljesítményt is kínált, amint azt korábban tárgyaltuk.
A hangszerelési kihívás
Rájöttünk, hogy sokat kell hangszerelni, mielőtt értelmes kimeneti választ kaphatunk a felhasználói kérdésre. Amint az a megoldás áttekintéséből látható, a folyamat több adatbázis-ütközést és több LLM-útvonalat tartalmazott, amelyek összefonódnak. Ha a semmiből építkeznénk, akkor jelentős beruházást kellett volna tennünk a differenciálatlan nehézemelésbe, csak hogy elkészüljön az alapkód. Gyorsan rátértünk arra, hogy a LangChaint hangszerelési keretként használjuk, kihasználva a nyílt forráskódú közösség erejét, és újrafelhasználva a meglévő modulokat anélkül, hogy újra fel kellene találnunk a kereket.
Az SQL kihívás
Arra is rájöttünk, hogy az SQL előállítása nem olyan egyszerű, mint a kontextuskivonási mechanizmusok, például a szemantikus keresés vagy a beágyazások használata. Először be kell szereznünk az adatbázissémát és néhány mintasort, amelyeket bele kell foglalnunk az LLM-nek küldött promptba. Létezik az SQL érvényesítési szakasza is, ahol az adatbázissal és az LLM-mel is kapcsolatba kell lépnünk. Az SQLDatabaseChain volt a kézenfekvő eszközválasztás. Mivel a LangChain része, egyszerű volt adaptálni, és most már a lánc segítségével kezelhetjük az SQL generálást és ellenőrzést, minimalizálva a szükséges munkát.
Teljesítménybeli kihívások
A Claude V2 használatával és megfelelő azonnali tervezés után (amelyről a következő részben beszélünk) kiváló minőségű SQL-t tudtunk előállítani. Figyelembe véve a generált SQL minőségét, elkezdtük megvizsgálni, hogy az érvényesítési szakasz valójában mennyi értéket ad hozzá. Az eredmények további elemzése után világossá vált, hogy a generált SQL minősége folyamatosan pontos volt oly módon, hogy az SQL érvényesítési szakasz hozzáadásának költség/haszon aránya kedvezőtlen. Végül megszüntettük az SQL-ellenőrzési szakaszt anélkül, hogy negatívan befolyásoltuk volna a kimenetünk minőségét, és lecsökkentettük az SQL-ellenőrzés oda-vissza idejét.
Amellett, hogy az összegzési lépéshez egy költség- és teljesítményhatékonyabb LLM-re optimalizáltunk, a Titan Text Express segítségével jobb teljesítményt és költséghatékonyságot érhettünk el.
A további teljesítményoptimalizálás a lekérdezésgenerálási folyamat finomhangolását jelentette hatékony azonnali tervezési technikák segítségével. Ahelyett, hogy bőséges tokeneket biztosítanánk, a hangsúly a legkevesebb bemeneti jogkivonat biztosítására irányult, a megfelelő szintaxisban, amelyre a modell meg van tanítva, és a minimális, mégis optimális utasításkészlettel. Erről bővebben a következő részben beszélünk – ez egy fontos téma, amely nemcsak itt, hanem más felhasználási esetekben is alkalmazható.
Gyors tervezés és optimalizálás
Az Amazon Bedrock Claude-ját különféle üzleti felhasználási esetekre állíthatja be, ha a megfelelő mérnöki technikákat alkalmazza. Claude főként társalgási asszisztensként működik, amely emberi/asszisztens formátumot használ. Claude-ot arra képezték ki, hogy szöveget töltsön ki az asszisztensi szerephez. Tekintettel a kívánt utasításokra és prompt-kiegészítésekre, számos technikával optimalizálhatjuk a Claude-ra vonatkozó promptjainkat.
Kezdjük egy helyesen formázott prompt sablonnal, amely érvényes befejezést ad, majd tovább optimalizálhatjuk a válaszokat a felszólítással kísérletezve különféle, valós adatokat reprezentáló bemeneti készletekkel. Javasoljuk, hogy a prompt sablon fejlesztése során sok bevitelt kérjen. Különálló prompt fejlesztési adatok és tesztadatok készletei is használhatók.
A Claude-válasz optimalizálásának másik módja a kísérletezés és az iteráció szabályok, utasítások és szabályok hozzáadásával hasznos optimalizálás. Ezekből az optimalizálásokból különböző típusú befejezéseket tekinthet meg, például úgy, hogy megmondja Claude-nak, hogy „nem tudom” említést tesz a hallucinációk megelőzése érdekében, lépésről lépésre gondolkodik, azonnali láncolást használ, teret ad a „gondolkodásnak”, miközben válaszokat generál. , valamint a megértés és a pontosság kétszeres ellenőrzése.
Használjuk a lekérdezésgenerálási feladatunkat, és beszéljünk meg néhány technikát, amelyet a prompt optimalizálására használtunk. Néhány alapvető elem segítette lekérdezésgenerálási erőfeszítéseinket:
- A megfelelő ember/asszisztens szintaxis használata
- XML-címkék használata (Claude tiszteletben tartja és megérti az XML-címkéket)
- Világos utasítások hozzáadása a modellhez a hallucinációk megelőzésére
A következő általános példa bemutatja, hogyan használtuk a humán/asszisztens szintaxist, hogyan alkalmaztunk XML-címkéket, és hogyan adtunk hozzá utasításokat a kimenet SQL-re való korlátozására, és utasította a modellt, hogy „bocs, nem tudok segíteni”, ha nem tud releváns SQL-t előállítani. . Az XML-címkéket az utasítások, további tippek, adatbázisséma, további táblázatmagyarázatok és példasorok keretezésére használták.
A végső munkamegoldás
Miután a koncepció bizonyítása során azonosított összes kihívással foglalkoztunk, minden megoldási követelményt teljesítettünk. A Q4 elégedett volt az LLM által generált SQL minőségével. Ez igaz az egyszerű feladatokra, amelyekhez csak WHERE záradékra volt szükség az adatok szűréséhez, valamint az összetettebb feladatokra is, amelyekhez kontextus alapú aggregálásra volt szükség GROUP BY és matematikai függvényekkel. A teljes megoldás végpontok közötti késleltetése a használati esetre elfogadhatónak definiált értéken belül volt – egy számjegyű másodperc. Mindez annak köszönhető, hogy minden szakaszban egy optimális LLM-et választottak, a megfelelő azonnali tervezésnek, az SQL-ellenőrzési lépés kiiktatásának, valamint a hatékony LLM-nek az összegzési lépésben való használatának (Titan Text Express vagy Claude Instant).
Érdemes megjegyezni, hogy az Amazon Bedrock teljes körűen felügyelt szolgáltatásként való használata, valamint az LLM-készlethez való hozzáférés lehetősége ugyanazon API-n keresztül lehetővé tette a kísérletezést és az LLM-ek közötti zökkenőmentes váltást az API-hívásban a modellnév megváltoztatásával. Ezzel a rugalmassági szinttel a Q4 minden LLM-híváshoz a legteljesebb LLM-et tudta kiválasztani a feladat jellege alapján, legyen az lekérdezés generálása, ellenőrzése vagy összegzése.
Következtetés
Nincs olyan megoldás, amely minden felhasználási esetnek megfelelne. A RAG megközelítésben a kimenet minősége nagymértékben függ a megfelelő kontextus biztosításától. A megfelelő kontextus kinyerése kulcsfontosságú, és minden adatkészlet különbözik egyedi jellemzőitől.
Ebben a bejegyzésben bemutattuk, hogy numerikus és strukturált adatkészletek esetén az SQL használata a bővítéshez használt kontextus kinyerésére kedvezőbb eredményekhez vezethet. Azt is bemutattuk, hogy az olyan keretrendszerek, mint a LangChain, minimalizálhatják a kódolási erőfeszítést. Ezenkívül megvitattuk annak szükségességét, hogy ugyanazon a használati eseten belül váltani lehessen az LLM-ek között a legoptimálisabb pontosság, teljesítmény és költség elérése érdekében. Végül rávilágítottunk arra, hogy az Amazon Bedrock, mivel kiszolgáló nélküli, és számos LLM-vel a tető alatt, biztosítja azt a rugalmasságot, amely a biztonságos, hatékony és költségoptimalizált alkalmazások létrehozásához szükséges a legkevesebb nehéz teher mellett.
Kezdje el a generatív mesterségesintelligencia-kompatibilis alkalmazások építése felé vezető utat azáltal, hogy azonosítja a vállalkozása számára értékes használati esetet. Az SQL-generálás, amint azt a Q4 csapata megtanulta, megváltoztathatja az intelligens alkalmazások létrehozását, amelyek integrálódnak az adattárakba, és felszabadítják a bevételi potenciált.
A szerzőkről
Tamer Soliman az AWS vezető megoldási építésze. Segíti a független szoftverszállító (ISV) ügyfeleit az AWS-en való innovációban, fejlesztésben és méretezésben. Több mint két évtizedes iparági tapasztalattal rendelkezik tanácsadás, képzés és szakmai szolgáltatások terén. Több szabadalom feltalálója, három szabadalommal rendelkezik, és tapasztalata több technológiai tartományra is kiterjed, beleértve a telekommunikációt, a hálózatépítést, az alkalmazásintegrációt, az AI/ML-t és a felhőalapú telepítéseket. Az AWS Networkingre specializálódott, és mélyen rajong a gépi hajlam, az AI és a generatív AI iránt.
Mani Khanuja Technikai vezető – Generatív mesterségesintelligencia-specialisták, az Alkalmazott gépi tanulás és nagy teljesítményű számítástechnika az AWS-en című könyv szerzője, valamint a Nők a Gyáriparos Oktatásban Alapítvány igazgatótanácsának tagja. Gépi tanulási (ML) projekteket vezet különböző területeken, mint például a számítógépes látás, a természetes nyelvi feldolgozás és a generatív mesterséges intelligencia. Segít ügyfeleinek nagyméretű gépi tanulási modellek létrehozásában, betanításában és üzembe helyezésében. Felszólal belső és külső konferenciákon, mint például a Re:Invent, a Women in Manufacturing West, a YouTube webináriumokon és a GHC 23-ban. Szabadidejében szeret hosszasan futni a tengerparton.
Sztanyiszlav Jescsenko a Q4 Inc. szoftvertervezője. Több mint egy évtizedes iparági tapasztalattal rendelkezik szoftverfejlesztés és rendszerarchitektúra területén. Változatos háttere, amely olyan szerepekre terjed ki, mint például a műszaki vezető és a vezető teljes halom fejlesztő, hozzájárul a Q4 Platform innovációjának előmozdításához. Stanislav elkötelezett a műszaki innováció előmozdítása és a stratégiai megoldások kialakítása mellett.
- SEO által támogatott tartalom és PR terjesztés. Erősödjön még ma.
- PlatoData.Network Vertical Generative Ai. Erősítse meg magát. Hozzáférés itt.
- PlatoAiStream. Web3 Intelligence. Felerősített tudás. Hozzáférés itt.
- PlatoESG. Carbon, CleanTech, Energia, Környezet, Nap, Hulladékgazdálkodás. Hozzáférés itt.
- PlatoHealth. Biotechnológiai és klinikai vizsgálatok intelligencia. Hozzáférés itt.
- Forrás: https://aws.amazon.com/blogs/machine-learning/how-q4-inc-used-amazon-bedrock-rag-and-sqldatabasechain-to-address-numerical-and-structured-dataset-challenges-building-their-qa-chatbot/
- :van
- :is
- :nem
- :ahol
- $ UP
- 100
- 118
- 125
- 15%
- 23
- 7
- a
- képességek
- képesség
- Képes
- absztrakció
- bőség
- elfogadható
- hozzáférés
- hozzáférhető
- Fiók
- pontosság
- pontos
- Elérése
- át
- cselekmények
- tulajdonképpen
- alkalmazkodni
- hozzáadott
- hozzáadásával
- mellett
- További
- Ezen kívül
- kiegészítések
- cím
- címzett
- Beállítás
- fejlett
- továbbjutó
- Előny
- Után
- ellen
- szerek
- adalékanyag
- AI
- AI szolgáltatások
- ai használati esetek
- AI / ML
- célzó
- összehangolása
- igazított
- Minden termék
- lehetővé
- megengedett
- mentén
- Is
- Bár
- am
- amazon
- Az Amazon Web Services
- összeg
- Összegek
- an
- elemzés
- Az elemzők
- analitika
- elemez
- elemzése
- és a
- Másik
- válasz
- válaszok
- Antropikus
- bármilyen
- bármi
- api
- API-k
- alkalmazható
- Alkalmazás
- alkalmazások
- alkalmazott
- megközelítés
- építészet
- VANNAK
- AS
- kérdez
- Eszközök
- Helyettes
- munkáját
- választék
- At
- fokozza
- bővített
- szerző
- elérhető
- tudatában van
- AWS
- vissza
- háttér
- alapján
- alapvető
- BE
- strand
- lett
- mert
- óta
- előtt
- Kezdet
- viselkedés
- hogy
- úgy
- előnyös
- BEST
- legjobb gyakorlatok
- Jobb
- között
- milliárd
- Blokk
- Blocks
- bizottság
- Igazgatóság
- könyv
- Bot
- mindkét
- szélesség
- szünet
- széles
- épít
- Épület
- épít
- épült
- üzleti
- de
- by
- hívás
- jött
- TUD
- Kaphat
- képességek
- képesség
- tőke
- Tőkepiacok
- ami
- eset
- esetek
- lánc
- láncok
- kihívás
- kihívások
- kihívások az építésben
- változik
- Changer
- változó
- jellemzők
- chatbot
- chatbots
- választás
- A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a
- választja
- világosság
- ragadozó ölyv
- világos
- közelebb
- felhő
- kód
- Kódolás
- Oszlop
- kombinált
- kombinálása
- hogyan
- Hozzászólások
- kereskedelemben
- kommunikálni
- közlés
- közösség
- Companies
- vállalat
- hasonló
- befejezés
- bonyolult
- bonyolultság
- teljesítés
- alkatrészek
- megért
- Kiszámít
- számítógép
- Számítógépes látás
- számítástechnika
- koncepció
- megállapítja,
- megkötött
- következtetés
- lefolytatott
- konferenciák
- Csatlakozás
- Csatlakozó
- kapcsolat
- Fontolja
- figyelembe vett
- figyelembe véve
- következetesen
- Összeáll
- áll
- konstrukció
- tanácsadó
- tartalom
- kontextus
- szövegre vonatkozó
- folytatódik
- folyamatosan
- hozzájárulások
- hagyományos
- társalgó
- konverziók
- átalakított
- koordinációs
- Mag
- kijavítására
- Költség
- tudott
- teremt
- kritikai
- CRM
- kritikus
- vevő
- Ügyfelek
- napi
- dátum
- adattó
- adat pontok
- Adatvédelem
- Adatvédelem és biztonság
- adat-tudomány
- adatalapú
- adatbázis
- adatkészletek
- Időpontok
- évtized
- évtizedek
- határozott
- Döntés
- elszánt
- tekinteni
- meghatározott
- Kereslet
- igazolták
- mutatja
- függ
- telepíteni
- bevetések
- leírni
- leíró
- kívánatos
- részletes
- részletek
- meghatározza
- Fejlesztő
- fejlesztése
- Fejlesztés
- különböző
- közvetlen
- közvetlenül
- igazgatók
- megvitatni
- tárgyalt
- merülés
- számos
- do
- domain
- domainek
- ne
- kettős ellenőrzés
- le-
- vezetés
- két
- alatt
- dinamikus
- minden
- Korábban
- könnyű
- ökoszisztéma
- Oktatás
- Hatékony
- hatékonyság
- hatékony
- eredményesen
- erőfeszítés
- erőfeszítések
- bármelyik
- elemek
- jogosultság
- megszüntetése
- csiszolókő
- munkavállaló
- lehetővé teszi
- végén
- végtől végig
- véget ért
- vegyenek
- eljegyzés
- Mérnöki
- elég
- biztosítására
- felszerelt
- Egyenértékű
- ESG
- különösen
- létrehozni
- értékelő
- értékelés
- Még
- események
- Minden
- példa
- példák
- létező
- vár
- várható
- drága
- tapasztalat
- kísérlet
- kísérletek
- szakértő
- szakvélemény
- feltárt
- expressz
- kifejezve
- kiterjedő
- külső
- kivonat
- kitermelés
- szembe
- megkönnyíti
- tényezők
- pörgős
- kedvező
- megvalósítható
- kevés
- mező
- Fields
- kitöltése
- szűrő
- utolsó
- Végül
- pénzügyi
- pénzügyi adat
- vezetéknév
- Rugalmasság
- áramlási
- Összpontosít
- következik
- következő
- A
- formátum
- Előre
- elősegítése
- talált
- Alapítvány
- KERET
- Keretrendszer
- keretek
- Ingyenes
- ból ből
- Tele
- Teljes verem
- teljesen
- funkcionális
- funkciók
- további
- játék
- játék-váltó
- GDPR
- GDPR megfelelés
- felszerelve
- általános
- generál
- generált
- generál
- generáló
- generáció
- nemző
- Generatív AI
- kap
- szerzés
- Ad
- adott
- ad
- Giving
- Go
- cél
- Célok
- jó
- megadott
- nagy
- Csoport
- Növekvő
- kellett
- kéz
- boldog
- Legyen
- tekintettel
- he
- központja
- nehéz
- súlyemelés
- segít
- segít
- neki
- itt
- Magas
- nagy teljesítményű
- jó minőségű
- <p></p>
- legnagyobb
- Kiemelt
- kiemeli
- nagyon
- tanácsok
- övé
- történelem
- motorháztető
- Hogyan
- azonban
- HTTPS
- emberi
- ember által olvasható
- i
- ötlet
- azonosított
- azonosító
- if
- kép
- Hatás
- befolyásolta
- ütköztető
- Hatások
- végre
- végrehajtás
- megvalósítások
- végre
- következményei
- fontos
- javul
- in
- Más
- Inc.
- tartalmaz
- Beleértve
- Növelje
- járulékos
- független
- egyének
- ipar
- információ
- Infrastruktúra
- kezdetben
- alapvetően
- újít
- Innováció
- bemenet
- bemenet
- azonnali
- intézmények
- utasítás
- integrálni
- integráció
- szándékozik
- kölcsönhatásba
- kölcsönhatások
- belső
- összefonódó
- bele
- intuitív
- beruházás
- befektető
- Befektetők
- részt
- kibocsátók
- isv
- IT
- ITS
- utazás
- jpg
- éppen
- Tart
- Kulcs
- Ismerve
- tudás
- ismert
- Labs
- tó
- táj
- nyelv
- nagy
- nagyobb
- keresztnév
- végül
- Késleltetés
- a későbbiekben
- tojók
- vezet
- vezető
- vezetékek
- tanult
- tanulás
- legkevésbé
- Led
- Tanulságok
- Tanulságok
- szint
- emelő
- mint
- Kedvencek
- LLM
- logika
- London
- Hosszú
- néz
- keres
- Sok
- gép
- gépi tanulás
- készült
- Fő
- főleg
- főáram
- fenntartása
- fenntartása
- csinál
- KÉSZÍT
- kezelése
- sikerült
- vezetés
- gyártási
- sok
- piacára
- Piacelemzés
- Piaci adatok
- piacok
- párosított
- matematikai
- Lehet..
- jelentőségteljes
- jelentett
- mechanizmusok
- Találkozik
- tag
- találkozott
- meta
- Metaadatok
- módszer
- Módszertan
- microservices
- minimális
- minimalizálása
- keverje
- ML
- modell
- modellek
- modern
- Modulok
- több
- a legtöbb
- többnyire
- mozgó
- sok
- több
- többszörös
- név
- bennszülött
- Természetes
- Természetes nyelvi feldolgozás
- Természet
- elengedhetetlen
- Szükség
- szükséges
- negatívan
- hálózatba
- Új
- New York
- következő
- nem
- megjegyezni
- megjegyezve,
- Most
- szám
- számok
- célkitűzés
- Nyilvánvaló
- of
- kedvezmény
- felajánlott
- Ajánlatok
- tisztviselők
- irodák
- gyakran
- on
- ONE
- csak
- nyitva
- nyílt forráskódú
- optimálisan
- optimalizálás
- Optimalizálja
- optimalizált
- optimalizálása
- Opciók
- or
- hangszerelésben
- hangszerelés
- érdekében
- eredeti
- Más
- mi
- teljesítmény
- felett
- átfogó
- áttekintés
- túlnyomó
- saját
- tulajdonú
- tulajdon
- paraméterek
- rész
- különös
- Elmúlt
- szenvedély
- szabadalom
- Szabadalmak
- ösvény
- Teljesít
- teljesítmény
- előadó
- vedd
- darabok
- emelvény
- Plató
- Platón adatintelligencia
- PlatoData
- játszani
- pont
- pont
- pozitív
- lehetséges
- állás
- potenciális
- hatalom
- hatáskörök
- gyakorlat
- előnyben részesített
- be
- bemutatott
- megakadályozása
- ár
- elvek
- magánélet
- Adatvédelem és biztonság
- folyamat
- feldolgozás
- gyárt
- Készült
- Termékek
- szakmai
- mélységes
- program
- projektek
- utasításokat
- bizonyíték
- bizonyíték a koncepcióra
- megfelelő
- szabadalmazott
- bizonyított
- ad
- feltéve,
- biztosít
- amely
- nyilvános
- állami társaságok
- nyilvánosan
- cél
- tesz
- Kérdések és válaszok
- világítás
- lekérdezések
- kérdés
- gyorsan
- idézetek
- Ranking
- Inkább
- RE
- kész
- való Világ
- realizált
- kap
- ajánlott
- nyilvántartások
- referenciái
- szabályozott
- kapcsolatok
- kapcsolat
- Jelentések
- reprezentatív
- képviselő
- jelentése
- szükség
- kötelező
- követelmények
- forrás
- tisztelt
- tekintetben
- válasz
- válaszok
- korlátoz
- Eredmények
- jövedelem
- visszaszáll
- felülvizsgálata
- jobb
- kockázatok
- Szerep
- szerepek
- Szoba
- körül
- szabályok
- futás
- fut
- azonos
- elégedett
- elégedett valamivel
- Megtakarítás
- azt mondják
- skálázhatóság
- Skála
- Tudomány
- kaparni
- zökkenőmentes
- zökkenőmentesen
- Keresés
- Második
- másodperc
- Rész
- biztonság
- biztonság
- lát
- kiválasztás
- Sellers
- küld
- idősebb
- értelemben
- különálló
- Series of
- vagy szerver
- szolgáltatás
- Szolgáltatások
- készlet
- Szettek
- számos
- formálás
- részvényes
- Részvényesek
- ő
- kellene
- kimutatta,
- mutatott
- Műsorok
- jelentős
- Egyszerű
- egyszerűbb
- egyszerűsített
- egyszerűsítése
- egyszerűsítése
- egyetlen
- Méret
- méretek
- kisebb
- okos
- intelligensebb
- szoftver
- szoftverfejlesztés
- megoldások
- Megoldások
- néhány
- kifinomult
- forrás
- Források
- feszültség
- ível
- beszél
- szakemberek
- specializálódott
- különleges
- kifejezetten
- Stabilitás
- verem
- Színpad
- tét
- állvány
- állványok
- kezdet
- kezdődött
- Kezdve
- nyilatkozat
- tartózkodás
- Lépés
- Lépései
- készlet
- részvénypiac
- memorizált
- árnyékolók
- egyértelmű
- Stratégiai
- struktúra
- szerkesztett
- Később
- siker
- sikeresen
- ilyen
- elegendő
- megfelelő
- kíséret
- összegez
- ÖSSZEFOGLALÓ
- támogatás
- Támogatja
- felügyelet
- kapcsoló
- szintaxis
- rendszer
- táblázat
- szabott
- Vesz
- meghozott
- tart
- bevétel
- Feladat
- feladatok
- csapat
- tech
- Műszaki
- technikák
- Technológia
- távközlési
- sokatmondó
- sablon
- teszt
- Tesztelés
- tesztek
- szöveg
- mint
- Kösz
- hogy
- A
- Főváros
- azok
- akkor
- Ott.
- Ezek
- ők
- Gondolkodás
- ezt
- három
- Keresztül
- egész
- idő
- Idősorok
- alkalommal
- titán-
- nak nek
- mai
- együtt
- jelképes
- tokenek
- is
- szerszám
- szerszámok
- téma
- toronto
- felé
- Vonat
- kiképzett
- Képzések
- tranzakció
- Tranzakciók
- transzformáló
- utazás
- igaz
- Bízzon
- FORDULAT
- kettő
- típus
- típusok
- jellemzően
- képtelen
- alatt
- mögöttes
- megért
- megértés
- megérti
- megértett
- egyedi
- kinyitó
- felesleges
- us
- használ
- használati eset
- használt
- használó
- barátságos felhasználói
- segítségével
- hasznosítja
- érvényes
- érvényesítés
- érték
- fajta
- különféle
- eladó
- Igazolás
- ellenőrzött
- ellenőrzése
- nagyon
- életképes
- Megnézem
- Tényleges
- látomás
- séta
- kívánatos
- volt
- Út..
- we
- háló
- webes szolgáltatások
- Webinárium
- weboldal
- JÓL
- ment
- voltak
- Nyugati
- Mit
- Kerék
- amikor
- mivel
- ami
- míg
- lesz
- val vel
- belül
- nélkül
- Női
- szavak
- Munka
- dolgozott
- munkafolyamat
- dolgozó
- érdemes
- lenne
- ír
- kódot írni
- XML
- még
- york
- te
- A te
- youtube
- zephyrnet