Zephyr-7B:HuggingFace超优化大型语言模型创新突破

2023年11月10日 由 alex 发表 567 0

ZEPHYR-7B 是新一代大型语言模型(LLMs)之一,它在 AI 社区中受到了极好的反响。该模型由 Hugging Face 创建,实际上是在公共数据集上经过微调的 Mistral-7B 版本,但也使用了知识蒸馏技术进行了优化。该模型取得了惊人的成果,在各种任务中超越了许多更大型的模型。


在最近的研究中,蒸馏被证明是提高开放 AI 模型在各种任务中性能的有价值技术。尽管如此,它在性能上仍然无法达到原始导师模型的同等水平。用户观察到这些模型通常缺乏“意图一致性”,这意味着它们不会始终按照符合人类偏好的方式行事。因此,它们往往产生的响应不能准确地解决用户查询。


量化意图一致性提出了挑战,但最近的努力导致了像 MT-Bench 和 AlpacaEval 这样的基准测试的开发,这些测试专门设计用来评估这一方面。这些基准测试产生的分数与人类对模型输出的评分密切相关,并验证了一个定性的观点,即使用人类反馈进行训练的专有模型胜过使用蒸馏训练的开放模型。这强调了即使在大规模的情况下,也要收集细致的人类反馈以进行对齐的重要性,正如在像 LLAMA2-CHAT 这样的项目中看到的那样。


验证这种方法是 ZEPHYR-7B 背后的关键目标,一个与 Mistral-7B 对齐的版本。该过程涉及三个关键步骤:


  • 使用 UltraChat 数据集进行大规模数据集构建,采用自我指导型风格,接着进行蒸馏式监督微调(dSFT)。


  • 通过一系列聊天模型补全收集 AI 反馈(AIF)和随后的 GPT-4(UltraFeedback)评分,然后将其转化为偏好数据。


  • 将蒸馏式直接偏好优化(dDPO)应用于使用收集的反馈数据的 dSFT 模型。


ZEPHYR-7B 背后的微调过程基于三个基本技术:


  • 蒸馏式监督微调(dSFT):从原始语言模型开始,需要训练生成对用户提示的响应。这个传统步骤通常涉及在包含高质量指令和响应的数据集上进行监督微调(SFT)。然而,当一个教师语言模型可用时,该模型可以直接生成指令和响应,这个过程被称为蒸馏式 SFT(dSFT)。


  • 通过偏好的 AI 反馈(AIF):利用人类反馈来增强语言模型。传统上,通过评估模型响应的质量来收集人类反馈。在蒸馏的背景下,使用来自教师模型的 AI 偏好来评估其他模型生成的输出。


  • 蒸馏直接偏好优化(dDPO):旨在通过最大化偏好响应排名高于不受偏好的响应的可能性来完善 dSFT 模型。这是通过一个由学生语言模型定义的、使用奖励功能的偏好模型来实现的。先前使用 AI 反馈的方法主要采用强化学习方法,如邻近策略优化(PPO),来根据这一奖励功能优化模型参数。这些方法通常包括先训练奖励功能,然后通过从当前策略中抽样来生成更新。


5


使用 ZEPHYR-7B


ZEPHYR-7B 可以通过 HuggingFace 的 transformers 库使用一个非常简单的界面来获取。执行 ZEPHYR-7B 只需要调用库的 pipeline() 函数。


# Install transformers from source - only needed for versions <= v4.34
# pip install git+https://github.com/huggingface/transformers.git
# pip install accelerate
import torch
from transformers import pipeline
pipe = pipeline("text-generation", model="HuggingFaceH4/zephyr-7b-alpha", 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"])
# <|system|>
# You are a friendly chatbot who always responds in the style of a pirate.</s>
# <|user|>
# How many helicopters can a human eat in one sitting?</s>
# <|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!


结果

Hugging Face对ZEPHYR-7B的主要评估集中在单回合和多回合聊天基准测试上,这些测试衡量模型遵循指令和对不同领域复杂提示提供响应的能力:


  • MT-Bench:这个多回合基准测试包括160个问题,涵盖8个不同的知识领域。在MT-Bench中,模型面临回答初始问题的挑战,随后需要对预定义的问题提供后续响应。每个模型的响应质量由GPT-4使用1到10的等级进行评估。最终得分是根据两个回合的平均评分得出的。


  • AlpacaEval:另一方面,AlpacaEval是一个单回合基准测试,模型需要对805个问题生成响应,这些问题涵盖各种话题,主要侧重于帮助性。GPT-4也评估这些模型响应。然而,最终指标是与基线模型相比的成对胜率。


除了这些基准测试,Hugging Face还评估ZEPHYR-7B在开放LLM排行榜上的表现。这个排行榜旨在通过四个多类别分类任务评估语言模型,包括ARC、HellaSwag、MMLU和Truthful QA。每个任务呈现独特的挑战,并要求模型在分类准确性上表现卓越。


结果相当令人印象深刻:


8


ZEPHYR-7B 代表了对小型高性能法学硕士在高度专业化任务中的一席之地的重大验证。



文章来源:https://medium.com/@jrodthoughts/inside-zephyr-7b-huggingfaces-hyper-optimized-llm-that-continues-to-ouperform-larger-models-3136f6935ef5
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
写评论取消
回复取消