AI已经知道如何使用LeetCode面试中会遇到的那种算法题,AI已经可以自己解决了,比如下面这个问题:对于一个记录论文被引用次数的数组,每个元素都是一个非-负整数。请编写函数h_index,输出这些论文的h索引,即最多h篇文章至少被引用h次。例子:输入:[3,0,6,1,4]输出:3AI给出的Python答案如下:除了排序没用。测试:加州大学伯克利分校的研究团队将上述问题归类为“面试级别”难度(看来国外程序员的面试题有点简单)。此外,还有更简单的“入门级”和难度更高的“竞技级”。在总共5000题的测试中,AI可以解决15%。还有人称,他专门用GPT-2训练了一个专攻LeetCode的AI,可以完成80%。刷LeetCode的时候你在发抖吗?GPT-Neo胜过GPT-3本研究使用的问题形式是自然语言问题词干,不同于以往研究中常用的伪代码和代码之间的翻译。题目是从Codeforces、Kattis等刷题网站收集的10000题,其中5000题用于训练,另外5000题作为测试集。题干平均长度为293.2个词,每个问题在测试集中平均有21.2个测试用例。入门级题目有3639道,不需要复杂的算法。有1-2年经验的程序员可以回答。面试级别的难度题会涉及到数据结构,比如树或者图,或者需要修改常用的算法,有5000道。剩下的就是比赛级别的难度,达到USACO、IOI、ACM等比赛级别。研究人员训练了GPT-2、GPT-3和“高仿版”GPT-Neo的1亿参数版本和15亿参数版本。参数大小“仅”27亿的GPT-Neo和较低的GPT-2在测试用例通过率方面表现优于1750亿的GPT-3。在严格模式下,通过所有测试用例是完全正确的。最好成绩GPT-Neo只过了1.12%,但是有56道题(反正比我好)。GPT-Neo是EleutherAI团队的一个开源项目,试图复现GPT。虽然参数规模远小于GPT-3,但训练数据包含更多技术网站,如StackOverflow和StackExchange,这可能是它在代码生成中胜出的原因之一。至于为什么GPT-3不如GPT-2,有人猜测可能是它看的文字太多了。虽然它擅长生成自然语言,但在逻辑和问题解决方面存在过拟合。如何评价AI“问题大师”的论文一出,吃瓜群众脑洞大开。如果我面试失败但我写的算法通过了怎么办?有人回答他:没关系,你仍然可以做你算法的助手。也有很多人给下一步的建议,比如不使用自回归GPT,换成自编码语言模型会怎么样?比如CodeTrans。或者,使用另一个GPT专门生成您无法回答的问题。△矛盾?乐观的人认为这解放了人的创造力。未来,编程就是少写代码,多做架构和工程。有些人想象如果仅仅通过描述需求就能生成代码该多好。嗨IDE,用我的数据库做一个JavaScript增删改查测试。△RubyonRails呼吁专家的悲观人士认为,未来有一天,人类程序员只能做维护工作和审查机器生成的代码。面对AI“做题”,你害怕吗?论文地址:https://arxiv.org/abs/2105.09938数据集地址:https://github.com/hendrycks/apps自动刷LeetCode项目:https://github.com/gagan3012/project-code-py
