Vaikeuksia tekoälyn tai full-stack-kehityksen kanssa? Asiantuntijamme opastavat sinua: räätälöityjä neuvoja, teknistä integrointia ja paljon muuta. Ota yhteyttä osoitteessa [email protected].

Kuinka rakentaa chatbot generatiivisilla malleilla, kuten GPT-4, ChatGPT, LLaMA 3 ja Mixtral 8x7b?

Keskustelevan tekoälyn kysynnän kasvaessa tarve kehittyneille chatbot-teknologioille, jotka pystyvät tarjoamaan personoitua, ihmisen kaltaista vuorovaikutusta, kasvaa jatkuvasti. Viime vuosina GPT-4:n ja ChatGPT:n kaltaiset generatiiviset mallit ja avoimen lähdekoodin vaihtoehdot, kuten LLaMA 3 ja Mixtral 8x7b, ovat nousseet esiin lupaavina työkaluina, joiden avulla voidaan rakentaa chatbotteja, jotka ymmärtävät luonnollisen kielen syötteitä ja vastaavat niihin ennennäkemättömällä tarkkuudella ja hienostuneisuudella.

Tässä artikkelissa tutustumme generatiivisten mallien perusteisiin ja siihen, miten niitä voidaan käyttää chatbottien rakentamiseen.

Chatbot ja keskustelun tekoäly

LLaMA 3 ja Mixtral 8x7b: avoimen lähdekoodin vaihtoehdot ChatGPT:lle ja GPT-4:lle.

ChatGPT ja GPT-4 ovat kaksi OpenAI:n kehittämää kehittynyttä kielimallia. ChatGPT, joka on lyhenne sanoista "Chat Generative Pre-training Transformer", on laaja kielimalli, joka pystyy tuottamaan ihmisen kaltaista tekstiä harjoitusdatan perusteella. Se esiteltiin marraskuussa 2022, ja se sai nopeasti laajaa huomiota kyvystään olla vuorovaikutuksessa käyttäjien kanssa keskustelevalla tavalla, vastata kysymyksiin, antaa tietoja ja osallistua erilaisiin tehtäviin.

GPT-4 eli "Generative Pre-training Transformer 4" on GPT-3:n seuraaja, jonka OpenAI julkisti maaliskuussa 2023. Se edustaa merkittävää harppausta tekoälyn kielimallien alalla, sillä se on edeltäjiinsä verrattuna entistäkin suurempi ja sen ominaisuuksia on parannettu. GPT-4 pystyy tuottamaan erittäin yksityiskohtaista ja tarkkaa tekstiä monilla eri aloilla, kuten luonnollisen kielen käsittelyssä, tietokoneohjelmoinnissa ja luovassa kirjoittamisessa.

Sekä ChatGPT että GPT-4 on koulutettu valtavilla tietomäärillä valvomattoman oppimisen avulla, minkä ansiosta ne pystyvät ymmärtämään ja tuottamaan ihmisen kieltä huomattavan tarkasti ja sujuvasti. Nämä mallit ovat avanneet uusia mahdollisuuksia keskustelevan tekoälyn, sisällöntuotannon ja monien muiden sovellusten kehittämiseen esimerkiksi asiakaspalvelun, koulutuksen ja viihteen aloilla.

Pian tämän jälkeen Meta julkaisi LLaMA 3:n ja ranskalainen tekoälyä kehittävä Mistral AI -yritys Mixtral 8x7b:n. Nämä generatiiviset mallit ovat avoimen lähdekoodin vaihtoehtoja ChatGPT:lle ja GPT-4:lle. Ne ovat erittäin hyviä ehdokkaita, jos haluat rakentaa kehittyneen chatbotin. Voit joko ottaa LLaMA 3:n ja Mixtralin käyttöön omilla palvelimillasi tai käyttää niitä helposti NLP Cloud API:n kautta.

Kaikki nämä generatiivisen tekoälyn LLM-ohjelmat vaativat kuitenkin hieman harjoittelua. Ensinnäkin siksi, että näille malleille on annettava oikeat kehotukset, jotta ne käyttäytyisivät odotetulla tavalla. Ja myös siksi, että ne ovat "tilattomia" eli ne eivät pidä kirjaa keskusteluistasi.

Oikean kehotteen käyttäminen chatbotillesi

Jos lähetät naiivisti pyyntöjä näille malleille ilman hieman kontekstia ja muotoilua, tulet pettymään vastauksiin. Tämä johtuu siitä, että nämä mallit ovat hyvin monipuolisia. Niiden avulla voidaan luoda paitsi chatbotteja myös monia muita sovelluksia, kuten kysymyksiin vastaaminen, tiivistäminen, parafraasointi, luokittelu, entiteettien louhinta, tuotekuvausten luominen ja paljon muuta. Ensimmäiseksi sinun on siis kerrottava mallille, mikä "tila" sen tulisi ottaa käyttöön.

Tässä on esimerkki pyynnöstä, jonka voit lähettää:

This is a discussion between a [human] and an [ai]. 
The [ai] is very nice and empathetic.

[human]: I broke up with my girlfriend...
[robot]:
            

Tässä esimerkissä voit huomata 2 asiaa.

Ensin lisäsimme yksinkertaisen muotoilun, jotta malli ymmärtäisi, että se on keskustelutilassa: ([human], [ai], ...).

Toiseksi lisäsimme yläosaan kontekstin, jotta malli ymmärtäisi, mitä se tekee ja millaista sävyä sen pitäisi käyttää.:

Tämän prosessin yksinkertaistamiseksi sekä OpenAI että NLP Cloud tarjoavat erityisiä chatbot API-päätteitä, jotka hoitavat tämän muotoilun puolestasi.

Joskus konteksti ei riitä. Kuvittele esimerkiksi, että haluat luoda chatbotin, jolla on hyvin erityinen sävy ja luonne. Siinä tapauksessa haluat hienosäätää oman generatiivisen mallisi. Voit hienosäätää oman generatiiviseen tekoälyyn perustuvan chatbotin OpenAI:ssa ja NLP Cloudissa.

Toinen skenaario on, kun haluat luoda chatbotin, joka vastaa kysymyksiin tietystä alasta. Siinä tapauksessa hienosäätö ei ole ratkaisu. Haluat sen sijaan luoda oman semanttiseen hakuun perustuvan RAG-järjestelmän (Retrieval Augmented Generation). Katso RAG:tä ja semanttista hakua käsittelevä artikkeli täältä.

Keskusteluhistorian ylläpitäminen chatbotillesi

Generatiiviset tekoälymallit ovat "tilattomia" malleja, mikä tarkoittaa, että jokainen pyyntösi on uusi eikä tekoäly muista mitään aiemmista pyynnöistäsi.

Monissa käyttötapauksissa se ei ole ongelma (tiivistäminen, luokittelu, parafraasi...), mutta chatbottien osalta se on ehdottomasti ongelma, koska haluamme chatbotin muistavan keskusteluhistorian voidakseen antaa relevantimpia vastauksia.

Jos esimerkiksi kerrot tekoälylle, että olet ohjelmoija, haluat, että se pitää sen muistissa, koska se vaikuttaa sen seuraaviin vastauksiin.

Paras tapa saavuttaa tämä on tallentaa jokainen tekoälyn vastaus paikalliseen tietokantaan. Esimerkiksi PostgreSQL-tietokanta tukee pitkien tekstien tallentamista erittäin tehokkaasti.

Aina kun teet uuden pyynnön chatbotille, sinun on tehtävä seuraavaa:

Kyseessä on monipuolinen ja vankka järjestelmä, joka vaatii vain vähän työtä ja hyödyntää täydellisesti GPT-4:n, ChatGPT:n, LLaMA 3:n ja Mixtralin kaltaisten generatiivisten mallien tehoa.

On tärkeää huomata, että kullakin mallilla on oma kontekstikoko, joka määrittää, kuinka paljon tekstiä voit siirtää historiaan. Esimerkiksi GPT-4:n nykyinen kontekstikoko on 8k tokenia (eli noin 7k sanaa) ja Mixtral 8x7b:n nykyinen kontekstikoko on 16k tokenia NLP Cloudissa (eli noin 14k sanaa). Jos keskusteluhistoriasi ylittää tämän rajan, saatat siis haluta joko typistää historian vanhimman osan tai säilyttää vain keskustelujen tärkeimmät osat.

Chatbotin sisältörajoitukset

OpenAI on asettanut ChatGPT:lle ja GPT-4:lle sisältörajoituksia varmistaakseen, että tekoälyn luoma teksti noudattaa sen ohjeita. Valvomalla ja säätelemällä chatbottien tuottamaa sisältöä OpenAI pyrkii luomaan positiivisemman ja luotettavamman käyttäjäkokemuksen. Tähän kuuluu muun muassa tiettyjä aiheita koskevien tietopyyntöjen estäminen tai vain ennalta tarkastettujen, luotettavien tietojen tarjoaminen.

Jotkut käyttävät kuitenkin mieluummin generatiivisia malleja, joihin ei liity tällaisia rajoituksia, ja pitävät vastausten laatua monipuolisempana ja tarkempana. LLaMA 3:ssa ja Mixtral 8x7b:ssä ei ole tällaisia rajoituksia. Tällaisia tekoälymalleja käytettäessä on kehittäjän vastuulla käyttää tekoälyä vastuullisesti. Tarvittaessa rajoituksia voidaan silti toteuttaa luomalla chatbotille oikea kehote, hienosäätämällä omaa chatbotia tai suodattamalla käyttäjän pyynnöt ennen kuin ne saapuvat tekoälymalliin.

Päätelmä

Generatiiviset tekoälymallit, kuten GPT-4, ChatGPT, LLaMA 3 ja Mixtral 8x7b, veivät chatbotit ja keskustelevan tekoälyn seuraavalle tasolle. Nämä kehittyneet mallit ovat erittäin hyviä ymmärtämään kontekstin ja mukautumaan siihen. Useimmissa tapauksissa oikean kontekstin asettaminen riittää, mutta edistyneissä käyttötapauksissa paras ratkaisu on kouluttaa/hienosäätää oma tekoälymalli (mikä on melko helppoa, koska nämä mallit vaativat hyvin pieniä tietokokonaisuuksia).

NLP Cloudissa voit helposti kokeilla muun muassa LLaMA 3:a ja Mixtral 8x7b:tä. Voit myös hienosäätää niitä ja ottaa käyttöön omat yksityiset generatiiviset tekoälymallisi yhdellä napsautuksella. Jos et ole vielä tehnyt sitä, kokeile NLP Cloudia ilmaiseksi.

Jos sinulla on kysyttävää oman chatbotin toteuttamisesta, älä epäröi ottaa meihin yhteyttä!

François
Full-stack engineer NLP Cloudissa