Falcon 180B 目前最强大的开源模型

news2025/1/10 1:46:39

Technology Innovation Institute最近发布了Falcon 180B大型语言模型(LLM),它击败了Llama-2 70b,与谷歌Bard的基础模型PaLM-2 Large不相上下。

180B是是Falcon 40B模型一个最新版本。以下是该模型的快速概述:

180B参数模型,两个版本(base和chat)

使用RefinedWeb数据集训练3.5万亿个令牌

上下文最大为2048令牌

它大约是ChatGPT (GPT-3.5)的大小,它有175B个参数。它是最好的吗?截至2023年9月,Falcon 180B在hug Face的模型排行榜上排名第一。

模型变体

Falcon 180B有两个版本——基础版和聊天版。

基础版是一个因果解码器模型。这个模型非常适合对自己的数据进行进一步微调。

聊天版chat与基础版本类似,这也是一个1800亿个参数的因果解码器模型。但是它对Ultrachat5、Platypus6和airboros7指令(聊天)数据集进行了微调。

模型表现

就它的能力而言,Falcon 180B与PaLM-2 Large并肩而立,使其成为最强大的公开可用语言模型之一。

量化的Falcon模型在基准测试中保持了类似的指标。

通过Open LLM排行榜,你会注意到,尽管声称这是最好的Open LLM,但Llama 2的微调版本仍然优于Falcon 180B。但是值得注意的是,最初的Llama 2模型是在Falcon发布之后。

硬件需求

虽然模型是免费使用的,但你很难在普通的gpu上运行它。甚至GPTQ(TheBloke)版本的这个模型,仍然需要超过80GB的VRAM。看看HF帖子中的这张表:

8个A100 80GB gpu -还是在量化到半精度(FP16)之后。选择int4精度仍然需要320GB的内存。

那么8个A100要多少钱呢?以下为美东AWS的A100 GPU每小时价格。

也就是说,如果运行int4,每月大概24,000美元,半精度的话,大概是30,000美元。

数据集的作用

Chinchilla缩放定律指出,一个模型的大小和它的训练数据集应该同步增长,以在给定的计算预算内最大化性能。

Falcon180B使用RefinedWeb数据集对惊人的3.5万亿个令牌进行了训练。RefinedWeb不仅规模庞大,而且还经过精心提炼和增强,并通过一些精心挑选的附加内容进行培训。而TII不断强调RefinedWeb在创建其Falcon模型中的重要性。

该原则在实际应用中的实际含义非常深远,当Llama-65B模型在1.4万亿令牌上进行训练时,可以看到这种效果,并且它的表现明显优于OPT-175B模型,因为后者仅在1800亿令牌上进行训练。这也充分说明了当大型模型缺乏充足的数据时,它们的表现可能会被数据丰富的小型模型超越。

Falcon 180b vs ChatGPT

Falcon 180B可以通过HuggingFace上的Demo来进行测试。Demo被限制在大约1000字的会话长度。

我们将在相同的提示下比较ChatGPT和Falcon 180B的性能。以下是猎鹰180B Demo的默认配置:

Temperature: 0

Max new tokens: 512

Top-p: 0.9

Repetition penalty: 1.1

我们来测试一下他的表现

What is the latest date you have knowledge of?

 **Falcon 180B**:
 As an AI language model, I do not have knowledge of specific dates unless they
 are provided to me. Please provide a specific date or context for me to answer
 your question accurately.
 
 **ChatGPT**:
 My knowledge is current up to September 2021. I do not have information on
 events, developments, or information that has occurred after that date. If you have
 questions or need information beyond that date, I may not be able to provide it. Please
 verify any information I provide with more up-to-date sources.

也就是说训练的时候没有表明使用数据,不过根据官方的提示,应该就是RefinedWeb的时间了。

代码生成

代码生成是我们比较关注的事情,但是较小的型号(7B-40B)对于代码方面表现不佳所以才出现了专门的Code Llama

Write a function in python that calculates the square of a sum of two numbers.

Falcon 180B:

 Here is a simple function in Python that calculates the square of a sum of two
 numbers:
 
 ```py
 def square_sum(num1, num2):
     return (num1 + num2)**2

This function takes two arguments num1 and num2, adds them together, and then
calculates the square of the result using the exponentiation operator (**).
The final result is returned.

For example, if you call square_sum(3, 4), it will return 49, because (3 + 4)
2 = 72 = 49.


**ChatGPT**:

You can create a Python function to calculate the square of the sum of two
numbers like this:

def square_of_sum(num1, num2):
    # Calculate the sum of the two numbers
    total = num1 + num2

    # Calculate the square of the sum
    square = total ** 2

    return square

# Example usage:
num1 = 5
num2 = 3
result = square_of_sum(num1, num2)
print(f"The square of the sum of {num1} and {num2} is {result}")

This function, square_of_sum, takes two numbers as input, calculates their
sum, and then calculates the square of that sum. The result is returned by the
function. You can call this function with different values of num1 and num2
to calculate the square of the sum of any two numbers.


虽然ChatGPT的代码多,但是180B的代码更简洁,更容易阅读。让我们试一个更难的:

> Write a function in python that splits a list into 3 equal parts and returns alist with a random element of each sublist.

**Falcon 180B**:

Here’s a function that does what you’re asking for:

import random

def split_list(lst):
    n = len(lst)
    part_size = n // 3
    parts = [lst[i:i+part_size] for i in range(0, n, part_size)]
    return [random.choice(part) for part in parts]

This function takes a list lst as input and splits it into three equal parts
using list slicing. It then selects a random element from each sublist using
the random.choice() function and returns a new list containing these elements.

Here’s an example usage of the function:

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
split_list(lst)

[5, 6, 7]

In this example, the input list lst is split into three equal parts of size 3,
and a random element is selected from each part to form the output list [5, 6, 7].


**ChatGPT**:

You can achieve this by first splitting the list into three equal parts and
then selecting a random element from each sublist. Here’s a Python function to
do that:

import random

def split_and_random_elements(input_list):
    # Calculate the size of each sublist
    sublist_size = len(input_list) // 3

    # Split the input list into three sublists
    sublists = [input_list[i:i + sublist_size] for i in range(0, len(input_list), sublist_size)]

    # Initialize a list to store the random elements
    random_elements = []

    # Select a random element from each sublist
    for sublist in sublists:
        if sublist:
            random_element = random.choice(sublist)
            random_elements.append(random_element)

    return random_elements

# Example usage:
input_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
result = split_and_random_elements(input_list)
print(result)

In this function, we first calculate the size of each sublist by dividing the
length of the input list by 3. Then, we use list comprehension to split the
input list into three sublists of equal size. Finally, we iterate through the
sublists and use the random.choice function to select a random element from
each sublist and append it to the random_elements list, which is returned as
the result.


Falcon 180B的代码更简洁,但是它的代码有一个错误输出的例子。这样看对于代码生成而言,还有很大的微调空间。

**QA**

我们用下面这个表提问

![](http://images.overfit.cn/upload/20230912/3c8a552a49ca4ce290b0332cb3913f52.png)

Use the data from the markdown table:

|Model|Size|Code|Commonsense Reasoning|World Knowledge|Reading Comprehension|Math|MMLU|BBH|AGI Eval|
| — -| — -| — -| — -| — -| — -| — -| — -| — -| — -|
|Llama 1|7B|14.1|60.8|46.2|58.5|6.95|35.1|30.3|23.9|
|Llama 1|13B|18.9|66.1|52.6|62.3|10.9|46.9|37.0|33.9|
|Llama 1|33B|26.0|70.0|58.4|67.6|21.4|57.8|39.8|41.7|
|Llama 1|65B|30.7|70.7|60.5|68.6|30.8|63.4|43.5|47.6|
|Llama 2|7B|16.8|63.9|48.9|61.3|14.6|45.3|32.6|29.3|
|Llama 2|13B|24.5|66.9|55.4|65.8|28.7|54.8|39.4|39.1|
|Llama 2|70B|**37.5**|**71.9**|**63.6**|**69.4**|**35.2**|**68.9**|**51.2**|**54.2**|

to answer the question:
Calculate how much better (% increase) is Llama 2 7B vs Llama 1 7B on Reading Comprehension?


回答结果如下:

**Falcon 180B**:

The Reading Comprehension score for Llama 1 7B is 58.5 and for Llama 2 7B it is
61.3. To calculate the percentage increase, we use the formula:

Percentage Increase = ((New Value - Old Value) / Old Value) * 100

Plugging in the values, we get:

Percentage Increase = ((61.3 - 58.5) / 58.5) * 100 = 5.1%

Therefore, Llama 2 7B is 5.1% better than Llama 1 7B on Reading Comprehension.


**ChatGPT**:

To calculate the percentage increase in Reading Comprehension between Llama 2
7B and Llama 1 7B, you can use the following formula:

Percentage Increase = [(New Value - Old Value) / Old Value] * 100

In this case:

  • New Value (Llama 2 7B Reading Comprehension): 61.3
  • Old Value (Llama 1 7B Reading Comprehension): 58.5

Now, plug these values into the formula:

Percentage Increase = [(61.3 - 58.5) / 58.5] * 100

Percentage Increase = [(2.8) / 58.5] * 100

Percentage Increase ≈ 4.79%

So, Llama 2 7B performs approximately 4.79% better than Llama 1 7B on Reading
Comprehension.


两种模型给出了不同的答案。哪一个是正确的?好吧,ChatGPT对了:

Percentage Increase = ((61.3–58.5) / 58.5) * 100 = 5.1%

Falcon 180B的公式是没问题的,但是最后一步的除法算错了。

## 总结

Falcon 180B是目前最大的公开模特。它在排行榜上名列前茅,甚至给那些大牌的专有模式,比如PaLM-2,带来了竞争压力。但是我们的评估表明,它可能还需要有更大的提升。

对于有兴趣测试和评估LLM的个人或组织,有以下建议:

1、定义明确的目标:了解想通过评估达到什么目标。无论是衡量模型在语言理解方面的熟练程度,探索道德考虑,还是测试偏见,有一个明确的目标将指导评估过程。

2、多样化的输入:确保测试数据集包含广泛的主题、语言、文化和复杂性。这确保了对模型能力的全面评估。

3、检查偏差:在模型的反应中积极寻找明显和微妙的偏差。这包括与种族、性别、国籍等有关的偏见。LLM可能会无意中携带训练数据中存在的偏见。

4、复杂场景:不仅给模型提供简单的问题,还要提供复杂的、多方面的场景,以了解其深度和推理能力。

5、一致性:以不同的时间间隔多次运行相同或类似的查询,检查响应的一致性。

6、真实世界用例:在业务领域相关的实际的、真实的场景中测试模型。这给了一个概念,如何很好地将模型集成到实际应用中。

7、与替代方案比较:如果可能,将输出与其他类似的llm进行比较。这将给出一个相对的性能度量。

8、反馈循环:实现一个反馈机制,在这个机制中,评估者可以对模型的响应提供反馈。这对于迭代改进是有价值的。

9、了解局限性:每个模型都有其局限性。注意模型的知识边界、任何预先设定的边界以及它的一般设计约束。

10、安全措施:特别是在面向公众的应用程序中使用该模型时,要实现保护措施以防止有害输出或误用。

11、保持更新:LLM不断发展。随时了解模型的最新版本和改进。

相信随着LLM不断发展,他会与我们的日常生活更加无缝地融合在一起,但是现在还为时过早,而且我个人认为,在硬件限制的情况下,减小模型的大小这个研究方向是非常有前途的,包括,模型压缩,发现更小但是更好的模型,甚至是另外一种更高效的建模方法。

[https://avoid.overfit.cn/post/14268c27f72a4c9d994e9acfbcae25b0](https://avoid.overfit.cn/post/14268c27f72a4c9d994e9acfbcae25b0)

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

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

相关文章

基于Python+Django实现一个电商购物网站系统

随着互联网的高速发展,电子商务行业也正迎来了其黄金时代。如何搭建一个功能完备、体验良好的电商网站成了许多开发者的关心话题。今天,我将带大家使用Python语言和Django框架,快速打造一个电商购物系统。如果你有一定的Python基础&#xff0…

java Math类中的random方法和Random类中方法的区别

文章目录 Math类中的random()方法Random类 Math类中的random()方法 Math类中的random()方法没有参数,它会默认返回等于0.0、小于1.0的double类型随机数。对double()方法返回的数字稍加处理,即可实现任意范围随机数的功能 public class MathTest {publi…

小白备战大厂算法笔试(六)——堆

文章目录 堆常用操作堆的实现存储与表示访问堆顶元素元素入堆元素出堆 常见应用建堆操作自上而下构建自下而上构建 TOP-K问题遍历选择排序堆 堆 堆是一种满足特定条件的完全二叉树,主要可分为下图所示的两种类型。 大顶堆:任意节点的值 ≥ 其子节点的值…

什么牌子的led台灯质量好?Led台灯品牌质量排行榜

台灯如何选择,随着人们生活水平的提高及科技的不断进步,台灯的品质也得到了极大的提高,在生活中很多时候都需要使用台灯,但是市面上的台灯那么多,台灯如何选择。推荐五款质量高的护眼台灯。 一、书客护眼台灯L1 书客…

Spring学习笔记——4

Spring学习笔记——4 一、基于AOP的声明式事务控制1.1、Spring事务编程概述1.2、搭建测试环境1.3、基于XML声明式事务控制1.4、基于注解声明式事务控制 二、Spring整合web环境2.1、JavaWeb三大组件作用及其特点2.2、Spring整合web环境的思路及实现2.3、Spring的Web开发组件spri…

基础术语和模式的学习记录

1 范围 本文件界定了政府和社会资本合作(PPP) 的基础术语,给出了政府和社会资本合作(PPP) 的 模 式 分类和代码。 本文件适用于政府和社会资本合作(PPP) 的所有活动。 2 规范性引用文件 本文件没有规范性引用文件。 3 基础术语 3.1 PPP 主体 3.1.1 政府和社…

Tensorflow 01(介绍)

一、Tensorflow 深度学习框架TensorFlow一经发布,就受到了广泛的关注,并在计算机视觉、音频处理、推荐系统和自然语言处理等场景下都被大面积推广使用,现在已发布2.3.0版本,接下来我们深入浅出的介绍Tensorflow的相关应用。 Tens…

Redis模块一:缓存简介

目录 缓存的定义 应用 生活案例 程序中的缓存 缓存优点 缓存的定义 缓存是⼀个高速数据交换的存储器,使用它可以快速的访问和操作数据。 应用 1.CPU缓存:CPU缓存是位于CPU和内存之间的临时存储器,它的容量通常远小于内存&#xff0…

Minio入门系列【1】Windows/Linux/K8S单机部署Minio

1 Minio简介 MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小&…

配置服务器实现无缝连接

在进行网络爬虫时,经常会面临目标网站的IP封锁、反爬虫策略等问题。为了解决这些问题,配置代理服务器是一种常见的方法。本文将向您介绍如何配置代理服务器与爬虫实现无缝连接,助您顺利进行数据采集。 一、了解代理服务器的作用 代理服务器…

数字经济时代,企业的核心竞争力究竟是什么?

数字经济时代,企业的核心竞争力是由技术、数据、创新等因素综合驱动的。主要包含以下部分: 1.数字化转型:企业成功进行数字化转型的能力至关重要。这涉及将数字技术集成到业务的所有领域,从根本上改变其运营方式以及为客户提供价…

买彩票能中大奖?用Java盘点常见的概率悖论 | 京东云技术团队

引言 《双色球头奖概率与被雷劈中的概率哪个高?》 《3人轮流射击,枪法最差的反而更容易活下来?》 让我们用Java来探索ta们! 悖论1:著名的三门问题 规则描述:你正在参加一个游戏节目,你被要…

自动化运维——ansible (五十三) (02)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、模块 1.1 playbook 1.1.1 YMAL格式 1.1.2 playbook实例 1.1.3 Playbook常见语法 1.1.4 playbook编排多个hosts任务 1.2 roles 1.2.1 roles介绍 1.2.2 创建role…

【开发】视频监控平台EasyCVR分组批量绑定/取消通道功能的后端代码设计逻辑介绍

视频监控平台/视频存储/视频分析平台EasyCVR基于云边端一体化管理,可支持视频实时监控、云端录像、云存储、磁盘阵列存储、回放与检索、智能告警、平台级联等功能。安防监控平台在线下场景中应用广泛,包括智慧工地、智慧工厂、智慧校园、智慧社区等等。 …

GaussDB数据库SQL系列-SQL与ETL浅谈

目录 一、前言 二、SQL与ETL的概述 三、ETL过程中的SQL示例(GaussDB) 1、提取(Extract) 2、转换(Transform) 3、加载(Load) 四、附DataArts Studio介绍 五、小结 一、前言 …

如何像专业人士一样调试 Kubernetes 应用程序错误(一)

在当今迅速发展的技术景观中,从单体架构迁移到微服务架构正变得越来越普遍。然而,对于那些在这个领域经验较少的人来说,适应这些新资源可能会带来重大的挑战。 无论您是开发团队、DevOps、基础设施还是其他技术团队的一部分,本文…

万博智云加入光合组织,携手为信创发展贡献力量

日前,万博智云信息科技(上海)有限公司(以下简称“万博智云”)正式加入海光产业生态合作组织(以下简称“光合组织”),并由海光产业生态合作组织颁发“海光产业生态合作组织成员单位证…

成都优优聚为什么值得信任?

成都优优聚能信任作为一家专业的电商服务公司,拥有丰富的经验和专业的团队,能够为商家提供全方位的美团代运营服务。 美团外卖作为国内领先的外卖平台,具有庞大的用户群体和丰富的商家资源。然而,美团代运营对于很多刚开始接触美团…

一文读懂高速电机主轴的技术特性及应用

在现代化的加工制造业中,高速电机主轴是不可或缺的重要设备,它的质量和性能直接影响加工效率和产品质量。本文将介绍高速电机主轴的技术特性及应用,更好地了解这一重要设备。 一、高速电机主轴的技术特性 1.高稳定性 高速电机主轴采用特殊…

长胜证券:融券打新虽失宠 券源分配仍需透明

近期,关于战略投资者出借限售股作为融券券源的准则备受商场热议。不少投资者担心,跟着新股的大都券源被量化私募掌握,量化私募融券打新的战略有或许成为新股上市首日上涨后回身跌跌不休的首要原因。 券源分配是否有失公允?融券打…