Olli-Pekka Heinisuo
Perustaja, Senior Software Architect
icon

Palvelimettomat LLM:t (demo!) ja muut generatiivisen tekoälyn trendit vuonna 2024

Suuriin kielimalleihin (LLM) liittyvä hypetys ei ole laantunut vuoden 2024 alkuun mennessä, ja todennäköisesti se vain jatkaa kasvuaan. Tämä blogikirjoitus keskittyy yhteen nousevaan trendiin, joka mahdollistaa laajemman ja edullisemman suurten kielimallien käytön niin yrityksille kuin yksityishenkilöille.

Tässä on suora linkki demoon, jonka esittelemme tämän blogipostauksen lopussa. Jos haluat ymmärtää tätä teknologiaa ja siihen liittyviä trendejä, jatka lukemista.

LLM-ekosysteemin trendit vuonna 2024

Viime vuonna julkaistiin useita uusia — sekä avoimen että suljetun lähdekoodin — suuria kielimalleja. Yksi asia ei silti muuttunut: GPT-4 on edelleen paras vaihtoehto monikieliseen ymmärtämiseen ja generointiin. Yksikään malli ei ole tähän päivään mennessä päihittänyt sitä. Siksi GPT-4:ää käytetään tärkeimpänä vertailukohtana, kun arvioidaan uusien mallien suorituskykyä ja tarkkuutta.

Ranskalainen Mistral Mixtral Moe -malli on päässyt hyvin lähelle GPT-4:ää, mutta silläkin on yhä parannettavaa muiden kuin kaikkein yleisimpien kielien ymmärtämisessä ja generoinnissa. Tämäkin on kuitenkin huomattava saavutus. Mistral on lähes yhtä hyvä kuin GPT-4, mutta paljon pienempi ja tehokkaampi. Voimme odottaa samanlaisia tuloksia myös muilta uusilta malleilta myöhemmin tänä vuonna.

LLM-ekosysteemissä on selkeä nouseva trendi: mallit pienenevät ja samalla suoriutuvat paremmin kuin suuremmat vastineensa. Tämän trendin edetessä näemme jopa pikkumalleja (tiny language models), jotka generoivat korkealaatuisia lopputuloksia.

Miksi pienet ja tehokkaat mallit ovat tärkeitä?

Pienet LLM-mallit mahdollistavat joitakin käyttötapauksia, jotka puolestaan mahdollistavat LLM:ien käytön yleisemmin. Tällä hetkellä GPT-4-tasoinen generatiivinen tekoäly on edelleen suhteellisen pienen joukon saatavilla hinnoittelunsa vuoksi. Pienemmät mallit ovat edullisempia ja siksi saavutettavampia.

Lisäksi pieniä malleja voidaan ajaa laitteissa, joissa ei ole erikoistuneita grafiikkaprosessoreita (GPU). Vaikka GPU:t nopeuttavat mallien toimintaa, ne eivät enää ole välttämättömiä. Tämä tarkoittaa, että laitteessa itsessään on tekoälyä, eikä se tee kutsuja ohjelmointirajapintaan (API) kuten OpenAI:n pilvessä olevaan API:in.

Esineiden internetiä (IoT) hyödyntävissä laitteissa, mobiililaitteissa, autoissa ja kaikissa muissa mahdollisissa laitteissa tulee ennemmin tai myöhemmin olemaan sisäänrakennettu kielimalli. Tapahtuuko se jo tänä vuonna? Todennäköisesti ei, mutta tänä vuonna nähdään varmasti ensimmäiset yritykset ajaa paikallisia kielimalleja laitteissa, joiden suorituskyky on heikko.

Suurten mallien pienentäminen kvantisoimalla

Monet "pienet" mallit ovat edelleen suhteellisen suuria, sekä kooltaan että muistivaatimuksiltaan. Niiden ajamiseen tarvitaan paljon muistia, ja jopa modernilla suorittimella (CPU) ne saattavat olla erittäin hitaita.

Mallien suorituskyvyn parantamiseksi on olemassa prosessi nimeltään kvantisointi, joka mahdollistaa mallien pienentämisen. Malli menettää jonkin verran tarkkuutta kvantisoinnin tasosta riippuen, mutta lopputuloksena on paljon pienempi malli, sekä kooltaan että muistivaatimuksiltaan.

Tämä tarkoittaa, että alkuperäinen mallin tarkkuus, jota käytetään numeroiden esittämiseen mallissa, pienenee. Useimmissa malleissa on 32-bittinen liukulukutarkkuus, ja yleiset kvantisointitasot ovat 8-bittisiä (varovainen, pieni tarkkuuden menetys) ja 4-bittisiä (aggressiivinen, suurempi tarkkuuden menetys) kokonaislukuja. Liukuluvut vievät paljon enemmän tilaa ja niiden laskentavaatimukset ovat paljon kovemmat kuin kokonaisluvuilla. Tämän vuoksi malli ei ainoastaan pienene, vaan lisäksi sen ajaminen nopeutuu.

Useimmista avoimesti saatavilla olevista suurista kielimalleista on saatavilla jonkinlainen kvantisoitu versio Hugging Facessa, avoimen lähdekoodin datatiede- ja koneoppimisalustalla. Nämä kvantisoidut versiot ovat yleensä LLM-intoilijoiden julkaisemia. He osallistuvat avoimen lähdekoodin kehitykseen ja tekevät malleilla erilaisia kokeiluja.

Palvelimettomat suuret kielimallit Azuressa

Väliaskel kohti suurten kielimallien yleistä ja edullista saatavuutta otetaan pilvessä. Tällä hetkellä asianmukainen skaalautuvuus ja nopea generointi on mahdollista suurille kielimalleille vain grafiikkaprosessoreilla (GPU:t). Me Softlandiassa olemme tutkineet, miten voimme suorittaa joitain erikoistehtäviä pienemmillä kielimalleilla hyödyntäen pilveä ja edullisia koneita, joissa on pelkkä tavallinen CPU. Kävi ilmi, että tämä on jo mahdollista, ja sen voi tehdä aivan ilmaiseksi (!).

Azuren palveliton PaaS-tuote Azure Functions tarjoaa useita eri ​​tasoja: kulutukseen perustuvan palvelupaketin, joissa on reilu ilmaiskiintiö, ja premium-palvelupaketteja, jotka ovat hieman kalliimpia, mutta skaalautuvat paremmin. Vaikka onnistuimme lopulta ajamaan suuret kielimallit kulutukseen perustuvalla palvelupaketilla, ensimmäiset yrityksemme vaativat maksullisen tilauksen.

Ensin yritimme ajaa kvantisoitua Phi 2 -mallia Azure Functionsissa. Se saavutti hyvän generointinopeuden vain Azure Functionsin kalleimmalla premium-tasolla. Tämä on liian kallista, koska yhtä tai useampaa GPU-konetta voisi käyttää pelkällä palvelupaketin perushinnalla. Toisaalta tämä osoitti meille, että LLM:t voidaan ajaa palvelimettomilla alustoilla, joissa ei ole GPU:ta.

Seuraava yrityksemme oli ajaa kvantisoitu TinyLlama-malli Azure Functionsin kulutukseen perustuvalla palvelupaketilla. Tämä tapahtui uudenvuoden aikaan, kun TinyLLaman 3 biljoonan tokenin koulutusepookki oli valmis. Tämä kokeilu tuotti paljon parempia tuloksia: kvantisoitua 4-bittistä TinyLlama-mallia voi ajaa Azure Functionsin kulutukseen pohjautuvassa tilauksessa ilmaiseksi!

Myöhemmin, tämän blogikirjoituksen julkaisun aikaan, julkistettiin uudet Qwen 2 beta -mallit, ja pystyimme helposti ajamaan myös pienimmän kvantisoidun version Qwen 2: sta Azure Functionsissa. Hieno alku uudelle vuodelle!

Palvelittoman pikkukielimallin toteutus

Olemme toteuttaneet live-demon kahdesta edellä mainitusta mallista. Ne pyörivät Azuressa ja kuka tahansa voi kokeilla niitä. Tietääksemme edes Microsoft ei ole kokeillut kielimallien ajamista palvelimettomalla alustalla. Tämä saattaa siis olla maailman ensimmäinen toimiva proof of concept palvelimettomasta CPU- ja Azure Functions -pohjaisesta kielimallista! Mallit eivät ole kovin nopeita, mutta silti ne toimivat yllättävän hyvin. Huomaa, että etenkin TinyLlama-malli saattaa joskus katkaista generoinnin.

Jos haluat nähdä koodin, käy katsomassa Tiny Serverless LLMs -repository ja kokeile demoa. Jos kuormitus kasvaa liian suureksi tai havaitsemme minkäänlaista väärinkäyttöä, poistamme demon. Ole kärsivällinen, sillä vastauksen generoinnissa saattaa kestää hetki, jos vapaita instansseja ei ole saatavilla ja sovelluksen on skaalauduttava.

Palvelimeton LLM-demo

Toteutus on hyvin yksinkertainen: käytämme suoraan llama.cpp:tä ja ohjaamme stdout:n SignalR:ään. Function appin juuresta tarjotaan yksinkertainen JavaScript -asiakas (client). Asiakas yhdistää SignalR-päätepisteeseen ja tekee LLM-kutsut HTTPS API-päätepisteen kautta. Tämä kutsu työntää viestin Azure Storage Queue -palveluun, ja jonoa kuunteleva funktio suorittaa sitten llama.cpp-kutsun. Llama.cpp ja LLM:t on asennettu Function Appiin post-build-skriptin kautta jatkuvan integraation aikana.

Johtopäätökset

Pienet kielimallit tulevat olemaan yksi suurimmista generatiivisen tekoälyn trendeistä vuonna 2024. Olemme toteuttaneet teknologiademon, joka osoittaa, että (suuria) pikkukielimalleja voi jo ajaa halvalla ja skaalautuvalla pilvi-infrastruktuurilla ilman grafiikkaprosessoreita . Myöhemmin tänä vuonna näemme vielä kyvykkäämpiä pieniä kielimalleja. Ei-niin-kaukaisessa tulevaisuudessa pieniä malleja löytyy kaikista laitteista ympärillämme.

Softlandia on Suomen johtava generatiivisen tekoälyn ohjelmistokonsulttiyritys. Älä epäröi ottaa meihin yhteyttä, jos haluat tietää, miten voit soveltaa suuria kielimalleja yritystoiminnassasi!