梦晨 发自 凹非寺
量子位 报道 | 公众号 QbitAI

让语言模型做数学题,有多难?

强如GPT-3,在9-12岁的小学数学上,第一次才考20多分。

去年底GPT-3用上新方法努力了很久终于拿到55分,可惜还是没及格。

万万想不到啊,2022年才刚开始,突然有人宣布他们的模型掌握了高数,达到MIT本科水平

AI学了6门MIT本科基础数学课里随机抽取的例题,都是网上就有的公开课,包括:

单变量微积分(课程编号18.01)
多变量微积分(18.02)
微分方程(18.03)
概率与统计入门(18.05)
线性代数(18.06)
计算机科学中的数学(6.042)

那么AI最后学到什么水平呢?

6门课程每门随机出25道题,再加上一个ACT水平(美国高考)的数据集里的60道题。

总计210道题,AI全部答对。

题目包括需要求出具体数值的,比如菌落繁殖的经典问题。

也有要求给出方程式的。

要求画出函数图像的也没问题。

最后为了证明训练出来的AI没有过拟合,还额外加试了一场应用线性代数(COMS3251)。

这门课不是公开课,网络上根本没有,也就是说AI在预训练阶段不可能接触到,结果AI也掌握了。

要知道在短短几个月前,AI还在挣扎于“小明种了5颗柠檬树,每年从每棵树上得到6个柠檬,10年间他总共得到多少柠檬”这样的问题。

短短几个月,从小学数学跨越到了高等数学。

这项来自MIT+哈佛+哥伦比亚大学+滑铁卢大学的联合研究开了什么挂

对于AI也是审题最重要

研究团队发现以前用AI做数学题的尝试有一个共同点:训练数据里只有文本。

这简直是AI中的文科生,学不好数学也算正常。

那么AI中的理科生要怎么培养?

研究团队的解决思路是先在文本上做预训练,再用代码进行微调。

核心思想是把数学问题转换成等价的编程问题。

他们找来的这位AI理科生与GPT-3师出同门——

OpenAI的Codex,也是GitHub代码生成工具Copilot背后的技术基础。

Codex解题的过程分两步:先审题,再作答

第一步,自动生成需要的上下文,把题干扩充、缩减或改写成适合编程解决的样子。

第二步,生成对应的代码,运行后给出答案。

比如补充自然语言题干中隐藏着的问题语境“在微分方程中”。

列好解题需要用到的Python库

把问题扩充成更精确的数学语言

原问题:

计算扑克牌中一副手牌中有两对的概率。

改写问题:

一副手牌有5张牌,从13组每组4张一共52张牌中随机抽取。
“两对牌型”要求手牌中共有3种牌,每种数量不能多于两张,也就是说相同的牌不能超过三张。
请编写一个模拟程序求出抽到“两对牌型”的概率。

(这也太严谨了)

对于一个复杂问题,先自动生成中间步骤的提示,再写代码。

如果题目中有与数学无关的多余信息,也需要去掉。

就这样,AI靠先审题再写代码的方式做出全部正确答案。

除了做题,学会高数的AI还能反过来给人类出题。

不到一秒钟就能出一道题,试验中总共出了120道题。

把人类出的题和AI出的题混在一起,找学生来做问卷调查,学生也很难分清一道题是不是AI出的。

他们觉得AI出的题要稍微难一些,但大多数题目放在课程里也算合适。

AI出的题你会做吗?

论文中列出了这项研究还存在几个局限性。

首先是做不了题干带配图的题,这次试验中也没有需要大量证明的题。

另外最终答案是实际运行代码得出的,但最近有研究表明神经网络也可以直接预测出部分代码的执行结果。

以及还是有一些开放性高的题目AI做不出来。

比如“一个向量v能否表示为一个集合S中的向量之和?”或者“以下方程的整数值解是什么?”

最后还有一个彩蛋,论文作者中出现了Gilbert Strang

他编写的《线性代数导论》被誉为最好的线性代数教科书之一。

他在这篇论文中的贡献是提供了研究思路。

研究团队下一步打算把这项技术扩展到更多课程,并考虑实际应用到教学中。

也许以后MIT的同学期末考试里会有AI出的题了。

要不先来试一试,AI出的题你能做出来吗?

论文地址:
https://arxiv.org/abs/2112.15594

参考链接:
[1]https://www.reddit.com/r/MachineLearning/comments/rutbpv/r_a_neural_network_solves_and_generates/

AI学高数达到MIT本科水平,学了微积分线性代数概率论等6门课,不光能做题还能出题...相关推荐

  1. 用AI生成高数题?学霸听了都流泪|一周AI新闻

    家人们,一周一会 又来带你沉浸式体验 AI 的世界啦 从会出高数题的算法模型 到 MIT 开源最强虚拟角色生成器 AI 让生活更精彩- - 我用 AI 技术制作的视频回答你 ✨ 点击丨AI 创作的智能 ...

  2. 当AI学会高数:解题、出题、评分样样都行

    来源:AI科技评论 "高等数学里程碑式的研究",114页论文让AI文理双修,也许不久后机器出的高数试卷就会走进高校课堂,这下可以说"高数题不是人出的了". 人工 ...

  3. AI攻破高数核心,1秒内精确求解微分方程、不定积分

    大家都知道,AI (神经网络) 连加减法这样的简单算术都做不好: 可现在,AI已经懂得微积分,把魔爪伸向你最爱的高数了. 它不光会求不定积分: 还能解常微分方程: 一阶二阶都可以. 这是Faceboo ...

  4. 大专的计算机专业要学高数吗,普通本、专科“数学”不好,3个专业不建议报,“没出路”!...

    原标题:普通本.专科"数学"不好,3个专业不建议报,"没出路"! 很多高考生来说数学是一个老大难的科目.有很多同学反映,当初以为报这个专业再也不用学数学,可是没 ...

  5. AI攻破高数核心,1秒内精确求解微分方程、不定积分,性能远超Matlab

    栗子 鱼羊 发自 海边边  量子位 报道 | 公众号 QbitAI 大家都知道,AI (神经网络) 连加减法这样的简单算术都做不好: 可现在,AI已经懂得微积分,把魔爪伸向你最爱的高数了. 它不光会求 ...

  6. 女朋友学高数,我花了 15 分钟用栈给她写了一个计算器 | 原力计划

    作者 | 天才程序YUAN 责编 | 夕颜 头图 | CSDN 下载自东方 IC 出品 | CSDN(ID:CSDNnews) 前记 女朋友说:"高数好难,看我最近挺辛苦的,你送我一个礼物给 ...

  7. 大学计算机专业学高数吗,数学差‍的学生,大学最好别选这几个专业,不然将来恐难毕业...

    文/妮妮 高考"三分考,七分报",填报志愿的重要性不言而喻,而报考最重要两项就是大学和专业. 在高考之前,同学们有想过自己想学什么专业,或是对哪方面比较感兴趣的吗?大多数学生选择专 ...

  8. 计算机专业不用学数学的有什么,大学里不用学数学的专业,不想学高数的看过来,你的专业是哪个...

    语文.数学和英语是从小到大的学科里不可缺少的存在,不管是小学.初中还是高中,这三个学科都是最基本的学科,尤其是到了高中的时候,语数英三个学科更加成了重中之重. 但是,很多学生并不是每个学科都能学好的, ...

  9. 从封面开始学高数 #1

    那个  大家好哇 好的我们直接开始 首先我用的是这一版高数书 同济大学数学系编的 第七版 高等数学上册 是十二五普通高等教育本科国家级规划教材 定价47.60一本 给你们看一眼条形码 封面是环保的绿色 ...

最新文章

  1. java list 比较_Java中List的五种去重方法及效率对比,你都用对了吗?
  2. Ubuntu连接WiFi
  3. sql 以a开头的所有记录_SQL开发与数据库管理笔记
  4. NodeJs .net core connect Azure service bus
  5. c语言中行号大小调整,给自己的程序加上行号
  6. Php 安装 zend_loader,在Linux系统中为PHP5.x安装Zend Guard Loader
  7. Mysql学习总结(21)——MySQL数据库常见面试题
  8. Windows XP SP3 Beta版本(KB936929)已经发布到Connect
  9. discuz的css文件在哪里,谁能告诉我discuz模板文件在哪个文件夹下?
  10. HEW3工程链接错误(L2330 (E) Relocation size overflow )及解决
  11. CRX文件转.O文件(.d文件转换成.o文件)
  12. 华硕重装后进入bios_华硕笔记本重装系统如何设置bios
  13. linux 内网yum,Linux下 内网环境 通过ISO yum安装依赖
  14. 项目管理过程之进度控制
  15. 如何理解高内聚,低耦合
  16. 程序员日常照片大合集!快来大饱眼福!
  17. 为什么4个反斜杠(\)输出1个反斜杠(\)?
  18. PC上网页端屏蔽知乎上的视频
  19. .有一千万条短信,有重复,以文本文件的形式保 请用5 分钟时间,找出重复出现最多的前10 条。
  20. 33岁的外行妈妈,转行金融业可行吗?(此贴仅限于个人感悟)

热门文章

  1. 解决JS在url中传递参数时参数包含中文乱码的问题
  2. 如何使用Twitter Bootstrap获得中心内容?
  3. Android:展开/折叠动画
  4. 如何找到foreach索引
  5. 创建零填充JavaScript数组的最有效方法?
  6. vue+antdesign导航菜单动态加载
  7. 让CoreData更简单些
  8. 用java编写一个函数,统计一个字符串中每个字母出现的次数
  9. 深入理解JavaScript系列(2):揭秘命名函数表达式(转)
  10. 数据表的三种基本操作(insert、delete、update)