Redian新闻
>
GPT 3.5 与 Llama 2 微调的综合比较

GPT 3.5 与 Llama 2 微调的综合比较

公众号新闻

作者 | Ragntune
译者 | 明知山
策划 | 褚杏娟

在本文中,我将分享我通过 SQL 和函数表示任务对 Llama 2 和 GPT 3.5 进行微调的比较实验。总体结果如下:


  • GPT 3.5 在两个数据集上与 LoRA 微调的CodeLlama 34B 相比,性能要好一些;

  • GPT 3.5 的训练成本高出 4 到 6 倍 (部署成本甚至更高)。


SQL 任务的代码和数据在这里(https://github.com/samlhuillier/spider-sql-finetune),函数表示任务的代码和数据在这里(https://github.com/samlhuillier/viggo-finetune)。


为什么要做这个比较?对 GPT 3.5 进行微调的成本是很高的。我想通过这个实验看看手动微调模型是否可以在成本很低的情况下让性能接近 GPT 3.5。有趣的是,它们确实可以!

结    果

CodeLlama 34B 和 GPT 3.5 执行 SQL 任务和函数表示任务的性能。

GPT 3.5 在这两项任务上表现出稍好的准确性。在使用模型生成 SQL 查询时,我还使用执行准确性作为比较它们在虚拟数据库上执行查询输出的指标(精确匹配准确性是指字符级别的比较)。

训练成本

注:我使用的是 vast.ai 提供的 A40 GPU,每小时费用为 0.475 美元。

实验设置

我使用了 Spider 数据集和 Viggo 函数表示数据集的子集,这些都是很好的用于微调的数据集:

  • 它们会教会模型给出期望的输出形式,而不是事实。SQL 和函数表示任务都期望结构化的输出。

  • 预训练的模型不能很好地完成这两项任务。

对于 GPT 3.5 的微调,OpenAI 只允许配置 epoch 的数量。他们建议选择 epoch 的数量。因此,为公平起见,我只对 Llama 进行最少的超参数微调,允许 OpenAI 选择 epoch 的数量,并训练 Llama 在评估数据集上收敛。

Llama 的架构

我做出的两个关键决定是使用 Code Llama 34B 和 Lora 微调(而不是全参数):

  • OpenAI 很可能会做一些适配器 / 非全参数微调。

  • Anyscale 的一篇文章(https://www.anyscale.com/blog/fine-tuning-llms-lora-or-full-parameter-an-in-depth-analysis-with-llama-2)指出,对于 SQL 和函数表示等任务,LoRA 几乎可以与全参数微调媲美。

我使用的 LoRA 适配配置是这样的:

config = LoraConfig(      r=8,      lora_alpha=16,       target_modules=[       "q_proj",       "k_proj",       "v_proj",       "o_proj",   ],      lora_dropout=0.05,      bias="none",      task_type="CAUSAL_LM",  )

我尝试在所有线性层使用适配配置(正如 Qlora 论文所建议的那样),发现几乎没有性能提升。类似地,将 r 增加到 16 只会消耗更多的计算量,而几乎没有提供性能上的好处。

数据集

SQL 提示词示例:

You are a powerful text-to-SQL model. Your job is to answer questions about a database. You are given a question and context regarding one or more tables.
You must output the SQL query that answers the question.#### Input:Which Class has a Frequency MHz larger than 91.5, and a City of license of hyannis, nebraska?
#### Context:CREATE TABLE table_name_12 (class VARCHAR, frequency_mhz VARCHAR, city_of_license VARCHAR)
#### Response:

我没有使用完整的 Spider 数据集,它的数据库 Schema 是这样的:

department : Department_ID [ INT ] primary_key Name [ TEXT ] Creation [ TEXT ] Ranking [ INT ] Budget_in_Billions [ INT ] Num_Employees [ INT ] head : head_ID [ INT ] primary_key name [ TEXT ] born_state [ TEXT ] age [ INT ] management : department_ID [ INT ] primary_key management.department_ID = department.Department_ID head_ID [ INT ] management.head_ID = head.head_ID temporary_acting [ TEXT ]

相反,我选择使用 sql-create-context(https://huggingface.co/datasets/b-mc2/sql-create-context)数据集和 Spider 数据集的交集。因此,提供给模型的上下文是一个 SQL 创建命令(我这么做实际上完全是为了节省节点数):

CREATE TABLE table_name_12 (class VARCHAR, frequency_mhz VARCHAR, city_of_license VARCHAR)

函数表示提示词示例:

Given a target sentence construct the underlying meaning representation of the input sentence as a single function with attributes and attribute values.This function should describe the target string accurately and the function must be one of the following ['inform', 'request', 'give_opinion', 'confirm', 'verify_attribute', 'suggest', 'request_explanation', 'recommend', 'request_attribute'].The attributes must be one of the following: ['name', 'exp_release_date', 'release_year', 'developer', 'esrb', 'rating', 'genres', 'player_perspective', 'has_multiplayer', 'platforms', 'available_on_steam', 'has_linux_release', 'has_mac_release', 'specifier']
#### Target sentence:
I remember you saying you found Little Big Adventure to be average. Are you not usually that into single-player games on PlayStation?
#### Meaning representation:

输出是这样的:

verify_attribute(name[Little Big Adventure], rating[average], has_multiplayer[no], platforms[PlayStation])
评估

两个模型收敛得都很快:

图中显示了在训练过程中模型在评估集上的损失。

对于 SQL 任务,我还使用 Spider 评估工具(https://github.com/taoyds/test-suite-sql-eval)计算 SQL 查询的执行准确性。评估工具会构建一个虚拟数据库,并将实际的输出与 GPT3.5 和 Llama 2 的查询输出进行比较。

结    论

总的来说,通过这个经验,我觉得对 GPT 3.5 进行微调是为了初始验证或构建 MVP,而除此之外,像 Llama 2 这样的模型可能是你最好的选择。

为什么要对 GPT 3.5 进行微调?
  • 你想要证实微调是解决给定任务 / 数据集的正确方法;

  • 你想要全托管的体验。

为什么要对像 Llama 2 进行微调?
  • 你想省钱!

  • 你希望最大限度地榨取数据集的性能;

  • 你希望在训练和部署基础设施方面具有充分的灵活性;

  • 想保留私有数据。

原文链接

https://ragntune.com/blog/gpt3.5-vs-llama2-finetuning

声明:本文为 InfoQ 翻译,未经许可禁止转载。

点击底部阅读原文访问 InfoQ 官网,获取更多精彩内容!

今日好文推荐

千亿也不够花!OpenAI 想让员工出售股票来筹资,而最大投资人微软正在“去GPT"

ClickHouse 正在退出开源世界?

弃亚马逊转戴尔,彻底下云、去 K8s 后,我们已经节省了 100 万美元

高通回应“大规模裁员”“撤离上海”;TikTok 员工吐槽管理层过于年轻;Java 21 正式发布 | Q资讯

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
0.2美元微调就能让ChatGPT彻底破防!普林斯顿、斯坦福发布LLM风险预警:普通用户微调也影响LLM安全性发布一天,Code Llama代码能力突飞猛进,微调版HumanEval得分超GPT-4现场直击OpenAI开发者大会:GPT-4 Turbo、用户自定义GPT、GPT商店,一切都是硅谷新王的架势港大等发布GraphGPT:1/50微调参数,准确率提升10倍!无需超长token,LLM也能读懂图结构ChatGPT 是 ENTJ,GPT4 竟是 INTJ?一项关于LLMs的MBTI测试《歌德堡变奏曲1353》OpenAI突发更新!GPT-3.5正式开放「微调」,人人可打造专属ChatGPT|附最全官方指南为神经多样性儿童提供全面的综合护理服务,Cortica D轮融资7500万美元GPT-4 Turbo更强更便宜,GPTs、GPT商店最大亮点,这是OpenAI首个开发者日选择GPT-3.5、还是微调Llama 2等开源模型?综合比较后答案有了OpenAI调查ChatGPT错误率升高问题;零一万物上线Yi微调模型;Adobe收购印度AI视频创企丨AIGC大事日报【广发策略】“景气预期”由行业比较到个股筛选——“景气预期”行业比较框架系列(三)GPT turbo 看了没?!这真是大批失业人员在路上。GPT-3.5 Turbo推出微调功能;昆仑万维天工AI搜索引擎内测;阿里云等联合发布教育大模型在大费城开车行Llama2 7B中文魔改PK:「雅意」百万指令集微调 VS「伶荔」扩词+增量预训练+指令微调微软深夜放大招:GPT-4 、DALL·E 3、GPTs免费用,自研大模型专用AI芯片MiniGPT-4升级到MiniGPT-v2了,不用GPT-4照样完成多模态任务Erklärung zur Zusammenarbeit实例解析,肺动脉高压合并右心衰的综合管理盘点全国 体育单招中-前50强的综合类院校!ChatGPT/GPT-4/Llama电车难题大PK!小模型道德感反而更高?数学能力超ChatGPT,70B开源大模型火了:用AI微调AI,微软全华班出品投资的纵向比较和横向比较OpenAI 开放 GPT-3.5 Turbo 微调,网友:将prompt减少90%才实惠GPT-4破防啦!用密码和GPT-4聊天,成功绕过了GPT-4的安全机制!港中大(深圳)告诉你方法斯坦福NLP提出EFT:如何不实际微调而“假装”微调了LLM?餐厅里面的谈话OpenAI不藏着了,开放微调功能,不用其他工具就能搞一个你自己的ChatGPTGPT-3.5 Turbo支持微调了,打造专属ChatGPT,但价格小贵聊聊战争的军事胜利和政治胜利chat gpt 怎么上不去了? 彻底罢工了一篇关于LLM指令微调的综述数羊-k歌时间的湾 1OpenAI开放大模型微调功能!上传自己数据就可定制GPT-3.5Turbo,开发者狂喜重磅!OpenAI 开放 GPT-3.5 Turbo 微调,网友:要提示词减少8倍才实惠OpenAI大佬甩出「喵喵GPT」调戏黑客!分享ChatGPT成功的秘密:极限压榨GPU资源
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。