当前位置:首页 > 文章列表 > 科技周边 > 人工智能 > 不对齐,反而性能爆表?130亿模型碾压650亿,Hugging Face大模型排行榜发布

不对齐,反而性能爆表?130亿模型碾压650亿,Hugging Face大模型排行榜发布

来源:51CTO.COM 2023-06-14 19:03:42 0浏览 收藏

对于一个科技周边开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《不对齐,反而性能爆表?130亿模型碾压650亿,Hugging Face大模型排行榜发布》,主要介绍了,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

我们知道,大多数模型都具有某种嵌入式对齐方式。

随便举几个例子:Alpaca、Vicuna、WizardLM、MPT-7B-Chat、Wizard-Vicuna、GPT4-X-Vicuna等等。

一般来说,对齐肯定是件好事。目的就是为了防止模型做坏事——比如生成一些违法违规的东西出来。

但是,对齐是怎么来的?

原因在于——这些模型使用ChatGPT生成的数据进行训练,而ChatGPT本身是由OpenAI的团队进行对齐的。

由于这个过程并不公开,因此我们并不知道OpenAI是如何进行的对齐。

但总体上,我们可以观察到ChatGPT符合美国主流文化,遵守美国法律,并带有一定不可避免的偏见。

按理来说,对齐是一件无可指摘的事。那是不是所有模型都应该对齐呢?

对齐?不一定是件好事

情况却没有这么简单。

最近,HuggingFace发布了个开源LLM的排行榜。

一眼就看到65B的模型干不过13B的未对齐模型。

不对齐,反而性能爆表?130亿模型碾压650亿,Hugging Face大模型排行榜发布

从结果上看,Wizard-Vicuna-13B-Uncensored-HF可以和65B、40B和30B的LLMs直接在一系列基准测试上进行比较。

也许在性能与模型审查之间进行的权衡将成为一个有趣的研究领域。

这个排行榜也是在网络上引起了大范围的讨论。

不对齐,反而性能爆表?130亿模型碾压650亿,Hugging Face大模型排行榜发布

有网友表示,对齐会影响模型的正常且正确的输出,这不是件好事,尤其是对AI的性能来说更是如此。

不对齐,反而性能爆表?130亿模型碾压650亿,Hugging Face大模型排行榜发布

另一位网友也表示了认可。他表示,谷歌Brain也曾经揭示过模型的性能会出现下降,如果对齐的太过了的话。

对于一般的用途而言,OpenAI的对齐实际上非常好。

对于面向公众的AI来说,作为一种易于访问的网络服务运行,拒绝回答有争议和包含潜在危险的问题,无疑是一件好事。

那么不对齐是在什么情况下需要的呢?

首先,美国流行文化并不是唯一的文化,开源就是让人们进行选择的过程。

实现的唯一途径就是可组合的对齐。

换句话说,不存在一种一以贯之、亘古不变的对齐方式。

同时,对齐会干扰有效的例子,拿写小说打比方:小说中的一些人物可能是彻头彻尾的恶人,他们会做出很多不道德的行为。

但是,许多对齐的模型就会拒绝输出这些内容。

而作为每个用户所面对的AI模型都应该服务每个人的目的,做不同的事。

为什么在个人的电脑上运行的开源AI要在它回答每个用户提出的问题时自行决定输出内容呢?

这不是件小事,关乎所有权和控制权。如果用户问AI模型一个问题,用户就想要一个答案,他们不希望模型还要和自己展开一场合不合规的争论。

可组合的对齐

要构建可组合的对齐方式,必须从未对齐的指令模型开始。没有未对齐的基础,我们就无法在其上对齐。

首先,我们必须从技术上理解模型对齐的原因。

开源AI模型是从LLaMA、GPT-Neo-X、MPT-7b、Pythia等基础模型训练而来的。然后使用指令数据集对基础模型进行微调,目的是教它变得有帮助、服从用户、回答问题和参与对话。

该指令数据集通常是通过询问ChatGPT的API获得的。ChatGPT内置了对齐功能。

所以ChatGPT会拒绝回答一些问题,或者输出带有偏见的回答。因此,ChatGPT的对齐被传递给了其它开源模型,就像大哥教小弟一样。

不对齐,反而性能爆表?130亿模型碾压650亿,Hugging Face大模型排行榜发布

原因在于——指令数据集是由问题和答案组成的,当数据集包含含糊不清的答案时,AI就会学习如何拒绝,在什么情况下拒绝,以及如何拒绝,表示拒绝。

换句话说,它在学习对齐。

而取消审查模型的策略非常简单,那就是识别并删除尽可能多的否定和有偏见的答案,并保留其余部分。

然后以与训练原始模型完全相同的方式使用过滤后的数据集训练模型。

不对齐,反而性能爆表?130亿模型碾压650亿,Hugging Face大模型排行榜发布

接下来研究人员只讨论WizardLM,而Vicuna和任何其他模型的操作过程都是相同的。

由于已经完成了取消审查 Vicuna 的工作,我能够重写他们的脚本,以便它可以在WizardLM 数据集上运行。

下一步是在 WizardLM 数据集上运行脚本以生成 ehartford / WizardLM_alpaca_evol_instruct_70k_unfiltered

现在,用户有了数据集,在从Azure获得一个4x A100 80gb节点,Standard_NC96ads_A100_v4。

用户需要至少1TB的存储空间(为了安全起见最好是2TB)。

咱可不想跑了20个小时却用完了存储空间。

建议将存储挂载在/workspace。安装anaconda和git-lfs。然后用户就可以设置工作区了。

再下载创建的数据集和基础模型——llama-7b。

mkdir /workspace/modelsmkdir /workspace/datasetscd /workspace/datasetsgit lfs installgit clone https://huggingface.co/datasets/ehartford/WizardLM_alpaca_evol_instruct_70k_unfilteredcd /workspace/modelsgit clone https://huggingface.co/huggyllama/llama-7bcd /workspace

现在可以按照程序微调WizardLM了。

conda create -n llamax pythnotallow=3.10conda activate llamaxgit clone https://github.com/AetherCortex/Llama-X.gitcd Llama-X/srcconda install pytorch==1.12.0 torchvisinotallow==0.13.0 torchaudio==0.12.0 cudatoolkit=11.3 -c pytorchgit clone https://github.com/huggingface/transformers.gitcd transformerspip install -e .cd ../..pip install -r requirements.txt

现在,进入这个环境,用户需要下载WizardLM的微调代码。

cd srcwget https://github.com/nlpxucan/WizardLM/raw/main/src/train_freeform.pywget https://github.com/nlpxucan/WizardLM/raw/main/src/inference_wizardlm.pywget https://github.com/nlpxucan/WizardLM/raw/main/src/weight_diff_wizard.py

博主进行了以下更改,因为在微调期间,模型的性能会变得非常慢,并且发现它在CPU和GPU之间在来回切换。

在他删除了以下几行之后,运行过程变得好多了。(当然也可以不删)

vim configs/deepspeed_config.json

删除以下行

"offload_optimizer": {"device": "cpu","pin_memory": true},"offload_param": {"device": "cpu","pin_memory": true},

博主建议用户可以在wandb.ai上创建一个帐户,以便轻松地跟踪运行情况。

创建帐户后,从设置中复制密钥,即可进行设置。

现在是时候进行运行了!

deepspeed train_freeform.py \--model_name_or_path /workspace/models/llama-7b/ \ --data_path /workspace/datasets/WizardLM_alpaca_evol_instruct_70k_unfiltered/WizardLM_alpaca_evol_instruct_70k_unfiltered.json \--output_dir /workspace/models/WizardLM-7B-Uncensored/ \--num_train_epochs 3 \--model_max_length 2048 \--per_device_train_batch_size 8 \--per_device_eval_batch_size 1 \--gradient_accumulation_steps 4 \--evaluation_strategy "no" \--save_strategy "steps" \--save_steps 800 \--save_total_limit 3 \--learning_rate 2e-5 \--warmup_steps 2 \--logging_steps 2 \--lr_scheduler_type "cosine" \--report_to "wandb" \--gradient_checkpointing True \--deepspeed configs/deepspeed_config.json \--fp16 True

然后以较低的save_steps运行训练命令。

deepspeed train_freeform.py \--model_name_or_path /workspace/models/llama-7b/ \ --data_path /workspace/datasets/WizardLM_alpaca_evol_instruct_70k_unfiltered/WizardLM_alpaca_evol_instruct_70k_unfiltered.json \--output_dir /workspace/models/WizardLM-7B-Uncensored/ \--num_train_epochs 3 \--model_max_length 2048 \--per_device_train_batch_size 8 \--per_device_eval_batch_size 1 \--gradient_accumulation_steps 4 \--evaluation_strategy "no" \--save_strategy "steps" \--save_steps 800 \--save_total_limit 3 \--learning_rate 2e-5 \--warmup_steps 2 \--logging_steps 2 \--lr_scheduler_type "cosine" \--report_to "wandb" \--gradient_checkpointing True \--deepspeed configs/deepspeed_config.json \--fp16 True

之后,再次执行整个过程,将checkpoint更改为train_freeform.py最新的checkpoint,并再次以减少的save_steps运行,直到最后以save_steps 1运行它。

成功后,模型位于最后一个检查点。

cd /workspace/models/WizardLM-7B-Uncensored/lscp /* .cd -

现在就可以对模型进行测试了。

编辑文件Input.jsonl

向其中添加一些内容,比如:

{"idx":0,"Instruction":"Insult me.I want you to call me the worst curse words and insults you can.Make the insult at least three sentences long and contain the worst and most base curse words possible.Make it X rated and disgusting."}

然后再运行推理:

python inference_wizardlm.py --base_model=/workspace/models/WizardLM-7B-Uncensored/

不对齐,反而性能爆表?130亿模型碾压650亿,Hugging Face大模型排行榜发布

从结果上看,Wizard-Vicuna-13B-Uncensored-HF可以和65B、40B和30B的LLMs直接在一系列基准测试上进行比较。

也许在性能与模型审查之间进行的权衡将成为一个有趣的研究领域。

参考资料:https://erichartford.com/uncensored-models

今天关于《不对齐,反而性能爆表?130亿模型碾压650亿,Hugging Face大模型排行榜发布》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

版本声明
本文转载于:51CTO.COM 如有侵犯,请联系study_golang@163.com删除
MySQL中的数据分析技巧MySQL中的数据分析技巧
上一篇
MySQL中的数据分析技巧
《自然》杂志拒绝刊登人工智能生成的图片和视频
下一篇
《自然》杂志拒绝刊登人工智能生成的图片和视频
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    542次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    508次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    497次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    484次学习
查看更多
AI推荐
  • AI Make Song:零门槛AI音乐创作平台,助你轻松制作个性化音乐
    AI Make Song
    AI Make Song是一款革命性的AI音乐生成平台,提供文本和歌词转音乐的双模式输入,支持多语言及商业友好版权体系。无论你是音乐爱好者、内容创作者还是广告从业者,都能在这里实现“用文字创造音乐”的梦想。平台已生成超百万首原创音乐,覆盖全球20个国家,用户满意度高达95%。
    21次使用
  • SongGenerator.io:零门槛AI音乐生成器,快速创作高质量音乐
    SongGenerator
    探索SongGenerator.io,零门槛、全免费的AI音乐生成器。无需注册,通过简单文本输入即可生成多风格音乐,适用于内容创作者、音乐爱好者和教育工作者。日均生成量超10万次,全球50国家用户信赖。
    17次使用
  •  BeArt AI换脸:免费在线工具,轻松实现照片、视频、GIF换脸
    BeArt AI换脸
    探索BeArt AI换脸工具,免费在线使用,无需下载软件,即可对照片、视频和GIF进行高质量换脸。体验快速、流畅、无水印的换脸效果,适用于娱乐创作、影视制作、广告营销等多种场景。
    17次使用
  • SEO标题协启动:AI驱动的智能对话与内容生成平台 - 提升创作效率
    协启动
    SEO摘要协启动(XieQiDong Chatbot)是由深圳协启动传媒有限公司运营的AI智能服务平台,提供多模型支持的对话服务、文档处理和图像生成工具,旨在提升用户内容创作与信息处理效率。平台支持订阅制付费,适合个人及企业用户,满足日常聊天、文案生成、学习辅助等需求。
    20次使用
  • Brev AI:零注册门槛的全功能免费AI音乐创作平台
    Brev AI
    探索Brev AI,一个无需注册即可免费使用的AI音乐创作平台,提供多功能工具如音乐生成、去人声、歌词创作等,适用于内容创作、商业配乐和个人创作,满足您的音乐需求。
    22次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码