Kapcsolatba velünk

Mesterséges intelligencia

Az eddigi legerősebb nyílt forráskódú LLM: Meta LLAMA 3.1-405B

mm

Közzététel:

 on

Az eddigi legerősebb nyílt forráskódú LLM: Meta LLAMA 405B

Láma 3.1-405B, amelyet a Meta AI fejlesztett ki, jelentős előrelépést jelent a nyílt forráskódú nyelvi modellek terén. 405 milliárd paraméterével ez az eddigi legnagyobb nyilvánosan elérhető nyelvi modell, amely a legfejlettebb szabadalmaztatott modellek egy részét vetekszik, sőt meg is haladja a különböző benchmarkokban.

Főbb jellemzők:

  • 405 milliárd paraméter
  • 128 KB token kontextushossza
  • Többnyelvű támogatás (8 nyelvek)
  • Utasításra hangolt verzió elérhető
  • Nyílt forráskódú megengedő engedéllyel

Egy ilyen nagy teljesítményű modell nyílt forráskódú tartományban való megjelenése megváltoztatja a játékot, demokratizálja a hozzáférést a legkorszerűbb AI-képességekhez, és elősegíti az innovációt az egész iparágban.

Modellépítészet és képzés

A folyamat azzal kezdődik, hogy a beviteli szövegjogkivonatokat tokenbeágyazásokká alakítják. Ezek a beágyazások az önfigyelem és az előrecsatolt hálózatok több rétegén haladnak keresztül, lehetővé téve a modell számára, hogy megragadja a szövegen belüli összetett kapcsolatokat és függőségeket. Az autoregresszív dekódoló mechanizmus ezután generálja a kimeneti szöveg tokeneket, ezzel befejezve a folyamatot.

 

  1. Csoportosított lekérdezési figyelem (GQA)

Csoportosított lekérdezés figyelem

Csoportosított lekérdezés figyelem

A Llama 3.1 a Grouped Query Attention funkciót használja, amely egy fontos optimalizálási technika, amelyre az előző válasz nem tért ki. Vizsgáljuk meg ezt részletesebben:

A Grouped Query Attention (GQA) a többfejű figyelem egyik változata, amelynek célja a számítási költségek és a memóriahasználat csökkentése a következtetés során, különösen hosszú sorozatok esetén. A Llama 3.1 405B modellben a GQA 8 kulcsérték fejjel van megvalósítva.

Így működik a GQA:

  1. Ahelyett, hogy minden egyes figyelemfejhez külön kulcs- és értékkivetítés lenne, a GQA több lekérdezési fejet csoportosít, hogy ugyanazt a kulcs- és értékfejet megosszák.
  2. Ez a csoportosítás jelentősen csökkenti a paraméterek számát a kulcs- és értékprojekciókban, ami kisebb modellméretekhez és gyorsabb következtetésekhez vezet.
  3. A figyelem számítása a következőképpen fejezhető ki:
Attention(Q, K, V) = softmax(QK^T / sqrt(d_k))V

Ahol Q g csoportba van csoportosítva, és K-nek és V-nek kevesebb feje van, mint Q-nak.

A GQA előnyei a Llama 3.1 405B-ben a következők:

  • Csökkentett memóriaterület: Kevesebb kulcs- és értékkivetítés azt jelenti, hogy kevesebb memória szükséges a modellparaméterek tárolásához.
  • Gyorsabb következtetés: A kulcs- és értékkivetítésekhez szükséges kevesebb számítással a következtetési sebesség javul.
  • Fenntartott teljesítmény: A paraméterek csökkenése ellenére a GQA számos feladatban a szokásos többfejes figyelemhez mérhető teljesítményt mutat.
  1. Kétlépcsős előképzés a kiterjesztett kontextushoz

A cikk egy kétlépcsős előképzési folyamatot említ a 128K token kontextusablak eléréséhez. Ez a Llama 3.1 405B képességeinek döntő szempontja:

1. szakasz: Kezdeti előképzés 8K tokenekkel

  • A modellt először legfeljebb 8K tokenből álló sorozatokra képezték ki.
  • Ez a szakasz lehetővé teszi a modell számára, hogy megtanulja az általános nyelvi megértést és a generálási képességeket.

2. szakasz: A kontextusbővítés előképzésének folytatása

  • A kezdeti betanítás után a modell folyamatos előképzésen megy keresztül, hogy a kontextus hosszát 128 XNUMX tokenre növeljék.
  • Ez a szakasz gondosan megtervezett képzési rendeket foglal magában, hogy segítse a modellt hosszabb sorozatokra általánosítani anélkül, hogy elveszítené képességét a rövidebb összefüggések kezelésére.
  1. Multimodális képességek

Míg az előző válasz a multimodális képességeket érintette, kibővíthetjük, hogyan valósítja meg ezt a Llama 3.1 405B:

Kompozíciós megközelítés:

  • A Llama 3.1 405B külön kódolókat használ a különböző módokhoz (pl. képek, beszéd).
  • Ezek a kódolók a különféle módozatokból származó bemenetet egy megosztott beágyazási térré alakítják, amelyet a nyelvi modell megérthet.

Integráció a nyelvi modellel:

  • Ezeknek a speciális kódolóknak a kimenetei ezután a fő nyelvi modellbe kerülnek.
  • Ez lehetővé teszi a Llama 3.1 405B számára, hogy egyidejűleg különböző típusú adatokat dolgozzon fel és értsen meg, így több módozattal rendelkező feladatokat is végrehajthat.

A keresztfigyelem mechanizmusai:

  • A különböző módozatok integrálásának kezelésére a Llama 3.1 405B valószínűleg keresztfigyelem mechanizmusokat alkalmaz.
  • Ezek a mechanizmusok lehetővé teszik a modell számára, hogy a különböző módozatokból származó releváns információkra figyeljen szöveg generálása vagy egyéb feladatok végrehajtása során.

A Llama 3.1 405B multimodális képességei az alkalmazások széles skáláját nyitják meg, mint például:

  • Képaláírás és vizuális kérdések megválaszolása
  • Beszédből szöveggé átírás kontextuális megértéssel
  • Szöveget, képeket és potenciálisan más adattípusokat kombináló multimodális érvelési feladatok

Képzés részletei

  • Edzett tovább 15 billió tokenek
  • Egyedi építésű GPU-fürt 39.3 millió GPU óra a 405B modellhez
  • Változatos adatkészlet-kezelés a többnyelvű lehetőségekhez

Az utasításra hangolt változat további képzésen esett át:

Teljesítménymutatók

A táblázat összehasonlítja a Llama 3.1 405B, a Nemotron 4 340B Instruct, a GPT-4 (0125), a GPT-4 Omni és a Claude 3.5 Sonnet készülékeket. A legfontosabb benchmarkok közé tartoznak az általános feladatok, például az MMLU és az IFEval, a kódfeladatok, mint a HumanEval és a GSM8K, valamint az érvelési feladatok, mint az ARC Challenge. Minden benchmark pontszám tükrözi a modell képességét az emberhez hasonló szöveg megértésében és létrehozásában, az összetett problémák megoldásában és a kód végrehajtásában. Nevezetesen, a Llama 3.1 405B és a Claude 3.5 Sonnet számos benchmarkban jeleskedik, bemutatva fejlett képességeiket általános és tartományspecifikus feladatokban egyaránt.

A Llama 3.1-405B memóriakövetelményei

A Llama 3.1-405B futtatása jelentős memóriát és számítási erőforrásokat igényel:

  • GPU memória: A 405B modell A80 GPU-nként akár 100 GB GPU memóriát is használhat a hatékony következtetés érdekében. A Tensor Parallelism használatával a terhelés több GPU között is elosztható.
  • RAM: Legalább 512 GB rendszerRAM ajánlott a modell memóriaigényének kezelésére és a zavartalan adatfeldolgozás biztosítására.
  • Tárolás: Győződjön meg arról, hogy több terabájtnyi SSD-tárhellyel rendelkezik a modellsúlyokhoz és a kapcsolódó adatkészletekhez. A nagy sebességű SSD-k kritikusak az adathozzáférési idő csökkentésében a képzés és a következtetések során (Llama Ai modell)â € <â € < (Groq).

Következtetés-optimalizálási technikák Llama 3.1-405B számára

Egy 405B paramétermodell, például a Llama 3.1 hatékony futtatása számos optimalizálási technikát igényel. Íme a legfontosabb módszerek a hatékony következtetés biztosítására:

a) Kvantálás: A kvantálás magában foglalja a modell súlyozásának pontosságának csökkentését, ami csökkenti a memóriahasználatot és javítja a következtetési sebességet anélkül, hogy jelentősen feláldozná a pontosságot. A Llama 3.1 támogatja a kvantálást az FP8-ra vagy még ennél is alacsonyabb pontosságot olyan technikák használatával, mint a QLoRA (Quantized Low-Rank Adaptation) a GPU-k teljesítményének optimalizálása érdekében.

Példakód:

from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig

model_name = "meta-llama/Meta-Llama-3.1-405B"
bnb_config = BitsAndBytesConfig(
load_in_8bit=True, # Change to load_in_4bit for 4-bit precision
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)

b) Tenzor párhuzamosság: A tenzor párhuzamosság magában foglalja a modell rétegeinek felosztását több GPU között a számítások párhuzamosítása érdekében. Ez különösen hasznos a nagy modelleknél, mint például a Llama 3.1, lehetővé téve az erőforrások hatékony felhasználását.

Példakód:

from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline

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-gyorsítótár optimalizálása: A kulcsérték (KV) gyorsítótár hatékony kezelése kulcsfontosságú a hosszú kontextusok kezeléséhez. A Llama 3.1 támogatja a kiterjesztett kontextushosszokat, amelyek hatékonyan kezelhetők optimalizált KV-gyorsítótár technikákkal. Példakód:

# Ensure you have sufficient GPU memory to handle extended context lengths
output = model.generate(
input_ids, 
max_length=4096, # Increase based on your context length requirement
use_cache=True
)

Telepítési stratégiák

A Llama 3.1-405B telepítése a hardver erőforrások alapos mérlegelését igényli. Íme néhány lehetőség:

a) Felhőalapú telepítés: Használjon nagy memóriával rendelkező GPU-példányokat olyan felhőszolgáltatóktól, mint az AWS (P4d példányok) vagy a Google Cloud (TPU v4).

Példakód:

# Example setup 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) Helyszíni telepítés: A nagy teljesítményű számítási képességekkel rendelkező szervezetek számára a Llama 3.1 on-premises telepítése nagyobb irányítást és potenciálisan alacsonyabb hosszú távú költségeket kínál.

Példa beállítás:

# Example setup for on-premises deployment
# Ensure you have multiple high-performance GPUs, like NVIDIA A100 or H100
pip install transformers
pip install torch # Ensure CUDA is enabled

c) Elosztott következtetés: Nagyobb telepítések esetén fontolja meg a modell több csomópont között történő elosztását.

Példakód:

# Using Hugging Face's accelerate library
from accelerate import Accelerator

accelerator = Accelerator()
model, tokenizer = accelerator.prepare(model, tokenizer)

Használati esetek és alkalmazások

A Llama 3.1-405B ereje és rugalmassága számos lehetőséget nyit meg:

a) Szintetikus adatgenerálás: Kiváló minőségű, tartományspecifikus adatokat generál a kisebb modellek betanításához.

Példa használati esetre:

from transformers import pipeline

generator = pipeline("text-generation", model=model, tokenizer=tokenizer)
synthetic_data = generator("Generate financial reports for Q1 2023", max_length=200)

b) Tudáslepárlás: Vigye át a 405B modell ismereteit kisebb, jobban telepíthető modellekre.

Példakód:

# Use distillation techniques from Hugging Face
from transformers import DistillationTrainer, DistillationTrainingArguments

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()

c) Domain-specifikus finomhangolás: A modell adaptálása speciális feladatokhoz vagy iparágakhoz.

Példakód:

from transformers import Trainer, TrainingArguments

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()

Ezek a technikák és stratégiák segítenek a Llama 3.1-405B teljes potenciáljának kihasználásában, biztosítva a hatékony, méretezhető és speciális AI-alkalmazásokat.

Jövőbeli irányok

A Llama 3.1-405B megjelenése valószínűleg több területen is felgyorsítja az innovációt:

  • Továbbfejlesztett finomhangolási technikák speciális tartományokhoz
  • Hatékonyabb következtetési módszerek kidolgozása
  • Fejlődés a modell-sűrítés és desztilláció terén

Következtetés

A Llama 3.1-405B jelentős mérföldkövet jelent a nyílt forráskódú mesterséges intelligencia terén, és olyan képességeket kínál, amelyek korábban kizárólag a zárt forráskódú modelleknél voltak elérhetők.

Miközben folytatjuk e modell erejének feltárását, kulcsfontosságú, hogy felelősséggel és etikai megfontolásokkal közelítsük meg a használatát. A modell mellett biztosított eszközök és biztosítékok keretet biztosítanak a felelős telepítéshez, de a folyamatos éberség és a közösségi együttműködés kulcsfontosságú lesz annak biztosításában, hogy ezt a hatékony technológiát a társadalom javára használják fel.

Az elmúlt öt évet azzal töltöttem, hogy elmerüljek a gépi tanulás és a mélytanulás lenyűgöző világában. Szenvedélyem és szakértelmem késztetett arra, hogy több mint 50 különféle szoftverfejlesztési projektben működjek közre, különös tekintettel az AI/ML-re. Folyamatos kíváncsiságom a természetes nyelvi feldolgozás felé is vonzott, amely terület, amelyet szívesen fedezek fel.