Tekoäly
Microsoftin Inferenssikehys Brings 1-Bit Large Language Models to Local Devices

Microsoft julkaisi 17. lokakuuta 2024 BitNet.cpp:n, inferenssikehyksen, joka on suunniteltu suorittamaan 1-bittisiä kvantisoituja Large Language -malleja (LLM). BitNet.cpp on merkittävä edistysaskel Gen AI:ssa, joka mahdollistaa 1-bittisten LLM-mallien tehokkaan käyttöönoton standardi-CPU:illa ilman kalliiden GPU:n tarvetta. Tämä kehitys demokratisoi pääsyn LLM-malleihin, jotka ovat nyt saatavilla laajalla valikoimalla laitteita ja tarjoavat uusia mahdollisuuksia laitteistopohjaisiin AI-sovelluksiin.
Ymmärtäminen 1-bittisistä Large Language -malleista
Large Language -mallit (LLM) ovat perinteisesti vaatineet merkittäviä laskentaresursseja korkean tarkkuuden liukulukuja (tyypillisesti FP16 tai BF16) mallipainoja varten. Tämä on tehnyt LLM-mallien käyttöönotosta kallista ja energianintensiviä.
Niiden ytimessä 1-bittiset LLM-mallit käyttävät äärimmäisiä kvantisointitekniikoita edustamaan mallipainoja vain kolmella mahdollisella arvolla: -1, 0 ja 1, mistä johtuu termi “1,58-bitti” (koska siihen vaaditaan hieman yli yksi bitti kolmen tilan koodaamiseen).
TERNARY-painojärjestelmä
Käsite
1-bittinen kvantisointi BitNet.cpp:ssä on ternary-painojärjestelmä. BitNet toimii vain kolmen mahdollisen arvon kanssa kullekin parametrille:
- -1 (negatiivinen)
- 0 (neutraali)
- 1 (positiivinen)
Tämä johtaa noin 1,58 bittin tallennusvaatimukseen parametrikohtaisesti, mistä johtuu nimen BitNet b1.58. Tämä dramaattinen vähennys parametrin bittileveydessä johtaa vaikuttavaan vähennyskseen muistin käytössä ja laskennallisen monimutkaisuuden suhteen, koska useimmat liukuluvun kertolaskut korvataan yksinkertaisilla addition ja subtraktion operaatioilla.
Matemaattinen perusta
1-bittinen kvantisointi sisältää painojen ja aktivaatioiden muuttamisen ternary-esitykseen seuraavien askelten kautta:
1. Painojen binarisaatio
Painojen binarisaatio sisältää niiden keskitämisen keskiarvoon (α), mikä johtaa ternary-esitykseen. Muunnos voidaan matemaattisesti ilmaista:
Wf=Sign(W−α)
Missä:
- W on alkuperäinen painomatriisi.
- α on painojen keskiarvo.
- Sign(x) palauttaa +1, jos x > 0 ja -1 muuten.
… (jatkuu)












