Connect with us

Kunstig intelligens

Llama 2: En dyptdykk i den åpne kildekodsutfordreren til ChatGPT

mm
META LLAMA 2 LLM

Store språkmodeller (LLM) som kan utføre komplekse resoneringoppgaver, har vist løft i spesialiserte domener som programmering og kreativ skriving. Men verden av LLM er 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 Llama 2s muligheter, samt gi 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, og dette åpne kildekods store språkmodellen har som mål å omdefinere grensene for generativ AI og naturlig språkforståelse. Llama 2 er ikke bare et annet statistisk modell trent på terabyte med data; det er en inkarnasjon av en filosofi. En som betoner en åpen kildekods-tilnærming som ryggraden i AI-utvikling, spesielt i generativ AI-rommet.

Llama 2 og dens dialog-optimerte erstatning, Llama 2-Chat, kommer med opptil 70 milliarder parametre. De gjennomgår en finjustering prosess designet for å aligne 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 tilgjengelig for offentlig gjennomgang eller tilpasning.

Teknisk dyptdykk i Llama 2

For å trene Llama 2-modellen; som sine forgjengere, bruker den en auto-regressiv transformer-arkitektur, forhåndstrener på en omfattende korpus av selv-overvåket data. Men det legger til et ekstra lag av sofistikasjon ved å bruke Forsterkning med Menneskelig Tilbakemelding (RLHF) for bedre å aligne med menneskelig atferd og preferanser. Dette er beregningskrevende, men viktig for å forbedre modellens sikkerhet og effektivitet.

Meta Llama 2 trening-arkitektur

Meta Llama 2 trening-arkitektur

Forhåndstrening & Data-effektivitet

Llama 2s grunnleggende innovasjon ligger i dens forhåndstrening-regime. Modellen tar hint fra sin forgjenger, Llama 1, men introduserer flere avgjørende forbedringer for å heve dens ytelse. Merkverdig, en 40% økning i det totale antallet tokens trent og en dobbel utvidelse i kontekstlengde, står ut. I tillegg utnytter modellen gruppert-spørrings-oppmerksomhet (GQA) for å forsterke inferens-skalerbarhet.

Overvåket finjustering (SFT) & Forsterkning med Menneskelig Tilbakemelding (RLHF)

Llama-2-Chat har blitt grundig finjustert ved hjelp av både SFT og Forsterkning med Menneskelig Tilbakemelding (RLHF). I denne sammenhengen tjener SFT som en integrert komponent i RLHF-rammeverket, for å finjustere modellens svar for å aligne tett med menneskelige preferanser og forventninger.

OpenAI har gitt en innvigende illustrasjon som forklarer SFT- og RLHF-metodene som er brukt i InstructGPT. Liksom LLaMa 2, bruker InstructGPT også disse avanserte treningsteknikkene for å optimalisere modellens ytelse.

Steg 1 i bildet nedenfor fokuserer på Overvåket finjustering (SFT), mens de påfølgende stegene fullfører Forsterkning med Menneskelig Tilbakemelding (RLHF)-prosessen.

Overvåket finjustering (SFT) er en spesialisert prosess rettet mot å optimalisere en forhåndstrener stor språkmodell (LLM) for en bestemt nedstrøms-oppgave. I motsetning til uovervåkede metoder, som ikke krever data-validering, bruker SFT en datasett som har blitt forhåndsgodkjent og merket.

Vanligvis er det kostbart og tidskrevende å lage disse datasettene. Llama 2s tilnærming var kvalitet over kvantitet. Med bare 27 540 annotasjoner, oppnådde Metas team ytelsesnivåer som var konkurransedyktige 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åndstrener LLM eksponert for en merket datasett, hvor de overvåkede læringsalgoritmene kommer inn i spill. Modellens interne vekter blir omkalibrert basert på grader beregnet fra en oppgave-spesifikk tap-funksjon. Denne tap-funksjonen kvantifiserer diskrepansene mellom modellens forutsagte utdata og de faktiske grunn-sannhetsmerkene.

Denne optimaliseringen tillater LLM å gripe de intrikate mønstrene og nyansene innbygget i den merkede datasett. Dermed utvikler modellen seg fra å være et generalisert verktøy til å bli et spesialisert aktivum, dyktig i å utføre måloppgaven med høy nøyaktighet.

Forsterkning er neste steg, rettet mot å aligne modell-atferd med menneskelige preferanser nærmere.

Ghost-oppmerksomhet: Multi-snakk-dialoger

Meta introduserte en ny funksjon, Ghost-oppmerksomhet (GAtt), som er designet for å forbedre Llama 2s ytelse i multi-snakk-dialoger. Dette løser effektivt det vedvarende problemet med kontekst-tap i pågående samtaler. GAtt fungerer som en anker, som kobler den innledende instruksjonen til alle påfølgende bruker-meldinger. I kombinasjon med forsterkningsteknikker, hjelper det med å produsere konsistente, relevante og bruker-orienterte svar over lengre dialoger.

Fra Meta Git-repository ved hjelp av download.sh

  1. Besøk Meta-nettstedet: Naviger til Metas offisielle Llama 2-side og klikk ‘Last ned modellen’
  2. Fyll inn detaljene: Les gjennom og godta vilkårene og betingelsene for å fortsette.
  3. E-post-bekreftelse: Når skjemaet er sendt, vil du motta en e-post fra Meta med en lenke for å laste ned modellen fra deres git-repository.
  4. 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å velge størrelsen på modellen—7B, 13B eller 70B.

Fra Hugging Face

  1. Motta godkjenningse-post: Etter å ha fått tilgang fra Meta, gå til Hugging Face.
  2. Be om tilgang: Velg din ønskede modell og send en forespørsel om å få tilgang.
  3. Bekreftelse: Forvent en ’tilgang godkjent’-e-post innen 1-2 dager.
  4. 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 inferens-skript 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 logget inn på din Hugging Face-konto.

Her er en strømlinjeformet guide for å kjøre LLaMa 2-modell-inferens i en Google Colab-miljø, med en GPU-kjøringsmiljø:

Google Colab-modell - T4-GPU

Google Colab-modell – T4-GPU

 

 

 

 

 

 

Pakkeinstallasjon


!pip install transformers
!huggingface-cli login

Importer nødvendige Python-biblioteker.

from transformers import AutoTokenizer
import transformers
import torch

Initialiser modellen og tokenisereren

I dette steget, spesifiser hvilken Llama 2-modell du vil bruke. For denne guiden, bruker vi meta-llama/Llama-2-7b-chat-hf.

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

Sett opp røret

Utnytt Hugging Face-røret for tekst-generering med bestemte innstillinger:

rør = transformers.pipeline(
"tekst-generering",
modell=modell,
torch_dtype=torch.float16,
device_map="auto")

Generer tekstsekvenser

Til slutt, kjør røret og generer en tekstsekvens basert på din inndata:

sekvenser = rør(
'Hvem er de viktigste bidragsyterne til feltet kunstig intelligens?\n',
do_sample=True,
top_k=10,
num_return_sequences=1,
eos_token_id=tokeniserer.eos_token_id,
max_length=200)
for sekvens in sekvenser:
print(f"Resultat: {sekvens['generated_text']}")

A16Zs UI for LLaMa 2

Andreessen Horowitz (A16Z) har nylig lansert en fremtredende Streamlit-basert chatbot-grensesnitt tilpasset for Llama 2. Vert på GitHub, dette grensesnittet bevare sessionssamtale-historikk og tilbyr også muligheten til å velge mellom flere Llama 2-API-endepunkter vertet 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 skalerbarhet, 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 møte ulike beregningsbehov.

Forbedret kontekstlengde

Modellen har en økt kontekstlengde på 4K tokens sammenlignet med Llama 1. Dette tillater den å beholde mer informasjon, og forbedre dens evne til å forstå og generere mer komplekse og omfattende innhold.

Gruppert-spørrings-oppmerksomhet (GQA)

Arkitekturen bruker konseptet GQA, designet for å påskynde oppmerksomhets-beregningen ved å cache tidligere token-par. Dette forbedrer effektivt modellens inferens-skalerbarhet for å øke tilgjengeligheten.

Ytelses-benchmark

Sammenlignende ytelses-analyse av Llama 2-Chat-modeller med ChatGPT og andre konkurrenter

Ytelses-analyse av Llama 2-Chat-modeller med ChatGPT og andre konkurrenter

LLama 2 har satt en ny standard i ytelses-målinger. Den overstiger 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, overstiger også ChatGPT i 36% av tilfellene og matcher ytelse i ytterligere 31,5% av tilfellene. Kilde: Paper

Åpen kilde: Kraften i fellesskap

Meta og Microsoft har som mål at Llama 2 skal være mer enn bare et produkt; de ser det som et fellesskaps-drevet verktøy. Llama 2 er fritt tilgjengelig for både forskning og ikke-kommersielle formål. De har som mål å demokratisere AI-egenskaper, og gjøre det tilgjengelig for start-ups, forskere og bedrifter. En åpen kilde-paradigme tillater ‘crowdsourced feilsøking’ av modellen. Utviklere og AI-etikere kan teste, identifisere sårbarheter og tilby løsninger i en akselerert takt.

Selv om lisensvilkårene for LLaMa 2 er generelt tillatende, unntak finnes. Store bedrifter med over 700 millioner månedlige brukere, som Google, krever eksplisitt godkjenning fra Meta for dens bruk. I tillegg forbryter lisensen bruk av LLaMa 2 for å forbedre andre språkmodeller.

Aktuelle utfordringer med Llama 2

  1. Data-generalisering: Så vel Llama 2 som GPT-4 kan noen ganger feile i ensartet høy ytelse over ulike oppgaver. Datakvalitet og mangfold er like viktige som volum i disse scenarioene.
  2. Modell-gjennomsiktighet: Gitt tidligere tilbakeslag med AI som produserer misvisende utdata, er det viktig å utforske den underliggende rasjonaliteten bak disse komplekse modellene.

Code Llama – Metas siste lansering

Meta annonserte nylig Code Llama, som er en stor språkmodell spesialisert i programmering med parameter-størrelser som varierer fra 7B til 34B. Liksom ChatGPT Code Interpreter; Code Llama kan strømlinjeforme utvikler-arbeidsflyter og gjøre programmering mer tilgjengelig. Den akkommoderer ulike programmeringsspråk og kommer i spesialiserte variasjoner, som Code Llama–Python for Python-spesifikke oppgaver. Modellen tilbyr også ulike ytelses-nivåer for å møte ulike latens-krav. Åpen lisensiert, inviterer Code Llama til fellesskaps-innsats 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 tekst-generering på Google Colab med Hugging Face-støtte. Llama 2s ytelse er drevet av en rekke avanserte tekniker, fra auto-regressive transformer-arkitekturer til Forsterkning med Menneskelig Tilbakemelding (RLHF). Med opptil 70 milliarder parametre og funksjoner som Ghost-oppmerksomhet, overstiger denne modellen nåværende industri-standarder i visse områder, og med sin åpne natur, åpner den vei for en ny æra i naturlig språkforståelse og generativ AI.

Jeg har brukt de siste fem årene til å dykke ned i den fasiniserende verden av Machine Learning og Deep Learning. Min lidenskap og ekspertise har ført meg til å bidra til over 50 forskjellige prosjekter innen programvareutvikling, med særlig fokus på AI/ML. Min pågående nysgjerrighet har også trukket meg mot Natural Language Processing, et felt jeg er ivrig etter å utforske videre.