TII 的 Falcon 180B 上线 Hugging Face,1800 亿参数开源模型发布
Spread Your Wings: Falcon 180B is here
TII 发布 1800 亿参数的 Falcon 180B,并在 Hugging Face 上线 base 与 chat 版本,训练使用 3.5 万亿 token,共约 7,000,000 GPU 小时。
TII 的 Falcon 180B 登陆 Hugging Face,原文给出与 Llama 2、PaLM-2 的评测对比和显存、量化配置门槛。
简介
今天,我们非常高兴地欢迎 TII 的 Falcon 180B 加入 HuggingFace! Falcon 180B 为开放模型树立了新的技术标杆。它是目前公开可用的最大语言模型,拥有 1800 亿参数,并使用 TII 的 RefinedWeb 数据集在高达 3.5 万亿个 token 上训练。这代表了开放模型中最长的单次预训练过程。
您可以在 HF Mirror Hub 上找到该模型(基础版和聊天版),并在 Falcon Chat Demo Space 上与模型互动。
在能力方面,Falcon 180B 在自然语言任务上取得了最先进的结果。它(在发布时)登顶了(预训练)开放访问模型的排行榜,并可与 PaLM-2 等专有模型匹敌。虽然目前难以确切排名,但它被认为与 PaLM-2 Large 相当,使 Falcon 180B 成为已知最强大的公开 LLM 之一。
在这篇博客文章中,我们通过查看一些评估结果来探索 Falcon 180B 如此出色的原因,并展示如何使用该模型。
什么是 Falcon-180B?
Falcon 180B 是 TII 发布的模型,延续了 Falcon 系列的先前版本。
在架构方面,Falcon 180B 是 Falcon 40B 的放大版本,并基于其多查询注意力等创新技术以提高可扩展性。我们建议查阅介绍 Falcon 的初始博客文章以深入了解架构。Falcon 180B 在高达 4096 个 GPU 上同时训练了 3.5 万亿个 token,使用 Amazon SageMaker,总计约 7,000,000 GPU 小时。这意味着 Falcon 180B 比 Llama 2 大 2.5 倍,并且训练计算量是 Llama 2 的 4 倍。
Falcon 180B 的数据集主要由来自 RefinedWeb 的网络数据组成(约 85%)。此外,它还混合训练了对话、技术论文等精选数据,以及一小部分代码(约 3%)。这个预训练数据集足够大,即使 3.5 万亿个 token 也不到一轮 epoch。
发布的聊天模型在聊天和指令数据集上进行了微调,混合了多个大规模对话数据集。
‼️ 商业使用: Falcon 180b 可以商业使用,但条件非常严格,不包括任何“托管使用”。我们建议检查许可证,如果您有兴趣将其用于商业目的,请咨询您的法律团队。
Falcon 180B 有多好?
Falcon 180B 在发布时是最好的公开 LLM,在 MMLU 上优于 Llama 2 70B 和 OpenAI 的 GPT-3.5,并在 HellaSwag、LAMBADA、WebQuestions、Winogrande、PIQA、ARC、BoolQ、CB、COPA、RTE、WiC、WSC、ReCoRD 上与 Google 的 PaLM 2-Large 相当。根据评估基准的不同,Falcon 180B 通常介于 GPT 3.5 和 GPT4 之间,现在它已公开,社区进一步的微调将非常有趣。
在发布时,Falcon 180B 在 HF Mirror Leaderboard 上得分为 68.74,是得分最高的公开预训练 LLM,超过了 Meta 的 Llama 2。*
| 模型 | 大小 | 排行榜得分 | 商业使用或许可证 | 预训练长度 |
|---|---|---|---|---|
| Falcon | 180B | 67.85 | 🟠 | 3,500B |
| Llama 2 | 70B | 67.87 | 🟠 | 2,000B |
| LLaMA | 65B | 61.19 | 🔴 | 1,400B |
| Falcon | 40B | 58.07 | 🟢 | 1,000B |
| MPT | 30B | 52.77 | 🟢 | 1,000B |
- 2023年11月,Open LLM Leaderboard新增了两项基准测试,我们已更新上表以反映最新得分(67.85)。根据新方法,Falcon与Llama 2 70B持平。
量化后的Falcon模型在各基准测试中保持了相似的指标。评估torch.float16、8bit和4bit时结果也相近。查看结果请见Open LLM Leaderboard。
如何使用Falcon 180B?
Falcon 180B已在HF Mirror生态系统中可用,从Transformers 4.33版本开始支持。
演示
您可以在这个Space中轻松试用Big Falcon Model(1800亿参数!),或使用下方嵌入的游乐场:
硬件需求
我们针对不同应用场景运行模型所需的硬件进行了多项测试。这些并非最低要求,而是我们所能访问的配置的最低要求。
| 类型 | 种类 | 内存 | 示例 | |
|---|---|---|---|---|
| Falcon 180B | 训练 | 全量微调 | 5120GB | 8x 8x A100 80GB |
| Falcon 180B | 训练 | 使用ZeRO-3的LoRA | 1280GB | 2x 8x A100 80GB |
| Falcon 180B | 训练 | QLoRA | 160GB | 2x A100 80GB |
| Falcon 180B | 推理 | BF16/FP16 | 640GB | 8x A100 80GB |
| Falcon 180B | 推理 | GPTQ/int4 | 320GB | 8x A100 40GB |
提示格式
基础模型没有提示格式。请记住,它不是对话模型,也未经过指令训练,因此不要期望它能生成对话式回复——预训练模型是进一步微调的绝佳平台,但您可能不应该直接开箱即用。Chat模型具有非常简单的对话结构。
System: Add an optional system prompt here
User: This is the user input
Falcon: This is what the model generates
User: This might be a second turn input
Falcon: and so on
Transformers
随着Transformers 4.33的发布,您可以使用Falcon 180B并利用HF生态系统中的所有工具,例如:
- 训练和推理脚本及示例
- 安全文件格式(safetensors)
- 与bitsandbytes(4位量化)、PEFT(参数高效微调)和GPTQ等工具的集成
- 辅助生成(也称为“投机解码”)
- 支持更大上下文长度的RoPE缩放
- 丰富而强大的生成参数
使用该模型需要您接受其许可证和使用条款。请确保您已登录您的HF Mirror账户,并确保您拥有最新版本的transformers:
pip install --upgrade transformers
huggingface-cli login
bfloat16
以下是在bfloat16中使用基础模型的方法。Falcon 180B是一个大型模型,因此请考虑上表中总结的硬件需求。
from transformers import AutoTokenizer, AutoModelForCausalLM
import transformers
import torch
model_id = "tiiuae/falcon-180B"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
prompt = "My name is Pedro, I live in"
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
output = model.generate(
input_ids=inputs["input_ids"],
attention_mask=inputs["attention_mask"],
do_sample=True,
temperature=0.6,
top_p=0.9,
max_new_tokens=50,
)
output = output[0].to("cpu")
print(tokenizer.decode(output))
这可能会产生如下输出:
My name is Pedro, I live in Portugal and I am 25 years old. I am a graphic designer, but I am also passionate about photography and video.
I love to travel and I am always looking for new adventures. I love to meet new people and explore new places.
使用bitsandbytes的8位和4位
Falcon 180B的8位和4位量化版本在评估中与bfloat16参考相比几乎没有差异!这对推理来说是个好消息,因为您可以放心地使用量化版本来降低硬件需求。但请记住,8位推理比在4-bit中运行模型快得多。
要使用量化,您需要安装bitsandbytes库,并在加载模型时简单地启用相应的标志:
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
load_in_8bit=True,
device_map="auto",
)
Chat模型
如上所述,经过微调以进行对话的模型版本使用了一个非常直接的训练模板。为了运行聊天式推理,我们必须遵循相同的模式。作为参考,您可以查看Chat演示中的format_prompt函数,它看起来像这样:
def format_prompt(message, history, system_prompt):
prompt = ""
if system_prompt:
prompt += f"System: {system_prompt}\n"
for user_prompt, bot_response in history:
prompt += f"User: {user_prompt}\n"
prompt += f"Falcon: {bot_response}\n"
prompt += f"User: {message}\nFalcon:"
return prompt
如你所见,用户的交互和模型的响应前面分别有User: 和Falcon: 分隔符。我们将它们拼接在一起,形成包含整个对话历史的提示。我们可以提供一个系统提示来调整生成风格。
其他资源
致谢
要在生态系统中发布这样一个模型并提供支持和评估,离不开众多社区成员的贡献,包括 Clémentine 和 Eleuther Evaluation Harness 在 LLM 评估方面的支持;Loubna 和 BigCode 在代码评估方面的帮助;Nicolas 在推理支持方面的工作;Lysandre、Matt、Daniel、Amy、Joao 和 Arthur 将 Falcon 集成到 transformers 中。感谢 Baptiste 和 Patrick 提供的开源演示。感谢 Thom、Lewis、TheBloke、Nouamane、Tim Dettmers 的多项贡献,使这个项目得以发布。最后,感谢 HF Cluster 使 LLM 评估得以运行,并为该模型提供免费、开源的推理演示。
来源:Hugging Face Blog · hf-mirror.com

