Conectează-te cu noi

Inteligența artificială

Llama 2: O scufundare profundă în Challenger-ul Open-Source pentru ChatGPT

mm
META LLAMA 2 LLM

Modele de limbaj mari Masteratele de drept (LLM) capabile de sarcini complexe de raționament s-au dovedit promițătoare în domenii specializate precum 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 de calcul. În acest articol, vom analiza în profunzime capacitățile... Lama 2, oferind în același timp o prezentare detaliată pentru configurarea acestui LLM de înaltă performanță prin Hugging Face și GPU-uri T4 pe Google Colab.

Dezvoltat de Meta în parteneriat cu Microsoft, acest model de limbaj open-source extins își propune să redefinească domeniile inteligenței artificiale generative și ale înțelegerii limbajului natural. Llama 2 nu este doar un alt model statistic antrenat pe terabytes de date; este o întruchipare a unei filozofii. Una care subliniază o abordare open-source ca coloană vertebrală a dezvoltării inteligenței artificiale, în special în spațiul inteligenței artificiale generative.

Llama 2 și înlocuitorul său optimizat pentru dialog, Llama 2-Chat, sunt echipate cu până la 70 de miliarde de parametri. Acestea sunt supuse unui proces de reglare fină, menită să le alinieze îndeaproape cu preferințele umane, făcându-le atât mai sigure și mai eficiente decât multe alte modele disponibile publicului. Acest nivel de granularitate în reglajul fin este adesea rezervat pentru LLM-uri „produse” închise, cum ar fi Chat GPT și BARD, care nu sunt în general disponibile pentru control public sau personalizare.

Scufundare tehnică adâncă a Llamei 2

Pentru antrenament modelul Llama 2; ca și predecesorii săi, folosește un auto-regresiv arhitectura transformatorului, pre-antrenat pe un corpus extins de date auto-supervizate. Cu toate acestea, adaugă un nivel suplimentar de sofisticare prin utilizarea învățării prin consolidare cu feedback uman (RLHF) pentru o aliniere mai bună la comportamentul și preferințele umane. Acest lucru este costisitor din punct de vedere computațional, dar vital pentru îmbunătățirea siguranței și eficacității modelului.

Arhitectura de antrenament Meta Llama 2

Arhitectura de antrenament Meta Llama 2

Preformare și eficiență a datelor

Inovația fundamentală a modelului Llama 2 constă în regimul său de pre-antrenament. Modelul se inspiră din predecesorul său, Llama 1, dar introduce câteva îmbunătățiri cruciale pentru a-i spori performanța. În special, se remarcă o creștere cu 40% a numărului total de token-uri antrenate și o dublare a lungimii contextului. Mai mult, modelul utilizează atenția la interogări grupate (GQA) pentru a amplifica scalabilitatea inferenței.

Ajustare fină supravegheată (SFT) și învățare prin consolidare cu feedback uman (RLHF)

Modelul Llama-2-chat a fost riguros ajustat folosind atât SFT, cât și Reinforcement Learning with Human Feedback (RLHF). În acest context, SFT servește drept componentă integrantă 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 relevantă care explică metodologiile SFT și RLHF utilizate în InstructGPT. La fel ca LLaMa 2, InstructGPT utilizează și aceste tehnici avansate de antrenament pentru a optimiza performanța modelului său.

Pasul 1 din imaginea de mai jos se concentrează pe reglarea fină supravegheată (SFT), în timp ce pașii următori completează procesul de învățare prin consolidare din feedback uman (RLHF).

Reglarea fină supervizată (SFT) este un proces specializat care vizează optimizarea unui model de limbaj mare (LLM) pre-antrenat pentru o sarcină specifică din aval. Spre deosebire de metodele nesupervizate, care nu necesită validarea datelor, SFT utilizează un set de date care a fost pre-validat și etichetat.

În general, crearea acestor seturi de date este costisitoare și consumatoare de timp. Abordarea Llama 2 a fost axată pe calitate în detrimentul cantității. Cu doar 27,540 de adnotări, echipa Meta a atins niveluri de performanță competitive cu cele ale adnotatorilor umani. Acest lucru se aliniază bine cu studii recente arătând că chiar și seturile de date limitate, dar curate, pot genera rezultate de înaltă calitate.

În procesul SFT, modelul LLM pre-antrenat este expus unui set de date etichetat, unde intră în joc algoritmii de învățare supravegheată. Ponderile interne ale modelului sunt recalibrate pe baza gradienților calculați dintr-o funcție de pierdere specifică sarcinii. Această funcție de pierdere cuantifică discrepanțele dintre rezultatele prezise de model și etichetele reale ale adevărului teren.

Această optimizare permite LLM să înțeleagă modelele și nuanțele complicate încorporate în setul de date etichetat. În consecință, modelul nu este doar un instrument generalizat, ci evoluează într-un activ specializat, abil în îndeplinirea sarcinii țintă cu un grad ridicat de acuratețe.

Învățarea prin întărire este următorul pas, care vizează alinierea mai strânsă a comportamentului modelului cu preferințele umane.

Faza de reglare a folosit învățarea prin consolidare din feedbackul uman (RLHF), folosind tehnici precum Eșantionarea importanței și Optimizarea politicii proximale pentru a introduce zgomot algoritmic, evitând astfel optimele locale. Această reglare fină iterativă nu numai că a îmbunătățit modelul, ci și-a aliniat rezultatul cu așteptările umane.

Llama 2-Chat a folosit un protocol de comparație binar pentru a colecta date despre preferințele umane, marcând o tendință notabilă către abordări mai calitative. Acest mecanism a informat modelele de recompensă, care sunt apoi folosite pentru a ajusta modelul AI conversațional.

Atenție fantomă: dialoguri cu mai multe ture

Meta a introdus o nouă funcție, Ghost Attention (GAtt), concepută pentru a îmbunătăți performanța Llama 2 în dialogurile cu mai multe ture. Aceasta rezolvă eficient problema persistentă a pierderii contextului în conversațiile în desfășurare. GAtt acționează ca o ancoră, legând instrucțiunile inițiale de toate mesajele ulterioare ale utilizatorului. Împreună cu tehnici de învățare prin consolidare, aceasta ajută la producerea de răspunsuri consecvente, relevante și aliniate utilizatorului pe parcursul dialogurilor mai lungi.

Din Depozitul Meta Git Folosind download.sh

  1. Vizitați site-ul Meta: Navigheaza catre Site-ul oficial Llama 2 al lui Meta și faceți clic pe „Descărcați modelul”
  2. Completați Detaliile: Citiți și acceptați termenii și condițiile pentru a continua.
  3. COnfirmare emailDupă ce formularul este trimis, veți primi un e-mail de la Meta cu un link pentru a descărca modelul din depozitul lor git.
  4. Executați download.sh: Clonează depozitul Git și execută download.sh scenariu. Acest script vă va solicita să vă autentificați folosind o adresă URL de la Meta care expiră în 24 de ore. Veți alege și dimensiunea modelului - 7B, 13B sau 70B.

De la Hugging Face

  1. Primiți e-mail de acceptare: După ce obțineți acces de la Meta, mergeți la Fata îmbrățișată.
  2. Cere acces: Alegeți modelul dorit și trimiteți o cerere de acordare a accesului.
  3. ConfirmareAșteptați-vă la un e-mail cu „acces acordat” în termen de 1-2 zile.
  4. Generați jetoane de accesNavigați la „Setări” în contul dvs. Hugging Face pentru a crea token-uri de acces.

Versiunea Transformers 4.31 este complet compatibilă cu LLaMa 2 și oferă numeroase instrumente și funcționalități în cadrul ecosistemului Hugging Face. De la scripturi de antrenament și inferență la cuantizare pe 4 biți cu bitsandbytes și reglare fină eficientă a parametrilor (PEFT), setul de instrumente este extins. Pentru a începe, asigurați-vă că aveți cea mai recentă versiune Transformers și că v-ați conectat la contul dvs. Hugging Face.

Iată un ghid simplificat pentru rularea inferenței modelului LLaMa 2 într-un google colab mediu, utilizând un timp de rulare GPU:

Model Google Colab - GPU T4

Model Google Colab – GPU T4

 

 

 

 

 

 

Instalarea pachetului

!pip install transformers
!huggingface-cli login

Importați bibliotecile Python necesare.

from transformers import AutoTokenizer
import transformers
import torch

Inițializați modelul și tokenizerul

În acest pas, specificați modelul Llama 2 pe care îl veți utiliza. Pentru acest ghid, folosim meta-llama/Llama-2-7b-chat-hf.

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

Configurați conducta

Utilizați canalul Hugging Face pentru generarea de text cu setări specifice:

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

Generați secvențe de text

În cele din urmă, rulați pipeline și generați o secvență de text bazată pe intrarea dvs.:

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']}")

Interfața utilizatorului A16Z pentru LLaMa 2

Andreessen Horowitz (A16Z) a lansat recent o interfață de chatbot de ultimă oră, bazată pe Streamlit, adaptată pentru Llama 2. Găzduită pe GitHub, această interfață de utilizare păstrează istoricul de chat al sesiunii și oferă, de asemenea, flexibilitatea de a selecta dintre mai multe puncte finale API Llama 2 găzduite pe replicate. Acest design centrat pe utilizator își propune să simplifice interacțiunile cu Llama 2, făcându-l un instrument ideal atât pentru dezvoltatori, cât și pentru utilizatorii finali. Pentru cei interesați să experimenteze acest lucru, o demonstrație live este disponibilă la Llama2.ai.

Llama 2: Ce îl face diferit de modelele GPT și de predecesorul său Llama 1?

Varietate la scară

Spre deosebire de multe modele lingvistice care oferă scalabilitate limitată, Llama 2 vă oferă o grămadă de opțiuni diferite pentru modele cu parametri variați. Modelul crește de la 7 la 70 de miliarde de parametri, oferind astfel o gamă de configurații pentru a se potrivi diverselor nevoi de calcul.

Lungimea contextului îmbunătățită

Modelul are o lungime de context mai mare de jetoane 4K decât Llama 1. Acest lucru îi permite să rețină mai multe informații, sporindu-și astfel capacitatea de a înțelege și de a genera conținut mai complex și mai extins.

Atenție la interogare grupată (GQA)

Arhitectura folosește conceptul de GQA, conceput pentru a accelera procesul de calcul al atenției prin memorarea în cache a perechilor de token-uri anterioare. Acest lucru îmbunătățește eficient scalabilitatea inferenței modelului pentru a spori accesibilitatea.

Benchmarks de performanță

Analiza comparativă a performanței modelelor Llama 2-Chat cu ChatGPT și alți concurenți

Analiza performanței modelelor Llama 2-Chat cu ChatGPT și alți concurenți

LLama 2 a stabilit un nou standard în metrica de performanță. Nu numai că îl depășește pe predecesorul său, LLama 1, dar oferă și o concurență semnificativă altor modele precum Falcon și GPT-3.5.

Cel mai mare model al Llama 2-Chat, 70B, depășește și ChatGPT în 36% din cazuri și egalează performanța în alte 31.5% din cazuri. Sursa: Hârtie

Sursă deschisă: Puterea comunității

Meta și Microsoft intenționează ca Llama 2 să fie mai mult decât un simplu produs; îl văd ca un instrument condus de comunitate. Accesul la Llama 2 este gratuit atât pentru cercetare, cât și în scopuri necomerciale. Cei doi își propun să democratizeze capacitățile inteligenței artificiale, făcându-le accesibile startup-urilor, cercetătorilor și companiilor. O paradigmă open-source permite „depanarea prin crowdsourced” a modelului. Dezvoltatorii și specialiștii în etică a inteligenței artificiale pot testa stresul, identifica vulnerabilități și oferi soluții într-un ritm accelerat.

În timp ce termenii de licență pentru LLaMa 2 sunt în general permisivi, excepții exista. Întreprinderile mari cu peste 700 de milioane de utilizatori lunari, cum ar fi Google, necesită autorizare explicită din partea Meta pentru utilizarea sa. În plus, licența interzice utilizarea LLaMa 2 pentru îmbunătățirea altor modele de limbă.

Provocări curente cu Llama 2

  1. Generalizarea datelor: Atât Llama 2, cât și GPT-4 slăbesc uneori în performanțe uniform ridicate în sarcini divergente. Calitatea și diversitatea datelor sunt la fel de esențiale ca și volumul în aceste scenarii.
  2. Transparența modelului: Având în vedere eșecurile anterioare cu AI care produce rezultate înșelătoare, explorarea rațiunii de luare a deciziilor din spatele acestor modele complexe este esențială.

Code Llama – Cea mai recentă lansare a Meta

Meta a anunțat recent Cod Llama care este un model de limbaj mare specializat în programare cu dimensiuni ale parametrilor cuprinse între 7B și 34B. Similar cu Interpret de cod ChatGPT; Code Llama poate eficientiza fluxurile de lucru pentru dezvoltatori și poate face programarea mai accesibilă. Acesta găzduiește diverse limbaje de programare și vine în variante specializate, cum ar fi Code Llama–Python pentru sarcini specifice Python. Modelul oferă, de asemenea, diferite niveluri de performanță pentru a îndeplini diverse cerințe de latență. Licențiat în mod deschis, Code Llama invită comunitatea să contribuie la îmbunătățirea continuă.

Vă prezentăm Code Llama, un instrument AI pentru codificare

Concluzie

Acest articol v-a ghidat prin configurarea unui model Llama 2 pentru generarea de text pe Google Colab cu suport pentru Hugging Face. Performanța modelului Llama 2 este alimentată de o serie de tehnici avansate, de la arhitecturi de transformatoare auto-regresive la învățare prin consolidare cu feedback uman (RLHF). Cu până la 70 de miliarde de parametri și funcții precum Ghost Attention, acest model depășește standardele actuale ale industriei în anumite domenii și, prin natura sa deschisă, deschide calea pentru o nouă eră în înțelegerea limbajului natural și a inteligenței artificiale generative.

Mi-am petrecut ultimii cinci ani scufundându-mă în lumea fascinantă a învățării automate și a învățării profunde. Pasiunea și expertiza mea m-au determinat să contribui la peste 50 de proiecte diverse de inginerie software, cu un accent deosebit pe AI/ML. Curiozitatea mea continuă m-a atras și către Procesarea limbajului natural, un domeniu pe care sunt dornic să îl explorez în continuare.