逼近GPT-4!BLOOMChat: 开源可商用支持多语言的大语言模型

news2024/11/26 17:35:41

背景

SambaNova和Together这2家公司于2023.05.19开源了可商用的支持多语言的微调模型BLOOMChat。

SambaNova这家公司专注于为企业和政府提供生成式AI平台,Together专注于用开源的方式打造一站式的foundation model,赋能各个行业。

OpenAI的GPT-4和Google的PaLM2对多语言的支持已经做得很不错了,但这两者都是闭源的,而开源的大语言模型主要有以下痛点无法解决:

  • 第一,大多数不能商用。比如Meta开源的LLAMA,以及基于LLAMA衍生的Vicuna等无法商用,只能用于学术研究。清华和智谱AI开源的ChatGLM的模型权重也不能商用。
  • 第二,对非英语支持一般。大部分开源模型的训练语料以英文为主,非英文的对话效果一般。然而,世界上有超过80%左右的人是不讲英语的,如何解决这部分人的使用痛点也很关键。

国内很多企业和公司也在调研如何基于开源模型进行微调,打造一个支持中文的大语言模型,应用到自己的业务场景里。

由BigScience开源的Bloom基座模型是很多互联网公司的首选,因为这个模型可商用,支持包括中文在内的46种语言,而且模型参数够多,有1760亿参数。

有些公司就是直接拿基于Bloom做过微调后的Bloomz模型,来进一步微调,打造一个垂直领域的LLM。

SambaNova和Together联合开源的BLOOMChat,其目的就是打造一个开源的、支持多语言、可商用的聊天LLM,实验表明BLOOMChat对多语言的支持明显优于其它开源模型。

BLOOMChat

BLOOMChat是在SambaNova提供的AI计算平台RDUs(Reconfigurable Dataflow Units)上进行训练的。

由各个语言的native speaker来评测模型的回答效果。

对于英语、中文、法语、阿拉伯语、西班牙语、印度语这6种语言的回答效果,相比于GPT-4的54.75%胜率,BLOOMChat获得了45.25%的胜率,弱于GPT-4。

但是,与其它主流的开源聊天LLM相比,它有66%的时间表现更优。

在WMT翻译任务中同样表现出色,领先于其它基于BLOOM的微调模型和其它主流开源聊天模型。

BLOOMChat的思路来源于先前工作的启发,即在一个语言中进行指令微调可以提升多语言模型在另一种语言中的效果表现,BLOOMChat使用了包括OpenChatKit的OIG、Dolly 2.0和OASST1数据集在内的以英语为主的对话数据集来进行BLOOM(176B)的模型微调。

尽管只在英语数据集上进行了微调,作者观察到BLOOMChat在非英语场景下的聊天质量也得到了显著提高。

数据收集

BLOOMChat微调的指令数据有2类。

  • 第一种,是由程序自动合成的对话数据集OpenChatKit,数据量大。OpenChatKit训练数据集就是由Together公司联合LAION和Ontocord开源出来的。
  • 第二种,是人工写出来的高质量问答数据集Dolly 2.0和OASST1,数据量小。

指令微调(fine tune)

整个微调是在SambaNova公司的RDU(Reconfigurable Dataflow Units) AI平台进行,基座模型是BLOOM-176B。

微调分2步进行:

  • 第一步,对OpenChatKit的每个数据源按照100k数据量进行采样,然后训练一轮。这是由于OpenChatKit包含多种数据源,而且数据量比较大,所以对OpenChatKit的每个数据源先进行采样,得到很多子数据集,然后完整fine tune一遍所有子数据集。
  • 第二步,对Dolly 2.0和OASST1结合在一起的数据集做3轮fine tune。

所有数据集相关的数据和代码、微调和推理的脚本都免费开源在GitHub上,开源地址参考文末链接。

实验效果

BLOOMChat团队做了3种不同场景的实验测评,评测了英语、中文、阿拉伯语、法语、西班牙语和印度语。

实验1:人类评估

以OpenAssistant Conversations里的22个英文问题作为基准,让其它语言的native speaker把这22个英文问题翻译为其它语言,然后找另外的native speaker来评价模型给出的回答。

评测了以下3种开源模型:

  • OpenAssistant-30B: an open-source state-of-the-art chat-aligned LLM。
  • LLaMA-Adapter-V2-65B: an open-source state-of-the-art chat-aligned LLM。
  • BLOOMZ (176B): an open-source LLM instruction tuned from BLOOM (176B)。

看上图就知道,BLOOMChat明显优于其它几个开源模型。

和GPT-4相比,还是略逊一筹,GPT-4在评测记录中,55%的评测记录是优于BLOOMChat的。

实验2:模型质量评估

对BLOOMChat的回答数据,让native speaker进行评测。

上图可以看出,尽管只在英语数据集上进行了微调,但是对于每个语言的回答,超过70%都是正确或者可接受的。

实验3:WMT翻译任务

对比了多个开源模型在WMT翻译任务上的表现,总体而言,BLOOMChat优于其它开源模型,但是明显弱于GPT-4。

BLOOMChat的局限性

与大多数聊天语言模型(LLM)一样,BLOOMChat也有一些局限性:

  • BLOOMChat有时可能会生成听起来合理但事实不正确或与主题无关的回复信息。

  • BLOOMChat可能在单个回复中无意间切换语言,影响输出的连贯性和可理解性。

  • BLOOMChat可能会产生重复的短语或句子,导致回复内容缺乏吸引力和有效信息。

  • BLOOMChat在生成代码或解决复杂数学问题方面的效果还相对 一般。

  • BLOOMChat可能无意中生成含有不适当或有害内容的回复。

总结

BLOOMChat是第一个完全开源、参数超千亿、专门针对多语言支持的聊天LLM。

文章和示例代码开源在GitHub: GPT实战教程,可以看到所有主流的开源LLM。

公众号:coding进阶。关注公众号可以获取最新GPT实战内容。

个人网站:Jincheng’s Blog。

知乎:无忌。

References

  • https://sambanova.ai/blog/introducing-bloomchat-176b-the-multilingual-chat-based-llm/
  • https://huggingface.co/spaces/sambanovasystems/BLOOMChat
  • https://github.com/sambanova/bloomchat

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

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

相关文章

【将maven源改为国内阿里云镜像】

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 1. 如何配置Maven镜像? 2. Idea中m…

【Java入门】初识Java

前言 📕作者简介:热爱跑步的恒川,致力于C/C、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。 📗本文收录于Java入门篇系列,该专栏主要讲解:什么是java、java的数据类型与变…

MATLAB|004|MATLAB M-Files|MATLAB数据类型

MATLAB M-Files 我们一直强调MATLAB是一个功能强大的编程语言及交互式计算环境,之前学习的内容中,我们学会了在 MATLAB 命令提示符下输入命令,而且我们主要是把MATLAB环境作为一个计算器使用。其实,MATLAB 还允许写入到一个文件中…

5分钟掌握利用pycharm插件BitoAI 实现chatgpt自动编写代码

一、BitoAI 简介 最近出现了一款新型编程助手BitoAI。今天的主要内容就是给大家介绍它,号称 IDE 的“瑞士军刀”,可以提升开发 10 倍的效率。 简言之它的强大之处就是可以通过类似于ChatGPT对话的方式来编写代码,分析代码,生成代…

Flutter控件之Tab选项卡封装

Tab选项卡,这是一个非常常见且权重很高的一个组件,随便打开一个App,比如CSDN,如下图,首页顶部就是一个Tab选项卡,这个功能可以说,几乎每个App都会存在。 在Android中,我们可以使用Ta…

“Shell“iptales防火墙设置

文章目录 一.Linux防火墙基础1.1Linux包过滤防火墙概述1.2四表五链1.3规则链之间的匹配顺序1.4规则链内的匹配顺序1.5总结 二.编写防火墙规则2.1iptables防火墙的配置方法2.2规则的匹配2.3命令使用 一.Linux防火墙基础 1.1Linux包过滤防火墙概述 Linux 系统的防火墙: IP信息包…

惯性导航论文详解:神经惯性定位

来源:投稿 作者:小灰灰 编辑:学姐 论文标题:Neural Inertial Localization 论文链接: https://arxiv.org/pdf/2203.15851v1.pdf 图1.从IMU测量到位置估计。给定惯性传感器数据(左),我们的方法…

C#,生信软件实践(04)——DNA数据库EMBL格式文件的解释器之完整源代码

EMBL文件的格式详解请阅读前面的文章: C#,生信软件实践(02)——DNA数据库EMBL格式详解及转为FASTA格式文件的源代码https://blog.csdn.net/beijinghorn/article/details/130462070 本文的代码用于: (1&a…

Linux---文件操作命令(cp、mv、rm)

1. cp命令 cp命令可以用于复制文件\文件夹,cp命令来自英文单词:copy。 语法:cp [选项] 参数1 参数2 参数1:Linux路径,表示被复制的文件或文件夹 参数2:Linux路径,表示要复制去的地方 选…

《Java 核心技术面试》课程笔记(十一)

Java 提供了哪些 IO 方式? 典型回答 Java IO 基于不同的 IO 抽象模型和交互方式,可以分为: BIO,传统的 java.io 包,它基于流模型实现。 提供了我们最熟知的⼀些 IO 功能,比如 File 抽象、输入输出流等。交…

安装编译PostgreSql15.3.0

一、下载源码 方式一 官网手动下载 https://www.postgresql.org/download/. 解压 tar -zxvf postgresql-14.2.tar.gz方式二 git clone git clone https://github.com/postgres/postgres.git解压或下载后计入postgres目录 cd postgres-15.3二、创建目录 用root账户创建 创建…

[iOS开发]<多线程-NSOperation操作队列NSOperationQueue>

前言 寒假期间学习过GCD。今天学习NSOperation。同样都是多线程封装,NSOperation和NSOperationQueue是基于GCD的更高一层的封装,完全的面向对象,相比于GCD复杂的各种API方法,它的优势就是更加的简单实用,代码的可读性…

电力电子课设—数控产生PWM波——使用51单片机输出占空比可调PWM波(按钮控制、数码管显示)控制速成教程

我们学校电气专业开始做电力电子的课设了,小组选了一项制作硬件电路的任务,里面有要求采用数控方式实现DC-DC电压变换的输出电压调节,数控在电路中的体现就是用单片机输出可调占空比的PWM作用于产生PWM波控制IGBT的芯片。考虑到可能有同学没接…

金领冠520解密母乳源代码,助推婴配粉中国式现代化高速发展

又是一年520,又是一个“全国母乳喂养宣传日”。 1990年5月10日,为保护、促进和支持母乳喂养,更好地实行优生优育,原中华人民共和国国家卫生部召开新闻发布会,确立每年5月20日为“全国母乳喂养宣传日”。 那时&#x…

[GXYCTF2019]BabySQli1

拿到题目一看就是sql注入,所以还是老样子账号admin密码随便输入,回显但是密码错误 当用户名随便输入时,回显用户名错误,说明是先检测用户名,再检测密码 应该是存在过滤 通过burp爆破大致找出过滤字符,还有就…

css flex布局

css flex布局 flex是flexible Box的缩写,意为“弹性布局”,任何一个容器都可以指定为flex布局。 当我们为父盒子设为flex布局以后,子元素的float、clear和vertical-align属性将失效 总结flex布局原理: 就是通过给父盒子添加fl…

Java - AQS(一)

Java - AQS(一) 在Java中,AQS代表AbstractQueuedSynchronizer(抽象队列同步器)。AQS是Java并发包中用于构建同步器的基础框架。它提供了一种实现同步状态管理、线程等待和通知的机制。 AQS主要通过一个int类型的状态…

轻松玩转开源大语言模型bloom(四)

前言 前几篇都围绕着语言模型的decoding strategy来讲述,今天将进入进阶篇,在解码策略效果有限和提示词修改也无法满意的情况下如何提升模型的效果呢?这时我们需要对大语言模型进行fine-tune,即微调。一般我们用的大语言模型都是…

chatgpt赋能Python-python5个数从小到大排序

Python中的5个数从小到大排序 在Python中,排序是一个常见的操作。我们经常需要对一组数据进行排序,以便更方便地对数据进行分析和处理。在本文中,我们将探讨Python中如何排序5个数,具体来说,是从小到大排序。 介绍 …

chatgpt赋能Python-python5__3

Python5%-3: 介绍和结论 什么是Python5%-3 Python5%-3是在Python 3语言版本中增加的一个新特性,它是Python语言中对移动开发的支持扩展,这个特性被称为Python5%-3。 具体来说,Python5%-3允许开发者能够更方便地创建移动应用程序&#xff0…