Povežite se s nama

Umjetna inteligencija

Llama 2: Duboko zaronite u Open-Source Challenger za ChatGPT

mm
META LAMA 2 LLM

Veliki jezični modeli (LLM-ovi) sposobni za složene zadatke zaključivanja pokazali su se obećavajućima u specijaliziranim područjima poput programiranja i kreativnog pisanja. Međutim, svijet LLM-ova nije samo raj "plug-and-play"; postoje izazovi u upotrebljivosti, sigurnosti i računalnim zahtjevima. U ovom ćemo članku detaljno istražiti mogućnosti Lama 2, istovremeno pružajući detaljan vodič za postavljanje ovog LLM-a visokih performansi putem Hugging Face i T4 GPU-a na Google Colabu.

Razvijen od strane Meta u partnerstvu s Microsoftom, ovaj model otvorenog koda za velike jezike ima za cilj redefinirati područja generativne umjetne inteligencije i razumijevanja prirodnog jezika. Llama 2 nije samo još jedan statistički model obučen na terabajtima podataka; to je utjelovljenje filozofije. One koja naglašava pristup otvorenog koda kao okosnicu razvoja umjetne inteligencije, posebno u području generativne umjetne inteligencije.

Llama 2 i njegova zamjena optimizirana za dijalog, Llama 2-Chat, dolaze opremljeni s do 70 milijardi parametara. Podvrgavaju se procesu finog ugađanja osmišljenom kako bi se usko uskladili s ljudskim preferencijama, čineći ih sigurnijima i učinkovitijima od mnogih drugih javno dostupnih modela. Ova razina granularnosti u finom podešavanju često je rezervirana za zatvorene LLM-ove "proizvoda", kao što su ChatGPT i BARD, koji općenito nisu dostupni javnosti ili prilagodbi.

Tehnički dubinski zaron Llame 2

Za obuku modela Llama 2; kao i njegovi prethodnici, koristi se autoregresijom arhitektura transformatora, prethodno obučen na opsežnom korpusu samonadgledanih podataka. Međutim, dodaje dodatni sloj sofisticiranosti korištenjem učenja s potkrepljenjem s ljudskim povratnim informacijama (RLHF) kako bi se bolje uskladilo s ljudskim ponašanjem i preferencijama. Ovo je računalno skupo, ali ključno za poboljšanje sigurnosti i učinkovitosti modela.

Meta Llama 2 arhitektura obuke

Meta Llama 2 arhitektura obuke

Predosposobljavanje i učinkovitost podataka

Temeljna inovacija Llame 2 leži u njenom režimu predtreninga. Model preuzima inspiraciju od svog prethodnika, Llame 1, ali uvodi nekoliko ključnih poboljšanja kako bi podigao svoje performanse. Posebno se ističe 40%-tno povećanje ukupnog broja obučenih tokena i dvostruko proširenje duljine konteksta. Štoviše, model koristi pažnju grupiranih upita (GQA) kako bi pojačao skalabilnost zaključivanja.

Nadzirano fino ugađanje (SFT) i učenje pojačanja s ljudskim povratnim informacijama (RLHF)

Llama-2-chat je rigorozno podešen korištenjem SFT-a i učenja s potkrepljenjem i ljudskim povratnim informacijama (RLHF). U tom kontekstu, SFT služi kao sastavni dio RLHF okvira, poboljšavajući odgovore modela kako bi se što više uskladili s ljudskim preferencijama i očekivanjima.

OpenAI pružio je uvidljivu ilustraciju koja objašnjava metodologije SFT i RLHF korištene u InstructGPT-u. Slično kao i LLaMa 2, InstructGPT također koristi ove napredne tehnike treniranja kako bi optimizirao performanse svog modela.

Korak 1 na donjoj slici usredotočen je na nadzirano fino podešavanje (SFT), dok sljedeći koraci dovršavaju proces učenja pojačanja iz ljudske povratne informacije (RLHF).

Nadzirano fino podešavanje (SFT) je specijalizirani proces usmjeren na optimizaciju prethodno obučenog modela velikog jezika (LLM) za određeni nizvodni zadatak. Za razliku od nenadziranih metoda, koje ne zahtijevaju validaciju podataka, SFT koristi skup podataka koji je prethodno validiran i označen.

Općenito, izrada ovih skupova podataka je skupa i dugotrajna. Pristup Llame 2 bio je kvaliteta iznad kvantitete. Sa samo 27,540 XNUMX anotacija, Metin tim postigao je razinu performansi konkurentnu ljudskim anotatorima. To se dobro slaže s nedavne studije pokazujući da čak i ograničeni, ali čisti skupovi podataka mogu dovesti do visokokvalitetnih rezultata.

U SFT procesu, prethodno obučeni LLM izložen je označenom skupu podataka, gdje algoritmi nadziranog učenja dolaze do izražaja. Unutarnje težine modela ponovno se kalibriraju na temelju gradijenta izračunatih iz funkcije gubitka specifične za zadatak. Ova funkcija gubitka kvantificira odstupanja između predviđenih izlaza modela i stvarnih oznaka istinitih podataka.

Ova optimizacija omogućuje LLM-u da shvati zamršene obrasce i nijanse ugrađene u označeni skup podataka. Posljedično, model nije samo generalizirani alat, već se razvija u specijalizirano sredstvo, vješto u izvršavanju ciljanog zadatka s visokim stupnjem točnosti.

Učenje s potkrepljenjem je sljedeći korak, usmjeren na bliže usklađivanje modela ponašanja s ljudskim preferencijama.

Faza ugađanja koristila je učenje pojačanja iz ljudske povratne informacije (RLHF), koristeći tehnike kao što su Uzorkovanje po važnosti i Optimizacija proksimalne politike za uvođenje algoritamskog šuma, čime se izbjegavaju lokalni optimumi. Ovo iterativno fino podešavanje ne samo da je poboljšalo model, već je i uskladilo njegov rezultat s ljudskim očekivanjima.

Llama 2-Chat koristio je protokol binarne usporedbe za prikupljanje podataka o ljudskim preferencijama, označavajući primjetan trend prema kvalitativnijim pristupima. Ovaj mehanizam informirao je modele nagrađivanja, koji se zatim koriste za fino podešavanje modela AI-ja za razgovor.

Ghost Attention: višestruki dijalozi

Meta je predstavila novu značajku, Ghost Attention (GAtt), koja je osmišljena za poboljšanje performansi Llama 2 u višestrukim dijalozima. To učinkovito rješava stalni problem gubitka konteksta u tekućim razgovorima. GAtt djeluje poput sidra, povezujući početne upute sa svim sljedećim korisničkim porukama. U kombinaciji s tehnikama učenja s potkrepljenjem, pomaže u stvaranju dosljednih, relevantnih i korisniku usklađenih odgovora tijekom duljih dijaloga.

Iz Meta Git repozitorija koristeći download.sh

  1. Posjetite web stranicu Meta: Kretati do Metina službena stranica za Llama 2 i kliknite na "Preuzmi model"
  2. Ispunite pojedinosti: Pročitajte i prihvatite odredbe i uvjete za nastavak.
  3. Potvrda e-poštomNakon što pošaljete obrazac, primit ćete e-poruku od Mete s poveznicom za preuzimanje modela iz njihovog git repozitorija.
  4. Izvršite download.sh: Klonirajte Git repozitorij i izvršite download.sh skripta. Ova skripta će od vas tražiti da se autentifikujete pomoću URL-a iz Meta koji istječe za 24 sata. Također ćete odabrati veličinu modela—7B, 13B ili 70B.

Iz Hugging Face

  1. Primite e-poštu o prihvaćanju: Nakon dobivanja pristupa od Mete, prijeđite na Zagrljeno lice.
  2. Zatražite pristup: Odaberite željeni model i pošaljite zahtjev za odobravanje pristupa.
  3. PotvrdaOčekujte e-poruku s 'odobrenim pristupom' u roku od 1-2 dana.
  4. Generirajte pristupne tokene: Idite na 'Postavke' na svom Hugging Face računu kako biste stvorili pristupne tokene.

Izdanje Transformersa 4.31 u potpunosti je kompatibilno s LLaMa 2 i otvara mnoge alate i funkcionalnosti unutar ekosustava Hugging Facea. Od skripti za učenje i zaključivanje do 4-bitne kvantizacije s bitsandbytes i Parameter Efficient Fine-tuninga (PEFT), skup alata je opsežan. Za početak, provjerite jeste li na najnovijem izdanju Transformersa i prijavljeni na svoj Hugging Face račun.

Evo pojednostavljenog vodiča za pokretanje zaključivanja modela LLaMa 2 u google colab okruženje, koristeći GPU runtime:

Google Colab model - T4 GPU

Google Colab model – T4 GPU

 

 

 

 

 

 

Instalacija paketa

!pip install transformers
!huggingface-cli login

Uvezite potrebne Python biblioteke.

from transformers import AutoTokenizer
import transformers
import torch

Inicijalizirajte model i tokenizator

U ovom koraku odredite koji ćete model Llama 2 koristiti. Za ovaj vodič koristimo meta-llama/Llama-2-7b-chat-hf.

model = "meta-llama/Llama-2-7b-chat-hf"
tokenizer = AutoTokenizer.from_pretrained(model)

Postavite cjevovod

Upotrijebite cjevovod Hugging Face za generiranje teksta s određenim postavkama:

pipeline = transformers.pipeline(
    "text-generation",
    model=model,
    torch_dtype=torch.float16,
    device_map="auto")

Generiraj tekstualne sekvence

Na kraju, pokrenite cjevovod i generirajte slijed teksta na temelju vašeg unosa:

sequences = pipeline(
    'Who are the key contributors to the field of artificial intelligence?\n',
    do_sample=True,
    top_k=10,
    num_return_sequences=1,
    eos_token_id=tokenizer.eos_token_id,
    max_length=200)
for seq in sequences:
    print(f"Result: {seq['generated_text']}")

A16Z-ovo korisničko sučelje za LLaMa 2

Andreessen Horowitz (A16Z) nedavno je lansirao vrhunsko chatbot sučelje temeljeno na Streamlitu prilagođeno za Llama 2. Hostirano na GitHubu, ovo korisničko sučelje čuva povijest razgovora sesije i također pruža fleksibilnost odabira između više Llama 2 API krajnjih točaka hostiranih na ponoviti. Ovaj dizajn usmjeren na korisnika ima za cilj pojednostaviti interakciju s Llama 2, čineći ga idealnim alatom i za programere i za krajnje korisnike. Za one koji to žele iskusiti, demo uživo dostupan je na Llama2.ai.

Llama 2: Po čemu se razlikuje od GPT modela i njegovog prethodnika Llama 1?

Raznolikost u mjerilu

Za razliku od mnogih jezičnih modela koji nude ograničenu skalabilnost, Llama 2 vam daje hrpu različitih opcija za modele s različitim parametrima. Model se skalira od 7 milijardi do 70 milijardi parametara, čime se pruža niz konfiguracija koje odgovaraju različitim računalnim potrebama.

Poboljšana duljina konteksta

Model ima povećanu duljinu konteksta od 4K tokena nego Llama 1. To mu omogućuje zadržavanje više informacija, čime se poboljšava njegova sposobnost razumijevanja i generiranja složenijeg i opsežnijeg sadržaja.

Grupirana pozornost na upit (GQA)

Arhitektura koristi koncept GQA, osmišljen za ubrzavanje procesa izračuna pažnje keširanjem prethodnih parova tokena. To učinkovito poboljšava skalabilnost zaključivanja modela radi bolje dostupnosti.

Benchmarks izvedbe

Usporedna analiza izvedbe Llama 2-Chat modela s ChatGPT-om i drugim konkurentima

Analiza izvedbe Llama 2-Chat modela s ChatGPT-om i drugim konkurentima

LLama 2 je postavio novi standard u metrici performansi. Ne samo da nadmašuje svog prethodnika, LLama 1, već nudi i značajnu konkurenciju drugim modelima kao što su Falcon i GPT-3.5.

Najveći model Llama 2-Chata, 70B, također nadmašuje ChatGPT u 36% slučajeva i postiže iste performanse u dodatnih 31.5% slučajeva. Izvor: Papir

Otvoreni kod: Snaga zajednice

Meta i Microsoft namjeravaju da Llama 2 bude više od pukog proizvoda; oni ga zamišljaju kao alat kojim upravlja zajednica. Llama 2 je besplatan za pristup i u istraživačke i u nekomercijalne svrhe. Cilj im je demokratizirati mogućnosti umjetne inteligencije, čineći ih dostupnima startupima, istraživačima i tvrtkama. Paradigma otvorenog koda omogućuje "rješavanje problema putem crowdsourcinga" modela. Programeri i etičari umjetne inteligencije mogu provoditi testove opterećenja, identificirati ranjivosti i ponuditi rješenja ubrzanim tempom.

Iako su uvjeti licenciranja za LLaMa 2 općenito dopušteni, iznimke postoje. Velike tvrtke koje se mogu pohvaliti s više od 700 milijuna mjesečnih korisnika, poput Googlea, zahtijevaju izričito ovlaštenje od Mete za njegovo korištenje. Osim toga, licenca zabranjuje korištenje LLaMa 2 za poboljšanje drugih jezičnih modela.

Trenutačni izazovi s Llamom 2

  1. Generalizacija podataka: I Llama 2 i GPT-4 ponekad zaostaju u jednako visokim performansama u različitim zadacima. Kvaliteta i raznolikost podataka jednako su ključni kao i količina u ovim scenarijima.
  2. Transparentnost modela: S obzirom na prethodne neuspjehe s umjetnom inteligencijom koja je proizvodila pogrešne rezultate, istraživanje obrazloženja donošenja odluka iza ovih složenih modela je najvažnije.

Code Llama – Metino najnovije lansiranje

Meta je nedavno najavio Šifra Lama koji je veliki jezični model specijaliziran za programiranje s veličinama parametara u rasponu od 7B do 34B. Slično Tumač koda ChatGPT; Code Llama može pojednostaviti tijekove rada programera i učiniti programiranje pristupačnijim. Prilagođava različite programske jezike i dolazi u specijaliziranim varijantama, kao što je Code Llama–Python za zadatke specifične za Python. Model također nudi različite razine performansi kako bi zadovoljio različite zahtjeve latencije. Otvoreno licenciran, Code Llama poziva zajednicu na doprinos za stalna poboljšanja.

Predstavljamo Code Llama, AI alat za kodiranje

Zaključak

Ovaj članak vas je proveo kroz postavljanje Llama 2 modela za generiranje teksta na Google Colabu s podrškom za Hugging Face. Performanse Llama 2 pokreću niz naprednih tehnika, od autoregresivnih transformatorskih arhitektura do učenja s potkrepljenjem i ljudskim povratnim informacijama (RLHF). S do 70 milijardi parametara i značajkama poput Ghost Attention, ovaj model nadmašuje trenutne industrijske standarde u određenim područjima, a svojom otvorenom prirodom utire put novoj eri u razumijevanju prirodnog jezika i generativnoj umjetnoj inteligenciji.

Proteklih pet godina proveo sam uranjajući u fascinantan svijet strojnog i dubokog učenja. Moja strast i stručnost naveli su me da pridonesem više od 50 različitih projekata softverskog inženjeringa, s posebnim fokusom na AI/ML. Moja stalna znatiželja također me povukla prema obradi prirodnog jezika, polju koje jedva čekam dalje istraživati.