重磅|Falcon 180B 正式在 Hugging Face Hub 上发布!

news2025/1/11 23:45:56

4fca0ffb8c14b2acaffa645c3c2431ce.jpeg

引言

我们很高兴地宣布由 Technology Innovation Institute (TII) 训练的开源大模型 Falcon 180B 登陆 Hugging Face!Falcon 180B 为开源大模型树立了全新的标杆。作为当前最大的开源大模型,有180B 参数并且是在在 3.5 万亿 token 的 TII RefinedWeb 数据集上进行训练,这也是目前开源模型里最长的单波段预训练。

TII:https://falconllm.tii.ae/RefinedWeb:https://hf.co/datasets/tiiuae/falcon-refinedweb

你可以在 Hugging Face Hub 中查阅模型以及其 Space 应用。

模型:https://hf.co/tiiuae/falcon-180Bhttps://hf.co/tiiuae/falcon-180B-chat

Space 应用地址:https://hf.co/spaces/tiiuae/falcon-180b-demo

从表现能力上来看,Falcon 180B 在自然语言任务上的表现十分优秀。它在开源模型排行榜 (预训练) 上名列前茅,并可与 PaLM-2 等专有模型相差无几。虽然目前还很难给出明确的排名,但它被认为与 PaLM-2 Large 不相上下,这也使得它成为目前公开的能力最强的 LLM 之一。

我们将在本篇博客中通过评测结果来探讨 Falcon 180B 的优势所在,并展示如何使用该模型。

Falcon 180B 是什么?

从架构维度来看,Falcon 180B 是 Falcon 40B 的升级版本,并在其基础上进行了创新,比如利用 Multi-Query Attention 等来提高模型的可扩展性。可以通过回顾 Falcon 40B 的博客 Falcon 40B 来了解其架构。Falcon 180B 是使用 Amazon SageMaker 在多达 4096 个 GPU 上同时对 3.5 万亿个 token 进行训练,总共花费了约 7,000,000 个 GPU 计算时,这意味着 Falcon 180B 的规模是 Llama 2 的 2.5 倍,而训练所需的计算量是 Llama 2 的 4 倍。

Falcon 40B:https://hf.co/blog/zh/falcon

其训练数据主要来自 RefinedWeb 数据集 (大约占 85%),此外,它还在对话、技术论文和一小部分代码 (约占 3%) 等经过整理的混合数据的基础上进行了训练。这个预训练数据集足够大,即使是 3.5 万亿个标记也只占不到一个时期 (epoch)。

已发布的 聊天模型 在对话和指令数据集上进行了微调,混合了 Open-Platypus、UltraChat 和 Airoboros 数据集。

Falcon-180B-chat 聊天模型:https://hf.co/tiiuae/falcon-180B-chatOpen-Platypus:https://hf.co/datasets/garage-bAInd/Open-PlatypusUltraChat:https://hf.co/datasets/stingning/ultrachatAiroboros:https://hf.co/datasets/jondurbin/airoboros-2.1

‼️ 商业用途: Falcon 180b 可用于商业用途,但条件非常严格,不包括任何“托管用途”。如果您有兴趣将其用于商业用途,我们建议您查看 许可证 并咨询您的法律团队。

许可证链接:https://hf.co/spaces/tiiuae/falcon-180b-license/blob/main/LICENSE.txt

Falcon 180B 的优势是什么?

Falcon 180B 是当前最好的开源大模型。在 MMLU上 的表现超过了 Llama 2 70B 和 OpenAI 的 GPT-3.5。在 HellaSwag、LAMBADA、WebQuestions、Winogrande、PIQA、ARC、BoolQ、CB、COPA、RTE、WiC、WSC 及 ReCoRD 上与谷歌的 PaLM 2-Large 不相上下。

760e70f19ac10f442d59e43af5ada49a.jpeg

它在 Hugging Face 开源大模型榜单上以 68.74 的成绩被认为是当前评分最高的开放式大模型,评分超过了 Meta 的 LlaMA 2 (67.35)。

ModelSizeLeaderboard scoreCommercial use or licensePretraining length
Falcon180B68.74🟠3,500B
Llama 270B67.35🟠2,000B
LLaMA65B64.23🔴1,400B
Falcon40B61.48🟢1,000B
MPT30B56.15🟢1,000B
a5ed1434902a27247b13b835def7883f.jpeg

如何使用 Falcon 180B?

从 Transfomers 4.33 开始,Falcon 180B 可以在 Hugging Face 生态中使用和下载。

Demo

你可以在 这个 Hugging Face Space 或以下场景中体验 Falcon 180B 的 demo。

7ae6e68b8965a2ebcd3096adfc3e6965.png

体验地址:https://hf.co/spaces/HuggingFaceH4/falcon-chat

硬件要求


类型种类最低要求配置示例
Falcon 180BTrainingFull fine-tuning5120GB8x 8x A100 80GB
Falcon 180BTrainingLoRA with ZeRO-31280GB2x 8x A100 80GB
Falcon 180BTrainingQLoRA160GB2x A100 80GB
Falcon 180BInferenceBF16/FP16640GB8x A100 80GB
Falcon 180BInferenceGPTQ/int4320GB8x A100 40GB

Prompt 格式

其基础模型没有 Prompt 格式,因为它并不是一个对话型大模型也不是通过指令进行的训练,所以它并不会以对话形式回应。预训练模型是微调的绝佳平台,但或许你不该直接使用。其对话模型则设有一个简单的对话模式。

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

随着 Transfomers 4.33 发布,你可以在 Hugging Face 上使用 Falcon 180B 并且借助 HF 生态里的所有工具,比如: 训练和推理脚本及示例 安全文件格式 (safetensor) 与 bitsandbytes (4 位量化)、PEFT (参数高效微调) 和 GPTQ 等工具集成 辅助生成 (也称为“推测解码”) RoPE 扩展支持更大的上下文长度 丰富而强大的生成参数 在使用这个模型之前,你需要接受它的许可证和使用条款。请确保你已经登录了自己的 Hugging Face 账号,并安装了最新版本的 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.

使用 8 位和 4 位的 bitsandbytes

Falcon 180B 的 8 位和 4 位量化版本在评估方面与 bfloat16 几乎没有差别!这对推理来说是个好消息,因为你可以放心地使用量化版本来降低硬件要求。请记住,在 8 位版本进行推理要比 4 位版本快得多。要使用量化,你需要安装“bitsandbytes”库,并在加载模型时启用相应的标志:

model = AutoModelForCausalLM.from_pretrained(
    model_id,
    torch_dtype=torch.bfloat16,
    **load_in_8bit=True,**
    device_map="auto",
)

对话模型

如上所述,为跟踪对话而微调的模型版本使用了非常直接的训练模板。我们必须遵循同样的模式才能运行聊天式推理。作为参考,你可以看看聊天演示中的 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: 分隔符。我们将它们连接在一起,形成一个包含整个对话历史的提示。我们可以提供一个系统提示来调整生成风格。

其他资源

  • 模型页面https://hf.co/models?other=falcon&sort=trending&search=180

  • Space 应用https://hf.co/spaces/tiiuae/falcon-180b-chat

  • Falcon 180B 已登陆 Hugging Face 生态系统 (本文)https://hf.co/blog/falcon-180b

  • 官方公告https://falconllm.tii.ae/falcon-models.html

鸣谢

在我们的生态中发布并持续支持与评估这样一个模型离不开众多社区成员的贡献,这其中包括 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 推理和一个开源免费的模型 demo 提供的大力支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/981507.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

springboot项目配置flyway菜鸟级别教程

1、Flyway的工作原理 Flyway在第一次执行时,会创建一个默认名为flyway_schema_history的历史记录表,这张表会用来跟踪或记录数据库的状态,然后每次项目启动时都会自动扫描在resources/db/migration下的文件的版本号并且通过查询flyway_schem…

[极客大挑战 2019]FinalSQL(bypass盲注)

这里是数字型注入,选择一个序号 fuzz ?id1这里过滤了很多东西 使用fuzzSQL字典,这是我自己定义编写的一个fuzz字典,内容较少 select from information . tables whereand " or | & union columns updatexml extractvalue databa…

大数据Flink(七十四):SQL的滑动窗口(HOP)

文章目录 SQL的滑动窗口(HOP) SQL的滑动窗口(HOP) 滑动窗口定义:滑动窗口也是将元素指定给固定长度的窗口。与滚动窗口功能一样,也有窗口大小的概念。不一样的地方在于,滑动窗口有另一个参数控制窗口计算的频率(滑动窗口滑动的步长)。因此,如果滑动的步长小于窗口大…

TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension “.ts“ for xxx

报错信息: 解决方法: 在 package.json 文件中将 【type:“module”】删除

【Spring Boot】分页

分页查询 分页查询是日常开发中比较常用的功能。MyBatis框架下也有很多插件实现分页功能,比如pageHelper。这是一款非常简单、易用的分页插件,能很好地集成在Spring Boot中。pageHelper是一款基于MyBatis的数据库分页插件,所以我们在使用它时…

【广州华锐互动】AR远程协助技术提供实时远程协作和指导

随着科技的不断发展,企业的运营管理模式也在不断地进行创新和升级。在这个过程中,AR(增强现实)技术的应用逐渐成为了企业运维管理的新兴趋势。AR远程协助平台作为一种结合了AR技术和远程协助理念的技术手段,为企业运维…

裙式给料机的全球市场在2030年前将达到64亿美元!

裙式给料机,又称旋翼式给料机或喂料机,是一种结构独特的连续式给料设备,主要用于粗碎或中碎物料的过程。其核心部分为带有旋翼的裙式料斗,通过裙式料斗的旋转,将物料均匀地送入后续的破碎设备中。这种给料机的特点是结…

Word 表格单元格无法垂直居中

Word使用 由于平时也需要用到word编写一些文档,但是咱们就是用的少,很多操作或者技巧不太清楚,很多小问题处理起来反而需要消耗很多时间,所以在这里记录平时遇到的一些问题。 表格无法垂直居中 类似于上图的情况,总之…

【Java 基础篇】Java 自动装箱与拆箱:优雅处理基本数据类型与包装类的转换

在 Java 编程中,自动装箱(Autoboxing)和自动拆箱(Unboxing)是两个重要的概念。它们使得基本数据类型与其对应的包装类之间的转换更加方便,同时也提高了代码的可读性和可维护性。本篇博客将深入探讨自动装箱…

leetcode 92.反转链表II dummy节点的应用

题目 方法 dummy节点 链表的第一个结点,因为没有前驱结点,存在同时删除前驱和后继的情况,这时候我们需要人为构造dummy节点——人为制造出来的第一个结点的前驱结点,也就是说,在可能操作head节点时,我们可…

MySQL——存储引擎

简介 MySQL数据库主要的存储引擎: MyISAM和InnoDB简介 MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的 ISAM (Indexed Sequential Access Method:有索引的顺序访问方法)所改良。虽然性能…

Spring学习笔记——3

Spring学习笔记——3 一、AOP简介1.1、AOP概述1.2、AOP思想的实现方案1.3、模拟AOP的基础代码1.4、AOP的相关概念 二、基于XML配置的AOP2.1、XML方式AOP快速入门2.2、XML方式AOP配置详解2.3、XML方式AOP原理剖析 三、基于注解配置AOP3.1、注解方式AOP基本使用3.2、注解方式AOP配…

springMVC基础技术使用

目录 1.常用注解 1.1RequestMapping 1.2.RequestParam 1.3.RequestBody 1.4.PathVariable 2.参数传递 2.1 slf4j-----日志 2.2基础类型 2.3复杂类型 2.4RequestParam 2.5PathVariable 2.6RequestBody 2.7请求方法(增删改查) 3.返回值 3.1void …

rhcsa学习1基本命令(软硬链接,获取帮助等)

pwd 显示该shell的当前工作目录的完整路径名 ls 列出指定目录的目录内容 cd 更改shell的当前工作目录 没有什么特殊情况命令小写 ~所在位置:当前工作目录 #当前用户为管理员root $当前是普通用户 命令由三个基本部分组成: 命令、选项、参数 如下 -a --a…

Qt MinGW / MSVC

MinGW/MSVC的关系 MinGW / MSVC.dll / .lib / .a 的关系 MinGW / MSVC Qt 中有两种方式编译:一种是MinGW ,另一种MSVC,是两种不同的编译器。 MinGW(Minimalist GNUfor Windows),它是一个可自由使用和自由发布的Windows特定头文件…

2020年09月 C/C++(一级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C编程(1~8级)全部真题・点这里 第1题:输出整数 输入四个整数,把输入的第三、第四个整数输出。 时间限制:3000 内存限制:65536 输入 只有一行,共四个整数,整数之间由一个空格分隔。…

React中消息订阅与发布(PubSubJS)——两个组件之间通信

结合案例&#xff1a;github搜索案例 结果如下图 1.父容器代码 import React, { Component } from react import Search from ./components/Search import List from ./components/List export default class App extends Component {render() {return (<div className&…

QT Day5思维导图

聊天室代码&#xff1a; #include "cli.h" #include "ui_cli.h"Cli::Cli(QWidget *parent): QWidget(parent), ui(new Ui::Cli) {ui->setupUi(this);socket new QTcpSocket(this);connect(socket,&QTcpSocket::connected,this,&Cli::connect_…

Android Jetpack 中Hilt的使用

Hilt 是 Android 的依赖项注入库&#xff0c;可减少在项目中执行手动依赖项注入的样板代码。执行 手动依赖项注入 要求您手动构造每个类及其依赖项&#xff0c;并借助容器重复使用和管理依赖项。 Hilt 通过为项目中的每个 Android 类提供容器并自动管理其生命周期&#xff0c;…

图的学习,深度和广度遍历

一、什么是图 表示“多对多”的关系 包括&#xff1a; 一组顶点&#xff1a;通常用V&#xff08;Vertex&#xff09;表示顶点集合一组边&#xff1a;通常用E&#xff08;Edge&#xff09;表示边的集合 边是顶点对&#xff1a;(v, w)∈E&#xff0c;其中v,w∈V有向边<v, w&…