Utforska Zephyr 7B: En omfattande guide till den senaste stora språkmodellen - KDnuggets

Utforska Zephyr 7B: En omfattande guide till den senaste stora språkmodellen – KDnuggets

Källnod: 3084992

Utforska Zephyr 7B: En omfattande guide till den senaste stora språkmodellen
Foto: Google DeepMind
 

2023 var året för stora språkmodeller och öppen källkod. Många startups och företag öppnade sina modeller och vikter för att bekämpa proprietära LLMs som ChatGPT och Claude. Några av de viktiga företagen och modellerna (öppen källkod) för 2023 var:

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

En 7B-modell som är relativt enkel och billigare att installera är dock inte i nivå med större modeller som 70B. Den starkaste utmanaren med öppen källkod var Mistral 7B som skulle överträffa många större modeller.

 

Utforska Zephyr 7B: En omfattande guide till den senaste stora språkmodellen
Jämförelse av Mistral-7B från Mistral.ai
 

Dessa små modeller svarar dock fortfarande inte bra på naturliga uppmaningar och kräver bra omedelbar konstruktion. 

Zephyr 7B är en modell skapad av HuggingFace H4-teamet (Helpful, Honest, Harmless, Huggy) vars huvudmål var att skapa en mindre språkmodell som är anpassad till användarens avsikt och överträffar ännu större modeller.

Zephyr är en anpassad version av Mistral-7B främst skapad med kraften i destillation, och är jämförbar med 70B-modeller i akademiska och konversationsriktmärken.

 

Utforska Zephyr 7B: En omfattande guide till den senaste stora språkmodellenPrestandajämförelse för Zephyr-7B | Källa: Zephyr papper

Funktioner

Anledningen till Zephyrs enastående prestanda är dessa fyra nyckeltekniker som H4-teamet har använt.

  1. Självinstruerad dataskapande och DSFT (Distillered Supervised Fine-Tuning)
  2. Feedback insamling
  3. DDPO (Distillered Direct Preference Optimization) av DSFT-modellen

Självinstruera dataskapande & DSFT

Traditionellt Övervakad finjustering (SFT) utförs på en stor språkmodell via ett högkvalitativt instruktionspar. Konstruktion av denna data är kostsam och kräver mänsklig övervakning (Chung et al., 2022; Sanh et al., 2021). 

En av de intressanta metoderna här är att använda en lärarmodell (redan utbildad LLM) för att generera instruktioner och svar. Denna destillationsteknik användes först på Alpaca (Taori et al., 2023) vilket visade att en liten modell kan överträffa större modeller med Destillerad övervakad finjustering.

 

Utforska Zephyr 7B: En omfattande guide till den senaste stora språkmodellen
Self-Instruct pipeline | Källa: Självinstruktionspapper
 

H4-teamet använde Zephyr för att konstruera högkvalitativa övervakade (instruktion, komplettering) datauppsättningar som användes för att göra DSFT. (Att träna en modell på instruktioner/kompletteringar som genereras är en form av destillation som kallas DSFT: Destillerad Supervised Fine-Tuning).

Feedback insamling

Stora språkmodeller anpassas vanligtvis med hjälp av Förstärkande lärande från mänsklig feedback (RLHF). Zephyr använder istället Feedback från en bättre lärarmodell (som GPT-4) för att anpassa modellens intressen, enligt metoden med Ultra Feedback. 

 

Utforska Zephyr 7B: En omfattande guide till den senaste stora språkmodellen
UltraFeedback byggprocess | Källa: UltraFeedback-papper
 

Hur det fungerar är att varje prompt övervakad prompt från SFT skickas till 4 modeller (Claude, LLama, Falcon, etc.) och vart och ett av de fyra svaren mot den enda prompten poängsätts med hjälp av GPT-4. Nu har vi en datauppsättning av en Input (x), högsta poängavslutning (yw) och en slumpmässig prompt betecknad som lågpoängavslutning (yl), dvs vi har en triplett av (x, yw, yl).

Preferensoptimering

Målet med det här sista steget är att maximera preferensen för modellen från yw (högst rankad komplettering) över yl (låg rankad komplettering). Detta görs med hjälp av DPO (Direkt preferensoptimering). Att använda DPO är enklare än att använda vanlig RLHF och intuitivt presterar det bättre än RLHF. Tillvägagångssättet i detta fall är känt som dDPO eftersom den använder en destillerad datauppsättning genererad med hjälp av en lärarmodell.

 

Utforska Zephyr 7B: En omfattande guide till den senaste stora språkmodellenDPO vs RLHF | Källa: Zephyr papper
 

Den övergripande algoritmen ser ut ungefär så här:

 

Utforska Zephyr 7B: En omfattande guide till den senaste stora språkmodellen
 

Och kan översättas till följande steg:

  1. Beräkna sannolikheten för (x, yw) och (x, yl) från dSFT-modellen (endast framåt).
  2. Beräkna sannolikheten för (x, yw) och (x, yl) från dDPO-modellen.
  3. Beräkna ekv 1 och fortplanta tillbaka för att uppdatera. Upprepa

Basmodellen som Zephyr använde är Mistral-7B som var den toppmoderna öppen källkod vid tidpunkten för utgivningen. De använde TRL bibliotek för finjustering och justering. Deep-Speed ​​Zero 3 och Flash-Attention 2 användes för att optimera och påskynda träningen och för att fullt ut utnyttja GPU:n. Modellerna tränades med AdamW optimizer och ingen viktnedgång användes. Alla experiment kördes på 16 A100 med bfloat16 precision och tog vanligtvis 2–4 timmar att slutföra. Du kan hänvisa till originalpapper för djupgående detaljer om Zephyrs träningsförfarande.

Zephyr-teamet kombinerar de bästa teknikerna för att träna de stora språkmodellerna och det matchade prestandan för 40B-modeller med bara 7B parametrar och matchade 70B för chattmodeller.

 

Utforska Zephyr 7B: En omfattande guide till den senaste stora språkmodellenJämförelse av Zephyr vs andra LLMs | Källa: Zephyr papper
Utforska Zephyr 7B: En omfattande guide till den senaste stora språkmodellenJämförelse av Zephyr vs andra LLMs | Källa: Zephyr papper

Zephyr-modeller är allmänt tillgängliga på Hugging Face och kan användas på samma sätt som alla andra 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"])

Produktion:

|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 är en liten modell som visade kraften i destillation från en LLM till en mindre modell. Den resulterande modellen ZEPHYR-7B, baserad på MISTRAL-7B, sätter en ny toppmodern för 7B parameterchattmodeller och överträffar till och med LLAMA2-CHAT-70B på MT-Bench.

Referensprojekt

  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. Självinstruktion: https://arxiv.org/abs/2212.10560
  4. Ultrafeedback: https://arxiv.org/abs/2310.01377

 
 

Ahmad Anis är en passionerad maskininlärningsingenjör och forskare som för närvarande arbetar på redbuffer.ai. Utöver sitt dagliga jobb engagerar Ahmad sig aktivt i maskininlärningsgemenskapen. Han fungerar som regional ledare för Cohere for AI, en ideell organisation dedikerad till öppen vetenskap, och är en AWS-gemenskapsbyggare. Ahmad är en aktiv bidragsgivare på Stackoverflow, där han har 2300+ poäng. Han har bidragit till många kända open source-projekt, inklusive Shap-E av OpenAI.

Tidsstämpel:

Mer från KDnuggets