只给大模型LeetCode编号,也能解题!大模型表现好是源于对训练数据的记忆吗?请不要迷信大模型

news2024/11/30 14:43:30
夕小瑶科技说 原创
作者 | Python

自从推出以来,ChatGPT这款智能高效的人机对话平台迅速风靡全球。人们开始广泛尝试使用ChatGPT来解决各种问题,无论是医学检测报告的解释,还是公众号文章的取名,甚至是论文修改润色和rebuttal撰写等,ChatGPT等大型模型都活跃其中。其强大的语言生成和理解能力为人们提供了全新的工具和资源,使得各种任务的处理更加高效和便捷。

同时,许多自然语言处理领域的研究人员也感到困惑和苦恼。他们觉得传统的NLP研究方向,如问答、对话、翻译、信息抽取、文本语义与推理、知识图谱等已经失去了原本的意义。因为大型模型的出现,仅仅通过增加模型的规模和参数量,就能在自然语言处理领域中取得惊人的成就,成为解决一些任务的银弹。

诚然,大模型的高计算量必然会抬高自然语言处理的门槛。但就如同CNN/LSTM之于SVM,BERT之于CNN/LSTM一样,是人工智能领域发展的必然趋势。然而,另一方面,大模型真的是多任务通吃么?针对特定任务的模型就没有价值了么?近期的一些研究工作给出的证据表明,大模型并非一劳永逸的解法,像BERT在下游任务上做的各种精调和网络结构设计一样,大模型也需要根据任务特点做调整。

大模型的能力可能被高估

大模型虽然在很多任务中表现很好,但部分超绝的表现可能只是源于其训练数据与任务数据有所重叠造成的数据泄露。

比如[1]分析Codex(ChatGPT的前身之一),得到了如下表的结果。对于一道HackerRank上的编程题,如果把任务描述,或任务目标去掉之后,Codex依然可以取得很好的效果,然而如果仅仅替换任务目标,效果就会差很多。这表明Codex的效果可能依赖于对训练语料的记忆。

这一点,我们自己试用ChatGPT时也能很容易验证。比如直接问一道leetcode题目的解法,只给题号,ChatGPT也知道题目内容。

最近的一些研究表明,包括中文高考题[2],较难的代码生成在内[3],都难以被ChatGPT、GPT-4解决。

下图为ChatGPT在最近13年全国卷上,各科主/客观题的均分(每科归一化)。可以看到,在主观题,特别是语文和英语以外的科目,ChatGPT的表现并不理想。

任务特定的训练/精调方式依然有效

就如同BERT在做QA任务时可以用NLI和SQuAD做中间预训练一样。根据任务特点,对大模型做调整,以降低其泛用性为代价,提升某一方面的能力,也是可行的。

例如新加坡国立大学的一篇文章[4]提出,基于7B的LLaMA,用LoRA+24GB显存,结合一个人造数据集精调,就可以在BIG-bench算数任务上取得和GPT-4相当的表现。

类似地,在7个写作辅助任务上,Writing-Alpaca-7B[5]经过特定的指令精调,也可以取得超越ChatGPT的表现。

浙江大学提出[6],以Galactica-1.3b为基础,针对自然语言推断(NLI)相关的5个任务,从P3中筛选0.5%的指令精调数据,就可以取得比用全部数据精调高2%的平均表现。

大模型研究测试传送门

GPT-4能力研究传送门(遇浏览器警告点高级/继续访问即可):
https://gpt4test.com

任务特定的prompt方法也有价值

就如同BERT在预训练的基础上结合各种网络结构一样,根据任务特点,在大模型的基础上采取不同的prompt方案,也能取得一定的提升。

今年5月港中文和哈工深的一篇文章[7]提出elicit CoT prompt,在对话生成任务上用一组辅助的prompt让大模型生成一些与用户的personality, emotions, psychology相关的内容,进而辅助对话生成,提升helpfulness等主观指标。

清华大学和UIUC[8]提出交互式地结合外部工具,可以让ChatGPT更好地解决数学任务。

谷歌和普林斯顿提出[9],针对需要探索或初始决策很重要的任务,设计Tree of Thoughts以取代CoT,在24点、创意写作、crosswords等任务上取得了明显的提升。

南京大学提出头脑风暴法[10],在CoT的基础上,通过一个过生成+排序筛选+生成的过程,在APPS和CodeContests上的复杂编程题中取得明显提升。

西湖大学和港中文提出Chain-of-Symbol方法[11],在给定一个文字表述的和地理位置信息相关的内容,生成回复的任务中,用简练的符号而非自然语言在CoT中阐述位置关系,相较ChatGPT与InstructGPT取得提升。

浙江大学与香侬科技针对文本分类任务,提出了更好的prompt: Clue And
Reasoning Prompting[12] (CARP,下图下半部分)。

浙江大学和阿里提出,通过反刍式思考[13],对反思生成内容,以提高大模型的推理能力。

阿里达摩院提出通过可执行的代码[14]来解锁InstructGPT与GPT-4回答时序推理相关问题的能力。

结束语

从上述近期工作可以看出,当前大模型的能力可能被高估,其解决部分任务的能力可能源于训练数据与任务数据有所重叠。在大模型年代,针对任务特点,利用LoRA等低资源手段,可以在单机单卡到单机多卡的配置范围内,对十几亿到几十亿参数的大模型做指令调整,取得超越千亿大模型的表现。针对特定任务设计prompt方法,也可以取得明显的提升。

因此,单一的大而全,可能也并非是解决一切问题的银弹方法。NLPer们不比担心一个或几个大模型把所有问题都解决了而导致失业。任务特定的设计依然是有价值的。即使计算量提升,但如果仅需几十GB显存的单机多卡,国内一流高校的实验室也能够负担得起计算花销的。

之前听有一个老师说得特别好,谷歌搜索早就这么强了,也没听说做IR的都失业呀。作为一个商业产品,谷歌搜索/ChatGPT尽量地大而全地满足所有用户的需求,但在小而精的角度,一定有其尚未解决的问题。我们学术界就是需要发现这些问题,并提出解决方案,从而让工业界有机会将其整合到现有的商业产品中去,(让谷歌搜索/ChatGPT等)取得进一步的提升。

所以,不要过度迷恋大模型,认真观察其缺点,提出改进方案,自然语言处理还是有前途的。

参考资料

[1] Experience Grounds Language,https://arxiv.org/abs/2004.10151
[1] Codex Hacks HackerRank: Memorization Issues and a Framework for Code Synthesis Evaluation, https://arxiv.org/pdf/2212.02684.pdf
[2] Evaluating the Performance of Large Language Models on GAOKAO Benchmark, https://arxiv.org/pdf/2305.12474.pdf
[3] Is Your Code Generated by ChatGPT Really Correct? Rigorous Evaluation of Large Language Models for Code Generation, https://arxiv.org/pdf/2305.01210.pdf
[4] Goat: Fine-tuned LLaMA Outperforms GPT-4 on Arithmetic Tasks, https://arxiv.org/pdf/2305.14201.pdf
[5] Multi-Task Instruction Tuning of LLaMa for Specific Scenarios: A Preliminary Study on Writing Assistance, https://arxiv.org/pdf/2305.13225.pdf
[6] MAYBE ONLY 0.5% DATA IS NEEDED: A PRELIMINARY EXPLORATION OF LOW TRAINING DATA INSTRUCTION TUNING, https://arxiv.org/pdf/2305.09246.pdf
[7] Chain-of-thought prompting for responding to in-depth dialogue questions with LLM, https://arxiv.org/pdf/2305.11792.pdf
[8] CREATOR: Disentangling Abstract and Concrete Reasonings of Large Language Models through Tool Creation, https://arxiv.org/pdf/2305.14318.pdf
[9] Tree of Thoughts: Deliberate Problem Solving with Large Language Models, https://arxiv.org/pdf/2305.10601.pdf
[10] Think Outside the Code: Brainstorming Boosts Large Language Models in Code Generation, https://arxiv.org/pdf/2305.10679.pdf
[11] Chain-of-Symbol Prompting Elicits Planning in Large Langauge Models, https://arxiv.org/pdf/2305.10276.pdf
[12] Text Classification via Large Language Models, https://arxiv.org/pdf/2305.08377.pdf
[13] Knowledge Rumination for Pre-trained Language Models, https://arxiv.org/pdf/2305.08732.pdf
[14] Unlocking Temporal Question Answering for Large Language Models Using Code Execution, https://arxiv.org/pdf/2305.15014.pdf

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

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

相关文章

微服务治理框架- - -Spring Cloud

前言:最近微服务很是火热,那么什么是微服务?相信小伙伴们对此也是一知半解,那么今天叶秋学长带领大家一起学习微服务治理框架Spring Cloud,快来跟着学长一起学习吧~~ 目录 对SpringCloud了解多少? 什么是…

【动态规划】NK刷题之DP7 连续子数组的最大乘积

【动态规划】NK刷题之DP7 连续子数组的最大乘积 1.题目2.题解3.代码部分法一:动态规划3.1.1 创建变量n,并读入数据3.1.2 创建动态数组,并初始化3.1.3 对动态数组断言3.1.4 读入原整形数组的数据3.1.5 创建变量ret,并赋初值3.1.6 循…

chatgpt赋能python:Python怎么下jieba库

Python怎么下jieba库 Python是目前最流行的动态编程语言之一,广泛应用于Web开发、数据分析、人工智能等领域。对于中文文本处理来说,jieba库是一款非常实用的工具。本文将介绍如何下载jieba库,并探讨其在中文分词、情感分析等方面的应用。 …

week7 表示学习(Representation Learning) Part1--Pretext Text

文章目录 Representation LearningInferring structure(推断结构) Transformation predictionRotation predictionRelative transformation prediction ReconstructionDenoising AutoencodersContext encodersColorizationSplit-brain encoders Instance…

Keras-3-实例3-回归问题

1. 回归问题 1.1 波士顿房价数据集加载: 预测20世界70年代中期波士顿郊区房屋价格的中位数。 已知当时郊区有一些数据点,如犯罪率、房产税率等。 与IMDB和路透社数据集相比,波士顿房价数据集样本量比较少,只有506个样本;同时&a…

数据结构——绪论/线性表

文章目录 **一 基本概念****二 算法和算法评价****三 线性表的定义和基本操作****四 线性表的顺序表示****1 定义****2 基本操作** **五 线性表的链式表示****1 单链表的定义****2 单链表的基本操作实现****3 双链表****4 循环链表****5 静态链表** 一 基本概念 数据类型&…

使用pycharm入门python的一些注意点

今儿在帮别人跑一段python代码,实际上我对python并不熟悉,只能边摸索边尝试。选择了pycharm这个工具。 一.怎么安装python使用的库文件 能用来安装python的库文件的,有很多种办法,这里只介绍pip和pip3。因为pip和pip3的优势是能…

SpringCloud第一篇:服务的注册与发现Eureka

一、spring cloud简介 spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等。它运行环境简单,可以在开发人员的电脑上跑。 二、创建服务注册中心 …

oracle细节、经验锦集

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://blog.csdn.net/m0_69908381/article/details/131054454 出自【进步*于辰的博客】> 由于是随兴记录,因此阐述的比较多而乱&…

详解Eureka服务注册和调用

目录 1.概述 2.环境 2.1.项目结构 2.2.项目架构 2.3.依赖 3.注册中心 3.1.配置使用 3.2.管理页 3.3.集群 4.服务注册 5.服务调用 5.2.Ribbon 5.3.Feign 5.4.OpenFeign 1.概述 我们把从外部进入到微服务集群里的流量称为“南北流量”、微服务集群节点间流转的流量…

HTML type=“radio“ 不显示按钮

问题 HTML中type&#xff1d;"radio" 但是在界面中不显示按钮。 详细问题 HTML中type&#xff1d;"radio" 但是在界面中不显示按钮。 笔者html核心代码 <div>性别<input type"radio" id"male" name"gender" va…

chatgpt赋能python:Python中的中文分词神器——jieba

Python中的中文分词神器——jieba 介绍 如果你曾经在处理中文文本时&#xff0c;也许会遇到中文分词的需求&#xff0c;jieba就是一款不可错过的工具。 jieba 是目前最好的 Python 中文分词库&#xff0c;它具有高效、简单和可定制等优点&#xff0c;适合各种规模的文本分词…

Linux学习之vim四种模式初探

vim是一个多模式&#xff0c;有vim /所在目录/文件名&#xff0c;若是已经有了文件&#xff0c;可以打开文件进行编辑&#xff0c;若是没有文件&#xff0c;在vim中保存之后就会有一个文件&#xff0c;相当于记事本里边新建一个文件。我现在就使用vim新建一个文件&#xff0c;然…

C# .NET EF框架 webapi 安装使用sqlite

文章目录 Sqlite安装使用Sqlite特点环境安装EF 是什么&#xff1f;EF使用举例 Nuget控制台 Sqlite安装使用 Sqlite特点 Sqlite是轻量级数据库&#xff0c;不需要安装&#xff0c;跨平台使用。是用来做小软件&#xff0c;小项目&#xff0c;快速移植的最优解。不需要像mysql和…

Verilog基础:表达式中的整数常量(integer)

相关文章 Verilog基础&#xff1a;表达式位宽的确定&#xff08;位宽拓展&#xff09; Verilog基础&#xff1a;表达式符号的确定 Verilog基础&#xff1a;数据类型 Verilog基础&#xff1a;位宽拓展和有符号数运算的联系 Verilog基础&#xff1a;case、casex、ca…

chatgpt赋能python:Python如何Input一个字典:详细教程

Python 如何 Input 一个字典&#xff1a;详细教程 在 Python 中&#xff0c;字典是一种非常有用的数据结构。它可以存储键值对&#xff0c;让我们能够通过键访问值。Python 中没有固定的语法来创建字典&#xff0c;因此本文将教你如何输入一个字典。 什么是字典&#xff1f; …

chatgpt赋能python:Python语言中的Pandas库介绍

Python语言中的Pandas库介绍 Python语言是一种十分流行的编程语言&#xff0c;以其易读易写等特点而受到工程师和数据科学家的青睐。在Python语言中&#xff0c;有一款非常流行的数据处理和分析库&#xff0c;也就是Pandas库。Pandas库在数据处理和分析方面有着出色的表现&…

iOS开发最佳实践|集成声网SDK实现语音聊天室

&#x1f604;作者简介&#xff1a; 小曾同学.com,一个致力于测试开发的博主⛽️&#xff0c; 如果文章知识点有错误的地方&#xff0c;还请大家指正&#xff0c;让我们一起学习&#xff0c;一起进步。&#x1f60a; 座右铭&#xff1a;不想当开发的测试&#xff0c;不是一个好…

初探Sharding-JDBC订单表分片实现

设计订单系统有两个数据库db_order_01和db_order_02。每个数据库分别有t_order_0和t_order_1两张订单表。 订单表设计有订单ID(order_id)&#xff0c;用户ID(user_id)&#xff0c;商户ID(merchant_id)。假设商户查看订单操作要比用户查看订单的操作更加频繁。避免商户查询订单时…

NLP学习笔记五-simple RNN

NLP学习笔记五-simple RNN 我这个学习笔记&#xff0c;感兴趣的小伙伴&#xff0c;看的时候尽量从头开始看&#xff0c;这样更好理解&#xff0c;也更有收获。 simple RNN的单元结构图如下&#xff1a; 其中A就是我们需要学习的参数矩阵&#xff0c; h t − 1 h_{t-1} ht−1​…