AI-modeller og platforme

Den mest kraftfulde open-source LLM endnu: Meta LLAMA 3.1-405B

mm
Føj Unite.AI til dine foretrukne kilder på Google
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, udviklet af Meta AI, repræsenterer et betydeligt skridt fremad i open-source sprogmodeller. Med 405 milliarder parametre er det den største offentligt tilgængelige sprogmodel til dato, og det kan sammenlignes med og endda overgå nogle af de mest avancerede proprietære modeller i forskellige benchmarks.

Nøglefunktioner:

  • 405 milliarder parametre
  • 128K token kontekstlængde
  • Flersproget understøttelse (8 sprog)
  • Instruction-tuned version tilgængelig
  • Open-source med en tilladelig licens

Udgivelsen af en så kraftfuld model i open-source-domænet er en game-changer, der demokratiserer adgangen til state-of-the-art AI-kapaciteter og fremmer innovation på tværs af branchen.

Modelarkitektur og træning

Processen begynder med, at inputteksttokenene konverteres til token-embeddings. Disse embeddings passerer gennem multiple lag af selv-opmærksomhed og feedforward-netværk, hvilket giver modelen mulighed for at fange komplekse relationer og afhængigheder inden for teksten. Den autoregressive dekodningsmekanisme genererer derefter outputteksttokenene, og processen er fuldført.

 

_*]:min-w-0″>
div]:bg-bg-300 [&_pre]:-mr-4 md:[&_pre]:-mr-9″>
_*]:min-w-0″>
  1. Grupperet forespørgselsopmærksomhed (GQA)

Grupperet forespørgselsopmærksomhed

Grupperet forespørgselsopmærksomhed

Llama 3.1 anvender Grupperet forespørgselsopmærksomhed, som er en vigtig optimeringsteknik, der ikke er fuldt dækket i den foregående besvarelse. Lad os udforske dette nærmere:

Grupperet forespørgselsopmærksomhed (GQA) er en variant af multi-head-opmærksomhed, der sigter mod at reducere beregningsomkostninger og hukommelsesbrug under inferens, især for lange sekvenser. I Llama 3.1 405B-modellen implementeres GQA med 8 nøgle-værdi-hoveder.

Her er, hvordan GQA fungerer:

  1. I stedet for at have separate nøgle- og værdiprojektioner for hver opmærksomhedshead, grupperer GQA multiple forespørgselsheads for at dele de samme nøgle- og værdiheads.
  2. Denne gruppering reducerer betydeligt antallet af parametre i nøgle- og værdiprojektionerne, hvilket resulterer i mindre modellær og hurtigere inferens.
  3. Opmærksomhedsberegningen kan udtrykkes som:
Opmærksomhed(Q, K, V) = softmax(QK^T / sqrt(d_k))V

Hvor Q er grupperet i g grupper, og K og V har færre hoveder end Q.

Fordelene ved GQA i Llama 3.1 405B omfatter:

  • Reduceret hukommelsesaftryk: Færre nøgle- og værdiprojektioner betyder, at der kræves mindre hukommelse til at gemme modellens parametre.
  • Hurtigere inferens: Med færre beregninger, der er nødvendige for nøgle- og værdiprojektioner, forbedres inferenshastigheden.
  • Bevaret ydelse: Trods reduktionen i parametre har GQA vist sig at bevare en sammenlignelig ydelse med standard multi-head-opmærksomhed i mange opgaver.
  1. To-trins prætræning for udvidet kontekst

Artiklen nævner en to-trins prætræningsproces for at opnå den 128K token kontekstvindue. Dette er en afgørende aspekt af Llama 3.1 405B’s kapaciteter:

Trin 1: Initial prætræning på 8K tokens

  • Modellen trænes først på sekvenser på op til 8K tokens.
  • Dette trin giver modellen mulighed for at lære generel sprogforståelse og genereringskapaciteter.

Trin 2: Fortsat prætræning for kontekstudvidelse

  • Efter den initielle træning undergår modellen en fortsat prætræning for at øge kontekstlængden til 128K tokens.
  • Dette trin involverer omhyggeligt designede træningsregimer for at hjælpe modellen med at generalisere til længere sekvenser uden at miste evnen til at håndtere kortere kontekster.
  1. Flersproget kapacitet

Selvom den foregående besvarelse berørte flersproget kapacitet, kan vi udvide på, hvordan Llama 3.1 405B implementerer dette:

Kompositionel tilgang:

  • Llama 3.1 405B anvender separate encodere for forskellige modaliteter (f.eks. billeder, tale).
  • Disse encodere transformerer input fra forskellige modaliteter til et fælles embeddingsrum, som sprogmodellen kan forstå.

Integration med sprogmodellen:

  • Outputtet fra disse specialiserede encodere indføres derefter i den primære sprogmodel.
  • Dette giver Llama 3.1 405B mulighed for at behandle og forstå forskellige typer data samtidig, hvilket muliggør opgaver, der involverer multiple modaliteter.

Krydsovmærksomhedsmekanismer:

  • For at håndtere integrationen af forskellige modaliteter anvender Llama 3.1 405B sandsynligvis krydsovmærksomhedsmekanismer.
  • Disse mekanismer giver modellen mulighed for at fokusere på relevant information fra forskellige modaliteter under tekstgenerering eller andre opgaver.

Den flersprogede kapacitet i Llama 3.1 405B åbner op for en bred vifte af anvendelser, såsom:

  • Billede-underskrift og visuel spørgsmålssvar
  • Tale-til-tekst-transkription med kontekstforståelse
  • Flersproget resonering, der kombinerer tekst, billeder og potentiellement andre datatyper

Træningsdetaljer

  • Trænet på over 15 billioner tokens
  • Tilpasset bygget GPU-cluster med 39,3M GPU-timer til 405B-modellen
  • Mangfoldig datasætskurering for flersproget kapacitet

Den instruction-tuned version gennemgik yderligere træning:

Ydelsesbenchmarks

Tabellen sammenligner Llama 3.1 405B, Nemotron 4 340B Instruct, GPT-4 (0125), GPT-4 Omni og Claude 3.5 Sonnet. Nøglebenchmarks omfatter generelle opgaver som MMLU og IFEval, kodeopgaver som HumanEval og GSM8K, og resoneringopgaver som ARC Challenge. Hver benchmarkscore afspejler modellens evne til at forstå og generere menneske-lignende tekst, løse komplekse problemer og udføre kode. Det er værd at bemærke, at Llama 3.1 405B og Claude 3.5 Sonnet excellerer i flere benchmarks, hvilket viser deres avancerede kapaciteter i både generelle og domænespecifikke opgaver.

Hukommelseskrav for Llama 3.1-405B

Kørsel af Llama 3.1-405B kræver betydelige hukommelses- og beregningsressourcer:

  • GPU-hukommelse: 405B-modellen kan udnytte op til 80GB GPU-hukommelse per A100 GPU til effektiv inferens. Ved hjælp af Tensor Parallelism kan belastningen fordèles over multiple GPU’er.
  • RAM: En minimum på 512GB systemhukommelse anbefales for at håndtere modellens hukommelsesaftryk og sikre glat dataprocessing.
  • Lagerplads: Sørg for, at du har flere terabyte SSD-lagerplads til modellens vægte og tilhørende datasæt. Højhastigheds SSD’er er afgørende for at reducere dataadgangstider under træning og inferens​ (Llama Ai Model)​​ (Groq)​.

Inferensoptimeringsteknikker for Llama 3.1-405B

Kørsel af en 405B parametermodel som Llama 3.1 kræver flere optimeringsteknikker. Her er nogle nøglemetoder til effektiv inferens:

a) Kvantisering: Kvantisering indebærer at reducere præcisionen af modellens vægte, hvilket reducerer hukommelsesbrug og forbedrer inferenshastighed uden at ofre nøjagtighed væsentligt. Llama 3.1 understøtter kvantisering til FP8 eller endda lavere præcisioner ved hjælp af teknikker som QLoRA (Kvantisering af lav-rang-tilpasning) for at optimere ydelse på GPU’er.

Eksempelkode:


<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, # Skift til load_in_4bit for 4-bit præcision
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-parallelisme: Tensor-parallelisme indebærer at splitte modellens lag over multiple GPU’er for at parallelisere beregninger. Dette er især nyttigt for store modeller som Llama 3.1, hvilket giver mulighed for effektiv brug af ressourcer.

Eksempelkode:

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("tekst-generering", model=model, tokenizer=tokenizer, device=0)

c) KV-Cache-optimering: Effektiv håndtering af nøgle-værdi-cachen er afgørende for at håndtere lange kontekster. Llama 3.1 understøtter udvidede kontekstlængder, som kan håndteres effektivt ved hjælp af optimerede KV-cache-teknikker. Eksempelkode:

# Sørg for, at du har tilstrækkelig GPU-hukommelse til at håndtere udvidede kontekstlængder
output = model.generate(
input_ids,
max_length=4096, # Øg efter behov for kontekstlængden
use_cache=True
)

Implementeringsstrategier

Implementering af Llama 3.1-405B kræver omhyggelig overvejelse af hardware-ressourcer. Her er nogle muligheder:

a) Cloud-baseret implementering: Udnyt højhukommelses-GPU-forekomster fra cloud-udbydere som AWS (P4d-forekomster) eller Google Cloud (TPU v4).

Eksempelkode:

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

b) Lokal implementering: For organisationer med høj-ydelses-computere giver lokal implementering af Llama 3.1 mere kontrol og potentielt lavere langsigtede omkostninger.

Eksempelopsætning:

# Eksempelopsætning for lokal implementering
# Sørg for, at du har multiple høj-ydelses-GPU'er, som NVIDIA A100 eller H100
pip install transformers
pip install torch # Sørg for, at CUDA er aktiveret

c) Distribueret inferens: For større implementeringer overvej at distribuere modellen over multiple noder.

Eksempelkode:

# Ved hjælp af Hugging Faces accelerate-bibliotek
from accelerate import Accelerator

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

Anvendelsesområder og -muligheder

Kraften og fleksibiliteten i Llama 3.1-405B åbner op for en bred vifte af muligheder:

a) Syntetisk datagenerering: Generer højkvalitets, domænespecifikke data til træning af mindre modeller.

Eksempel på anvendelse:

from transformers import pipeline

<p>generator = pipeline("tekst-generering", model=model, tokenizer=tokenizer)
syntetisk_data = generator("Generer finansielle rapporter for Q1 2023", max_length=200)</p>

b) Vidensoverføring: Overfør viden fra 405B-modellen til mindre, mere udviklingsvenlige modeller.

Eksempelkode:

# Brug distilleringsteknikker fra Hugging Face
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) Domænespecifik finjustering: Tilpas modellen til specialiserede opgaver eller brancher.

Eksempelkode:

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>

Disse teknikker og strategier vil hjælpe dig med at udnytte det fulde potentiale i Llama 3.1-405B, sikre effektiv, skalerbar og specialiseret AI-anvendelse.

Fremtidige retninger

Udgivelsen af Llama 3.1-405B vil sandsynligvis accelerere innovation i flere områder:

  • Forbedrede finjusteringsteknikker for specialiserede domæner
  • Udvikling af mere effektive inferensmetoder
  • Fremgang i modellkomprimering og -distillering

Konklusion

Llama 3.1-405B repræsenterer et betydeligt skridt i open-source AI, tilbydende kapaciteter, der tidligere var forbeholdt lukkede modeller.

Da vi fortsætter med at udforske kraften i denne model, er det afgørende at tilgangen til dens brug sker med ansvar og etisk overvejelse. Værktøjerne og sikkerhedsforanstaltningerne, der følger med modellen, giver en ramme for ansvarlig implementering, men fortsat opmærksomhed og fællesskabs-samarbejde vil være nødvendigt for at sikre, at denne kraftfulde teknologi bliver brugt til gavn for samfundet.

Jeg har brugt de sidste fem år på at dykke ned i den fascinerende verden af Machine Learning og Deep Learning. Min passion og ekspertise har ført mig til at bidrage til over 50 forskellige software-ingeniørprojekter, med en særlig fokus på AI/ML. Min fortsatte nysgerrighed har også ført mig mod Natural Language Processing, et felt jeg er ivrig efter at udforske yderligere.