Artificiell intelligens
Llama 2: En djupdykning i den öppen källkodsutmanaren till ChatGPT

Stora språkmodeller (LLM) som kan utföra komplexa resonemangsuppgifter har visat löfte i specialiserade områden som programmering och kreativt skrivande. Men världen av LLM är inte bara en plug-and-play-paradis; det finns utmaningar i användbarhet, säkerhet och beräkningskrav. I den här artikeln kommer vi att dyka djupt i Llama 2:s förmågor, samtidigt som vi ger en detaljerad genomgång av hur man ställer in den här högpresterande LLM via Hugging Face och T4 GPU:er på Google Colab.
Utvecklad av Meta i samarbete med Microsoft, syftar den här öppen källkods-stora språkmodellen till att omdefiniera generativ AI och naturligt språkförståelse. Llama 2 är inte bara en annan statistisk modell som tränats på terabyte data; det är en inkarnation av en filosofi. En som betonar en öppen källkods-approach som ryggraden i AI-utveckling, särskilt inom generativ AI-området.
Llama 2 och dess dialog-optimerade substitut, Llama 2-Chat, kommer utrustade med upp till 70 miljarder parametrar. De genomgår en finjusteringsprocess som är utformad för att bringa dem i nära överensstämmelse med mänskliga preferenser, vilket gör dem både säkrare och mer effektiva än många andra offentligt tillgängliga modeller. Denna nivå av granularitet i finjustering är ofta förbehållen stängda “produkt”-LLM, såsom ChatGPT och BARD, som inte generellt är tillgängliga för offentlig granskning eller anpassning.
Teknisk djupdykning av Llama 2
För att träna Llama 2-modellen; likt dess föregångare, använder den en auto-regressiv transformatorarkitektur, förtränad på en omfattande korpus av självständigt övervakad data. Men den lägger till en ytterligare nivå av sofistikering genom att använda förstärkt inlärning med mänsklig återkoppling (RLHF) för att bättre anpassa sig till mänskligt beteende och preferenser. Detta är beräkningsmässigt dyrt men avgörande för att förbättra modellens säkerhet och effektivitet.
Pretraining & DataEffektivitet
Llama 2:s grundläggande innovation ligger i dess förträningsregim. Modellen tar ledtrådar från sin föregångare, Llama 1, men introducerar flera avgörande förbättringar för att höja dess prestanda. Framför allt en 40% ökning av det totala antalet token som tränats och en fördubbling av kontextlängden sticker ut. Dessutom utnyttjar modellen grupperad frågeuppmärksamhet (GQA) för att förstärka inferensskalbarhet.
Övervakad finjustering (SFT) & Förstärkt inlärning med mänsklig återkoppling (RLHF)
Llama-2-Chat har noggrant finjusterats med hjälp av både SFT och förstärkt inlärning med mänsklig återkoppling (RLHF). I det här sammanhanget fungerar SFT som en integrerad komponent i RLHF-ramverket, för att finslipa modellens svar för att bringa dem i nära överensstämmelse med mänskliga preferenser och förväntningar.
OpenAI har tillhandahållit en insiktsfull illustration som förklarar SFT- och RLHF-metoderna som används i InstructGPT. Liksom LLaMa 2 använder InstructGPT också dessa avancerade träningsmetoder för att optimera modellens prestanda.
Steg 1 i den nedan bilderna fokuserar på övervakad finjustering (SFT), medan de efterföljande stegen slutför förstärkt inlärningsprocessen med mänsklig återkoppling (RLHF).
Övervakad finjustering (SFT) är en specialiserad process som syftar till att optimera en förtränad stor språkmodell (LLM) för en specifik nedströmsuppgift. Till skillnad från oövervakade metoder, som inte kräver datavalidering, använder SFT en dataset som har förvaliderats och märkts.
Allmänt sett är det dyrt och tidskrävande att skapa dessa dataset. Llama 2:s tillvägagångssätt var kvalitet före kvantitet. Med bara 27 540 annoteringar uppnådde Metas team prestandanivåer som är konkurrenskraftiga med mänskliga annotatorer. Detta stämmer väl överens med nya studier som visar att även begränsade men rena dataset kan driva högkvalitativa resultat.
I SFT-processen exponeras den förtränade LLM för en märkt dataset, där de övervakade inlärningsalgoritmerna kommer in i spel. Modellens interna vikter justeras baserat på gradienter beräknade från en uppgiftsspecifik förlustfunktion. Denna förlustfunktion kvantifierar diskrepanserna mellan modellens förutsagda utdata och de faktiska grund-sanningsetiketterna.
Denna optimering tillåter LLM att greppa de intrikata mönster och nyanser som är inbäddade i den märkta dataseten. Följaktligen utvecklas modellen från att vara ett generaliserat verktyg till att bli ett specialiserat tillgång, skickligt på att utföra måluppgiften med hög grad av precision.
Förstärkt inlärning är nästa steg, som syftar till att bringa modellens beteende i närmare överensstämmelse med mänskliga preferenser.
Finjusteringsfasen utnyttjade förstärkt inlärning med mänsklig återkoppling (RLHF), som använder tekniker som viktningssampling och proximal policyoptimering för att införa algoritmiskt brus, och därmed undvika lokala optima. Denna iterativa finjustering inte bara förbättrade modellen utan också anpassade dess utdata till mänskliga förväntningar.
Llama 2-Chat använde en binär jämförelseprotokoll för att samla in mänsklig preferensdata, vilket markerar en betydande trend mot mer kvalitativa tillvägagångssätt. Denna mekanism informerade belöningsmodellerna, som sedan användes för att finjustera konversations-AI-modellen.
Spökuppmärksamhet: Multi-turn dialoger
Meta introducerade en ny funktion, Spökuppmärksamhet (GAtt), som är utformad för att förbättra Llama 2:s prestanda i multi-turn dialoger. Detta löser effektivt den bestående frågan om kontextförlust i pågående samtal. GAtt fungerar som en ankare, som länkar de initiala instruktionerna till alla efterföljande användarmeddelanden. I kombination med förstärkt inlärningstekniker hjälper det till att producera konsekventa, relevanta och användar-anpassade svar över längre dialoger.
Från Meta Git Repository med hjälp av download.sh
- Besök Meta-webbplatsen: Navigera till Metas officiella Llama 2-webbplats och klicka på ‘Ladda ner modellen’
- Fyll i detaljerna: Läs igenom och godkänn villkoren för att fortsätta.
- E-postbekräftelse: När formuläret har skickats in, kommer du att få ett e-postmeddelande från Meta med en länk för att ladda ner modellen från deras Git-repository.
- Kör download.sh: Klona Git-repositoriet och kör
download.sh-skriptet. Detta skript kommer att be dig att autentisera med en URL från Meta som upphör att gälla efter 24 timmar. Du kommer också att välja modellens storlek – 7B, 13B eller 70B.
Från Hugging Face
- Motta godkännande-e-post: Efter att ha fått tillgång från Meta, gå till Hugging Face.
- Begär tillgång: Välj din önskade modell och skicka in en begäran om att få tillgång.
- Bekräftelse: Förvänta dig ett ’tillgång beviljad’-e-post inom 1-2 dagar.
- Generera åtkomsttoken: Navigera till ‘Inställningar’ i din Hugging Face-konto för att skapa åtkomsttoken.
Transformers 4.31-utgåvan är fullt kompatibel med LLaMa 2 och öppnar upp många verktyg och funktioner inom Hugging Face-ekosystemet. Från tränings- och inferensskript till 4-bitars kvantisering med bitsandbytes och parameter-effektiv finjustering (PEFT), är verktyget omfattande. För att komma igång, se till att du är på den senaste Transformers-utgåvan och inloggad på ditt Hugging Face-konto.
Här är en strömlinjeformad guide för att köra LLaMa 2-modellinferens i en Google Colab-miljö, som utnyttjar en GPU-körning:
Paketinstallation
!pip install transformers !huggingface-cli login
Importera nödvändiga Python-bibliotek.
from transformers import AutoTokenizer import transformers import torch
Initiera modellen och tokenisatorn
I det här steget, specificera vilken Llama 2-modell du kommer att använda. För den här guiden, använder vi meta-llama/Llama-2-7b-chat-hf.
model = "meta-llama/Llama-2-7b-chat-hf" tokenizer = AutoTokenizer.from_pretrained(model)
Konfigurera pipelinen
Utnyttja Hugging Face-pipelinen för textgenerering med specifika inställningar:
pipeline = transformers.pipeline( "text-generation", model=model, torch_dtype=torch.float16, device_map="auto")
Generera textsekvenser
Slutligen, kör pipelinen och generera en textsekvens baserat på din indata:
sequences = pipeline(
'Vem är de viktigaste bidragsgivarna till området artificiell intelligens?\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"Resultat: {seq['generated_text']}")
A16Z:s UI för LLaMa 2
Andreessen Horowitz (A16Z) har nyligen lanserat ett banbrytande Streamlit-baserat chatbot-gränssnitt som är anpassat för Llama 2. Värd på GitHub, bevarar det här gränssnittet sessionschatt-historik och erbjuder också flexibiliteten att välja mellan flera Llama 2 API-slutpunkter som är värd på Replicate. Detta användarcentrerade designmål är att förenkla interaktioner med Llama 2, vilket gör det till ett idealiskt verktyg för både utvecklare och slutanvändare. För de som är intresserade av att uppleva detta, finns en live-demo tillgänglig på Llama2.ai.
Llama 2: Vad gör det annorlunda från GPT-modeller och dess föregångare Llama 1?
Variation i skala
Till skillnad från många språkmodeller som erbjuder begränsad skalbarhet, ger Llama 2 dig en mängd olika alternativ för modeller med varierande parametrar. Modellen skalar från 7 miljarder till 70 miljarder parametrar, vilket erbjuder en rad konfigurationer som passar olika beräkningsbehov.
Förbättrad kontextlängd
Modellen har en ökad kontextlängd på 4K token jämfört med Llama 1. Detta tillåter den att behålla mer information, vilket förbättrar dess förmåga att förstå och generera mer komplex och omfattande innehåll.
Grupperad frågeuppmärksamhet (GQA)
Arkitekturen använder konceptet GQA, som är utformad för att påskynda uppmärksamhetsberäkningen genom att cacha tidigare tokenpar. Detta förbättrar modellens inferensskalbarhet och ökar tillgängligheten.
Prestandabenchmark
LLama 2 har satt en ny standard i prestandamätningar. Den inte bara överträffar sin föregångare, LLama 1, utan erbjuder också betydande konkurrens till andra modeller som Falcon och GPT-3.5.
Llama 2-Chats största modell, 70B, överträffar också ChatGPT i 36% av fallen och matchar prestanda i ytterligare 31,5% av fallen. Källa: Papper
Öppen källkod: Kraften i gemenskapen
Meta och Microsoft avser att Llama 2 ska vara mer än bara en produkt; de ser det som ett gemenskapsdrivet verktyg. Llama 2 är fritt att komma åt för både forskning och icke-kommersiella ändamål. De syftar till att demokratisera AI-förmågor, vilket gör det tillgängligt för start-ups, forskare och företag. En öppen källkods-paradigm tillåter “crowdsourced felsökning” av modellen. Utvecklare och AI-etiker kan stressa testa, identifiera sårbarheter och erbjuda lösningar i en accelererad takt.
Medan licensvillkoren för LLaMa 2 är generellt sett tillåtande, undantag finns. Stora företag med över 700 miljoner månatliga användare, som Google, kräver uttrycklig auktorisering från Meta för dess användning. Dessutom förbjuder licensen användningen av LLaMa 2 för att förbättra andra språkmodeller.
Aktuella utmaningar med Llama 2
- Data generalisering: Både Llama 2 och GPT-4 kan ibland brista i enhetligt hög prestanda över olika uppgifter. Datakvalitet och diversitet är lika viktiga som volym i dessa scenarier.
- Modelltransparens: Med tanke på tidigare bakslag med AI som producerar vilseledande utdata, är det viktigt att utforska det underliggande resonemanget bakom dessa komplexa modeller.
Code Llama – Metas senaste lansering
Meta har nyligen tillkännagett Code Llama, som är en stor språkmodell specialiserad på programmering med parameterstorlekar som sträcker sig från 7B till 34B. Liksom ChatGPT Code Interpreter; Code Llama kan strömlinjeforma utvecklars arbetsflöden och göra programmering mer tillgänglig. Den stöder olika programmeringsspråk och kommer i specialiserade varianter, såsom Code Llama-Python för Python-specifika uppgifter. Modellen erbjuder också olika prestandanivåer för att möta olika latenskrav. Öppet licensierad, inbjuder Code Llama till gemenskapsinmatning för kontinuerlig förbättring.
https://about.fb.com/news/2023/08/code-llama-ai-for-coding/
Slutsats
Den här artikeln har guidat dig genom att ställa in en Llama 2-modell för textgenerering på Google Colab med Hugging Face-stöd. Llama 2:s prestanda drivs av en mängd avancerade tekniker, från auto-regressiv transformatorarkitektur till förstärkt inlärning med mänsklig återkoppling (RLHF). Med upp till 70 miljarder parametrar och funktioner som Spökuppmärksamhet, överträffar den här modellen nuvarande branschstandarder i vissa områden, och med sin öppna natur, banar den väg för en ny era inom naturligt språkförståelse och generativ AI.

















