速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

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

  • 2023-09-27
    北京
  • 本文字数:2409 字

    阅读完需:约 8 分钟

大小:621.33K时长:03:32
GPT 3.5与Llama 2微调的综合比较

在本文中,我将分享我通过 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 查询时,我还使用执行准确性作为比较它们在虚拟数据库上执行查询输出的指标(精确匹配准确性是指字符级别的比较)。

训练成本


Code Llama 34B

GPT 3.5

Spider数据集

3.32美元

11.99美元

函数表示数据集

4.27美元

26.05美元

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


实验设置


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


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

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


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

Llama 的架构


我做出的两个关键决定是使用 Code Llama 34B 和 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


2023-09-27 15:357108

评论

发布
暂无评论
发现更多内容

硬件加倍,性能翻番!TDengine 线性扩展能力测试全解析

TDengine

数据库 tdengine 时序数据库

鸿蒙再进化,原生游戏商用化进程加速

最新动态

Quick BI站稳Gartner ABI挑战者象限,打造“人人能用的BI”

ToB行业头条

基于STC89C52+PulseSensor心率传感器检测心率实时显示

DS小龙哥

7月月更

华为云技术专家硬核分享,云原生中间件如何加速业务发展

华为云开发者联盟

云原生 中间件 华为云 华为云开发者联盟 企业号2024年7月PK榜

LED透明屏:新时代的视觉革命与技术突破

Dylan

广告 科技 LED display LED显示屏 市场

2023年央企安全威胁盘点

芯盾时代

身份安全 国企 央企

Java开发者LLM实战——使用LangChain4j构建本地RAG系统

京东科技开发者

spark运行的基本流程

京东科技开发者

知乎AI产品“直答”正式上线!文心一言4.0 Turbo来袭,可为农民提供专业指导!|AI日报

可信AI进展

人工智能

Redis可视化工具Redis Desktop Manager mac中文直装版下载安装

Rose

在iPhone / iPad上轻松模拟GPS位置 AnyGo for Mac中文破解资源

Rose

Mac密室逃脱游戏推荐:Escape Simulator for mac安装包

你的猪会飞吗

Mac游戏下载 Mac电脑软件

Paragon NTFS Mac终身激活版(mac读写ntfs磁盘软件)

Rose

office 365 for mac破解版附激活工具

Rose

3个企业级最佳实践,教你ByteHouse云数仓这么用

字节跳动数据平台

数据库 大数据 云原生 Clickhouse 数仓

万字长文浅谈系统稳定性建设

京东科技开发者

CQ 社区版2.13.3 | 支持全局开启OTP登录、文本导入功能可独立控制……

BinTools图尔兹

访问控制 数据库管控 CloudQuery OTP令牌 #SQL

Photoshop 2023 (PS 2023下载) v24.7中/英文激活版

Rose

Memory Clean 3 for Mac 苹果电脑内存清理工具

Rose

【HDC.2024】云原生中间件,构筑软件安全可信的连接桥梁

华为云PaaS服务小智

云计算 云原生 软件开发 华为云

Parallels Desktop 17(pd虚拟机)+懒人小白win系统直装包

Rose

AE红巨人特效合成插件:Red Giant VFX Suite Mac/win 激活版

你的猪会飞吗

AE插件 AE粒子特效插件

专业HDR渲染软件Topaz Adjust AI下载安装 附topaz adjust ai破解工具

Rose

XMind 2024绿色破解版下载 好用的思维导图软件

Rose

Illustrator 2024中文激活版 ai2024下载安装教程 附破解工具

Rose

智能商品计划系统:品牌商不可或缺的利器

第七在线

【永久激活版】Topaz Mask AI for mac 人工智能AI抠图

Rose

探索哈希函数:数据完整性的守护者

天津汇柏科技有限公司

哈希函数

GPT 3.5与Llama 2微调的综合比较_生成式 AI_Ragntune_InfoQ精选文章