AI-modellen en platforms

Llama 2: Een diepe duik in de open-source uitdager van ChatGPT

mm
Voeg Unite.AI toe aan je voorkeursbronnen op Google

Grote taalmodellen (LLM’s) die complexe redeneertaken kunnen uitvoeren, hebben hun waarde bewezen in gespecialiseerde domeinen zoals programmeren en creatief schrijven. Echter, de wereld van LLM’s is niet alleen een kwestie van plug-and-play; er zijn uitdagingen op het gebied van gebruiksvriendelijkheid, veiligheid en computationele eisen. In dit artikel zullen we diep duiken in de mogelijkheden van Llama 2, terwijl we een gedetailleerde walkthrough bieden voor het opzetten van deze high-performing LLM via Hugging Face en T4 GPU’s op Google Colab.

Ontwikkeld door Meta in samenwerking met Microsoft (MSFT ), heeft dit open-source grote taalmodel als doel om de grenzen van generatieve AI en natuurlijke taalverwerking te herschrijven. Llama 2 is niet zomaar een statistisch model getraind op terabytes aan data; het is een belichaming van een filosofie. Een filosofie die de nadruk legt op een open-source benadering als de ruggengraat van AI-ontwikkeling, met name in de ruimte van generatieve AI.

Llama 2 en zijn dialoog-geoptimaliseerde vervanger, Llama 2-Chat, zijn uitgerust met maximaal 70 miljard parameters. Ze ondergaan een fijnafstelling die ontworpen is om ze nauw te laten aansluiten bij menselijke voorkeuren, waardoor ze veiliger en effectiever zijn dan veel andere openbaar beschikbare modellen. Dit niveau van granulariteit in fijnafstelling wordt vaak voorbehouden aan gesloten “product” LLM’s, zoals ChatGPT en BARD, die niet algemeen beschikbaar zijn voor openbare controle of aanpassing.

Technische diepe duik in Llama 2

Voor het trainen van het Llama 2-model; net als zijn voorgangers, gebruikt het een auto-regressieve transformatorarchitectuur, voorgetraind op een uitgebreid corpus van zelf-supervised data. Echter, het voegt een extra laag van sofisticatie toe door het gebruik van Versterking van het leren met menselijke feedback (RLHF) om beter aan te sluiten bij menselijk gedrag en voorkeuren. Dit is computationeel duur, maar essentieel voor het verbeteren van de veiligheid en effectiviteit van het model.

Meta Llama 2 trainingsarchitectuur

Meta Llama 2 trainingsarchitectuur

Pretraining & Data Efficiency

Llama 2’s fundamentele innovatie ligt in zijn pretrainingregime. Het model neemt aanwijzingen van zijn voorganger, Llama 1, maar voegt verschillende cruciale verbeteringen toe om zijn prestaties te verhogen. Notabel is een toename van 40% in het totale aantal getrainde tokens en een verdubbeling van de contextlengte. Bovendien maakt het model gebruik van gegroepeerde vraag-aandacht (GQA) om de inferentie-schaalbaarheid te verhogen.

Gesuperviseerde fijnafstelling (SFT) & Versterking van het leren met menselijke feedback (RLHF)

Llama-2-Chat is grondig gefinetuned met behulp van zowel SFT als RLHF. In deze context fungeert SFT als een integraal onderdeel van het RLHF-kader, waarbij de modelleresponsen worden verfijnd om nauw aan te sluiten bij menselijke voorkeuren en verwachtingen.

OpenAI heeft een verhelderende illustratie geboden die de SFT- en RLHF-methodologieën uitlegt die worden gebruikt in InstructGPT. Net als LLaMa 2 maakt InstructGPT gebruik van deze geavanceerde trainingsmethoden om de prestaties van het model te optimaliseren.

Stap 1 in de onderstaande afbeelding richt zich op Gesuperviseerde fijnafstelling (SFT), terwijl de daaropvolgende stappen het proces van Versterking van het leren met menselijke feedback (RLHF) voltooien.

Gesuperviseerde fijnafstelling (SFT) is een gespecialiseerd proces dat gericht is op het optimaliseren van een voorgetraind Groot Taalmodel (LLM) voor een specifieke downstream-taak. In tegenstelling tot onge-superviseerde methoden, die geen gegevensvalidatie vereisen, maakt SFT gebruik van een dataset die vooraf is gevalideerd en gelabeld.

Over het algemeen is het creëren van deze datasets kostbaar en tijdrovend. De aanpak van Llama 2 was kwaliteit boven kwantiteit. Met slechts 27.540 annotaties bereikte het team van Meta prestatieniveaus die concurrerend zijn met die van menselijke annotators. Dit komt overeen met recente studies die aantonen dat zelfs beperkte maar schone datasets hoge kwaliteitresultaten kunnen opleveren.

In het SFT-proces wordt het voorgetrainde LLM blootgesteld aan een gelabelde dataset, waarbij de gesuperviseerde leer-algoritmen in actie komen. De interne gewichten van het model worden opnieuw ingesteld op basis van gradients die zijn berekend uit een taak-specifieke verliesfunctie. Deze verliesfunctie kwantificeert de afwijkingen tussen de voorspelde uitvoer van het model en de werkelijke grondwaarheidslabels.

Deze optimalisatie stelt het LLM in staat om de ingewikkelde patronen en nuances te begrijpen die zijn ingebed in de gelabelde dataset. Als gevolg daarvan evolueert het model van een generalistisch instrument naar een gespecialiseerd actief, dat in staat is om de doeltaak met een hoge mate van nauwkeurigheid uit te voeren.

Versterking van het leren is de volgende stap, gericht op het nog beter afstemmen van het modelgedrag op menselijke voorkeuren.

De fijnafstelling maakte gebruik van Versterking van het leren met menselijke feedback (RLHF), waarbij technieken zoals Importance Sampling en Proximale Policy-optimalisatie werden gebruikt om algoritme-ruis in te voeren, waardoor lokale optima werden vermeden. Deze iteratieve fijnafstelling verbeterde niet alleen het model, maar aligneerde ook de uitvoer met menselijke verwachtingen.

De Llama 2-Chat gebruikte een binair vergelijkingsprotocol om menselijke voorkeursgegevens te verzamelen, wat een opvallende trend naar meer kwalitatieve benaderingen markeert. Dit mechanisme informeerde de Beloningsmodellen, die vervolgens werden gebruikt om het conversatie-AI-model te fijn te tunen.

Ghost Attention: Multi-Turn Dialogen

Meta introduceerde een nieuwe functie, Ghost Attention (GAtt), die is ontworpen om de prestaties van Llama 2 in multi-turn dialogen te verbeteren. Dit lost effectief het aanhoudende probleem van contextverlies in lopende conversaties op. GAtt fungeert als een anker, dat de initiële instructies koppelt aan alle daaropvolgende gebruikersberichten. In combinatie met versterking van het leren-technieken, helpt het bij het produceren van consistente, relevante en gebruikersgerichte antwoorden over langere dialogen.

Vanuit Meta Git Repository met download.sh

  1. Bezoek de Meta-website: Navigeer naar Meta’s officiële Llama 2-site en klik op ‘Download The Model’
  2. Vul de details in: Lees de voorwaarden en condities door en accepteer ze om door te gaan.
  3. E-mailbevestiging: Zodra het formulier is ingediend, ontvangt u een e-mail van Meta met een link om het model te downloaden van hun Git-repository.
  4. Voer download.sh uit: Kloon het Git-repository en voer het download.sh-script uit. Dit script zal u om authenticatie vragen met een URL van Meta die binnen 24 uur verloopt. U kunt ook kiezen voor de grootte van het model – 7B, 13B of 70B.

Vanuit Hugging

  1. Ontvang acceptatie-e-mail: Nadat u toegang heeft verkregen van Meta, gaat u naar Hugging Face.
  2. Verzoek toegang: Kies uw gewenste model en dien een verzoek in om toegang te verkrijgen.
  3. Bevestiging: Verwacht een ‘toegang verleend’-e-mail binnen 1-2 dagen.
  4. Genereer toegangstokens: Navigeer naar ‘Instellingen’ in uw Hugging Face-account om toegangstokens te maken.

Transformers 4.31-release is volledig compatibel met LLaMa 2 en biedt veel tools en functionaliteiten binnen het Hugging Face-ecosysteem. Van trainings- en inferentiescripts tot 4-bit-quantificatie met bitsandbytes en Parameter Efficient Fine-tuning (PEFT), het toolkit is uitgebreid. Om te beginnen, zorg ervoor dat u de laatste Transformers-release gebruikt en bent aangemeld bij uw Hugging Face-account.

Hier is een gestroomlijnde gids voor het uitvoeren van LLaMa 2-modelinference in een Google Colab-omgeving, met behulp van een GPU-runtime:

Google Colab Model - T4 GPU

Google Colab Model – T4 GPU

 

 

 

 

 

 

Pakketinstallatie


<p>!pip install transformers
!huggingface-cli login

Importeer de benodigde Python-bibliotheken.

from transformers import AutoTokenizer
import transformers
import torch

Initialiseer het Model en Tokenizer

In deze stap specificeert u welk Llama 2-model u gaat gebruiken. Voor deze gids gebruiken we meta-llama/Llama-2-7b-chat-hf.

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

Stel de Pipeline in

Gebruik de Hugging Face-pipeline voor tekstgeneratie met specifieke instellingen:

pipeline = transformers.pipeline(
"tekstgeneratie",
model=model,
torch_dtype=torch.float16,
device_map="auto")

Genereer Tekstsequenties

Ten slotte, voer de pipeline uit en genereer een tekstsequentie op basis van uw invoer:

sequences = pipeline(
'Wie zijn de sleutelbijdragers aan het veld van kunstmatige intelligentie?\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"Resultaat: {seq['generated_text']}")

A16Z’s UI voor LLaMa 2

Andreessen Horowitz (A16Z) heeft onlangs een state-of-the-art Streamlit-gebaseerde chatbot-interface gelanceerd, speciaal ontworpen voor Llama 2. Gehost op GitHub, bewaart deze UI de sessiegespreksgeschiedenis en biedt ook de flexibiliteit om te kiezen uit meerdere Llama 2-API-eindpunten die worden gehost op Replicate. Deze gebruikersgerichte ontwerp streeft ernaar om interacties met Llama 2 te vereenvoudigen, waardoor het een ideale tool is voor zowel ontwikkelaars als eindgebruikers. Voor diegenen die geïnteresseerd zijn om dit te ervaren, is er een live demo beschikbaar op Llama2.ai.

Llama 2: Wat maakt het anders dan GPT-modellen en zijn voorganger Llama 1?

Variëteit in schaal

In tegenstelling tot veel taalmodellen die alleen beperkte schaalbaarheid bieden, biedt Llama 2 een reeks van verschillende opties voor modellen met variabele parameters. Het model schaalt van 7 miljard tot 70 miljard parameters, waardoor het een reeks configuraties biedt om te voldoen aan diverse computationele behoeften.

Verbeterde contextlengte

Het model heeft een verhoogde contextlengte van 4K tokens ten opzichte van Llama 1. Dit stelt het in staat om meer informatie te behouden, waardoor het beter in staat is om complexe en uitgebreide inhoud te begrijpen en te genereren.

Gegroepeerde vraag-aandacht (GQA)

De architectuur maakt gebruik van het concept van GQA, ontworpen om de aandachtberekening te versnellen door eerder tokenparen te cachen. Dit verbetert effectief de inferentie-schaalbaarheid van het model, waardoor het toegankelijker wordt.

Prestatiebenchmarks

Vergelijkende prestatieanalyse van Llama 2-Chat-modellen met ChatGPT en andere concurrenten

Prestatieanalyse van Llama 2-Chat-modellen met ChatGPT en andere concurrenten

LLama 2 heeft een nieuwe standaard gezet in prestatieparameters. Het presteert niet alleen beter dan zijn voorganger, LLama 1, maar biedt ook significante concurrentie aan andere modellen zoals Falcon en GPT-3.5.

Llama 2-Chat’s grootste model, de 70B, presteert ook beter dan ChatGPT in 36% van de gevallen en komt overeen in 31,5% van de gevallen. Bron: Paper

Open Source: De kracht van de gemeenschap

Meta en Microsoft bedoelen dat Llama 2 meer is dan alleen een product; ze zien het als een gemeenschapsgericht instrument. Llama 2 is gratis toegankelijk voor zowel onderzoek als niet-commerciële doeleinden. Ze streven ernaar om AI-mogelijkheden te democratiseren, waardoor het toegankelijk wordt voor startups, onderzoekers en bedrijven. Een open-source-paradigma maakt het mogelijk om het model te testen, kwetsbaarheden te identificeren en oplossingen aan te bieden op een versnelde manier.

Hoewel de licentievoorwaarden voor LLaMa 2 over het algemeen permissief zijn, bestaan er uitzonderingen. Grote ondernemingen met meer dan 700 miljoen maandelijkse gebruikers, zoals Google, vereisen expliciete toestemming van Meta voor gebruik. Bovendien verbiedt de licentie het gebruik van LLaMa 2 voor het verbeteren van andere taalmodellen.

Huidige uitdagingen met Llama 2

  1. Gegevensgeneralisatie: Zowel Llama 2 als GPT-4 kunnen soms falen in uniform hoge prestaties over uiteenlopende taken. Gegevenskwaliteit en diversiteit zijn net zo belangrijk als volume in deze scenario’s.
  2. Modeltransparantie: Gezien eerdere tegenslagen met AI die misleidende uitvoer produceert, is het verkennen van de beslissingslogica achter deze complexe modellen van cruciaal belang.

Code Llama – Meta’s laatste lancering

Meta heeft onlangs Code Llama aangekondigd, een groot taalmodel gespecialiseerd in programmeren met parameters van 7B tot 34B. Vergelijkbaar met ChatGPT Code Interpreter; Code Llama kan ontwikkelaarsworkflows stroomlijnen en programmeren toegankelijker maken. Het ondersteunt verschillende programmeertalen en komt in gespecialiseerde varianten, zoals Code Llama-Python voor Python-specifieke taken. Het model biedt ook verschillende prestatieniveaus om te voldoen aan diverse latentievereisten. Openlijk gelicenceerd, nodigt Code Llama de gemeenschap uit om bij te dragen aan de voortdurende verbetering.

https://about.fb.com/news/2023/08/code-llama-ai-for-coding/

Conclusie

Dit artikel heeft u meegenomen door het opzetten van een Llama 2-model voor tekstgeneratie op Google Colab met Hugging Face-ondersteuning. Llama 2’s prestaties worden aangedreven door een reeks geavanceerde technieken, van auto-regressieve transformatorarchitecturen tot Versterking van het leren met menselijke feedback (RLHF). Met maximaal 70 miljard parameters en functies zoals Ghost Attention, presteert dit model beter dan de huidige industrienormen in bepaalde gebieden, en met zijn open karakter, baant het de weg voor een nieuwe era in natuurlijke taalverwerking en generatieve AI.

Ik heb de afgelopen vijf jaar doorgebracht met het onderdompelen van mezelf in de fascinerende wereld van Machine Learning en Deep Learning. Mijn passie en expertise hebben me geleid om bij te dragen aan meer dan 50 diverse software-engineeringprojecten, met een bijzondere focus op AI/ML. Mijn voortdurende nieuwsgierigheid heeft me ook aangetrokken tot Natural Language Processing, een vakgebied dat ik graag verder wil verkennen.