AI-modeller og plattformer
Llama 2: En dyptgående analyse av den åpne kildekodsutfordreren til ChatGPT
Store språkmodeller (LLM) som kan utføre komplekse resoneringoppgaver har vist seg å være lovende i spesialiserte domener som programmering og kreativ skriving. Imidlertid er verden av LLM ikke bare en plug-and-play-paradise; det finnes utfordringer når det gjelder brukervennlighet, sikkerhet og beregningskrav. I denne artikkelen vil vi dykke dypt inn i kapasitetene til Llama 2, samtidig som vi gir en detaljert gjennomgang av hvordan man setter opp denne høytytende LLM via Hugging Face og T4-GPU på Google Colab.
Llama 2 er utviklet av Meta i samarbeid med Microsoft (MSFT ), og dette åpne kildekodsstore språkmodellen har som mål å omdefinere grensene for generativ AI og naturlig språkforståelse. Llama 2 er ikke bare en annen statistisk modell trent på terabyte med data; det er en inkarnasjon av en filosofi. En filosofi som legger vekt på en åpen kildekods-tilnærming som ryggraden i AI-utviklingen, spesielt i generativ AI-rommet.
Llama 2 og dens dialog-optimerte variant, Llama 2-Chat, kommer med opptil 70 milliarder parametre. De gjennomgår en finjusteringsprosess designet for å alignere dem tett med menneskelige preferanser, noe som gjør dem både tryggere og mer effektive enn mange andre offentlig tilgjengelige modeller. Dette nivået av granularitet i finjustering er ofte forbeholdt lukkede “produkt”-LLM, som ChatGPT og BARD, som ikke vanligvis er tilgjengelige for offentlig gjennomsyn eller tilpasning.
Teknisk dyptgående analyse av Llama 2
For å trene Llama 2-modellen; som forgjengerne, bruker den en auto-regressiv transformer-arkitektur, forhåndstrening på en omfattende korpus av selv-overvåket data. Imidlertid legger den til et ekstra lag av sofistikasjon ved å bruke Forsterkninglæring med menneskelig tilbakemelding (RLHF) for bedre å alignere med menneskelig atferd og preferanser. Dette er beregningskrevende, men avgjørende for å forbedre modellens sikkerhet og effektivitet.
Forhåndstrening og dataeffektivitet
Llama 2s grunnleggende innovasjon ligger i dens forhåndstreningregime. Modellen tar hint fra sin forgjenger, Llama 1, men introduserer flere avgjørende forbedringer for å heve dens ytelse. Notabelt, en 40% økning i det totale antallet tokens trent og en fordobling av kontekstlengden står ut. I tillegg utnytter modellen gruppe-spørsmål-oppmerksomhet (GQA) for å forbedre inferensskalabilitet.
Overvåket finjustering (SFT) og Forsterkninglæring med menneskelig tilbakemelding (RLHF)
Llama-2-Chat har blitt grundig finjustert ved hjelp av både SFT og Forsterkninglæring med menneskelig tilbakemelding (RLHF). I denne sammenhengen fungerer SFT som en integrert komponent i RLHF-rammeverket, og finjusterer modellens svar for å alignere tett med menneskelige preferanser og forventninger.
OpenAI har gitt en interessant illustrasjon som forklarer SFT- og RLHF-metodene som brukes i InstructGPT. Like som LLaMa 2, bruker InstructGPT også disse avanserte treningsteknikkene for å optimalisere modellens ytelse.
Steg 1 i bildet under fokuserer på Overvåket finjustering (SFT), mens de påfølgende stegene fullfører Forsterkninglæring fra menneskelig tilbakemelding (RLHF)-prosessen.
Overvåtet finjustering (SFT) er en spesialisert prosess rettet mot å optimalisere en forhåndstrening stor språkmodell (LLM) for en bestemt nedstrømsoppgave. I motsetning til uovervåkede metoder, som ikke krever datavalidering, bruker SFT en datasett som har blitt forhåndsgodkjent og merket.
Generelt er det kostbart og tidskrevende å lage disse datasettene. Llama 2s tilnærming var kvalitet over kvantitet. Med bare 27 540 annotasjoner klarte Metas team å oppnå ytelsesnivåer som konkurrerte med menneskelige annotatorer. Dette stemmer overens med nye studier som viser at selv begrensede, men rene datasett kan drive høykvalitetsresultater.
I SFT-prosessen blir den forhåndstrening LLM eksponert for en merket datasett, hvor de overvåkede læringsalgoritmene kommer inn i bildet. Modellens interne vekter justeres basert på grader beregnet fra en oppgave-spesifikk tap-funksjon. Denne tap-funksjonen kvantifiserer diskrepansene mellom modellens forutsagte utdata og de faktiske grunn-sannhetsmerkene.
Dette optimaliserer LLM til å gripe de intrikate mønstre og nyanser innbygget i den merkede datasett. Dermed er modellen ikke bare et generalisert verktøy, men utvikler seg til et spesialisert aktivum, dyktig til å utføre måloppgaven med høy nøyaktighet.
Forsterkninglæring er neste steg, rettet mot å alignere modellatferd med menneskelige preferanser nærmere.
Finjusteringsfasen utnyttet Forsterkninglæring fra menneskelig tilbakemelding (RLHF), og benyttet teknikker som Viktig sampling og Proximal Policy Optimalisering for å innføre algoritmisk støy, og dermed unngå lokale optima. Denne iterative finjustering ikke bare forbedret modellen, men også alignerte dens utdata med menneskelige forventninger.
Llama 2-Chat brukte en binær sammenligningsprotokoll for å samle inn menneskelig preferansedata, og markerer en merkbart trend mot mer kvalitative tilnærminger. Denne mekanismen informerte Belønningmodellene, som deretter ble brukt til å finjustere den konversasjonelle AI-modellen.
Spøkelsesoppmerksomhet: Flere vendinger i dialoger
Meta introduserte en ny funksjon, Spøkelsesoppmerksomhet (GAtt), som er designet for å forbedre Llama 2s ytelse i flere vendinger i dialoger. Dette løser effektivt den vedvarende problemstillingen med konteksttap i pågående samtaler. GAtt fungerer som en anker, som kobler de innledende instruksjonene til alle påfølgende brukerbeskjeder. Kombinert med forsterkningsteknikker, hjelper det med å produsere konsistente, relevante og bruker-orienterte svar over lengre dialoger.
Fra Meta Git-repository ved hjelp av download.sh
- Besøk Meta-nettstedet: Naviger til Metas offisielle Llama 2-side og klikk ‘Last ned modellen’
- Fyll ut detaljene: Les gjennom og godta vilkårene og betingelsene for å fortsette.
- E-postbekreftelse: Når skjemaet er sendt, vil du motta en e-post fra Meta med en lenke for å laste ned modellen fra deres Git-repository.
- Kjør download.sh: Klon Git-repository og kjør
download.sh-skriptet. Dette skriptet vil be deg om å autentisere ved hjelp av en URL fra Meta som utløper etter 24 timer. Du vil også kunne velge størrelsen på modellen – 7B, 13B eller 70B.
Fra Hugging
- Motta godkjennings-e-post: Etter å ha fått tilgang fra Meta, gå til Hugging Face.
- Be om tilgang: Velg den ønskede modellen og send en forespørsel om å få tilgang.
- Bekreftelse: Forvent en ’tilgang godkjent’-e-post innen 1-2 dager.
- Generer tilgangstokene: Naviger til ‘Innstillinger’ i din Hugging Face-konto for å opprette tilgangstokene.
Transformers 4.31-utgaven er fullt kompatibel med LLaMa 2 og åpner opp mange verktøy og funksjoner innen Hugging Face-økosystemet. Fra trening- og inferensskript til 4-bit-kvantifisering med bitsandbytes og parameter-effektiv finjustering (PEFT), er verktøysamlingen omfattende. For å komme i gang, sikre deg at du er på den siste Transformers-utgaven og logger inn på din Hugging Face-konto.
Her er en strømlinje-gjennomgang av å kjøre LLaMa 2-modellinference i en Google Colab-miljø, med en GPU-kjøretid:
Pakkeinstallasjon
<p>!pip install transformers !huggingface-cli login
Importer nødvendige Python-biblioteker.
from transformers import AutoTokenizer import transformers import torch
Initialiser modellen og tokenisatoren
I dette steget, spesifiser hvilken Llama 2-modell du vil bruke. For denne guiden, bruker vi meta-llama/Llama-2-7b-chat-hf.
model = "meta-llama/Llama-2-7b-chat-hf" tokenizer = AutoTokenizer.from_pretrained(model)
Sett opp pipelinen
Utnytt Hugging Face-pipelinen for tekstgenerering med bestemte innstillinger:
pipeline = transformers.pipeline( "tekstgenerering", model=model, torch_dtype=torch.float16, device_map="auto")
Generer tekstsekvenser
Til slutt, kjør pipelinen og generer en tekstsekvens basert på din innputt:
sekvenser = pipeline(
'Hvem er de viktigste bidragsyterne til feltet kunstig intelligens?\n',
do_sample=True,
top_k=10,
num_return_sequences=1,
eos_token_id=tokenizer.eos_token_id,
max_length=200)
for sekvens in sekvenser:
print(f"Resultat: {sekvens['generated_text']}")
A16Zs grensesnitt for LLaMa 2
Andreessen Horowitz (A16Z) har nylig lansert et moderne Streamlit-basert chatbot-grensesnitt tilpasset for Llama 2. Vert på GitHub, dette grensesnittet beholder sesjons-samtalehistorikk og tilbyr også fleksibiliteten til å velge mellom flere Llama 2-API-endepunkter som vert på Replicate. Dette bruker-orienterte designet har som mål å forenkle interaksjoner med Llama 2, og gjøre det til et ideelt verktøy for både utviklere og sluttbrukere. For de som er interesserte i å oppleve dette, er en live-demo tilgjengelig på Llama2.ai.
Llama 2: Hva gjør det forskjellig fra GPT-modeller og dens forgjenger Llama 1?
Mangfold i skala
I motsetning til mange språkmodeller som tilbyr begrensede skaleringsmuligheter, gir Llama 2 deg en rekke forskjellige alternativer for modeller med varierende parametre. Modellen skalerer fra 7 milliarder til 70 milliarder parametre, og tilbyr dermed en rekke konfigurasjoner som kan tilpasse seg ulike beregningsbehov.
Forbedret kontekstlengde
Modellen har en økt kontekstlengde på 4K tokens sammenlignet med Llama 1. Dette tillater den å beholde mer informasjon, og dermed forbedre dens evne til å forstå og generere mer komplekse og omfattende innhold.
Gruppe-spørsmål-oppmerksomhet (GQA)
Arkitekturen bruker konseptet GQA, designet for å akselerere oppmerksomhetsberegnningen ved å cache forrige token-par. Dette forbedrer effektivt modellens inferensskalabilitet for å forbedre tilgjengeligheten.
Ytelsesbenchmarks
Llama 2 har satt en ny standard for ytelsesmetrikker. Den overgår ikke bare sin forgjenger, Llama 1, men tilbyr også betydelig konkurranse til andre modeller som Falcon og GPT-3.5.
Llama 2-Chats største modell, 70B, overgår også ChatGPT i 36% av tilfellene og matcher ytelse i ytterligere 31,5% av tilfellene. Kilde: Paper
Åpen kilde: Fellesskapets kraft
Meta og Microsoft har som mål at Llama 2 skal være mer enn bare et produkt; de ser det som et fellesskapsdrevet verktøy. Llama 2 er gratis tilgjengelig for både forskning og ikke-kommersielle formål. De har som mål å demokratisere AI-kapasiteter, og gjøre det tilgjengelig for startups, forskere og bedrifter. Et åpen kilde-paradigme tillater “crowdsourced feilsøking” av modellen. Utviklere og AI-etikere kan teste, identifisere svakheter og tilby løsninger i en akselerert takt.
Selv om lisensvilkårene for LLaMa 2 generelt er tillatende, unntak eksisterer. Store bedrifter med over 700 millioner månedlige brukere, som Google, krever eksplisitt godkjenning fra Meta for å bruke det. I tillegg forbinder lisensen bruk av LLaMa 2 for å forbedre andre språkmodeller.
Aktuelle utfordringer med Llama 2
- Data-generell: Begge Llama 2 og GPT-4 kan noen ganger feile i ensartet høy ytelse over ulike oppgaver. Datakvalitet og mangfold er like viktig som volum i disse scenarioene.
- Modell-gjennomsiktighet: Gitt tidligere tilbakeslag med AI som produserer misvisende utdata, er det viktig å utforske beslutningsgrunnlaget bak disse komplekse modellene.
Code Llama – Metas siste lansering
Meta annonserte nylig Code Llama, som er en stor språkmodell spesialisert i programmering med parameterstørrelser fra 7B til 34B. Lik ChatGPT Code Interpreter; Code Llama kan strømlinjeforme utviklerarbeidsflyter og gjøre programmering mer tilgjengelig. Den tilbyr variasjoner i ulike programmeringsspråk og kommer i spesialiserte variasjoner, som Code Llama–Python for Python-spesifikke oppgaver. Modellen tilbyr også ulike ytelsesnivåer for å møte ulike latenskrav. Åpen lisens, Code Llama inviterer fellesskapsbidrag for kontinuerlig forbedring.
https://about.fb.com/news/2023/08/code-llama-ai-for-coding/
Konklusjon
Denne artikkelen har guidet deg gjennom å sette opp en Llama 2-modell for tekstgenerering på Google Colab med Hugging Face-støtte. Llama 2s ytelse er drevet av en rekke avanserte teknikker, fra auto-regressive transformer-arkitekturer til Forsterkninglæring med menneskelig tilbakemelding (RLHF). Med opptil 70 milliarder parametre og funksjoner som Spøkelsesoppmerksomhet, overgår denne modellen nåværende bransjestandarder i visse områder, og med sin åpne natur, åpner den vei for en ny æra i naturlig språkforståelse og generativ AI.

















