AI-mallit ja alustat

LongWriter: 10 000+ sanan generointikehys pitkistä konteksteista LLM:stä

mm
Lisää Unite.AI suosikkilähteisiisi Google-palvelussa
LONGWRITER: UNLEASHING 10,000+ WORD GENERATION FROM LONG CONTEXT LLMS

Nykyiset pitkän kontekstin suuret kielen mallit (LLM) voivat prosessoida syötteitä jopa 100 000 merkkiä, mutta ne kamppailevat tulosteen generoimisessa, joka ylittää jopa kohtuullisen pituisen 2 000 sanan pituuden. Kontrolloiduissa kokeissa paljastuu, että mallin tehokas generointipituus on luonnollisesti rajoitettu esimerkeillä, jotka nähdään valvotussa hienosäätössä (SFT). Toisin sanoen, tämä tulosteen rajoitus johtuu pitkien tulosteiden esimerkkien niukkuudesta olemassa olevissa SFT-tietokannoissa.

Viimeaikaiset edistysaskeleet pitkän kontekstin LLM:issä ovat johtaneet malleihin, joilla on merkittävästi laajennettu muistikapasiteetti, ja ne pystyvät prosessoimaan historiaa, joka ylittää 100 000 merkkiä. Kuitenkin näiden laajojen syötteiden käsittelykyvynsä huolimatta nykyiset pitkän kontekstin LLM:t kamppailevat yhtä pitkien tulosteiden generoimisessa.

Tutkimalla tätä rajoitusta, LongWriter tutkii valmiiden pitkän kontekstin mallien maksimigenerointipituutta useilla kysymyksillä, jotka vaativat eri pituisia vastauksia, kuten “Kirjoita 10 000 sanan artikkeli Rooman valtakunnan historiasta.” Tulokset osoittavat, että kaikki mallit epäonnistuvat jatkuvasti tulosteiden generoimisessa, jotka ylittävät 2 000 sanan pituuden. Samalla käyttäjän vuorovaikutuslokeja analyysi osoittaa, että yli 1 %:ssa käyttäjän ohjeista nimenomaisesti pyydetään tulosteita, jotka ylittävät tämän rajoituksen, korostaa kiireellistä tarvetta nykyisessä tutkimuksessa ratkaista tämä ongelma.

Ratkaistaakseen tämän ongelman, LongWriter esittelee AgentWrite:n, agenttipohjaisen putken, joka hajottaa ultra-pitkien generointitehtävien alitehtäviin, mahdollistaen valmiiden LLM:ien generoimisen yhtenäisiä ja pitkiä tulosteita. Hyödyntämällä AgentWrite:a, LongWriter rakentaa LongWriter-6k:n, joka sisältää 6 000 SFT-dataa, jonka tulostepituus vaihtelee 2k:sta 32k:een sanoja. Sisällyttämällä tämän datan olemassa oleviin malleihin, LongWriter onnistuu kasvattamaan olemassa olevien mallien tulostepituutta yli 10 000 sanaan ilman laadun heikentymistä.

LongWriter kehittää myös LongBench-Write:n, joka on kattava mittari pitkien generointikapasiteettien arvioimiseksi. 9B-parametrin malli, jota parannetaan edelleen DPO:lla, saavuttaa huipputason suorituskyvyn tässä mittarissa, jopa suurempia omistusmalleja vastaan.

Tässä artikkelissa tarkastelemme LongWriter-kehystä, sen arkkitehtuuria ja vertaamme sen suorituskykyä valmiiden pitkän kontekstin LLM-mallien kanssa. Aloita meille.

LongWriter: 10 000+ sanan generointikehys

Viimeaikaiset edistysaskeleet pitkän kontekstin suurissa kielen malleissa ovat johtaneet malleihin, joilla on merkittävästi laajennettu muistikapasiteetti, ja ne pystyvät prosessoimaan historiaa, joka ylittää 100 000 merkkiä. Kuitenkin näiden laajojen syötteiden käsittelykyvynsä huolimatta nykyiset pitkän kontekstin LLM:t kamppailevat yhtä pitkien tulosteiden generoimisessa. Tutkimalla tätä rajoitusta, LongWriter tutkii valmiiden pitkän kontekstin mallien maksimigenerointipituutta useilla kysymyksillä, jotka vaativat eri pituisia vastauksia, kuten “Kirjoita 10 000 sanan artikkeli Rooman valtakunnan historiasta.” Tulokset osoittavat, että kaikki mallit epäonnistuvat jatkuvasti tulosteiden generoimisessa, jotka ylittävät 2 000 sanan pituuden. Samalla käyttäjän vuorovaikutuslokeja analyysi osoittaa, että yli 1 %:ssa käyttäjän ohjeista nimenomaisesti pyydetään tulosteita, jotka ylittävät tämän rajoituksen, korostaa kiireellistä tarvetta nykyisessä tutkimuksessa ratkaista tämä ongelma.

LongWriterin tutkimus paljastaa avainnäkemyksen: tulostepituuden rajoitus johtuu pääasiassa SFT-tietokantojen ominaisuuksista. Nimenomaan LongWriter havaitsee, että mallin maksimigenerointipituus on tehokkaasti rajoitettu SFT-tietokannan yläpituuden ylärajalla, vaikka se on altistunut paljon pidemmille jonoille esikoulutusvaiheessa. Tämä havainto selittää yleisen 2 000 sanan generointirajan nykyisissä malleissa, koska olemassa olevat SFT-tietokannat harvoin sisältävät esimerkkejä, jotka ylittävät tämän pituuden. Lisäksi, koska useat tietokannat on tiivistetty valmiista LLM-malleista, ne periytyvät myös tulostepituuden rajoituksen alkuperäisistä malleista.

Ratkaistaakseen tämän rajoituksen, LongWriter esittelee AgentWrite:n, uuden agenttipohjaisen putken, joka hyödyntää valmiita LLM:ejä automaattisesti rakentamaan laajennettuja ja yhtenäisiä tulosteita. AgentWrite toimii kahdessa vaiheessa: Ensinnäkin se hajottaa pitkät kirjoitustehtävät useisiin alitehtäviin, joista jokainen vaatii mallilta kirjoittamaan vain yhden kappaleen. Sitten, noudattaen tätä suunnitelmaa, se pyytää mallia generoimaan sisältöä kappale kappaleelta järjestyksessä. Vaikka tämä järjestelmällinen tapa estää rinnakkaiset pyynnöt mallille useiden alitehtävien suorittamiseksi samanaikaisesti, ja syötteiden pituus pitenee, LongWriter osoittaa validoinnissa, että kirjoituksen yleinen yhtenäisyys ja laatu ovat paljon parempia kuin rinnakkain generoitu tuloste.

Rakentamalla AgentWrite-pohjaa, LongWriter hyödyntää GPT-4o:ta generoimaan 6 000 pitkän tulosteen SFT-dataa, nimeltään LongWriter-6k, ja lisää tämän datan olemassa oleviin malleihin. Merkittävästi LongWriter-6k avaa onnistuneesti mallin kyvyn generoida hyvin rakennettuja tulosteita, jotka ylittävät 10 000 sanan pituuden ilman laadun heikentymistä. Arvioidakseen tätä lähestymistapaa, LongWriter kehittää LongBench-Write-mittarin, joka sisältää monipuolisen joukon käyttäjän kirjoitusohjeita, joissa tulostepituuden määritykset vaihtelevat 0-500 sanasta 500-2 000 sanaan, 2 000-4 000 sanaan ja yli 4 000 sanaan. Arvio LongBench-Write-mittarilla osoittaa, että LongWriterin 9B-malli saavuttaa huipputason suorituskyvyn, jopa suurempia omistusmalleja vastaan.

Yhteenvetona, LongWriterin työ tekee seuraavat uudet panostukset:

  • Generointipituuden rajoitusten analyysi: LongWriter tunnistaa ensisijaisen tekijän, joka rajoittaa nykyisten pitkän kontekstin LLM-mallien tulostepituutta, joka on SFT-datojen tulostepituuden rajoitus.
  • AgentWrite: Tämän rajoituksen voittamiseksi LongWriter ehdottaa AgentWrite:a, joka käyttää jakoa ja valloittaa -lähestymistapaa valmiiden LLM:ien kanssa automaattisesti rakentamaan SFT-dataa ultra-pitkine tulosteineen. Tämän menetelmän avulla LongWriter rakentaa LongWriter-6k-tietokannan.
  • Tulostusikkunan koon kasvattaminen: LongWriter sisällyttää LongWriter-6k-tietokannan olemassa oleviin malleihin, ja onnistuu kasvattamaan olemassa olevien mallien tulostusikkunan koon yli 10 000 sanaan ilman laadun heikentymistä. LongWriter osoittaa, että DPO parantaa edelleen mallin pitkän tekstin kirjoittamiskykyä.

AgentWrite: Automaattinen datan konstruktio

Käyttääkseen valmiita LLM:ejä automaattisesti generoimaan SFT-dataa pidemmillä tulosteilla, LongWriter suunnittelee AgentWrite:n, jakoa ja valloittaa -tyyppisen agenttiputken. AgentWrite hajottaa pitkät kirjoitustehtävät useisiin alitehtäviin, joista jokainen vaatii mallilta kirjoittamaan vain yhden kappaleen. Sitten malli suorittaa nämä alitehtävät järjestyksessä, ja LongWriter yhdistää alitehtävien tulosteen saadakseen lopullisen pitkän tulosteen. Tällainen lähestymistapa, jossa kompleksinen tehtävä jaetaan useisiin alitehtäviin LLM-agenttien avulla, on sovellettu useilla aloilla, kuten ongelmanratkaisussa, ohjelmistokehityksessä ja mallin arvioinnissa. LongWriterin työ on ensimmäinen, joka tutkii suunnittelun integroimista mahdollistaakseen malleja suorittamaan monimutkaisia pitkien tekstien kirjoittamistehtäviä. Jokainen AgentWrite-vaihe esitellään yksityiskohtaisesti alla.

Vaihe I: Suunnitelma

Innostuneena ihmisten ajatteluprosessista, jotka yleensä aloittavat pitkien kirjoitustehtävien suunnittelun, LongWriter käyttää LLM:ien suunnittelukykyä tulostamaan kirjoitusluonnostelmaa annetun kirjoitusohjeen perusteella. Tämä suunnitelma sisältää pääsisällön ja sanamäärävaatimukset kullekin kappaleelle. Pyynnön, jonka LongWriter käyttää, on seuraava:

“Tarvitsen apua jakamaan seuraavan pitkän kirjoitusohjeen useisiin alitehtäviin. Jokainen alitehtävä ohjaa yhden kappaleen kirjoittamista esseessä ja sisältää pääkohdat ja sanamäärävaatimukset kyseiselle kappaleelle. Kirjoitusohje on seuraava: {Käyttäjän ohje}. Pyydän sinua jakamaan sen seuraavassa muodossa, jossa jokainen alitehtävä vie yhden rivin:

Kappale 1 – Pääkohta: {Kuvaa kappaleen pääkohtaa yksityiskohtaisesti} – Sanamäärä: {Sanamäärävaatimus, esim. 400 sanaa}
Kappale 2 – Pääkohta: {Kuvaa kappaleen pääkohtaa yksityiskohtaisesti} – Sanamäärä: {Sanamäärävaatimus, esim. 1000 sanaa}.

Varmista, että jokainen alitehtävä on selkeä ja yksityiskohtainen, ja että kaikki alitehtävät kattavat koko kirjoitusohjeen sisällön. Älä jaa alitehtäviä liian hienosti; kunkin alitehtävän kappaleen pituus ei saa olla alle 200 sanaa ja yli 1000 sanaa. Älä tulosta mitään muuta sisältöä.”

Vaihe II: Kirjoita

Saatuasi kirjoitusluonnostelman Vaihe I:stä, LongWriter kutsuu LLM:ää järjestyksessä suorittamaan kunkin alitehtävän, generoiden kirjoituksen sisällön osa kerrallaan. Varmistaakseen tulosteen yhtenäisyyden, kun LongWriter kutsuu mallia generoimaan n:nnen osan, aiemmin generoidut n-1 osat syötetään myös, mahdollistaen mallille jatkamaan kirjoittamista olemassa olevan kirjoitus historian perusteella. Vaikka tämä järjestyksessä suoritettava tapa estää rinnakkaiset pyynnöt mallille useiden alitehtävien suorittamiseksi samanaikaisesti, ja syötteiden pituus pitenee, LongWriter osoittaa validoinnissa, että kirjoituksen yleinen yhtenäisyys ja laatu ovat paljon parempia kuin rinnakkain generoitu tuloste.

Pyynnön, jonka LongWriter käyttää, on seuraava:

“Olet erinomainen kirjoitusavustaja. Annan sinulle alkuperäisen kirjoitusohjeen ja suunnitelmani kirjoittamisesta. Annan myös sinulle jo kirjoitetun tekstin. Pyydän sinua auttamaan minua jatkamaan kirjoittamista seuraavasta kappaleesta kirjoitusohjeen, suunnitelman ja jo kirjoitetun tekstin perusteella.

Kirjoitusohje:
{Käyttäjän ohje}
Suunnitelma:
{Kirjoitusluonnostelma, joka generoitiin Vaihe I:ssä}
Jo kirjoitettu teksti:
{Aiemmin generoitu (n-1) kappale}

Yhdistä alkuperäinen kirjoitusohje, suunnitelma ja jo kirjoitettu teksti, ja jatka kirjoittamista {Suunnitelman n:kappaleen suunnitelma, eli n:nnen rivin suunnitelman mukaisesti}.”

Validointi

LongWriter testaa AgentWrite-menetelmän generointipituutta ja laatua kahdella pitkän muodon kirjoitusdatatietokannalla. Ensimmäinen, LongWrite-Ruler, on tarkoitettu mittaamaan tarkalleen, kuinka pitkän tulosteen menetelmä voi tarjota. Toinen, LongBench-Write, on pääasiassa tarkoitettu arvioimaan, miten hyvin mallin generoima sisältö vastaa käyttäjän ohjeita pituuden ja kirjoituslaadun suhteen.

LongBench-Write: Arvioidakseen mallin suorituskykyä monipuolisemmassa joukossa pitkän muodon kirjoitusohjeita, LongWriter kerää 120 erilaista käyttäjän kirjoitusohjetta, 60 kiinaksi ja 60 englanniksi. Arvioidakseen, miten hyvin mallin tulosteen pituus vastaa käyttäjän vaatimuksia, LongWriter varmistaa, että kaikki nämä ohjeet sisältävät sanamäärävaatimukset. Nämä ohjeet on jaettu neljään alaryhmään sanamäärävaatimusten perusteella: 0-500 sanaa, 500-2 000 sanaa, 2 000-4 000 sanaa ja yli 4 000 sanaa. Lisäksi ohjeet on luokiteltu seitsemään tyyppiin tulosteen tyypin perusteella: Kirjallisuus ja luova kirjoittaminen, Akateeminen ja monografia, Tieteen popularisointi, Toiminnallinen kirjoittaminen, Uutisraportti, Yhteisöfoorumi ja Koulutus ja koulutus.

Arvioinnin aikana LongWriter käyttää kahta mittaria: yhtä tulosteen pituuden arvioimiseksi ja toista tulosteen laadun arvioimiseksi. Mallin tulosteen pituus arvioidaan sen perusteella, kuinka lähellä se on ohjeissa määritettyjä vaatimuksia. Tulosteen laadun arvioimiseksi LongWriter käyttää LLM-arvioinnin lähestymistapaa, valitsemalla huipputason GPT-4o-mallin arvioimaan tulosteen kuuden ulottuvuuden suhteen: Relevantti, Tarkkuus, Yhtenäisyys, Selkeys, Syvyyden ja laajuuden ja lukemiskokemus. Lopullinen arvosana lasketaan keskiarvoistamalla pituuden arvosana ja laadun arvosana.

Validointitulokset: LongWriter esittää tulosteen pituuden mittauksen LongWrite-Rulerilla ja havaitsee, että AgentWrite onnistuu pidentämään GPT-4o:n tulosteen pituutta 2k sanasta noin 20k sanaan. LongWriter arvioi myös sekä tulosteen laatua että sen mukautumista vaadittuun tulostepituuteen LongBench-Write-mittarilla, osoittaen, että GPT-4o pystyy onnistuneesti suorittamaan tehtäviä, joiden tulosteet ovat alle 2 000 sanan pituisia, kun arvioidaan AgentWrite:n suorituskykyä.

Valvottu hienosäätö

LongWriter suorittaa koulutuksen kahden viimeisimmän avoimen lähdekoodin mallin, GLM-4-9B ja Llama-3.1-8B, pohjalta. Molemmat ovat perusmalleja ja tukevat jopa 128k tokenin kontekstia, mikä tekee niistä luonnollisesti soveltuvia koulutukseen pitkien tulosteiden kanssa. Tehdäkseen koulutuksesta tehokkaamman, LongWriter käyttää pakkauskoulutusta tappiopainotuksella. Koulutus näillä kahdella mallilla johtaa kahteen malliin: LongWriter-9B (lyhennetty GLM-4-9B-LongWriter) ja LongWriter-8B (lyhennetty Llama-3.1-8B-LongWriter).

Samalla LongWriter huomaa, että jos tappio keskiarvoistetaan jokaisen sekvenssin mukaan, eli otetaan keskiarvo jokaisen sekvenssin keskiarvoa koko batchin sisällä, pitkien tulosteiden datan kunkin kohdetokenin tappio olisi merkittävästi vähäisempi kuin lyhyempien tulosteiden. LongWriterin kokeissa havaitaan myös, että tämä johtaa alentuneeseen mallin suorituskykyyn pitkien tulosteiden tehtävissä. Siksi LongWriter valitsee tappiopainotusstrategian, jossa tappio keskiarvoistetaan tokenin mukaan, jossa tappio lasketaan kaikkien kohdetokenien keskiarvona kyseisessä batchissa.

Kaikki mallit koulutetaan solmulla, jossa on 8xH800 80G GPU:ta ja DeepSpeed+ZeRO3+CPU-välimuisti. LongWriter käyttää batch-kokoa 8, oppimissuhdetta 1e-5 ja pakkauspituutta 32k. Mallit koulutetaan 4 epochin ajan, mikä kestää noin 2 500-3 000 askelta.

Kohdistus (DPO)

Parantamaan mallin tulosteen laatua ja vahvistamaan sen kykyä seurata pituusvaatimuksia pitkissä generoinneissa, LongWriter suorittaa suoran preferenssi-optimoimisen (DPO) valvotusti hienosäätöllä LongWriter-9B-mallilla. DPO-data tulee GLM-4:n chat DPO-datasta (noin 50k merkintää). Lisäksi LongWriter rakentaa 4k paria dataa erityisesti pitkän muodon kirjoitusohjeita varten. Jokaiselle kirjoitusohjeelle LongWriter ottaa 4 tulostetta LongWriter-9B:stä ja arvioi nämä tulosteen seuraavalla menetelmällä. Pituusseuraamisscore myös yhdistetään. Korkeimman arvosanan saanut tuloste valitaan positiiviseksi näytteeksi, ja yksi jäljellä olevista kolmesta tulosteesta valitaan satunnaisesti negatiiviseksi näytteeksi.

Tuloksena oleva malli, LongWriter-9B-DPO, koulutetaan 250 askelta edellä mainitulla datayhdistelmällä. LongWriter seuraa tiettyä reseptiä DPO-koulutuksessa.

LongWriter: Kokeet ja tulokset

LongWriter arvioi 4 omistusmallia ja 5 avoimen lähdekoodin mallia LongBench-Write-mittarilla, yhdessä koulutettujen LongWriter-mallien kanssa. LongWriterin tietojen mukaan Suri-IORPO on ainoa aiempi malli, joka on myös kohdistettu pitkän muodon tekstien generoimiseen. Se on koulutettu Mistral-7B-Instruct-v0.2:lla LoRA:lla. Vastaavassa arviointiasetelmassa LongWrite-Rulerilla LongWriter asettaa tulosteen lämpötilan 0,5 ja mallin generointiin maksimia sallittuja tokenien määrää sen API-kutsun mukaan. Avoimen lähdekoodin malleille se on asetettu 32 768:aan.

Useimmat aiemmat mallit eivät pysty täyttämään yli 2 000 sanan pituusvaatimusta, kun taas LongWriter-mallit tarjoavat jatkuvasti pidemmät ja rikkaammat vastaukset näille ohjeille.

Havainnollistaen tulosteen pituusarvosanaa SlS_lSl kaikkien ohjeiden kohdalla kussakin vaaditun pituuden luokassa, LongWriter huomaa, että aiemmat mallit yleensä suorittavat heikosti (saavat alle 70 pistettä) ohjeissa, jotka vaativat pituutta välillä [2k, 4k), ja vain Claude 3.5 Sonnet saavuttaa kohtuullisen arvosanan. Ohjeissa, jotka vaativat pituutta välillä [4k, 20k), lähes kaikki aiemmat mallit eivät pysty saavuttamaan kohdetulostepituutta, saavuttaen jopa 0 pistettä (merkitsee, että kaikki tulostepituuksien olivat vähintään kolmanneksen lyhyempiä kuin vaadittu pituus). Lisäämällä LongWriter-6k:n koulutusdataa, LongWriterin koulutettu malli pystyy tehokkaasti saavuttamaan vaaditun tulostepituuden ylläpitäen samalla hyvää laatua, kuten arvosanat [2k, 20k) ja hajontakaaviot osoittavat.

DPO parantaa tehokkaasti sekä mallin tulosteen laatua että sen kykyä seurata pituusvaatimuksia pitkissä generoinneissa.

Vertaamalla LongWriter-9B- ja LongWriter-9B-DPO-mallien arvosanoja, havaitaan, että DPO parantaa merkittävästi sekä Sl (+4 %) että Sq (+3 %) -arvosanoja, ja parannus on johdonmukainen kaikissa luokissa. Tämä osoittaa, että pitkien generointitilanteissa DPO edelleen parantaa mallin tulosteen laatua ja kykyä seurata pyydettyä pituutta. Tämä johtopäätös on myös havaittu Yuan et al. (2024) -tutkimuksessa lyhyemmissä generoinneissa. LongWriter myös annotoi manuaalisesti paremmat ja huonommat parit GPT-4o:n ja kolmen LongWriter-mallin tulosteiden osalta LongBench-Write-mittarilla ja visualisoi tulokset Kaaviossa 9. Voidaan nähdä, että ihmiset suosittelevat DPO-koulutettua mallia LongWriter-9B:ää 58 %:ssa tapauksista. Lisäksi, vaikka se on pienempi, LongWriter-9B-DPO saavuttaa tasapelin GPT-4o:n kanssa.

LongWriter-mallien tulostepituuden rajoitus on laajennettu 10k-20k sanan välille, ja pidemmien tulosteiden tueksi vaaditaan enemmän dataa.

LongWrite-Ruler-kokeen jälkeen LongWriter esittää myös LongWrite-Ruler-kokeen tulokset LongWriter-malleille. Tulokset osoittavat, että näiden mallien maksimigenerointipituus on 10k-20k sanan välillä. SFT-data, joka sisältää pidemmät tulosteen esimerkit, on todennäköisesti pääasiallinen syy, joka estää mallia saavuttamasta pidemmät tulostepituuksia.

 

Loppusanat

Tässä työssä olemme keskustelleet LongWriterista, agenttipohjaisesta putkesta, joka hajottaa ultra-pitkien generointitehtävien alitehtäviin, tunnistanut 2 000 sanan generointirajan nykyisille LLM-malleille ja ehdottanut niiden tulostusikkunan kasvattamista lisäämällä pitkien tulosteiden dataa kohdistuksessa. Automaattisen pitkän tulosteen datan konstruktioon LongWriter kehittää AgentWrite:n, agenttipohjaisen putken, joka käyttää valmiita LLM:ejä laajentamaan yhtenäisiä tulosteita. LongWriter onnistuu kasvattamaan olemassa olevien mallien tulostusikkunan yli 10 000 sanaan LongWriter-6k:n avulla. Laajojen koulutusdatatutkimusten perusteella tämä lähestymistapa osoittautuu tehokkaaksi. Tulevaisuuden työhön LongWriter ehdottaa seuraavia kolmea suuntaa: 1. Laajenna AgentWrite-kehystä konstruktoidaksesi pidemmän tulosteen dataa ja laajentaaksesi LLM-mallien tulostusikkunaa edelleen. 2. Paranna AgentWrite-kehystä saavuttamaan korkealaatuisempaa pitkää tulostetta. 3. Pitemmät mallin tulosteen haasteet vaativat parannuksia johtuvuuden tehokkuuteen. On ehdotettu useita menetelmiä parantamaan johtuvuuden tehokkuutta. On syytä tutkia, miten nämä menetelmät voivat varmistaa parannetun mallin tehokkuuden ilman generointilaadun heikentymistä.

Ammattina insinööri, sydämen vuoksi kirjailija. Kunal on tekninen kirjailija, jolla on syvä rakkaus ja ymmärrys AI: sta ja ML: stä, omistautunut yksinkertaistamaan monimutkaisia käsitteitä näissä aloissa hänen viihdyttävän ja informatiivisen dokumentaationsa kautta.