跳到正文
原文
Hugging Face Blog·· 2024-05-24精选AI 评分62

TII 发布 Falcon 2 系列:11B 预训练语言模型与视觉语言模型

Falcon 2: An 11B parameter pretrained language model and VLM, trained on over 5000B tokens and 11 languages

AI 导读

TII 发布 Falcon 2 系列模型,包括 11B 基础 LLM 和 11B 视觉语言模型(VLM),后者在 LLM 之上接入预训练 CLIP ViT-L/14 视觉编码器并支持图像问答。

推荐理由

官方给出 11B LLM 与 VLM 的训练细节和基准对比,可据此判断小尺寸开源多模态模型的性能位置。

正文 · AI 翻译

Falcon 2 模型

TII 正在推出新一代模型 Falcon 2,旨在为开源社区提供一系列性能更强、支持多模态的小型模型。我们的目标是实现更廉价的推理,并鼓励开发更多易用性更强的下游应用。

第一代 Falcon 模型,包括 Falcon-40B 和 Falcon-180B,为开源社区做出了重大贡献,推动了具有宽松许可证的高级 LLM 的发布。有关上一代 Falcon 模型的更详细信息,请参见 RefinedWeb, Penedo 等,2023 和 The Falcon Series of Open Language Models, Almazrouei 等,2023 论文,以及 Falcon 和 Falcon-180B 博客文章。

第二代模型专注于提升可用性和可集成性,构建多模态生态系统。我们从发布基础 11B LLM 以及包含图像理解能力的 11B VLM 模型开始这一旅程。视觉语言模型(VLM)将允许用户使用文本就视觉内容进行聊天。

与我们之前的工作一样,这些模型主要支持英语,但在其他十种语言(包括西班牙语、法语和德语)方面也具有良好的能力。

目录

Falcon2-11B LLM

训练数据

Falcon2-11B 在超过 5,000 GT(十亿 token)的 RefinedWeb 上进行训练,这是一个经过高质量过滤和去重的网络数据集,并辅以精选语料库。它遵循了四阶段训练策略。前三个阶段专注于增加上下文长度,从 2048 到 4096,最后到 8192 个 token。最后一个阶段旨在仅使用高质量数据进一步提升性能。

总体而言,数据来源包括 RefinedWeb-English、RefinedWeb-Europe(cs、de、es、fr、it、nl、pl、pt、ro、sv)、高质量技术数据、代码数据以及从公共来源提取的对话数据。

训练阶段如下:

阶段 上下文长度 GT
阶段 1 2048 4500
阶段 2 4096 250
阶段 3 8192 250
阶段 4 8192 500

数据使用 Falcon2-11B tokenizer 进行分词,与之前 Falcon 模型使用的分词器相同。

模型架构

下表总结了有关模型架构的一些关键细节:

设计选择 值
Transformer 块数量 60
查询头数量 32
键/值头数量 8
头维度 128
并行注意力 是
MLP 放大因子 4

训练过程

Falcon2-11B 在大部分训练中使用 1024 块 A100 40GB GPU 进行训练,采用 3D 并行策略(TP=8,PP=1,DP=128)并结合 ZeRO 和 Flash-Attention 2。

训练超参数

超参数 值
精度 bfloat16
优化器 AdamW
最大学习率 3.7e-4
最小学习率 1.89e-5
学习率调度 Cos decay(阶段 1)
上下文长度 8192(阶段 3 和 4)
权重衰减 1e-1
Z-loss 1e-4
批量大小 可变

Falcon2-11B 评估

英语性能

在 Open LLM Leaderboard 任务上的性能:

检查点 GT HellaSwag-10 Winogrande-5 ArcChallenge-25 TruthfulQA-0 MMLU-5 GSMK8k-5 平均
Falcon2-11B 5500 82.91 78.30 59.73 52.56 58.37 53.83 64.28
Falcon-40B 1000 85.28 81.29 61.86 41.65 56.89 21.46 58.07
Falcon-7B 1500 78.13 72.38 47.87 34.26 27.79 4.62 44.17
Gemma-7B 6000 82.47 78.45 61.09 44.91 66.03 52.77 64.29
Llama3-8B 15000 82.09 77.35 59.47 43.90 66.69 44.79 62.38
Mistral-7B 不适用 83.31 78.37 59.98 42.15 64.16 37.83 60.97

HF Mirror Leaderboard 团队对我们的模型在 Open LLM Leaderboard 任务上进行了官方评估。该模型的表现优于 Llama3-8B(在 3 倍数据量上训练)和 Mistral-7B 等模型,与 Gemma-7b 相当。

零样本性能:

检查点 GT HellaSwag ArcEasy Winogrande ArcChallenge
Falcon2-11B 5500 82.07 77.78 78.30 50.17
Falcon-40B 1000 82.82 81.86 76.4 54.69
Falcon-7B 1500 76.31 74.74 67.17 43.43

评估结果显示,Falcon2-11B 在模型规模小四倍的情况下,表现出与 Falcon-40B 相似的性能!

多语言能力

使用 Multilingual LLM leaderboard,我们将 Falcon2-11B 模型与 Llama-7B 和 Bloom-7B 进行比较。作为参考,我们还加入了 Falcon-40B(支持相同语言)、Falcon-7B(支持法语)和 Mistral-7B。

模型 语言 ID ArcChallenge-25 Hellaswag MMLU 25 TQA 平均
Falcon2-11B de 43.7 67.96 38.3 47.53 49.37
es 46.2 73.63 37.9 46.43 51.06
fr 45.8 72.41 39.53 47.30 51.27
it 45.6 70.83 38.05 47.14 50.42
nl 41.7 69.05 38.29 48.81 49.47
ro 42.4 66.24 38.01 45.53 48.04
Falcon-40B de 45.1 68.3 36.2 39.8 47.4
es 48.5 73.9 37.2 39.0 49.6
fr 47.6 72.9 37.3 38.5 49.1
it 46.3 70.2 36.4 40.7 48.4
nl 42.9 68.4 36.5 40.9 47.1
ro 43.2 66.0 35.7 39.8 46.2
Falcon-7B fr 37.3 64.1 28.4 34.0 40.9
Mistral-7B de 41.2 58.7 40.5 44.9 46.3
es 44.2 65.3 42.4 43.1 48.7
fr 44.9 64.4 41.9 43.0 48.6
it 43.2 60.9 39.7 43.1 46.7
nl 40.0 57.9 41.4 43.3 45.7
ro 40.7 53.6 39.3 43.6 44.3
Llama-7B de 35.1 49.9 29.9 38.3 38.3
es 36.8 56.4 30.3 37.0 40.1
fr 37.3 55.7 30.5 39.9 40.9
it 35.8 52.0 29.9 39.6 39.3
nl 33.6 48.7 29.8 40.0 38.0
ro 32.4 44.9 29.7 37.0 36.0
Bloom-7B de 26.3 32.4 28.1 43.7 32.6
es 38.1 56.7 28.9 40.4 41.0
fr 36.7 56.6 29.9 40.9 41.0
it 29.0 40.8 27.6 43.7 35.3
nl 23.1 31.7 27.5 42.7 31.3
ro 26.9 31.8 27.4 46.1 33.1

秉承原始 Falcon 模型的精神,Falcon2-11B 不仅使用英语数据训练,还使用了其他十种语言进行训练。我们的多语言评估结果表明,该模型在 Multilingual LLM Leaderboard 上展示的六种语言(de、es、fr、it、nl、ro)中具备良好能力,并且实际上在所有提及的语言上均表现出比 Falcon-40B 及其他几个多语言模型更高的性能。

我们将很快在 Falcon2-11B model card 中发布更全面的多语言能力评估结果!

代码生成能力

我们在 Python 语言的 HumanEval 基准上,对照 BigCode Leaderboard 检查了模型的代码生成性能,获得了 29.59% 的 pass@1。

使用 Falcon2-11B

from transformers import AutoTokenizer
import transformers
import torch

model = "tiiuae/falcon-11B"

tokenizer = AutoTokenizer.from_pretrained(model)
pipeline = transformers.pipeline(
    "text-generation",
    model=model,
    torch_dtype=torch.bfloat16,
    device_map="auto",
)

然后,你可以使用如下代码运行文本生成:

sequences = pipeline(
   "Can you explain the concept of Quantum Computing?",
    max_length=200,
    do_sample=True,
    top_k=10,
    num_return_sequences=1,
    eos_token_id=tokenizer.eos_token_id,
)
for seq in sequences:
    print(f"Result: {seq['generated_text']}")

Falcon2-11B VLM

Falcon2-11B VLM 是构建在该 LLM 之上的视觉语言模型(VLM),它额外处理图像输入,并能够回答关于图像的问题。为实现这一点,我们将预训练的 CLIP ViT-L/14 视觉编码器与经过聊天微调的 Falcon2-11B 模型集成,并使用图像-文本数据进行训练。

为了增强 VLM 对图像中小物体细粒度细节的感知,我们在图像输入上采用高分辨率的动态编码机制,类似于 LLaVA-Next。

训练

训练分为两个阶段:预训练和微调。在两个阶段中,视觉编码器的权重均保持冻结。在预训练阶段,LLM 保持冻结,仅使用 558K 图像-文本对训练多模态投影器。这使多模态投影器能够学习从视觉到文本嵌入空间的映射。在微调期间,投影器和 LLM 的权重均基于来自公共数据集的 1.2M 图像-文本指令数据语料库进行训练,该语料库还包括多轮对话。

Falcon2-11B VLM 评估

模型 MME GQA SQA POPE VQAv2 TextVQA MM-Bench SEED-IMG 平均
Falcon2-11B VLM 1589/343 64.5 74.9 88.4 82.1 66.7 72.0 72.3 74.4
LLaVA-1.6 (Vicuna-7B) 1519/332 64.2 70.1 86.5 81.8 64.9 67.4 70.2 72.1
LLaVA-1.6 (Vicuna-13B) 1575/326 65.4 73.6 86.2 82.8 67.1 70.0 71.9 73.8
LLaVA-1.6 (Mistral-7B) 1498/321 64.8 72.8 86.7 82.2 65.7 68.7 72.2 73.3

使用 Falcon2-11B-FalconVLM

from transformers import LlavaNextForConditionalGeneration, LlavaNextProcessor
from PIL import Image
import requests
import torch

processor = LlavaNextProcessor.from_pretrained("tiiuae/falcon-11B-vlm")
model = LlavaNextForConditionalGeneration.from_pretrained("tiiuae/falcon-11B-vlm", torch_dtype=torch.bfloat16)

url = "https://merzougabirding.com/wp-content/uploads/2023/09/falcon-size.jpg"
falcon_image = Image.open(requests.get(url, stream=True).raw)
prompt = "User: <image>\nWhat's special about this bird's vision?"

inputs = processor(prompt, images=falcon_image, return_tensors="pt", padding=True).to('cuda:0')

model.to('cuda:0')
output = model.generate(**inputs, max_new_tokens=256)


prompt_length = inputs['input_ids'].shape[1]
generated_captions = processor.decode(output[0], skip_special_tokens=True).strip()

print(generated_captions)

许可证信息

Falcon 2 模型根据 TII Falcon 2 许可证 提供,这是一种基于 Apache 2.0 的宽松软件许可证,包含 可接受使用政策,旨在促进负责任地使用 AI。该许可证是在 TII 对开源社区承诺的精神下制定的。

来源:Hugging Face Blog · hf-mirror.com