Tämä viesti on kirjoitettu yhdessä Q4 Inc:n Stanislav Yeshchenkon kanssa.
Yritykset ottavat käyttöön Retrieval Augmented Generation (RAG) -ratkaisun yleisenä lähestymistapana Q&A chatbottien rakentamisessa. Näemme jatkuvasti esiin nousevia haasteita, jotka johtuvat saatavilla olevien tietokokonaisuuksien luonteesta. Nämä tietojoukot ovat usein sekoitus numeerista ja tekstidataa, toisinaan jäsenneltyä, jäsentämätöntä tai puolirakenteista.
Q4 Inc. tarvitaan vastaamaan joihinkin näistä haasteista yhdessä monista AWS:ään rakennetuista tekoälyn käyttötapauksista. Tässä viestissä keskustelemme Q4:n toteuttamasta Q&A-botin käyttötapauksesta, numeeristen ja strukturoitujen tietojoukkojen esittämistä haasteista ja siitä, miten Q4 päätteli, että SQL:n käyttö voi olla kannattava ratkaisu. Lopuksi tarkastellaan tarkemmin, kuinka Q4-tiimi käytti Amazonin kallioperä ja SQLDatabaseChain toteuttamaan RAG-pohjaisen ratkaisun SQL-sukupolven kanssa.
Käytä tapauskatsausta
Q4 Inc., jonka pääkonttori sijaitsee Torontossa ja jolla on toimistot New Yorkissa ja Lontoossa, on johtava pääomamarkkinoiden pääsyalusta, joka muuttaa liikkeeseenlaskijoiden, sijoittajien ja myyjien tehokasta yhteydenpitoa, viestintää ja vuorovaikutusta keskenään. Q4 Platform helpottaa vuorovaikutusta pääomamarkkinoilla IR-verkkosivustotuotteiden, virtuaalitapahtumaratkaisujen, sitoutumisanalytiikan, sijoittajasuhteiden asiakassuhteiden hallinnan (CRM), osakkeenomistajien ja markkina-analyysien, valvonnan ja ESG-työkalujen avulla.
Nykypäivän nopeatempoisessa ja tietovetoisessa talouselämässä sijoittajasuhdepäälliköillä (IRO) on tärkeä rooli yrityksen ja sen osakkeenomistajien, analyytikoiden ja sijoittajien välisen viestinnän edistämisessä. Osana päivittäistä työtään IRO:t analysoivat erilaisia tietojoukkoja, mukaan lukien CRM-, omistustietueet ja osakemarkkinatiedot. Näiden tietojen aggregaattia käytetään taloudellisten raporttien luomiseen, sijoittajasuhteiden tavoitteiden asettamiseen ja viestinnän hallintaan olemassa olevien ja potentiaalisten sijoittajien kanssa.
Vastatakseen tehokkaan ja dynaamisen tiedonhaun kasvavaan kysyntään Q4 pyrki luomaan chatbotin Q&A-työkalun, joka tarjoaisi IRO:ille intuitiivisen ja suoraviivaisen tavan saada tarvitsemansa tiedot käyttäjäystävällisessä muodossa.
Lopullisena tavoitteena oli luoda chatbot, joka integroi saumattomasti julkisesti saatavilla olevat tiedot sekä asiakaskohtaiset Q4-tiedot säilyttäen samalla korkeimman tason tietoturvan ja tietosuojan. Mitä tulee suorituskykyyn, tavoitteena oli säilyttää kyselyn vastausaika sekunneissa positiivisen kokemuksen varmistamiseksi loppukäyttäjille.
Rahoitusmarkkinat ovat säännelty toimiala, jolla on suuret panokset. Väärän tai vanhentuneen tiedon antaminen voi vaikuttaa sijoittajien ja osakkeenomistajien luottamukseen muiden mahdollisten tietosuojariskien lisäksi. Ymmärtämällä toimialan ja vaatimukset, Q4 asettaa tietosuojan ja vastaustarkkuuden ohjaaviksi periaatteikseen arvioidessaan mitä tahansa ratkaisua ennen kuin se voidaan viedä markkinoille.
Käsitteen todistamiseksi Q4 päätti käyttää taloudellisen omistajuuden tietojoukkoa. Tietojoukko koostuu aikasarjatietopisteistä, jotka edustavat omistetun omaisuuden määrää; sijoituslaitosten, yksityishenkilöiden ja julkisten yhtiöiden välinen transaktiohistoria; ja monia muita elementtejä.
Koska Q4 halusi varmistaa, että se täyttää kaikki keskustelemamme toiminnalliset ja ei-toiminnalliset vaatimukset, projektin piti myös pysyä kaupallisesti toteuttamiskelpoisena. Tätä kunnioitettiin koko prosessin ajan, kun päätettiin lähestymistavasta, arkkitehtuurista, teknologian valinnasta ja ratkaisukohtaisista elementeistä.
Kokeilua ja haasteita
Alusta alkaen oli selvää, että ihmisen kielen kysymyksen ymmärtämiseksi ja tarkkojen vastausten luomiseksi Q4:n olisi käytettävä suuria kielimalleja (LLM).
Seuraavassa on joitain ryhmän suorittamia kokeita sekä tunnistettuja haasteita ja opittuja asioita:
- Esikoulutus – Q4 ymmärsi monimutkaisuuden ja haasteet, jotka liittyvät LLM:n esikoulutukseen omalla tietojoukollaan. Pian kävi selväksi, että tämä lähestymistapa on resurssiintensiivinen ja sisältää monia ei-triviaaleja vaiheita, kuten tietojen esikäsittelyä, koulutusta ja arviointia. Siihen liittyvän vaivan lisäksi se olisi kohtuutonta. Ottaen huomioon aikasarjatietojoukon luonteen, Q4 ymmärsi myös, että sen olisi suoritettava jatkuvasti lisäkoulutusta, kun uutta tietoa saapui. Tämä olisi vaatinut omistautuneen poikkitieteellisen tiimin, jolla on asiantuntemusta datatieteestä, koneoppimisesta ja toimialueista. tietoa.
- Hienosäätö – Valmiiksi koulutetun perusmallin (FM) hienosäätö sisälsi useita merkittyjä esimerkkejä. Tämä lähestymistapa osoitti alkuvaiheen menestystä, mutta monissa tapauksissa mallihallusinaatiot olivat haaste. Mallilla oli vaikeuksia ymmärtää vivahteita kontekstuaalisia vihjeitä ja se palautti vääriä tuloksia.
- RAG semanttisella haulla – Perinteinen RAG semanttisella haulla oli viimeinen askel ennen siirtymistä SQL-sukupolkuun. Tiimi kokeili hakua, semanttista hakua ja upotuksia kontekstin poimimiseen. Upotuskokeen aikana tietojoukko muunnettiin upotuksiksi, tallennettiin vektoritietokantaan ja yhdistettiin sitten kysymyksen upotuksiin kontekstin poimimiseksi. Haettua kontekstia missä tahansa kolmesta kokeesta käytettiin sitten täydentämään alkuperäistä kehotetta syötteenä LLM:lle. Tämä lähestymistapa toimi hyvin tekstipohjaisessa sisällössä, jossa data koostuu luonnollisesta kielestä, jossa on sanoja, lauseita ja kappaleita. Kun otetaan huomioon Q4:n tietojoukon luonne, joka koostuu enimmäkseen numeroista, taloustapahtumista, osakekursseista ja päivämääristä koostuvasta taloudesta, tulokset olivat kaikissa kolmessa tapauksessa optimaalisia. Jopa upotuksia käytettäessä numeroista luodut upotukset kamppailivat samankaltaisuussijoituksen kanssa ja johtivat monissa tapauksissa virheellisten tietojen hakemiseen.
Q4:n johtopäätös: SQL:n luominen on tie eteenpäin
Ottaen huomioon perinteisen RAG-metodologian kohdatut haasteet, tiimi alkoi pohtia SQL:n luomista. Ajatuksena oli käyttää LLM:ää luomaan ensin SQL-lause käyttäjän kysymyksestä, joka esitetään LLM:lle luonnollisella kielellä. Luotu kysely suoritetaan sitten tietokantaa vastaan asiaankuuluvan kontekstin hakemiseksi. Lopuksi kontekstia käytetään lisäämään yhteenvetovaiheen syöttökehotetta.
Q4:n hypoteesi oli, että saadakseen korkeamman palautuksen hakuvaiheessa, erityisesti numeerisen tietojoukon osalta, heidän oli ensin luotava SQL käyttäjän kysymyksestä. Tämän uskottiin paitsi lisäävän tarkkuutta, myös pitävän kontekstin tietyn kysymyksen liiketoiminta-alueen sisällä. Kyselyn luomiseksi ja tarkan SQL:n luomiseksi Q4:n piti saada LLM täysin tietoiseksi tietojoukon rakenteesta. Tämä tarkoitti kehotetta sisällyttää tietokantaskeema, muutama esimerkkitietorivi ja ihmisen luettavissa olevat kenttien selitykset, joita ei ole helppo ymmärtää.
Alustavien testien perusteella tämä menetelmä osoitti loistavia tuloksia. Kaikilla tarvittavilla tiedoilla varustettu LLM pystyi luomaan oikean SQL:n, joka sitten ajettiin tietokantaa vastaan oikean kontekstin hakemiseksi. Kokeiltuaan ideaa Q4 päätti, että SQL-sukupolvi oli tapa vastata kontekstin poiminnan haasteisiin heidän omassa tietojoukossaan.
Aloitetaan kuvaamalla kokonaisratkaisu lähestymistapaa, jaetaan se osiin ja yhdistetään sitten osat.
Ratkaisun yleiskatsaus
LLM:t ovat suuria malleja, joissa on miljardeja parametreja, jotka on esikoulutettu käyttämällä erittäin suuria tietomääriä useista eri lähteistä. Koulutustietojoukkojen laajuuden vuoksi LLM:illä odotetaan olevan yleistietoa useilta eri aloilta. LLM:t tunnetaan myös päättelykykyistään, jotka vaihtelevat malleittain. Tämä yleinen käyttäytyminen voidaan optimoida tietylle toimialueelle tai toimialalle optimoimalla perusmallia edelleen käyttämällä toimialuekohtaisia esikoulutustietoja tai hienosäätämällä käyttämällä merkittyjä tietoja. Oikean kontekstin, metatietojen ja ohjeiden ansiosta hyvin valittu yleiskäyttöinen LLM voi tuottaa laadukasta SQL:ää, kunhan sillä on pääsy oikeaan toimialuekohtaiseen kontekstiin.
Q4:n käyttötapauksessa aloitamme kääntämällä asiakkaan kysymyksen SQL:ksi. Teemme tämän yhdistämällä käyttäjän kysymyksen, tietokantaskeeman, joitakin esimerkkitietokantarivejä ja yksityiskohtaiset ohjeet kehotteena LLM:lle luoda SQL. Kun meillä on SQL, voimme suorittaa validointivaiheen, jos katsomme sen tarpeelliseksi. Kun olemme tyytyväisiä SQL:n laatuun, suoritamme kyselyn tietokantaa vastaan hakeaksemme asiaankuuluvan kontekstin, jota tarvitsemme seuraavaa vaihetta varten. Nyt kun meillä on asiaankuuluva konteksti, voimme lähettää käyttäjän alkuperäisen kysymyksen, haetun kontekstin ja joukon ohjeita takaisin LLM:lle lopullisen tiivistetyn vastauksen laatimiseksi. Viimeisen vaiheen tavoitteena on, että LLM tekee yhteenvedon tuloksista ja antaa asiayhteyteen perustuvan ja tarkan vastauksen, joka voidaan sitten välittää käyttäjälle.
Prosessin jokaisessa vaiheessa käytettävän LLM:n valinta vaikuttaa suuresti tarkkuuteen, kustannuksiin ja suorituskykyyn. Jos valitset alustan tai tekniikan, joka mahdollistaa joustavan siirtymisen LLM:ien välillä samassa käyttötapauksessa (useita LLM-matkoja eri tehtäviin) tai eri käyttötapauksissa, voi olla hyödyllistä optimoida tulosteen laatua, viivettä ja kustannuksia. . Käsittelemme LLM:n valintaa myöhemmin tässä viestissä.
Ratkaisun rakennuspalikoita
Nyt kun olemme korostaneet lähestymistapaa korkealla tasolla, sukeltakaamme yksityiskohtiin alkaen ratkaisun rakennuspalikoista.
Amazonin kallioperä
Amazon Bedrock on täysin hallittu palvelu, joka tarjoaa valikoiman tehokkaita FM-laitteita johtavilta yrityksiltä, mukaan lukien AI21 Labs, Anthropic, Cohere, Meta, Stability AI ja Amazon. Amazon Bedrock tarjoaa myös laajan valikoiman työkaluja, joita tarvitaan luovien tekoälysovellusten rakentamiseen, kehitysprosessin yksinkertaistamiseen sekä yksityisyyden ja turvallisuuden ylläpitämiseen. Lisäksi Amazon Bedrockin avulla voit valita useista FM-vaihtoehdoista, ja voit edelleen hienosäätää malleja yksityisesti omilla tiedoillasi mukauttaaksesi mallien vastaukset käyttötarpeisiisi. Amazon Bedrock on täysin palvelimeton, eikä siinä ole taustalla olevaa infrastruktuuria, joka voisi hallita käytettävissä olevien mallien käytön laajentamista yhden API:n kautta. Lopuksi Amazon Bedrock tukee useita turvallisuus- ja tietosuojavaatimuksia, mukaan lukien HIPAA-kelpoisuus ja GDPR-vaatimustenmukaisuus.
Q4:n ratkaisussa käytämme Amazon Bedrockia palvelimettomana API-pohjaisena moniperustaisena mallin rakennuspalikkana. Koska aiomme tehdä useita matkoja LLM:ään saman käyttötapauksen puitteissa, voimme valita tehtävätyypin perusteella mallin, joka on optimaalinen tiettyyn tehtävään, olipa kyseessä SQL:n luominen, validointi tai yhteenveto.
LangChain
LangChain on avoimen lähdekoodin integrointi- ja orkestrointikehys, jossa on joukko valmiita moduuleja (I/O, haku, ketjut ja agentit), joiden avulla voit integroida ja organisoida tehtäviä FM-laitteiden, tietolähteiden ja työkalujen välillä. Kehys helpottaa luovien tekoälysovellusten rakentamista, jotka vaativat useiden vaiheiden organisointia halutun tulosteen tuottamiseksi ilman, että sinun tarvitsee kirjoittaa koodia tyhjästä. LangChain tukee Amazon Bedrockia monipohjaisena mallisovellusliittymänä.
Q4:n käyttötapauksessa käytämme LangChainia työnkulkumme tehtävien koordinointiin ja organisointiin, mukaan lukien yhteyden muodostamiseen tietolähteisiin ja LLM:iin. Tämä lähestymistapa on yksinkertaistanut koodiamme, koska voimme käyttää olemassa olevia LangChain-moduuleja.
SQLDatabaseChain
SQLDatabaseChain on LangChain-ketju, joka voidaan tuoda langchain_experimentalista. SLDatabaseChain tekee SQL-kyselyjen luomisesta, toteuttamisesta ja suorittamisesta yksinkertaista käyttämällä tehokkaita tekstistä SQL:ksi muunnoksia ja toteutuksia.
Käyttötapauksessamme käytämme SQLDatabaseChainia SQL-sukupolvessa, mikä yksinkertaistaa ja organisoi tietokannan ja LLM:n välistä vuorovaikutusta.
Tietojoukko
Strukturoitu tietojoukkomme voi sijaita SQL-tietokannassa, datajärvessä tai tietovarastossa niin kauan kuin meillä on tuki SQL:lle. Ratkaisussamme voimme käyttää mitä tahansa tietojoukkotyyppiä SQL-tuella; tämä tulee ottaa pois ratkaisusta, eikä se saa muuttaa ratkaisua millään tavalla.
Toteutustiedot
Nyt kun olemme tutkineet ratkaisun lähestymistapaa, ratkaisun komponentteja, teknologian valintaa ja työkaluja, voimme koota palaset. Seuraava kaavio korostaa päästä päähän -ratkaisua.
Käydään läpi toteutuksen yksityiskohdat ja prosessin kulku.
Luo SQL-kysely
Koodauksen yksinkertaistamiseksi käytämme olemassa olevia kehyksiä. Käytämme LangChainia orkestrointikehyksenä. Aloitamme syöttövaiheesta, jossa saamme käyttäjän kysymyksen luonnollisella kielellä.
Tässä ensimmäisessä vaiheessa otamme tämän syötteen ja luomme vastaavan SQL:n, jonka voimme ajaa tietokantaa vastaan kontekstin purkamista varten. SQL:n luomiseen käytämme SQLDatabaseChainia, joka luottaa Amazon Bedrockiin päästäkseen haluttuun LLM:ään. Amazon Bedrockin avulla saamme yhden API:n avulla pääsyn useisiin taustalla oleviin LLM:ihin ja voimme valita oikean jokaiselle LLM-matkallemme. Muodostamme ensin yhteyden tietokantaan ja haemme tarvittavan taulukkoskeeman sekä joitakin esimerkkirivejä taulukoista, joita aiomme käyttää.
Testauksessamme havaitsimme, että 2–5 riviä taulukkodataa riittää antamaan mallille tarpeeksi tietoa ilman turhaa lisäkustannuksia. Kolme riviä riitti tarjoamaan kontekstin ilman, että mallia kuormitettiin liikaa. Käyttötapauksessamme aloitimme Anthropicista Claude V2. Malli tunnetaan edistyneestä päättelystään ja kiteytyvistä kontekstuaalisista vastauksistaan, kun sille annetaan oikea konteksti ja ohjeet. Osana ohjeita voimme sisällyttää LLM:lle selventäviä yksityiskohtia. Voimme esimerkiksi kuvata tuota saraketta Comp_NAME
tarkoittaa yrityksen nimeä. Voimme nyt rakentaa kehotteen yhdistämällä käyttäjän kysymyksen sellaisenaan, tietokantaskeeman, kolme esimerkkiriviä taulukosta, jota aiomme käyttää, ja joukon ohjeita vaaditun SQL:n luomiseksi puhtaassa SQL-muodossa ilman kommentteja tai lisäyksiä.
Kaikkia syöttöelementtejä yhdessä pidetään mallin syöttökehotteina. Hyvin suunniteltu syöttökehote, joka on räätälöity mallin ensisijaiseen syntaksiin, vaikuttaa suuresti sekä tulosteen laatuun että suorituskykyyn. Tiettyyn tehtävään käytettävän mallin valinta on myös tärkeä, ei vain siksi, että se vaikuttaa tulosteen laatuun, vaan myös siksi, että sillä on vaikutuksia kustannuksiin ja suorituskykyyn.
Keskustelemme mallin valinnasta ja nopeasta suunnittelusta ja optimoinnista myöhemmin tässä viestissä, mutta on syytä huomata, että kyselyn luontivaiheessa huomasimme, että Claude Instant pystyi tuottamaan vertailukelpoisia tuloksia, varsinkin kun käyttäjän kysymys on hyvin muotoiltu eikä niin hienostunut. Claude V2 tuotti kuitenkin parempia tuloksia jopa monimutkaisemmalla ja epäsuoralla käyttäjän syötteellä. Opimme sen, vaikka joissain tapauksissa Claude Instant voi tarjota riittävän tarkkuuden paremmalla viiveellä ja hintapisteellä, meidän tapaus kyselyn luomiseksi sopi paremmin Claude V2:lle.
Tarkista SQL-kysely
Seuraava askel on varmistaa, että LLM on onnistuneesti luonut oikean kyselysyntaksin ja että kyselyllä on kontekstuaalinen järke ottaen huomioon tietokantaskeemat ja esimerkkirivit. Tätä varmennusvaihetta varten voimme palata alkuperäiseen kyselyn validointiin SQLDatabaseChainissa tai voimme suorittaa toisen matkan LLM:ään, mukaan lukien vahvistuskäskyn kanssa luodut kyselyt.
Jos käytämme LLM:ää validointivaiheeseen, voimme käyttää samaa LLM:ää kuin ennen (Claude V2) tai pienempää, tehokkaampaa LLM:ää yksinkertaisempaan tehtävään, kuten Claude Instant. Koska käytämme Amazon Bedrockia, tämän pitäisi olla hyvin yksinkertainen säätö. Samaa APIa käyttämällä voimme muuttaa mallin nimeä API-kutsussamme, joka huolehtii muutoksista. On tärkeää huomata, että useimmissa tapauksissa pienempi LLM voi tarjota paremman tehokkuuden sekä kustannusten että latenssin suhteen, ja se tulee harkita – niin kauan kuin saavutat halutun tarkkuuden. Meidän tapauksessamme testaus osoitti luodun kyselyn olevan jatkuvasti tarkka ja oikealla syntaksilla. Tietäen tämän, pystyimme ohittamaan tämän vahvistusvaiheen ja säästämään latenssissa ja kustannuksissa.
Suorita SQL-kysely
Nyt kun meillä on vahvistettu SQL-kysely, voimme suorittaa SQL-kyselyn tietokantaa vastaan ja hakea asiaankuuluvan kontekstin. Tämän pitäisi olla suoraviivainen askel.
Otamme luodun kontekstin, toimitamme sen valitsemamme LLM:lle alkuperäisen käyttäjän kysymyksen ja ohjeiden kanssa ja pyydämme mallia luomaan kontekstuaalisen ja selkeän yhteenvedon. Esitämme sitten luodun yhteenvedon käyttäjälle vastauksena alkuperäiseen kysymykseen, kaikki kohdistettuna tietojoukostamme poimimaan kontekstiin.
Yhteenvetovaiheeseen osallistuvalle LLM:lle voimme käyttää joko Titan Text Expressiä tai Claude Instantia. Molemmat esittäisivät hyviä vaihtoehtoja yhteenvetotehtävään.
Sovellusten integrointi
Q&A chatbot-ominaisuus on yksi Q4:n tekoälypalveluista. Modulaarisuuden ja skaalautuvuuden varmistamiseksi Q4 rakentaa tekoälypalvelut mikropalveluina, joihin Q4:n sovellukset voivat päästä API:iden kautta. Tämä API-pohjainen lähestymistapa mahdollistaa saumattoman integraation Q4 Platform -ekosysteemiin ja helpottaa tekoälypalvelujen kykyjen paljastamista kaikille alustasovellusten joukolle.
Tekoälypalvelujen päätavoite on tarjota suoraviivaiset ominaisuudet tietojen hakemiseen mistä tahansa julkisesta tai omistusoikeudellisesta tietolähteestä käyttämällä luonnollista kieltä syötteenä. Lisäksi tekoälypalvelut tarjoavat ylimääräisiä abstraktiotasoja varmistaakseen, että toiminnalliset ja ei-toiminnalliset vaatimukset, kuten tietosuoja ja tietoturva, täyttyvät. Seuraava kaavio esittää integrointikonseptin.
Täytäntöönpanon haasteet
Aiemmin käsitellyn strukturoidun, numeerisen tietojoukon luonteen aiheuttamien haasteiden lisäksi Q4 kohtasi useita muita toteutushaasteita, joihin oli puututtava.
LLM-valinta ja suorituskyky
Oikean LLM:n valitseminen tehtävään on ratkaisevan tärkeää, koska se vaikuttaa suoraan tulosteen laatuun sekä suorituskykyyn (meno-paluuviive). Tässä on joitain tekijöitä, jotka vaikuttavat LLM-valintaprosessiin:
- LLM:n tyyppi – Tapa, jolla FM:t on suunniteltu ja lähtötiedot, joihin malli on esikoulutettu, määrää, minkä tyyppisissä tehtävissä LLM olisi hyvä ja kuinka hyvä se tulee olemaan. Esimerkiksi tekstin LLM olisi hyvä tekstin luomisessa ja yhteenvedossa, kun taas tekstistä kuvaksi tai kuvasta tekstiksi -malli olisi enemmän suunnattu kuva-analytiikkaan ja luontitehtäviin.
- LLM koko – FM-koot mitataan malliparametrien lukumäärällä, joka tietyllä mallilla on, tyypillisesti miljardeissa nykyaikaisissa LLM:issä. Tyypillisesti mitä suurempi malli on, sitä kalliimpaa on aluksi harjoitella tai myöhemmin hienosäätää. Toisaalta yleisesti ottaen samalla malliarkkitehtuurilla mitä suurempi malli on, sitä älykkäämmin odotamme sen suorittavan sen tyyppisiä tehtäviä, joihin se on suunnattu.
- LLM:n suorituskyky – Tyypillisesti mitä suurempi malli on, sitä enemmän aikaa kuluu tuotoksen luomiseen olettaen, että käytät samoja laskenta- ja I/O-parametreja (kehote ja lähdön koko). Lisäksi saman mallikoon suorituskykyyn vaikuttaa suuresti kehotteen optimointi, I/O-tunnisteiden koko sekä kehotteen selkeys ja syntaksi. Hyvin suunniteltu kehote yhdessä optimoidun I/O-tunnisteen koon kanssa voivat parantaa mallin vasteaikaa.
Siksi, kun optimoit tehtävääsi, ota huomioon seuraavat parhaat käytännöt:
- Valitse malli, joka sopii käsillä olevaan tehtävään
- Valitse pienin mallikoko, joka voi tuottaa etsimäsi tarkkuuden
- Optimoi kehotteesi rakenne ja esitä ohjeet mahdollisimman tarkasti mallin helposti ymmärrettävällä tavalla
- Käytä pienintä syöttökehotetta, joka voi tarjota tarpeeksi ohjeita ja kontekstia saadaksesi etsimäsi tarkkuustason
- Rajoita tulosteen koko pienimpään kokoon, joka voi olla mielekästä sinulle ja täyttää tulostusvaatimukset
Ottaen huomioon mallin valinta ja suorituskyvyn optimointitekijät, lähdimme optimoimaan SQL-sukupolven käyttötapausta. Muutaman testauksen jälkeen huomasimme, että jos meillä on oikea konteksti ja ohjeet, Claude Instant tuottaisi samoilla nopealla tiedolla SQL:n laatua vertailukelpoisena kuin Claude V2 paljon paremmalla suorituskyvyllä ja hinnalla. Tämä pitää paikkansa, kun käyttäjän syöte on luonteeltaan suorempaa ja yksinkertaisempaa. Edistyksellisempää syöttöä varten tarvittiin Claude V2 halutun tarkkuuden tuottamiseksi.
Saman logiikan soveltaminen yhteenvetotehtävään johti siihen johtopäätökseen, että Claude Instantin tai Titan Text Expressin käyttäminen tuottaisi vaaditun tarkkuuden paljon paremmassa suorituspisteessä kuin jos käyttäisimme suurempaa mallia, kuten Claude V2. Titan Text Expressed tarjosi myös paremman hinta-suorituskyvyn, kuten aiemmin keskustelimme.
Orkesterin haaste
Ymmärsimme, että on paljon organisoitavaa, ennen kuin voimme saada mielekkään vastauksen käyttäjän kysymykseen. Kuten ratkaisun yleiskatsauksessa näkyy, prosessi sisälsi useita tietokantamatkoja ja useita LLM-matkoja, jotka kietoutuvat toisiinsa. Jos olisimme rakentaneet tyhjästä, olisimme joutuneet investoimaan merkittävästi erittelemättömään raskasnostoon vain saadaksemme peruskoodin valmiiksi. Päädyimme nopeasti käyttämään LangChainia orkestrointikehyksenä, hyödyntäen avoimen lähdekoodin yhteisön voimaa ja käyttämällä olemassa olevia moduuleja uudelleen keksimättä pyörää uudelleen.
SQL-haaste
Ymmärsimme myös, että SQL:n luominen ei ole niin yksinkertaista kuin kontekstin poimintamekanismit, kuten semanttinen haku tai upotusten käyttö. Meidän on ensin hankittava tietokantaskeema ja muutama esimerkkirivi sisällytettäväksi kehotteeseen LLM:lle. On myös SQL-validointivaihe, jossa meidän piti olla vuorovaikutuksessa sekä tietokannan että LLM:n kanssa. SQLDatabaseChain oli ilmeinen työkalu valinta. Koska se on osa LangChainia, sen mukauttaminen oli yksinkertaista, ja nyt voimme hallita SQL:n luomista ja todentamista ketjun avulla minimoiden työmäärämme.
Suorituskyvyn haasteita
Käytettäessä Claude V2:ta ja kunnollisen nopean suunnittelun jälkeen (jota käsittelemme seuraavassa osiossa), pystyimme tuottamaan korkealaatuista SQL:ää. Kun otetaan huomioon luodun SQL:n laatu, aloimme tarkastella, kuinka paljon arvoa validointivaihe todella lisää. Tulosten lisäanalyysin jälkeen kävi selväksi, että luodun SQL:n laatu oli jatkuvasti tarkkaa tavalla, joka teki SQL-validointivaiheen lisäämisen kustannus-hyötysuhteesta epäedullisen. Päädyimme eliminoimaan SQL-tarkistusvaiheen vaikuttamatta negatiivisesti tulostemme laatuun ja lyhensimme SQL-tarkistuksen kiertoaikaa.
Sen lisäksi, että optimoimme kustannus- ja suorituskykytehokkaamman LLM:n yhteenvetovaihetta varten, pystyimme käyttämään Titan Text Expressiä parantaaksemme suorituskykyä ja kustannustehokkuutta.
Lisäsuorituskyvyn optimointi sisälsi kyselyn luontiprosessin hienosäädön käyttämällä tehokkaita nopean suunnittelun tekniikoita. Sen sijaan, että tarjottaisiin runsaasti tunnuksia, keskityttiin tarjoamaan mahdollisimman vähän syöttötunnuksia, oikeassa syntaksissa, jota malli on koulutettu ymmärtämään, ja mahdollisimman pienillä mutta optimaalisilla ohjeilla. Keskustelemme tästä lisää seuraavassa osiossa – se on tärkeä aihe, jota voidaan soveltaa paitsi täällä myös muissa käyttötapauksissa.
Nopea suunnittelu ja optimointi
Voit säätää Claudea Amazon Bedrockissa erilaisiin yrityskäyttöön, jos käytetään oikeaa nopeaa suunnittelutekniikkaa. Claude toimii pääasiassa keskusteluavustajana, joka käyttää ihmisen/avustajan muotoa. Claude on koulutettu täyttämään tekstiä avustajan roolia varten. Kun otetaan huomioon ohjeet ja halutut täydennykset, voimme optimoida kehotteet Claudelle useilla tekniikoilla.
Aloitamme oikein muotoillulla kehotemallilla, joka antaa kelvollisen täydennyksen, ja sitten voimme edelleen optimoida vastauksia kokeilemalla kehotteita erilaisilla todellista dataa edustavilla syötteillä. On suositeltavaa saada useita syötteitä, kun kehitetään kehotemallia. Voit myös käyttää erillisiä pikakehitystietojen ja testitietojen sarjoja.
Toinen tapa optimoida Clauden vastaus on kokeilla ja iteroida lisäämällä sääntöjä, ohjeita ja hyödyllisiä optimointeja. Näistä optimoinneista voit tarkastella erilaisia täydennyksiä esimerkiksi käskemällä Claudelle mainitsemaan "en tiedä" hallusinaatioiden estämiseksi, ajattelemalla askel askeleelta, käyttämällä nopeaa ketjutusta, antamalla tilaa "ajattelulle", kun se tuottaa vastauksia , ja tarkista ymmärrys ja tarkkuus.
Käytetään kyselyn luontitehtäväämme ja keskustellaan joistakin tekniikoista, joita käytimme kehotteen optimointiin. Muutama ydinelementti hyödytti kyselyjämme:
- Oikean ihmisen/avustajan syntaksin käyttäminen
- XML-tunnisteiden käyttäminen (Claude kunnioittaa ja ymmärtää XML-tageja)
- Selkeiden ohjeiden lisääminen malliin hallusinaatioiden estämiseksi
Seuraava yleinen esimerkki näyttää kuinka käytimme ihmisen/avustajan syntaksia, käytimme XML-tageja ja lisäsimme ohjeita lähdön rajoittamiseksi SQL:ään ja käskemme mallia sanomaan "anteeksi, en voi auttaa", jos se ei pysty tuottamaan asiaankuuluvaa SQL:ää. . XML-tunnisteita käytettiin kehystämään ohjeet, lisävinkit, tietokantakaavio, lisätaulukon selitykset ja esimerkkirivit.
Lopullinen toimiva ratkaisu
Kun olimme vastanneet kaikkiin konseptin testauksen aikana tunnistettuihin haasteisiin, olimme täyttäneet kaikki ratkaisuvaatimukset. Q4 oli tyytyväinen LLM:n luoman SQL:n laatuun. Tämä pätee yksinkertaisiin tehtäviin, jotka vaativat vain WHERE-lauseen tietojen suodattamiseen, ja myös monimutkaisempiin tehtäviin, jotka vaativat kontekstipohjaisia aggregaatioita GROUP BY:n ja matemaattisten funktioiden kanssa. Kokonaisratkaisun päästä päähän -viive sisälsi käyttötapauksessa hyväksyttäväksi määritellyn - yksinumeroisen sekunnin. Tämä kaikki johtui optimaalisen LLM:n valinnasta jokaisessa vaiheessa, asianmukaisesta nopeasta suunnittelusta, SQL-varmennusvaiheen poistamisesta ja tehokkaan LLM:n käyttämisestä yhteenvetovaiheessa (Titan Text Express tai Claude Instant).
On syytä huomata, että Amazon Bedrockin käyttäminen täysin hallinnoituna palveluna ja mahdollisuus päästä käsiksi LLM:ien sarjaan saman API:n kautta mahdollisti kokeilujen ja saumattoman vaihtamisen LLM:ien välillä vaihtamalla mallin nimeä API-kutsussa. Tämän joustavuuden ansiosta Q4 pystyi valitsemaan tehokkaimman LLM:n kullekin LLM-kutsulle tehtävän luonteen perusteella, olipa kyseessä sitten kyselyn luominen, vahvistaminen tai yhteenveto.
Yhteenveto
Ei ole olemassa yhtä ratkaisua, joka sopisi kaikkiin käyttötapauksiin. RAG-lähestymistavassa tuotoksen laatu riippuu suuresti oikean kontekstin tarjoamisesta. Oikean kontekstin purkaminen on avainasemassa, ja jokainen tietojoukko on erilainen ainutlaatuisten ominaisuuksiensa vuoksi.
Tässä viestissä osoitimme, että numeerisissa ja strukturoiduissa tietojoukoissa SQL:n käyttäminen lisäykseen käytetyn kontekstin poimimiseen voi johtaa suotuisampiin tuloksiin. Osoitimme myös, että LangChainin kaltaiset puitteet voivat minimoida koodausponnistuksen. Lisäksi keskustelimme tarpeesta kyetä vaihtamaan LLM:ien välillä samassa käyttötapauksessa optimaalisen tarkkuuden, suorituskyvyn ja kustannusten saavuttamiseksi. Lopuksi korostimme, kuinka Amazon Bedrock, joka on palvelinton ja jossa on useita LLM-yrityksiä, tarjoaa joustavuutta, jota tarvitaan turvallisten, tehokkaiden ja kustannusoptimoitujen sovellusten rakentamiseen vähiten raskaiden nostojen kanssa.
Aloita matkasi kohti luovien tekoälyä tukevien sovellusten rakentamista tunnistamalla yrityksellesi arvokas käyttötapa. Kuten Q4-tiimi oppi, SQL-sukupolvi voi olla pelin muuttaja luotaessa älykkäitä sovelluksia, jotka integroituvat tietovarastojesi kanssa ja vapauttavat tuottopotentiaalia.
Tietoja kirjoittajista
Tamer Soliman on AWS:n vanhempi ratkaisuarkkitehti. Hän auttaa Independent Software Vendor (ISV) -asiakkaita innovoimaan, rakentamaan ja skaalaamaan AWS:llä. Hänellä on yli kahden vuosikymmenen kokemus alalta konsultoinnista, koulutuksesta ja asiantuntijapalveluista. Hän on useiden patenttien keksijä, jolla on kolme myönnettyä patenttia, ja hänen kokemuksensa kattaa useita teknologia-alueita, mukaan lukien tietoliikenne, verkko, sovellusintegraatio, AI/ML ja pilvikäyttöönotto. Hän on erikoistunut AWS-verkkoihin, ja hänellä on syvä intohimo konekallistamiseen, tekoälyyn ja generatiiviseen tekoälyyn.
Mani Khanuja on tekninen johtaja – Generative AI Specialists, kirjoittanut kirjan – Applied Machine Learning and High Performance Computing on AWS, ja hallituksen jäsen, Women in Manufacturing Education Foundation hallituksen. Hän johtaa koneoppimisprojekteja eri aloilla, kuten tietokonenäön, luonnollisen kielen käsittelyn ja generatiivisen tekoälyn aloilla. Hän auttaa asiakkaita rakentamaan, kouluttamaan ja ottamaan käyttöön suuria koneoppimismalleja mittakaavassa. Hän puhuu sisäisissä ja ulkoisissa konferensseissa, kuten Re:Invent, Women in Manufacturing West, YouTube webinaareissa ja GHC 23:ssa. Vapaa-ajallaan hän tykkää käydä pitkillä lenkillä rannalla.
Stanislav Ještšenko on ohjelmistoarkkitehti Q4 Inc:ssä. Hänellä on yli vuosikymmenen kokemus alalta ohjelmistokehityksestä ja järjestelmäarkkitehtuurista. Hänen monipuolinen taustansa, joka kattaa rooleja, kuten teknisen johtajan ja vanhemman Full Stack -kehittäjän, antaa hänen panoksensa Q4-alustan innovaatioiden edistämiseen. Stanislav on omistautunut ajamaan teknisiä innovaatioita ja muotoilemaan alan strategisia ratkaisuja.
- SEO-pohjainen sisällön ja PR-jakelu. Vahvista jo tänään.
- PlatoData.Network Vertical Generatiivinen Ai. Vahvista itseäsi. Pääsy tästä.
- PlatoAiStream. Web3 Intelligence. Tietoa laajennettu. Pääsy tästä.
- PlatoESG. hiili, CleanTech, energia, ympäristö, Aurinko, Jätehuolto. Pääsy tästä.
- PlatonHealth. Biotekniikan ja kliinisten kokeiden älykkyys. Pääsy tästä.
- Lähde: 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/
- :on
- :On
- :ei
- :missä
- $ YLÖS
- 100
- 118
- 125
- 15%
- 23
- 7
- a
- kyvyt
- kyky
- pystyy
- abstraktio
- runsaus
- hyväksyttävä
- pääsy
- saatavilla
- Tili
- tarkkuus
- tarkka
- Saavuttaa
- poikki
- säädökset
- todella
- sopeuttaa
- lisä-
- lisää
- Lisäksi
- lisä-
- Lisäksi
- lisäyksiä
- osoite
- osoitettu
- Säätö
- kehittynyt
- etenee
- Etu
- Jälkeen
- vastaan
- aineet
- aggregaatti
- AI
- Tekoälyn palvelut
- ai käyttötapauksia
- AI / ML
- jonka tarkoituksena
- kohdista
- linjassa
- Kaikki
- sallia
- sallittu
- pitkin
- Myös
- Vaikka
- am
- Amazon
- Amazon Web Services
- määrä
- määrät
- an
- analyysi
- analyytikot
- Analytics
- analysoida
- analysointi
- ja
- Toinen
- vastaus
- vastauksia
- Antropinen
- Kaikki
- mitään
- api
- API
- sovelletaan
- Hakemus
- sovellukset
- sovellettu
- lähestymistapa
- arkkitehtuuri
- OVAT
- AS
- kysyä
- Varat
- Avustaja
- avustaa
- lajitelma
- At
- lisätä
- täydennetty
- kirjoittaja
- saatavissa
- tietoinen
- AWS
- takaisin
- tausta
- perustua
- perustiedot
- BE
- Ranta
- tuli
- koska
- ollut
- ennen
- Alku
- käyttäytyminen
- ovat
- uskoi
- suotuisa
- PARAS
- parhaat käytännöt
- Paremmin
- välillä
- miljardeja
- Tukkia
- Blocks
- hallitus
- hallitus
- kirja
- Bot
- sekä
- leveys
- Tauko
- laaja
- rakentaa
- Rakentaminen
- rakentaa
- rakennettu
- liiketoiminta
- mutta
- by
- soittaa
- tuli
- CAN
- Voi saada
- kyvyt
- valmiudet
- pääoma
- Pääomamarkkinat
- joka
- tapaus
- tapauksissa
- ketju
- kahleet
- haaste
- haasteet
- haasteita rakentamisessa
- muuttaa
- Vaihtaja
- muuttuviin
- ominaisuudet
- chatbot
- chatbots
- valinta
- Valita
- valita
- selkeys
- puhdas
- selkeä
- lähempänä
- pilvi
- koodi
- Koodaus
- Sarake
- yhdistetty
- yhdistely
- Tulla
- kommentit
- kaupallisesti
- tiedottaa
- Viestintä
- yhteisö
- Yritykset
- yritys
- vertailukelpoinen
- valmistuminen
- monimutkainen
- monimutkaisuus
- noudattaminen
- osat
- ymmärtää
- Laskea
- tietokone
- Tietokoneen visio
- tietojenkäsittely
- käsite
- päättelee
- päätökseen
- johtopäätös
- tehty
- konferenssit
- kytkeä
- Kytkeminen
- liitäntä
- Harkita
- harkittu
- ottaen huomioon
- johdonmukaisesti
- Koostuu
- muodostuu
- rakentaa
- konsultointi
- pitoisuus
- tausta
- asiayhteyteen
- jatkaa
- jatkuvasti
- maksut
- tavanomainen
- puhekielen
- tuloksia
- muunnetaan
- koordinoimalla
- Ydin
- korjata
- Hinta
- voisi
- luoda
- kriittinen
- CRM
- ratkaiseva
- asiakas
- Asiakkaat
- päivittäin
- tiedot
- Datajärvi
- datapisteet
- Tietosuoja
- Tietosuoja ja tietoturva
- tietojenkäsittely
- data-driven
- tietokanta
- aineistot
- Päivämäärät
- vuosikymmen
- vuosikymmeninä
- päätti
- Päätetään
- omistautunut
- katsotaan
- määritelty
- Kysyntä
- osoittivat
- osoittaa
- riippuu
- sijoittaa
- käyttöönotot
- kuvata
- kuvataan
- haluttu
- yksityiskohtainen
- yksityiskohdat
- määrittää
- Kehittäjä
- kehittämällä
- Kehitys
- eri
- ohjata
- suoraan
- Ohjaajat
- pohtia
- keskusteltiin
- sukellus
- useat
- do
- verkkotunnuksen
- verkkotunnuksia
- Dont
- kaksinkertainen tarkistus
- alas
- ajo
- kaksi
- aikana
- dynaaminen
- kukin
- Aikaisemmin
- helppo
- ekosysteemi
- koulutus
- Tehokas
- tehokkuus
- tehokas
- tehokkaasti
- vaivaa
- ponnisteluja
- myöskään
- elementtejä
- kelpoisuus
- poistamalla
- syntymässä
- Työllisiä
- mahdollistaa
- loppu
- päittäin
- päättyi
- sitoutua
- sitoumus
- Tekniikka
- tarpeeksi
- varmistaa
- varustettu
- Vastaava
- ON G
- erityisesti
- perustaa
- arviointiin
- arviointi
- Jopa
- Tapahtumat
- Joka
- esimerkki
- Esimerkit
- olemassa
- odottaa
- odotettu
- kallis
- experience
- kokeilu
- kokeiluja
- asiantuntija
- asiantuntemus
- tutkitaan
- ilmaista
- ilmaistuna
- ulottuu
- ulkoinen
- uute
- uuttaminen
- kohtasi
- Helpottaa
- tekijät
- nopeatempoinen
- suotuisa
- mahdollinen
- harvat
- ala
- Fields
- täyttää
- suodattaa
- lopullinen
- Vihdoin
- taloudellinen
- taloudelliset tiedot
- Etunimi
- Joustavuus
- virtaus
- Keskittää
- seurata
- jälkeen
- varten
- muoto
- Eteenpäin
- edistäminen
- löytyi
- perusta
- FRAME
- Puitteet
- puitteet
- Ilmainen
- alkaen
- koko
- Täysi pino
- täysin
- toiminnallinen
- tehtävät
- edelleen
- peli
- peli-vaihtaja
- GDPR
- GDPR-vaatimusten noudattaminen
- suunnattu
- general
- tuottaa
- syntyy
- synnyttää
- tuottaa
- sukupolvi
- generatiivinen
- Generatiivinen AI
- saada
- saada
- Antaa
- tietty
- antaa
- Antaminen
- Go
- tavoite
- Tavoitteet
- hyvä
- myönnetty
- suuri
- Ryhmä
- Kasvava
- HAD
- käsi
- onnellinen
- Olla
- ottaa
- he
- pääkonttori
- raskas
- raskas nosto
- auttaa
- auttaa
- hänen
- tätä
- Korkea
- suorituskykyinen
- korkealaatuisia
- korkeampi
- suurin
- Korostettu
- raidat
- erittäin
- vihjeitä
- hänen
- historia
- huppu
- Miten
- Kuitenkin
- HTTPS
- ihmisen
- luettavaan
- i
- ajatus
- tunnistettu
- tunnistaminen
- if
- kuva
- Vaikutus
- vaikutti
- vaikuttavia
- Vaikutukset
- toteuttaa
- täytäntöönpano
- toteutukset
- täytäntöön
- vaikutukset
- tärkeä
- parantaa
- in
- Muilla
- Inc.
- sisältää
- Mukaan lukien
- Kasvaa
- inkrementaalinen
- itsenäinen
- henkilöt
- teollisuus
- tiedot
- Infrastruktuuri
- ensimmäinen
- ensin
- innovoida
- Innovaatio
- panos
- tuloa
- välitön
- laitokset
- ohjeet
- yhdistää
- integraatio
- aikovat
- olla vuorovaikutuksessa
- vuorovaikutukset
- sisäinen
- kietoutuvat
- tulee
- intuitiivinen
- investointi
- sijoittaja
- Sijoittajat
- osallistuva
- liikkeeseenlaskijoiden
- isv
- IT
- SEN
- matka
- jpg
- vain
- Pitää
- avain
- tietäen
- tuntemus
- tunnettu
- Labs
- järvi
- Landschaft
- Kieli
- suuri
- suurempi
- Sukunimi
- lopuksi
- Viive
- myöhemmin
- kerrokset
- johtaa
- johtava
- Liidit
- oppinut
- oppiminen
- vähiten
- Led
- Lessons
- Lessons Learned
- Taso
- nosto
- pitää
- tykkää
- OTK
- logiikka
- Lontoo
- Pitkät
- katso
- näköinen
- Erä
- kone
- koneoppiminen
- tehty
- tärkein
- pääasiallisesti
- Valtavirta
- ylläpitää
- ylläpitäminen
- tehdä
- TEE
- hoitaa
- onnistui
- johto
- valmistus
- monet
- markkinat
- Markkina-analyysi
- Markkinatiedot
- markkinat
- Hyväksytty
- matemaattinen
- Saattaa..
- mielekäs
- tarkoitti
- mekanismit
- Tavata
- jäsen
- tapasi
- Meta
- Metadata
- menetelmä
- Metodologia
- microservices
- minimi
- minimointia
- sekoittaa
- ML
- malli
- mallit
- Moderni
- Moduulit
- lisää
- eniten
- enimmäkseen
- liikkuvat
- paljon
- multi
- moninkertainen
- nimi
- syntyperäinen
- Luonnollinen
- Luonnollinen kielen käsittely
- luonto
- välttämätön
- Tarve
- tarvitaan
- negatiivisesti
- verkostoituminen
- Uusi
- New York
- seuraava
- Nro
- huomata
- huomata
- nyt
- numero
- numerot
- tavoite
- Ilmeinen
- of
- pois
- tarjotaan
- Tarjoukset
- virkamiehet
- toimistot
- usein
- on
- ONE
- vain
- avata
- avoimen lähdekoodin
- optimaalinen
- optimointi
- Optimoida
- optimoitu
- optimoimalla
- Vaihtoehdot
- or
- orkestrointi
- orkestrointi
- tilata
- alkuperäinen
- Muut
- meidän
- ulostulo
- yli
- yleinen
- yleiskatsaus
- ylivoimainen
- oma
- omistuksessa
- omistus
- parametrit
- osa
- erityinen
- Hyväksytty
- intohimo
- patentti-
- Patentit
- polku
- Suorittaa
- suorituskyky
- esittävä
- poimia
- kappaletta
- foorumi
- Platon
- Platonin tietotieto
- PlatonData
- Pelaa
- Kohta
- pistettä
- positiivinen
- mahdollinen
- Kirje
- mahdollinen
- teho
- valtuudet
- käytännöt
- Suositut
- esittää
- esitetty
- estää
- hinta
- periaatteet
- yksityisyys
- Tietosuoja ja turvallisuus
- prosessi
- käsittely
- tuottaa
- valmistettu
- Tuotteemme
- ammatillinen
- syvällinen
- projekti
- hankkeet
- ohjeita
- todiste
- todiste käsitteestä
- asianmukainen
- patentoitu
- osoittautui
- toimittaa
- mikäli
- tarjoaa
- tarjoamalla
- julkinen
- julkiset yritykset
- julkisesti
- tarkoitus
- laittaa
- Kysymyksiä ja vastauksia
- laatu
- kyselyt
- kysymys
- nopeasti
- lainausmerkit
- Sijoitus
- pikemminkin
- RE
- valmis
- todellinen maailma
- tajusi
- vastaanottaa
- suositeltu
- asiakirjat
- viittaaminen
- säännelty
- suhteet
- yhteys
- merkityksellinen
- Raportit
- edustaja
- edustavat
- edustaa
- edellyttää
- tarvitaan
- vaatimukset
- resurssi
- arvostettu
- suhteissa
- vastaus
- vasteet
- rajoittaa
- tulokset
- tulot
- palautua
- tarkistetaan
- oikein
- riskit
- Rooli
- roolit
- Huone
- kierros
- säännöt
- ajaa
- toimii
- sama
- vakuuttunut
- tyytyväinen
- Säästä
- sanoa
- skaalautuvuus
- Asteikko
- tiede
- raapia
- saumaton
- saumattomasti
- Haku
- Toinen
- sekuntia
- Osa
- turvallinen
- turvallisuus
- nähdä
- valinta
- Myyjät
- lähettää
- vanhempi
- tunne
- erillinen
- Sarjat
- serverless
- palvelu
- Palvelut
- setti
- Setit
- useat
- muotoiluun
- osakas
- Osakkeenomistajat
- hän
- shouldnt
- osoittivat
- esitetty
- Näytä
- merkittävä
- Yksinkertainen
- yksinkertaisempi
- yksinkertaistettu
- yksinkertaistaa
- yksinkertaistaminen
- single
- Koko
- koot
- pienempiä
- fiksu
- fiksummin
- Tuotteemme
- ohjelmistokehitys
- ratkaisu
- Ratkaisumme
- jonkin verran
- hienostunut
- lähde
- Lähteet
- jännitys
- jännevälien
- puhuu
- asiantuntijat
- erikoistunut
- erityinen
- erityisesti
- Pysyvyys
- pino
- Vaihe
- panokset
- seistä
- seisoo
- Alkaa
- alkoi
- Aloita
- Lausunto
- pysyä
- Vaihe
- Askeleet
- Varastossa
- pörssi
- tallennettu
- varastot
- suora
- Strateginen
- rakenne
- jäsennelty
- Myöhemmin
- menestys
- Onnistuneesti
- niin
- riittävä
- sopiva
- sviitti
- yhteenveto
- YHTEENVETO
- tuki
- Tukee
- valvonta
- Vaihtaa
- syntaksi
- järjestelmä
- taulukko
- Räätälöity
- ottaa
- otettava
- vie
- ottaen
- Tehtävä
- tehtävät
- joukkue-
- teknologia
- Tekninen
- tekniikat
- Elektroniikka
- Telecom
- kertominen
- sapluuna
- testi
- Testaus
- testit
- teksti
- kuin
- Kiitos
- että
- -
- Pääkaupunki
- heidän
- sitten
- Siellä.
- Nämä
- ne
- Ajattelu
- tätä
- kolmella
- Kautta
- kauttaaltaan
- aika
- Aikasarja
- kertaa
- Titaani
- että
- tämän päivän
- yhdessä
- symbolinen
- tokens
- liian
- työkalu
- työkalut
- aihe
- toronto
- kohti
- Juna
- koulutettu
- koulutus
- kauppa
- Liiketoimet
- muuttamassa
- matka
- totta
- Luottamus
- VUORO
- kaksi
- tyyppi
- tyypit
- tyypillisesti
- kykenemätön
- varten
- taustalla oleva
- ymmärtää
- ymmärtäminen
- ymmärtää
- ymmärsi
- unique
- lukituksen
- tarpeeton
- us
- käyttää
- käyttölaukku
- käytetty
- käyttäjä
- helppokäyttöinen
- käyttämällä
- hyödyntää
- pätevä
- validointi
- arvo
- lajike
- eri
- myyjä
- Vahvistus
- todennettu
- todentaa
- hyvin
- kannattava
- Näytä
- Virtual
- visio
- kävellä
- halusi
- oli
- Tapa..
- we
- verkko
- verkkopalvelut
- Webinaarit
- Verkkosivu
- HYVIN
- meni
- olivat
- Länsi
- Mitä
- Pyörä
- kun
- taas
- joka
- vaikka
- tulee
- with
- sisällä
- ilman
- Naiset
- sanoja
- Referenssit
- työskenteli
- työnkulku
- työskentely
- arvoinen
- olisi
- kirjoittaa
- kirjoita koodi
- XML
- vielä
- york
- Voit
- Sinun
- youtube
- zephyrnet