Modele și platforme AI
Llama 2: O scufundare în profunzime a concurentului open-source pentru ChatGPT
Modelele de limbaj mari (LLM) capabile de sarcini complexe de raționament au arătat promisiuni în domenii specializate, cum ar fi programarea și scrierea creativă. Cu toate acestea, lumea LLM-urilor nu este pur și simplu un paradis plug-and-play; există provocări în ceea ce privește utilizabilitatea, siguranța și cerințele computaționale. În acest articol, vom face o scufundare în profunzime a capacităților Llama 2, oferind în același timp un ghid detaliat pentru configurarea acestui LLM de înaltă performanță prin Hugging Face și T4 GPU pe Google Colab.
Dezvoltat de Meta, în parteneriat cu Microsoft (MSFT ), acest model de limbaj mare open-source își propune să redefinească domeniile inteligenței artificiale generative și a înțelegerii limbajului natural. Llama 2 nu este doar un model statistic antrenat pe terabytes de date; este o încarnare a unei filozofii. Una care subliniază abordarea open-source ca fiind coloana vertebrală a dezvoltării IA, în special în spațiul inteligenței artificiale generative.
Llama 2 și varianta sa optimizată pentru dialog, Llama 2-Chat, sunt echipate cu până la 70 de miliarde de parametri. Acestea suferă un proces de fine-tuning destinat să le alinieze îndeaproape cu preferințele umane, făcându-le atât mai sigure, cât și mai eficiente decât multe alte modele disponibile public. Acest nivel de granularitate în fine-tuning este de obicei rezervat pentru LLM-urile “produs” închise, cum ar fi ChatGPT și BARD, care nu sunt, în general, disponibile pentru examinarea publică sau personalizare.
Scufundare tehnică în Llama 2
Pentru antrenarea modelului Llama 2; la fel ca și predecesorii săi, utilizează o arhitectură auto-regresivă transformator, pre-antrenată pe un corpus extins de date auto-supervizate. Cu toate acestea, adaugă un strat suplimentar de sofisticare prin utilizarea Învățării prin Întărire cu Feedback Uman (RLHF) pentru a se alinia mai bine cu comportamentul și preferințele umane. Acest lucru este computațional costisitor, dar vital pentru îmbunătățirea siguranței și eficacității modelului.
Pre-antrenare și Eficiență a Datelor
Inovația fundamentală a Llama 2 se află în regimul său de pre-antrenare. Modelul ia sugestii de la predecesorul său, Llama 1, dar introduce câteva îmbunătățiri cruciale pentru a-și ridica performanța. În mod deosebit, o creștere cu 40% a numărului total de tokeni antrenați și o extindere de două ori a lungimii contextului se remarcă. Mai mult, modelul utilizează atenția grupată la interogare (GQA) pentru a amplifica scalabilitatea inferenței.
Fine-Tuning Supravegheat (SFT) și Învățare prin Întărire cu Feedback Uman (RLHF)
Llama-2-chat a fost supus unui fine-tuning riguros utilizând atât SFT, cât și RLHF. În acest context, SFT servește ca o componentă integrală a cadrului RLHF, rafinând răspunsurile modelului pentru a se alinia îndeaproape cu preferințele și așteptările umane.
OpenAI a oferit o ilustrare instructivă care explică metodologiile SFT și RLHF utilizate în InstructGPT. La fel ca și LLaMa 2, InstructGPT utilizează, de asemenea, aceste tehnici avansate de antrenare pentru a-și optimiza performanța modelului.
Etapa 1 din imaginea de mai jos se concentrează pe Fine-Tuning Supravegheat (SFT), în timp ce etapele ulterioare finalizează procesul de Învățare prin Întărire cu Feedback Uman (RLHF).
Fine-Tuning Supravegheat (SFT) este un proces specializat destinat optimizării unui model de limbaj mare pre-antrenat pentru o sarcină specifică de aval. În contrast cu metodele nesupervizate, care nu necesită validarea datelor, SFT utilizează un set de date pre-validat și etichetat.
În general, crearea acestor seturi de date este costisitoare și consumatoare de timp. Abordarea Llama 2 a fost calitatea în detrimentul cantității. Cu doar 27.540 de anotări, echipa Meta a atins niveluri de performanță competitive cu anotatorii umani. Acest lucru se aliniază bine cu studii recente care arată că chiar și seturi de date limitate, dar curate, pot conduce la rezultate de înaltă calitate.
În procesul SFT, modelul pre-antrenat este expus la un set de date etichetate, unde algoritmii de învățare supravegheată intră în joc. Greutățile interne ale modelului sunt recalibrate pe baza gradientelor calculate dintr-o funcție de pierdere specifică sarcinii. Această funcție de pierdere cuantifică discrepanțele dintre ieșirile anticipate ale modelului și etichetele reale de bază.
Acest proces de optimizare permite modelului să înțeleagă modelele complexe și nuanțele încorporate în setul de date etichetat. În consecință, modelul nu este doar un instrument generalizat, ci evoluează într-un activ specializat, priceput să execute sarcina țintă cu un grad ridicat de acuratețe.
Învățarea prin întărire este următoarea etapă, destinată să alinieze comportamentul modelului cu preferințele umane mai strâns.
Faza de ajustare a utilizat Învățarea prin Întărire cu Feedback Uman (RLHF), angajând tehnici precum Eșantionarea Importanței și Optimizarea Proximală a Politicii pentru a introduce zgomot algoritmic, evitând astfel optimele locale. Acest fine-tuning iterativ nu numai că a îmbunătățit modelul, dar a aliniat și ieșirile sale cu așteptările umane.
Llama 2-Chat a utilizat un protocol de comparație binară pentru a colecta date de preferință umană, marcând o tendință notabilă către abordări mai calitative. Această mecanismă a informat Modelele de Recompensă, care sunt ulterior utilizate pentru a ajusta modelul de inteligență conversațională.
Atenția Fantomă: Dialoguri Multi-Turn
Meta a introdus o funcție nouă, Atenția Fantomă (GAtt), care este destinată să îmbunătățească performanța Llama 2 în dialogurile multi-turn. Acest lucru rezolvă eficient problema persistentă a pierderii contextului în conversațiile continue. GAtt acționează ca o ancoră, legând instrucțiunile inițiale de toate mesajele ulterioare ale utilizatorului. În combinație cu tehnici de învățare prin întărire, ajută la producerea de răspunsuri consistente, relevante și aliniate cu utilizatorul pe dialoguri mai lungi.
De la Repozitorul Meta Git Utilizând download.sh
- Accesați Site-ul Meta: Navigați către site-ul oficial Llama 2 al Meta și faceți clic pe ‘Descărcați Modelul’
- Completați Detaliile: Citiți și acceptați termenii și condițiile pentru a continua.
- Confirmare prin E-mail: Odată ce formularul este trimis, veți primi un e-mail de la Meta cu un link pentru a descărca modelul de pe depozitul lor Git.
- Executați download.sh: Clonați depozitul Git și executați scriptul
download.sh. Acest script vă va solicita să vă autentificați utilizând o URL de la Meta care expiră în 24 de ore. Veți alege, de asemenea, dimensiunea modelului – 7B, 13B sau 70B.
De la Hugging
- Primirea E-mailului de Acceptare: După obținerea accesului de la Meta, mergeți la Hugging Face.
- Cererea de Acces: Alegeți modelul dvs. dorit și trimiteți o solicitare pentru a obține acces.
- Confirmare: Așteptați un e-mail de “acces acordat” în termen de 1-2 zile.
- Generarea de Tokenuri de Acces: Navigați la ‘Setări’ în contul dvs. Hugging Face pentru a crea tokenuri de acces.
Lansarea Transformers 4.31 este pe deplin compatibilă cu LLaMa 2 și deschide multe unelte și funcționalități în ecosistemul Hugging Face. De la scripturi de antrenare și inferență la cuantificarea cu 4 biți cu bitsandbytes și Fine-Tuning Eficient din Punct de Vedere al Parametrilor (PEFT), setul de unelte este extins. Pentru a începe, asigurați-vă că sunteți pe cea mai recentă lansare Transformers și conectați-vă la contul dvs. Hugging Face.
Iată un ghid simplificat pentru a rula inferența modelului LLaMa 2 într-un mediu Google Colab, utilizând un mediu de rulare GPU:
Instalarea Pachetului
<p>!pip install transformers !huggingface-cli login
Importarea Bibliotecilor Python Necesare
from transformers import AutoTokenizer import transformers import torch
Inițializarea Modelului și a Tokenizer-ului
În această etapă, specificați care model Llama 2 veți utiliza. Pentru acest ghid, vom utiliza meta-llama/Llama-2-7b-chat-hf.
model = "meta-llama/Llama-2-7b-chat-hf" tokenizer = AutoTokenizer.from_pretrained(model)
Configurarea Pipeline-ului
Utilizați pipeline-ul Hugging Face pentru generarea de text cu setări specifice:
pipeline = transformers.pipeline( "text-generation", model=model, torch_dtype=torch.float16, device_map="auto")
Generarea de Secvențe de Text
În final, rulați pipeline-ul și generați o secvență de text pe baza intrării dvs.:
sequences = pipeline(
'Cine sunt principalii contribuitori în domeniul inteligenței artificiale?\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"Rezultat: {seq['generated_text']}")
Interfața A16Z pentru LLaMa 2
Andreessen Horowitz (A16Z) a lansat recent o interfață de chatbot bazată pe Streamlit, special concepută pentru Llama 2. Găzduită pe GitHub, această interfață păstrează istoricul de conversație și oferă flexibilitatea de a selecta din multiple puncte finale API Llama 2 găzduite pe Replicate. Această proiectare centrată pe utilizator își propune să simplifice interacțiunile cu Llama 2, făcând-o un instrument ideal atât pentru dezvoltatori, cât și pentru utilizatorii finali. Pentru cei interesați să experimenteze acest lucru, există un demo live disponibil la Llama2.ai.
Llama 2: Ce o diferită de modelele GPT și de predecesorul său Llama 1?
Varietate în Scara
În contrast cu multe modele de limbaj care oferă o scalabilitate limitată, Llama 2 oferă o varietate de opțiuni pentru modele cu parametri variați. Modelul se extinde de la 7 miliarde la 70 de miliarde de parametri, oferind astfel o gamă de configurații care pot satisface diverse nevoi computaționale.
Lungimea Contextului Îmbunătățită
Modelul are o lungime de context de 4K de tokeni, mai mare decât Llama 1. Acest lucru îi permite să rețină mai multă informație, îmbunătățind astfel capacitatea sa de a înțelege și genera conținut mai complex și extins.
Atenția Grupată la Interogare (GQA)
Arhitectura utilizează conceptul de GQA, conceput pentru a accelera procesul de calcul al atenției prin stocarea perechilor de tokeni precedente. Acest lucru îmbunătățește eficient scalabilitatea inferenței modelului, sporind astfel accesibilitatea.
Benchmark-uri de Performanță
Llama 2 a stabilit un nou standard în ceea ce privește metricile de performanță. Nu numai că își depășește predecesorul, Llama 1, dar oferă și o concurență semnificativă altor modele, cum ar fi Falcon și GPT-3.5.
Cel mai mare model Llama 2-Chat, modelul cu 70B, depășește ChatGPT în 36% din cazuri și egalizează performanța în alte 31,5% din cazuri. Sursa: Articol
Open Source: Puterea Comunității
Meta și Microsoft intenționează ca Llama 2 să fie mai mult decât un produs; îl văd ca un instrument condus de comunitate. Llama 2 este gratuit pentru acces atât pentru cercetare, cât și pentru scopuri non-comerciale. Scopul este de a democratiza capacitățile IA, făcându-le accesibile startup-urilor, cercetătorilor și afacerilor. Un paradigma open-source permite “depanarea comunitară” a modelului. Dezvoltatorii și eticienii IA pot testa, identifica vulnerabilități și oferi soluții la un ritm accelerat.
Deși termenii de licență pentru LLaMa 2 sunt, în general, permissivi, excepții există. Mari întreprinderi cu peste 700 de milioane de utilizatori lunar, cum ar fi Google, necesită o autorizație explicită de la Meta pentru utilizarea sa. De asemenea, licența interzice utilizarea LLaMa 2 pentru îmbunătățirea altor modele de limbaj.
Provocări Actuale cu Llama 2
- Generalizarea Datelor: Atât Llama 2, cât și GPT-4, au uneori dificultăți în a oferi o performanță uniform ridicată în sarcini diverse. Calitatea și diversitatea datelor sunt la fel de importante ca și volumul în aceste scenarii.
- Transparența Modelului: Având în vedere eșecurile anterioare ale IA în a produce ieșiri înșelătoare, explorarea raționamentului decizional din spatele acestor modele complexe este esențială.
Code Llama – Lansarea Cel Mai Recentă a Meta
Meta a anunțat recent Code Llama, care este un model de limbaj mare specializat în programare, cu dimensiuni de parametri variind de la 7B la 34B. Asemănător ChatGPT Code Interpreter; Code Llama poate simplifica fluxurile de lucru ale dezvoltatorilor și face programarea mai accesibilă. Acesta vine în variante specializate, cum ar fi Code Llama–Python pentru sarcini specifice Python. Modelul oferă, de asemenea, diferite niveluri de performanță pentru a satisface cerințe de latență diverse. Fiind deschis, Code Llama invită la contribuții comunitare pentru îmbunătățirea continuă.
https://about.fb.com/news/2023/08/code-llama-ai-for-coding/
Concluzie
Acest articol v-a condus prin procesul de configurare a unui model Llama 2 pentru generarea de text pe Google Colab, cu suport Hugging Face. Performanța Llama 2 este alimentată de o serie de tehnici avansate, de la arhitecturi transformatorice auto-regresive la Învățarea prin Întărire cu Feedback Uman (RLHF). Cu până la 70 de miliarde de parametri și caracteristici precum Atenția Fantomă, acest model depășește standardele actuale ale industriei în anumite domenii și, cu natura sa deschisă, deschide calea către o nouă eră în înțelegerea limbajului natural și inteligența artificială generativă.

















