击败ChatGPT?OpenChat霸榜斯坦福AlpacaEval开源榜首,性能高达105.7%

来源 | 新智源  ID | AI-era

一夜之间,全新开源模型「OpenLLM」击败ChatGPT的消息,在网上引起轩然大波。

根据官方的介绍,OpenLLM:

- 在斯坦福AlpacaEval上,以80.9%的胜率位列开源模型第一

- 在Vicuna GPT-4评测中,性能则达到了ChatGPT的105.7%

最重要的是,如此卓越的性能,只需要6K的GPT-4对话数据进行微调训练。

项目地址:https://github.com/imoneoi/openchat

不过Chatbot Arena的「榜单主」提醒称,由于旧的Vicuña eval基准存在一些bias,因此提倡大家迁移到新提出的MT-bench上——从而更好地测评LLM更多方面的能力。

OpenLLM:只需6K GPT-4对话微调

OpenLLM是一个在多样化且高质量的多轮对话数据集上进行微调的开源语言模型系列。

具体来讲,研究人员从约90K的ShareGPT对话中,过滤出来约6K的GPT-4对话。

经过6k数据微调后,令人惊讶的是,OpenLLM已经被证明可以在有限的数据下实现高性能。

OpenLLM有两个通用模型,它们是OpenChat和OpenChat-8192。

OpenChat:基于LLaMA-13B微调,上下文长度为2048

- 在Vicuna GPT-4评估中达到ChatGPT分数的105.7%

- 在AlpacaEval上取得了惊人的80.9%的胜率

OpenChat-8192:基于LLaMA-13B微调,上下文长度为8192

- 在Vicuna GPT-4评估中达到ChatGPT分数的106.6%

- 在AlpacaEval上取得的79.5%胜率

此外,OpenLLM还有代码模型,其性能如下:

OpenCoderPlus:基于StarCoderPlus,原始上下文长度为8192

- 在Vicuna GPT-4评估中达到ChatGPT分数的102.5%

- 在AlpacaEval上获得78.7%的胜率

模型评估

研究人员使用Vicuna GPT-4和AlpacaEval基准评估了最新模型,结果如下图所示:

Vicuna GPT-4评估(v.s. gpt-3.5-turbo)

Vicuna GPT-3.5-Turbo评估(v.s. gpt-3.5-turbo)

另外,值得注意的是,研究者采用的评估模式与Vicuna的略有不同,还使用了证据校准(EC)+平衡位置校准(BPC)来减少潜在的偏差。

安装和权重

要使用OpenLLM,需要安装CUDA和PyTorch。用户可以克隆这个资源库,并通过pip安装这些依赖:

git clone git@github.com:imoneoi/OChat.gitpip install -r requirements.txt
 

目前,研究人员已经提供了所有模型的完整权重作为huggingface存储库。

用户可以使用以下命令在本地启动一个API服务器,地址为http://localhost:18888。

其中,服务器与openai包,以及ChatCompletions协议兼容(请注意,某些功能可能不完全支持)。

用户可以通过设置以下方式指定openai包的服务器:

 
openai.api_base = "http://localhost:18888/v1"

当前支持的ChatCompletions参数有:

建议:使用至少40GB(1x A100)显存的GPU来运行服务器。

数据集

转换后的数据集可在openchat_sharegpt4_dataset上获取。

项目中所使用的数据集,是对ShareGPT清洗和筛选后的版本。

其中,原始的ShareGPT数据集包含大约90,000个对话,而仅有6,000个经过清理的GPT-4对话被保留用于微调。

清洗后的GPT-4对话与对话模板和回合结束时的token相结合,然后根据模型的上下文限制进行截断(超出限制的内容将被丢弃)。

要运行数据处理流程,请执行以下命令:

./ochat/data/run_data_pipeline.sh INPUT_FOLDER OUTPUT_FOLDER

输入文件夹应包含一个ShareGPT文件夹,其中包含每个ShareGPT对话页面的.html文件。

数据处理流程包括三个步骤:

- 清洗:对HTML进行清理并转换为Markdown格式,删除格式错误的对话,删除包含被屏蔽词汇的对话,并进行基于哈希的精确去重处理

- 筛选:仅保留token为Model: GPT-4的对话

- 转换:为了模型的微调,针对所有的对话进行转换和分词处理

最终转换后的数据集遵循以下格式:

MODEL_TYPE.train.json / .eval.json

 
[    [token_id_list, supervise_mask_list],    [token_id_list, supervise_mask_list],    ...]

MODEL_TYPE.train.text.json / .eval.text.json从token_id_list解码的纯文本

除此之外,研究人员还提供了一个用于可视化对话嵌入的工具。

只需用浏览器打开ochat/visualization/ui/visualizer.html,并将MODEL_TYPE.visualizer.json拖放到网页中。点击3D图中的点,就可以显示相应的对话。

其中,嵌入是使用openai_embeddings.py创建的,然后使用dim_reduction.ipynb进行UMAP降维和K-Means着色。

模型修改

研究人员为每个基础模型添加了一个EOT(对话结束)token。

对于LLaMA模型,EOT的嵌入初始化为所有现有token嵌入的平均值。对于StarCoder模型,EOT的嵌入以0.02标准差进行随机初始化。

对于具有8192上下文的LLaMA-based模型,max_position_embeddings被设置为8192,并且进行了RoPE(相对位置编码)代码的外推。

训练

训练模型时使用的超参数在所有模型中都是相同的:

使用8xA100 80GB进行训练:

NUM_GPUS=8
deepspeed --num_gpus=$NUM_GPUS --module ochat.training_deepspeed.train \    --model_type MODEL_TYPE \    --model_path BASE_MODEL_PATH \    --save_path TARGET_FOLDER \    --length_grouping \    --epochs 5 \    --data_path DATASET_PATH \    --deepspeed \    --deepspeed_config ochat/training_deepspeed/deepspeed_config.json

评估

要运行Vicuna GPT-4评估,请执行以下步骤:

1. 生成模型答案

python -m ochat.evaluation.get_model_answer --model_type MODEL_TYPE --models_path PATH_CONTAINING_ALL_MODELS_SAME_TYPE --data_path ./ochat/evaluation/vicuna --output_path ./eval_results

2. 生成基线(GPT-3.5)答案

OPENAI_API_KEY=sk-XXX python -m ochat.evaluation.get_openai_answer --data_path ./ochat/evaluation/vicuna --output_path ./eval_baselines --model_types gpt-3.5-turbo

3. 运行GPT-4评估

OPENAI_API_KEY=sk-XXX python -m ochat.evaluation.openai_eval --data_path ./ochat/evaluation/vicuna --baseline_path ./eval_baselines/vicuna_gpt-3.5-turbo.jsonl --input_path ./eval_results

4. 可视化和细节

要获得可视化和绘制评估结果,请使用浏览器打开ochat/visualization/eval_result_ui/eval_result_visualizer.html,并选择./eval_results/eval_result_YYYYMMDD文件夹中的所有文件以显示结果。

局限性

基础模型限制

尽管能够实现优秀的性能,但OpenLLM仍然受到其基础模型固有限制的限制。这些限制可能会影响模型在以下领域的性能:

- 复杂推理

- 数学和算术任务

- 编程和编码挑战

不存在信息的幻觉

OpenLLM有时可能会产生不存在或不准确的信息,也称为「幻觉」。用户应该意识到这种可能性,并验证从模型中获得的任何关键信息。

参考资料:

https://github.com/imoneoi/openchat

https://tatsu-lab.github.io/alpaca_eval/

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2021QS 榜单发布:计算机专业排名 MIT 斯坦福霸榜,清华北大进入前 20

公众号 “菜鸟学Python”, 设为 “星标” 和30w一起学Python!来自新智元 【导读】2021 QS 世界大学学科排名出炉了!最新排名涉及 51 个学科,横跨 5 大领域。在计算机科学专业排名中,MIT、斯坦福、哈佛占领了世界前三席&#xff0c…

四大世界权威大学排名指标及侧重点

U.S.News、QS、ARWU、THE是公认的四大权威世界大学排名,每个排名的侧重点各有不同,故知识人网小编撰文加以介绍。 很多博士后、访问学者和联合培养博士的申请者会注重学校排名。那么都有哪些排名体系呢?一般来说,国际公认的四大权…

中山大学计算机专业实力前景怎么样,计算机专业排名看超算实力,ASC竞赛五大高校排名,中山大学第一...

ASC竞赛五大高校 计算机专业的实力主要体现在算法与编程的逻辑运算上,因此计算机专业必须掌握大量基础数学知识,甚至很多是离散数学、模糊数学等人工智能逻辑数学,简单的程序软件应用和O2O程序实现其实都不是计算机专业实力的体现&#xff0c…

刚刚,2023中国大学评级发布!9所高校,位列最顶级!

点击下方卡片,关注“CVer”公众号 AI/CV重磅干货,第一时间送达 点击进入—>【目标检测和Transformer】交流群 转载自:双一流高教 | 来源:CNUR 刚刚(6月16日),2023年中国大学评级于中国大学排…

chatgpt赋能python:Python代码实现查找重复字符串

Python代码实现查找重复字符串 Python 是一种高级程序设计语言,被广泛用于网络编程、web开发、数据分析等领域。在 SEO 操作中,经常需要进行关键词分析,以确定哪些词汇是最重要的。本文将介绍如何使用 Python 实现查找重复字符串的代码。 什…

IEEE与APA引用格式

from Dissertation Writing Workshop 两种经典的引用格式 APA IEEE https://www.jianshu.com/p/b425347732c9 https://zhuanlan.zhihu.com/p/98982582

Latex引用文献APA格式

Latex引用文献APA格式 前言参考链接一个小的提醒生成bib文件一个巨坑如何编写代码原文引用链接到参考文献总结步骤写在最后 前言 这篇文章是根据自己查找资料,进行整理,亲自实践之后得到的结果,代码会附在文章中间,写这篇文章是为…

APA 论文的 格式 及 样式标准

APA 论文的 格式 及 样式标准 最直观的方法是到微软的 word 模板库里去下载一个名为 APA style paper 的模板,下载地址为:https://templates.office.com/en-us/apa-style-paper-tm16392902。 什么是 APA 格式 APA(American Psychological Association…

citespace研究热点突现词太少问题处理

当用citespace进行关键词突现操作时,发现突现词太少 按照默认设置,点击Refresh,只找到了一个突现词,点击view 可以调整这个数字,根据自己的需求来,数字越小突现词越多,比如这里调为0.7,就出现了…

【论文解读】GCN论文总结

本次要总结和分享的是ICLR2017的关于GCN方面的代表作之一论文:SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS,论文链接为 paper[1],参考的实现代码为pygcn[2] 文章目录 先导知识论文动机模型切比雪夫逼近卷积核函数图上…

每日学术速递2.9

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV、cs.AI、cs.LG、cs.IR 1.Graph Signal Sampling for Inductive One-Bit Matrix Completion: a Closed-form Solution(ICLR 2023) 标题:归纳单比特矩阵完成的图信号采样&am…

计算机英文论文怎么做降重? - 易智编译EaseEditing

人工降重一定要找靠谱的机构做。 降重是很耗费精力和时间的学术服务。 而那些没有口碑且不专业的商家,真的会花费那么多心思来仔细琢磨你的论文吗? 那些没有声誉的非专业商家给论文降重会产生很多弊端: (1)他们为了…

英语学习|同义词替换|论文降重|similar|popular

alike, like, comparable, parallel, uniform, identical, resembling... 1.单数复数变换 2.加the去the 3.主动被动变换 4.同义词替换 5.从句类型变换 6.状语位置变化 7.变化顺序 9.of/‘s 10.无关紧要的副词可以删除 algorithm出现一般用复数algorithms, methods be molded …

Tesseract OCR+Tess4j实现图片中英文识别

文章目录 Tesseract简介环境搭建下载语言库 tess4j依赖demo Tesseract 简介 Tesseract的OCR引擎最先由HP实验室于1985年开始研发,至1995年时已经成为OCR业内最准确的三款识别引擎之一。然而,HP不久便决定放弃OCR业务,Tesseract也从此尘封。…

tesserocr识别图片

tesseract是什么 tesseract是google开源的OCR;tesserocr 是 Python 的一个 OCR 识别库 ,但其实是对 tesseract 做的一 层 Python API 封装,所以它的核心是 tesseract。 因此,在安装 tesserocr 之前,我们需要先安装 tesseract 。 …

.net Tesseract 图片识别

相信大家在开发一些程序会有识别图片上文字(即所谓的OCR)的需求,比如识别车牌、识别图片格式的商品价格、识别图片格式的邮箱地址等等,当然需求最多的还是识别验证码。如果要完成这些OCR的工作,需要你掌握图像处理、图…

腾讯ocr图片识别接口调用

最近开发了一个拍车牌识别车牌号的功能,主要调用了腾讯的ocr车牌识别接口,直接上代码: 首先生成签名以及读取配置的工具类: package com.weaver.formmodel.integration.ocr;import java.util.Random; import javax.crypto.Mac; …

图片识别工具Tesseract介绍和python搭配使用

Tesseract介绍和Python的搭配使用 一、Tesseract介绍、下载指南1、了解Tesseract工具2、下载地址3、请注意!!! 二 、环境搭建2.1 版本3.05安装2.2 最新版本安装2.3 环境搭建2.4 举个栗子 三、Python中的环境搭建3.1 安装pytesseract3.2 修改配…

js逆向之补环境过瑞数4.0 某房地产

写这篇文章的目的是为了记录一下自己的逆向之旅,后面会持续更新5.0,6.0,加速乐,akamai,5s盾,极验滑块,腾讯滑块,网易易盾等等. 过瑞数有很多方法,rpc,js逆向(扣代码和补环境),如果你不想屁股坐出痔疮,又或者又少几根头发,可以参考一下本篇文章.本章将从rs的流程逻辑以及详解补…

燕尾夹-钣金

草图1 基体法兰 褶边 展开 切除 拉伸切除:完全贯穿,折叠 底面草图绘制 从草图绘制折弯 绘制第2个折弯 基准轴 基准面 基准面草绘 基准面,对称 镜像实体