Connect with us

Kunstmatige intelligentie

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

mm
META LLAMA 2 LLM

Grote taalmodellen (LLM’s) die in staat zijn om complexe redeneertaken uit te voeren, 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 gebruiksgemak, veiligheid en computationele eisen. In dit artikel zullen we dieper ingaan op de mogelijkheden van Llama 2, waarbij we een gedetailleerde handleiding bieden voor het instellen van deze high-performing LLM via Hugging Face en T4-GPU’s op Google Colab.

Ontwikkeld door Meta in samenwerking met Microsoft, heeft dit open-source grote taalmodel als doel om de grenzen van generatieve AI en natuurlijke taalbegrip 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 fine-tuningsproces dat is ontworpen om ze nauw te laten aansluiten bij menselijke voorkeuren, waardoor ze beiden veiliger en effectiever zijn dan veel andere openbaar beschikbare modellen. Dit niveau van granulariteit in fine-tuning 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 van Llama 2

Voor het trainen van het Llama 2-model; net als zijn voorgangers, gebruikt het een auto-regressieve transformatorarchitectuur, voorgetraind op een uitgebreide corpus van zelfsuperviserende 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 introduceert verschillende cruciale verbeteringen 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 query-aandacht (GQA) om de inferentie-schaalbaarheid te verhogen.

Gesuperviseerde fine-tuning (SFT) & Versterking van het leren met menselijke feedback (RLHF)

Llama-2-Chat is grondig gefinetuned met behulp van zowel SFT als Versterking van het leren met menselijke feedback (RLHF). In deze context fungeert SFT als een integraal onderdeel van het RLHF-kader, waarbij het model wordt gefinetuned om zijn antwoorden nauw te laten aansluiten 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 ook gebruik van deze geavanceerde trainingsmethoden om de prestaties van het model te optimaliseren.

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

Gesuperviseerde fine-tuning (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 ongesuperviseerde methoden, die geen gevalideerde data 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. Llama 2’s aanpak was kwaliteit boven kwantiteit. Met slechts 27.540 annotaties bereikte Meta’s team prestatieniveaus die concurrerend waren met die van menselijke annotators. Dit sluit aan bij 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 werking treden. De interne gewichten van het model worden opnieuw gekalibreerd op basis van gradients die zijn berekend uit een taak-specifieke verliesfunctie.

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

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

De finetuningsfase maakte gebruik van Versterking van het leren met menselijke feedback (RLHF), waarbij technieken zoals Importance Sampling en Proximale Policy-optimalisatie werden gebruikt om algoritmische ruis in te voeren, waardoor lokale optima werden vermeden. Deze iteratieve finetuning verbeterde niet alleen het model, maar zorgde er ook voor dat de uitvoer werd afgestemd op menselijke verwachtingen.

Llama 2-Chat maakte gebruik van een binaire vergelijkingprotocol om menselijke voorkeursdata 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 finetunen.

Ghost Aandacht: Multi-Turn Dialogen

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

Van Meta Git Repository met behulp van 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 verder 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.

Van Hugging Face

  1. Ontvang de acceptatie-e-mail: Nadat u toegang heeft verkregen van Meta, gaat u naar Hugging Face.
  2. Verzoek om toegang: Kies uw gewenste model en dien een verzoek in om toegang te verkrijgen.
  3. Bevestiging: U kunt een ‘toegang verleend’-e-mail verwachten 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 handleiding 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


!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, specificeer welk Llama 2-model u gaat gebruiken. Voor deze handleiding 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

Maak gebruik van 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:

sequenties = pipeline(
'Wie zijn de belangrijkste bijdragers 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 sequenties:
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 chatgeschiedenis van de sessie en biedt ook de flexibiliteit om te kiezen uit meerdere Llama 2-API-eindpunten die worden gehost op Replicate. Deze gebruikersgerichte ontwerp heeft als doel om interacties met Llama 2 te vereenvoudigen, waardoor het een ideaal instrument is voor zowel ontwikkelaars als eindgebruikers. Voor degenen die geïnteresseerd zijn om dit te ervaren, is een live demo beschikbaar op Llama2.ai.

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

Variatie in Schaal

In tegenstelling tot veel taalmodellen die een beperkte schaalbaarheid bieden, biedt Llama 2 een reeks 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 Query-aandacht (GQA)

De architectuur maakt gebruik van het concept van GQA, ontworpen om de aandachtsberekening 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 prestatiebenchmarks. Het presteert niet alleen beter dan zijn voorganger, LLama 1, maar biedt ook significante concurrentie voor 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 met de prestaties in nog eens 31,5% van de gevallen. Bron: Paper

Open Source: De Kracht van de Gemeenschap

Meta en Microsoft zijn van plan om Llama 2 meer te maken dan alleen een product; ze zien het als een community-gedreven instrument. Llama 2 is gratis toegankelijk voor zowel onderzoek als niet-commerciële doeleinden. Ze zijn gericht op het democratiseren van AI-mogelijkheden, waardoor het toegankelijk wordt voor start-ups, onderzoekers en bedrijven. Een open-source-paradigma stelt ontwikkelaars en AI-ethici in staat om het model te testen, kwetsbaarheden te identificeren en oplossingen aan te bieden in een versneld tempo.

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 autorisatie van Meta voor het gebruik ervan. Bovendien verbiedt de licentie het gebruik van LLaMa 2 voor de verbetering van andere taalmodellen.

Huidige Uitdagingen met Llama 2

  1. Gegevensgeneralisatie: Zowel Llama 2 als GPT-4 hebben soms moeite met een uniform hoog prestatieniveau 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 kondigde onlangs Code Llama aan, een groot taalmodel gespecialiseerd in programmeren met parameters van 7B tot 34B. Net als ChatGPT Code Interpreter; Code Llama kan ontwikkelaarsworkflows stroomlijnen en programmeren toegankelijker maken. Het ondersteunt verschillende programmeertalen en is beschikbaar in gespecialiseerde varianten, zoals Code Llama-Python voor Python-specifieke taken. Het model biedt ook verschillende prestatieniveaus om te voldoen aan diverse latentievereisten. Openly gelicentieerd, nodigt Code Llama de community 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 op een diepe duik in het instellen 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 Aandacht, presteert dit model beter dan de huidige industrienormen op bepaalde gebieden, en met zijn open aard, baant het de weg voor een nieuwe era in natuurlijke taalbegrip en generatieve AI.

Ik heb de afgelopen vijf jaar mezelf ondergedompeld 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 uiteenlopende 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.