Bumblebee - språkmodeller uten python

Jeg er over gjennomsnittet interessert i kunstig intelligens, og syns det er veldig spennende å lære om språkmodeller og hvordan de fungerer.

I forrige tekst skrev jeg om hvordan jeg utforsker Gleam, et statisk typet funksjonelt programmeringsspråk som kjører på Erlang sin virtuelle maskin (Beam). For å lære meg mer om hvordan det fungerer holder jeg på å lage meg en bokmerkehåndteringsside. Etter at jeg fikk på plass selve nettsiden, og lagring av bokmerkene i en database har jeg begynt å tenke mer på hvordan jeg skal gjøre den mer nyttig for meg selv.

Det neste jeg tenker på er at jeg har lyst til å kunne søke i teksten til alle bokmerkene; “hvilken artikkel var det jeg leste om lanseringen av GPT-5” er et sånn type spørsmål jeg kunne tenkt meg å stille. Tidligere måtte man ta til takke med enkle søk, inneholder teksten ordet “GPT-5” eller ikke. Om du da skrev det som GPT5 ville resultatet kunne være veldig annerledes, om du ikke hadde en ganske avansert algoritme. Det som nå er i vinden er å kombinere hel-tekst søk med det som kalles “embedding”. Embedding er på en måte å flette teksten inn i den interne representasjonen til en språkmodell, som kan igjen presenteres som en lang liste av desimaltall. Jeg kunne selvsagt bare sendt avgårde en forespørsel til OpenAI og fått de til å gjøre jobben for meg (kanskje i nye Stargate i Narvik om et par år?), men det er jo ikke så spennende.

Mye mer spennende er det å kjøre det selv. Veldig mye maskinlæring og kunstig intelligens blir gjort i programmeringsspråket Python, og det er jo kult nok. Men jeg hadde jo allerede prosjektet mitt i Gleam, og hadde lyst til å dra fordeler av hvordan det språket er ment å fungere. Nå kunne jeg ikke finne noen måte å kjøre en slik embedding-modell direkte i gleam, men Bumblebee lar deg kjøre språkmodeller i Elixir (som er et annet språk som kjører på Beam), og det er det lettere å få til å fungere sammen med Gleam.

Etter litt jobbing så fikk jeg Elixir-delen av demonstrasjonen min til å holde modellen klar i minnet, slik at det kun tok 300 ms å gjøre om et stykke tekst til en vektor. Da er vi i gang!

Kilder:

Prosjektet Bumblebee på GitHub

Mitt eksperiment med å få Bumblebee, Elixir og Gleam til å fungere i lag