Utforsking av Zephyr 7B: En omfattende guide til den siste store språkmodellen - KDnuggets

Utforsking av Zephyr 7B: En omfattende guide til den siste store språkmodellen – KDnuggets

Kilde node: 3084992

Utforsk Zephyr 7B: En omfattende guide til den siste store språkmodellen
Photo by Google DeepMind
 

2023 var året for store språkmodeller og åpen kildekode. Mange startups og selskaper åpnet modellene og vektene sine for å bekjempe proprietære LLM-er som ChatGPT og Claude. Noen av de viktige selskapene og modellene (åpen kildekode) for 2023 var:

  • Meta (LLama, LLamav2)
  • TII (Falcon 7B, 40B, 180B)
  • Mistral (Mistral 7B, Mixtral8x7B)

En 7B-modell som er relativt enkel og billigere å distribuere er imidlertid ikke på nivå med større modeller som 70B. Den sterkeste konkurrenten med åpen kildekode var Mistral 7B som ville overgå mange større modeller.

 

Utforsk Zephyr 7B: En omfattende guide til den siste store språkmodellen
Sammenligning av Mistral-7B fra Mistral.ai
 

Disse små modellene reagerer imidlertid fortsatt ikke godt på naturlige meldinger og krever god rask konstruksjon. 

Zephyr 7B er en modell laget av HuggingFace H4 (Helpful, Honest, Harmless, Huggy)-teamet hvis hovedmål var å lage en mindre språkmodell som er på linje med brukerens hensikt og utkonkurrerer enda større modeller.

Zephyr er en justert versjon av Mistral-7B hovedsakelig skapt med kraften til destillasjon, og kan sammenlignes med 70B-modeller i akademiske og samtalemessige benchmarks.

 

Utforsk Zephyr 7B: En omfattende guide til den siste store språkmodellenYtelsessammenligning av Zephyr-7B | Kilde: Zephyr papir

Viktige funksjoner

Årsaken bak den enestående ytelsen til Zephyr er disse 4 nøkkelteknikkene som H4-teamet har brukt.

  1. Selvinstruert dataoppretting og DSFT (Distillered Supervised Fine-Tuning)
  2. Innsamling av tilbakemeldinger
  3. DDPO (Distillered Direct Preference Optimization) av DSFT-modellen

Selvinstruert dataoppretting og DSFT

tradisjonelt Supervised Fine-Tuning (SFT) utføres på en stor språkmodell via et instruksjonspar av høy kvalitet. Konstruksjon av disse dataene er kostbare og krever menneskelig tilsyn (Chung et al., 2022; Sanh et al., 2021). 

En av de interessante tilnærmingene her er å bruke en lærermodell (allerede opplært LLM) for å generere instruksjoner og svar. Denne destillasjonsteknikken ble først brukt på Alpakka (Taori et al., 2023) som beviste at en liten modell kan utkonkurrere større modeller med Destillert overvåket finjustering.

 

Utforsk Zephyr 7B: En omfattende guide til den siste store språkmodellen
Self-Instruct pipeline | Kilde: Selvinstruksjonspapir
 

H4-teamet brukte Zephyr for å konstruere overvåkede (instruksjon, fullføring) datasett av høy kvalitet som ble brukt til å gjøre DSFT. (Å trene en modell på instruksjoner/fullføringer generert er en form for destillasjon kjent som DSFT: Destillert overvåket finjustering).

Innsamling av tilbakemeldinger

Store språkmodeller justeres typisk ved hjelp av Forsterkende læring fra menneskelig tilbakemelding (RLHF). Zephyr bruker i stedet tilbakemelding fra en bedre lærermodell (som GPT-4) for å samordne interessene til modellen, etter tilnærmingen til Ultra Feedback. 

 

Utforsk Zephyr 7B: En omfattende guide til den siste store språkmodellen
UltraFeedback byggeprosess | Kilde: UltraFeedback-papir
 

Måten det fungerer på er at hver prompt overvåket prompt fra SFT sendes til 4 modeller (Claude, LLama, Falcon, etc.) og hver av de 4 responsene mot den enkelt ledeteksten blir scoret ved hjelp av GPT-4. Nå har vi et datasett med en Input (x), høyest skårende fullføring (yw), og en tilfeldig ledetekst betegnet som lavscorende fullføring (yl), dvs. vi har en triplett av (x, yw, yl).

Preferanseoptimalisering

Målet med dette siste trinnet er å maksimere preferansen til modellen fra yw (fullføring med høyest score) fremfor yl (fullføring med lav score). Dette gjøres ved hjelp av DPO (Direkte preferanseoptimalisering). Å bruke DPO er enklere enn å bruke vanlig RLHF, og intuitivt gir det bedre resultater enn RLHF. Tilnærmingen i dette tilfellet er kjent som dDPO fordi den bruker et destillert datasett generert ved hjelp av en lærermodell.

 

Utforsk Zephyr 7B: En omfattende guide til den siste store språkmodellenDPO vs RLHF | Kilde: Zephyr papir
 

Den generelle algoritmen ser omtrent slik ut:

 

Utforsk Zephyr 7B: En omfattende guide til den siste store språkmodellen
 

Og kan oversettes til følgende trinn:

  1. Beregn sannsynligheten for (x, yw) og (x, yl) fra dSFT-modellen (kun fremover).
  2. Beregn sannsynligheten for (x, yw) og (x, yl) fra dDPO-modellen.
  3. Beregn Eq 1 og forplant tilbake for å oppdatere. Gjenta

Basismodellen som Zephyr brukte er Mistral-7B som var den toppmoderne åpen kildekode på utgivelsestidspunktet. De brukte TRL bibliotek for finjustering og justering. Deep-Speed ​​Zero 3 og Flash-Attention 2 ble brukt for å optimalisere og øke hastigheten på treningen og for å utnytte GPUen fullt ut. Modellene ble trent ved bruk av AdamW optimizer og ingen vektreduksjon ble brukt. Alle eksperimentene ble kjørt på 16 A100-er ved bruk av bfloat16-presisjon og tok vanligvis 2–4 timer å fullføre. Du kan referere til originalpapir for detaljerte detaljer om treningsprosedyren til Zephyr.

Zephyr-teamet kombinerer de beste teknikkene for å trene de store språkmodellene, og det matchet ytelsen til 40B-modeller med bare 7B parametere og matchet 70B for chat-modeller.

 

Utforsk Zephyr 7B: En omfattende guide til den siste store språkmodellenSammenligning av Zephyr vs andre LLM-er | Kilde: Zephyr papir
Utforsk Zephyr 7B: En omfattende guide til den siste store språkmodellenSammenligning av Zephyr vs andre LLM-er | Kilde: Zephyr papir

Zephyr-modeller er offentlig tilgjengelig på Hugging Face og kan brukes på samme måte som alle andre språkmodeller.

import torch
from transformers import pipeline

pipe = pipeline("text-generation",
                model="HuggingFaceH4/zephyr-7b-alpha",  # can also use the beta model
                torch_dtype=torch.bfloat16,
                device_map="auto")

# We use the tokenizer's chat template to format each message - see https://huggingface.co/docs/transformers/main/en/chat_templating
messages = [
   {
       "role": "system",
       "content": "You are a friendly chatbot who always responds in the style of a pirate",
   },
   {"role": "user", "content": "How many helicopters can a human eat in one sitting?"},
]
prompt = pipe.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
outputs = pipe(prompt, max_new_tokens=256, do_sample=True, temperature=0.7, top_k=50, top_p=0.95)
print(outputs[0]["generated_text"])

Utgang:

|system|>
You are a friendly chatbot who always responds in the style of a pirate.
|user|>
How many helicopters can a human eat in one sitting?
|assistant|>
Ah, me hearty matey! But yer question be a puzzler! A human cannot eat a helicopter in one sitting, as helicopters are not edible. They be made of metal, plastic, and other materials, not food!

Zephyr-7B er en liten modell som viste kraften til destillasjon fra en LLM til en mindre modell. Den resulterende modellen ZEPHYR-7B, basert på MISTRAL-7B, setter en ny state-of-the-art for 7B parameter chat-modeller og overgår til og med LLAMA2-CHAT-70B på MT-benk.

Referanser

  1. Zephyr: Direct Destillation of LM Alignment (https://arxiv.org/abs/2310.16944)
  2. HuggingFace Zephyr blogg (https://huggingface.co/blog/Isamu136/understanding-zephyr)  
  3. Selvinstruks: https://arxiv.org/abs/2212.10560
  4. Ultratilbakemelding: https://arxiv.org/abs/2310.01377

 
 

Ahmad Anis er en lidenskapelig maskinlæringsingeniør og forsker som for tiden jobber ved redbuffer.ai. Utover sin daglige jobb engasjerer Ahmad seg aktivt i maskinlæringssamfunnet. Han fungerer som regional leder for Cohere for AI, en ideell organisasjon dedikert til åpen vitenskap, og er en AWS-samfunnsbygger. Ahmad er en aktiv bidragsyter hos Stackoverflow, hvor han har 2300+ poeng. Han har bidratt til mange kjente åpen kildekode-prosjekter, inkludert Shap-E av OpenAI.

Tidstempel:

Mer fra KDnuggets