AI-mallit ja alustat

Voimakkain avoimen lähdekoodin LLM tähän asti: Meta LLAMA 3.1-405B

mm
Lisää Unite.AI suosikkilähteisiisi Google-palvelussa
The Most Powerful Open Source LLM Yet: Meta LLAMA 405B
div]:bg-bg-300 [&_pre]:-mr-4 md:[&_pre]:-mr-9″>
_*]:min-w-0″>

Llama 3.1-405B, jota Meta AI on kehittänyt, edustaa merkittävää edistystaskua avoimen lähdekoodin kielimalleissa. 405 miljardilla parametrillä se on suurin julkisesti saatavilla oleva kielimalli tähän asti, joka kilpailee ja jopa ohittaa joitakin edistyneimpiä omistusmalleja useissa benchmark-kokeissa.

Avainominaisuudet:

  • 405 miljardia parametreja
  • 128K tokenin kontekstipituus
  • Monikielinen tuki (8 kieltä)
  • Ohjeistuksen mukainen versio saatavilla
  • Avoimen lähdekoodin ja permissiivinen lisenssi

Tällaisen voimallisen mallin julkaisu avoimen lähdekoodin alueella on pelinmuuttaja, joka demokratisoi pääsyn huipputasoisille AI-kapasiteetteille ja edistää innovaatiota koko alalla.

Mallin arkkitehtuuri ja koulutus

Prosessi alkaa syötetekstien muuttamisesta token-muotoon. Nämä token-muodot menevät useiden itsehuomion ja eteenpäin syötettyjen verkkorakenteiden läpi, mikä mahdollistaa mallin havainnoida monimutkaisia suhteita ja riippuvuuksia tekstin sisällä. Autoregressiivinen dekoodausmekanismi luo sitten tulostekstit, mikä täydentää prosessin.

 

_*]:min-w-0″>
div]:bg-bg-300 [&_pre]:-mr-4 md:[&_pre]:-mr-9″>
_*]:min-w-0″>
  1. Ryhmäkyselyhuomio (GQA)

Ryhmäkyselyhuomio

Ryhmäkyselyhuomio

Llama 3.1 käyttää ryhmäkyselyhuomioita, joka on tärkeä optimointitekniikka, jota ei ole täysin käsitelty aiemmassa vastauksessa. Tutustumme tähän tarkemmin:

Ryhmäkyselyhuomio (GQA) on monipäisen huomion muunnelma, joka pyrkii vähentämään laskennallisia kustannuksia ja muistinkäyttöä inference-ajan aikana, erityisesti pitkissä jonoissa. Llama 3.1 405B -mallissa GQA on toteutettu 8 avain-arvo-pään kanssa.

Tässä on kuinka GQA toimii:

  1. Sijaan, että jokaisella huomio-päällä olisi omat avain- ja arvo-projektiot, GQA ryhmittelee useita kyselypäitä jaettaviksi samojen avain- ja arvo-päiden kanssa.
  2. Tämä ryhmittely vähentää merkittävästi avain- ja arvo-projektioiden parametreja, mikä johtaa pienempiin mallikokoihin ja nopeampaan inferenceen.
  3. Huomio-laskenta voidaan ilmaista seuraavasti:
Huomio(Q, K, V) = softmax(QK^T / sqrt(d_k))V

Jossa Q on ryhmitelty g ryhmiin, ja K ja V ovat vähemmän päättäjiä kuin Q.

GQA:n hyödyt Llama 3.1 405B -mallissa ovat:

  • Vähennetty muistijälki: Vähemmän avain- ja arvo-projektiot tarkoittavat vähemmän muistia, jota tarvitaan mallin parametreja varten.
  • Nopeampi inference: Vähemmän laskelmia tarvitaan avain- ja arvo-projektioiden laskemiseen, mikä parantaa inference-nopeutta.
  • Säilytetty suorituskyky: Vaikka parametreja on vähennetty, GQA on osoittanut säilyttävänsä vertailukelpoisen suorituskyvyn monissa tehtävissä verrattuna perinteiseen monipäiseen huomioon.
  1. Kahden vaiheen esikoulutus laajennetun kontekstin saavuttamiseksi

Artikkeli mainitsee kahden vaiheen esikoulutusprosessin saavuttamiseksi 128K tokenin kontekstiraja. Tämä on tärkeä osa Llama 3.1 405B -mallin kykyjä:

Vaihe 1: Alkuesikoulutus 8K tokenille

  • Malli koulutetaan ensin 8K tokenin pituisilla jonoilla.
  • Tämä vaihe sallii mallin oppia yleisiä kielitaitoja ja tekstigeneraatiokykyjä.

Vaihe 2: Jatkuva esikoulutus kontekstin laajentamiseksi

  • Koulutuksen jälkeen malli jatkaa esikoulutusta kontekstin laajentamiseksi 128K tokeniin.
  • Tässä vaiheessa käytetään tarkkaan suunniteltuja koulutusohjelmia, jotta malli voi yleistää pidempiin jonoihin ilman, että se menettää kykyään käsitellä lyhyempiä konteksteja.
  1. Monimodaaliset kyvyt

Vaikka edellinen vastaus kosketti monimodaalista, voimme laajentaa sitä, miten Llama 3.1 405B toteuttaa tämän:

Kompositionaalinen lähestymistapa:

  • Llama 3.1 405B käyttää erillisiä koodareita eri modaalien (esim. kuvat, puhe) käsittelyyn.
  • Nämä koodarit muuttavat eri modaalien syötteen jaettuun upotusavaruuteen, jota kielimalli voi ymmärtää.

Integraatio kielimalliin:

  • Näiden erikoistuneiden koodareiden tulokset syötetään sitten pääkielimalliin.
  • Tämä mahdollistaa Llama 3.1 405B:lle käsitellä ja ymmärtää eri tyyppisiä dataa samanaikaisesti, mikä mahdollistaa tehtävien suorittamisen, jotka vaativat useita modaalien yhdistämistä.

Ristihuomio-mekanismit:

  • Llama 3.1 405B todennäköisesti käyttää ristihuomio-mekanismeja eri modaalien integroimiseen.
  • Nämä mekanismit sallivat mallille keskittyä relevanttiin tietoon eri modaalien välillä tekstien generoimisen tai muiden tehtävien suorittamisen aikana.

Llama 3.1 405B:n monimodaaliset kyvyt avaavat monia sovellusmahdollisuuksia, kuten:

  • Kuvien kuvailu ja visuaalinen kysymys-vastaus
  • Puhe-teksti-transkriptio kontekstualisoidulla ymmärryksellä
  • Monimodaalinen päättely, joka yhdistää tekstin, kuvat ja mahdollisesti muita datatyyppiä

Koulutusyksityiskohtia

  • Koulutettu yli 15 biljoonalla tokenilla
  • Mukautettu GPU-klusteri 39,3M GPU-tunnilla 405B-mallille
  • Monikielisen tuen takia monipuolinen aineistojen kokoaminen

Ohjeistuksen mukainen versio kävi läpi lisäkoulutuksen:

Suorituskykyvertailut

Taulukko vertaa Llama 3.1 405B:ia, Nemotron 4 340B Instructiä, GPT-4 (0125):ää, GPT-4 Omniä ja Claude 3.5 Sonnetia. Tärkeimmät vertailukohteet ovat yleisiä tehtäviä, kuten MMLU ja IFEval, kooditehtäviä, kuten HumanEval ja GSM8K, sekä päättelytehtäviä, kuten ARC Challenge. Jokainen vertailuarvo heijastaa mallin kykyä ymmärtää ja generoida ihmismäistä tekstiä, ratkaista monimutkaisia ongelmia ja suorittaa koodia. Huomionarvoista on, että Llama 3.1 405B ja Claude 3.5 Sonnet menestyvät useissa vertailuissa, osoittaen heidän edistyneitä kykyjään sekä yleisissä että alakohtaisissa tehtävissä.

Muistinvaatimukset Llama 3.1-405B:lle

Llama 3.1-405B:n suorittaminen vaatii merkittäviä muisti- ja laskentaresursseja:

  • GPU-muisti: 405B-malli voi hyödyntää jopa 80GB GPU-muistia A100-GPU:lla tehokkaan inference-tarkoituksiin. Tensor-parallelismin avulla kuorma voidaan jakaa useiden GPU-jen kesken.
  • RAM: Suositellaan vähintään 512GB järjestelmämuistia mallin muistijäljen käsittelyyn ja takaamaan sujuvan datankäsittelyn.
  • Tallennus: Varmista, että sinulla on useita teratavua nopeaa SSD-tallennustilaa mallipainoja ja liittyviä aineistoja varten. Nopeat SSD:t ovat kriittisiä datan käyttöaikojen vähentämiseksi koulutuksen ja inference-ajan aikana​​ (Llama Ai Model)​​ (Groq)​.

Inferenssin optimointitekniikat Llama 3.1-405B:lle

Suorittaa 405B-parametrin mallia, kuten Llama 3.1, tehokkaasti vaatii useita optimointitekniikoita. Tässä ovat avainmenetelmät tehokkaan inference-tarkoituksiin:

a) Kvantisointi: Kvantisointi sisältää mallin painojen tarkkuuden vähentämisen, mikä vähentää muistinkäyttöä ja parantaa inference-nopeutta ilman, että se uhkaa merkittävästi tarkkuutta. Llama 3.1 tukee kvantisointia FP8:aan tai jopa alempiin tarkkuuksiin käyttäen tekniikoita, kuten QLoRA (Quantized Low-Rank Adaptation), jotta suorituskyky voidaan optimoida GPU:illa.

Esimerkki koodi:


<p>from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig</p>

<p>model_name = "meta-llama/Meta-Llama-3.1-405B"
bnb_config = BitsAndBytesConfig(
load_in_8bit=True, # Vaihda 4-bittiseen tarkkuuteen 4-bittiselle tarkkuudelle
bnb_8bit_quant_type="fp8",
bnb_8bit_compute_dtype=torch.float16,
)
model = AutoModelForCausalLM.from_pretrained(
model_name,
quantization_config=bnb_config,
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)</p>

b) Tensor-parallelismi: Tensor-parallelismi sisältää mallin kerrosten jakamisen useiden GPU-jen kesken laskentaprosessien rinnakkaisuuden mahdollistamiseksi. Tämä on erityisen hyödyllistä suurten mallien, kuten Llama 3.1, käsittelyyn, jotta resursseja voidaan käyttää tehokkaasti.

Esimerkki koodi:

from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline

<p>model_name = "meta-llama/Meta-Llama-3.1-405B"
model = AutoModelForCausalLM.from_pretrained(
model_name,
device_map="auto",
torch_dtype=torch.float16
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
nlp = pipeline("text-generation", model=model, tokenizer=tokenizer, device=0)

c) KV-keskusoptimointi: Tehokas KV-keskuksen hallinta on olennainen pitkien kontekstien käsittelyyn. Llama 3.1 tukee laajennettuja kontekstipituuuksia, joita voidaan hallita tehokkaasti optimoiduilla KV-keskusmenetelmillä. Esimerkki koodi:

# Varmista, että sinulla on riittävästi GPU-muistia laajennettujen kontekstien käsittelyyn
output = model.generate(
input_ids,
max_length=4096, # Kasvata tarpeen mukaan
use_cache=True
)

Käyttöönottostategiat

Llama 3.1-405B:n käyttöönottaminen vaatii tarkkaa huomioon ottamista laitteistoresursseista. Tässä on joitakin vaihtoehtoja:

a) Pilvipohjainen käyttöönottaminen: Käytä korkeamuistisia GPU-eksiä pilvipalveluntarjoajilta, kuten AWS (P4d-eksiä) tai Google Cloud (TPU v4).

Esimerkki koodi:

# Esimerkki AWS-asettelusta
import boto3
ec2 = boto3.resource('ec2')
instance = ec2.create_instances(
ImageId='ami-0c55b159cbfafe1f0', # Deep Learning AMI
InstanceType='p4d.24xlarge',
MinCount=1,
MaxCount=1
)

b) Paikallinen käyttöönottaminen: Organisaatioille, joilla on suorituskykyinen laskentakapasiteetti, Llama 3.1:n käyttöönottaminen paikallisesti tarjoaa enemmän valvontaa ja potentiaalisesti alempia kustannuksia pitkällä aikavälillä.

Esimerkki asettelusta:

# Esimerkki paikallisesta asettelusta
# Varmista, että sinulla on useita suorituskykyisiä GPU:ita, kuten NVIDIA A100 tai H100
pip install transformers
pip install torch # Varmista, että CUDA on käytössä

c) Jakautunut inference: Suuremmille käyttöönottamisille harkitse mallin jakamista useiden solmujen kesken.

Esimerkki koodi:

# Käyttäen Hugging Facen accelerate-kirjastoa
from accelerate import Accelerator

<p>accelerator = Accelerator()
model, tokenizer = accelerator.prepare(model, tokenizer)

Sovellukset ja käyttötarkoitukset

Llama 3.1-405B:n voima ja joustavuus avaavat monia mahdollisuuksia:

a) Synteettisen datan generointi: Generoi laadukasta, alakohtaista dataa pienempien mallien kouluttamiseen.

Esimerkki sovelluksesta:

from transformers import pipeline

<p>generator = pipeline("text-generation", model=model, tokenizer=tokenizer)
synteettinen_data = generator("Generoi talousraportteja Q1 2023:lle", max_length=200)</p>

b) Tietämysistunto: Siirrä 405B-mallin tietämys pienempiin, helpommin käyttöönottettaviin malleihin.

Esimerkki koodi:

# Käytä tietämysistuntoa Hugging Facen avulla
from transformers import DistillationTrainer, DistillationTrainingArguments

<p>training_args = DistillationTrainingArguments(
output_dir="./distilled_model",
per_device_train_batch_size=2,
num_train_epochs=3,
logging_dir="./logs",
)
trainer = DistillationTrainer(
teacher_model=model,
student_model=smaller_model,
args=training_args,
train_dataset=train_dataset,
eval_dataset=eval_dataset,
)
trainer.train()</p>

c) Alan mukainen hienosäätö: Sovella mallia erityisiin tehtäviin tai aloihin.

Esimerkki koodi:

from transformers import Trainer, TrainingArguments

<p>training_args = TrainingArguments(
output_dir="./domain_specific_model",
per_device_train_batch_size=1,
num_train_epochs=3,
)
trainer = Trainer(
model=model,
args=training_args,
train_dataset=train_dataset,
eval_dataset=eval_dataset,
)
trainer.train()</p>

Nämä tekniikat ja strategiat auttavat sinua hyödyntämään Llama 3.1-405B:n täyden potentiaalin, varmistaen tehokkaat, skaalautuvat ja erikoistuneet AI-sovellukset.

Tulevaisuuden suunta

Llama 3.1-405B:n julkaisu on todennäköisesti kiihdyttävä innovaatio useilla alueilla:

  • Parannetut hienosäätötekniikat erityisille aloille
  • Tehtävien kehittäminen tehokkaampiin inference-menetelmiin
  • Edistysaskelten tekeminen mallin pakkaamisessa ja tietämysistunnossa

Johtopäätös

Llama 3.1-405B edustaa merkittävää merkkipaaluja avoimen lähdekoodin AI:ssa, tarjoten kykyjä, jotka olivat aiemmin vain suljettujen mallien ominaisuus.

Kun jatkamme tämän mallin voimien tutkimista, on tärkeää lähestyä sen käyttöä vastuullisesti ja eettisesti. Työkalut ja turvallisuusjärjestelmät, jotka malli tarjoaa, antavat kehyksen vastuulliseen käyttöönottamiseen, mutta jatkuva valppaus ja yhteisön yhteistyö ovat avainasemassa varmistaakseen, että tämä voimakas teknologia käytetään yhteiskunnan hyväksi.

Olen viettänyt viimeiset viisi vuotta uppoutumalla kiinnostavaan koneoppimisen ja syvän oppimisen maailmaan. Minun intohimoni ja asiantuntemukseni ovat johtaneet minun osallistumiseen yli 50:een monipuoliseen ohjelmistosuunnitteluhankkeeseen, joissa on erityisesti painottunut AI/ML. Minun jatkuva uteliaisuuteni on myös ohjannut minun luontaisen kielen prosessoinnin pariin, jota haluan tutkia tarkemmin.