30 秒看懂
在这段 2023 年 11 月的视频中,Matthew Berman 通过网页测试 DeepSeek Coder。他发现模型能完成多项编程练习,包括一个可玩的贪吃蛇游戏,但没通过找错挑战;联系表单也需要后续修正才能运行。 他讨论的基准比较和模型可用性反映的是当时的版本,并非当前排名。
- 1历史模型比较Berman 介绍 DeepSeek Coder,并展示开发者将它与当时的开放和闭源模型对比的基准图表。这些是报告的基准结果,并非当前排名的独立证明。
- 2表单需要修复生成的 Flask 表单最终将提交内容存入 SQLite,但 Berman 先要解决缺少数据表等设置错误。
- 3找错测试失败在另一项练习中,模型称没有发现明显错误,并重复提出建议;Berman 判定这次测试失败。
- 4贪吃蛇一次运行成功安装 Pygame 后,Berman 运行生成的游戏,并表示操作、计分和结束流程都正常。
要点建议
- 在 Berman 的演示中,模型生成了要求的 JSON 和一个能运行的贪吃蛇游戏。
- Flask 联系表单经过数据库初始化和排错后才成功保存提交内容。
- 单元测试练习需要追加提示,才能生成实现代码并将测试与之连接。
- 模型未通过 Berman 的找错练习,但在明确要求 JavaScript 后通过了 Set 游戏挑战。
- 小规模非正式测试能提供有用的例子,却无法证明模型的整体优势。
按章节阅读整理后的全文
模型与测试标准
Berman 介绍专门针对编程的测试标准,以及模型报告的训练信息和基准结果。他通过网页测试模型。
DeepSeek Coder 的开发者将其介绍为一款强大的开放编程模型,报告的基准表现接近 GPT-4。我想用一套新的编程题看看它的表现。这是一组非正式练习,我打算不断完善,不能视为全面排名。
该模型从头开始,用两万亿个 token 训练;项目称训练数据中 87% 是代码,13% 是英文和中文自然语言。模型规模从 10 亿到 330 亿参数不等,上下文窗口为 16K。Berman 提到开放模型可以在本地运行,充当编程助手;这次演示使用的是托管网站。

项目图表在多个编程基准上比较了基础模型和指令微调模型。Berman 认为图中 DeepSeek Coder 在所展示的测试里领先部分开放模型、接近 GPT-4,同时指出图中没有另一款他想测试的模型。这张图仅反映所列模型和测试当时报告的结果。
JSON 和联系表单
模型生成了要求的结构化数据。补上数据库设置并修正命名问题后,Flask 和 SQLite 表单正常运行。
首先,我要求生成描述三个人的 JSON:Mark 和 Joe 是 19 岁男性,Sam 是 30 岁女性。回答按要求整理了姓名、性别和年龄,因此我判定通过。每道题我都开启新对话,避免之前的回答影响后续测试。
接着,我要求生成一个 Python 联系表单,包含姓名、邮箱和电话号码字段,并将数据保存到数据库。模型生成了一个 Flask 应用,配有 HTML 模板和 SQLite。我把代码复制进 Visual Studio Code,修正文件和模板名称,安装依赖并启动表单。
第一次提交失败,因为联系表不存在。我把错误贴回模型,按照它的建议设置数据库,同时修复因文件名导致的导入问题。另一个错误需要再提示一次;调整后我重新提交,并在 SQLite 浏览器里验证了保存的记录。考虑到这些问题,我仍将这项练习判为通过。

测试、代码错误与卡牌游戏
Berman 提示模型编写单元测试及其实现,然后尝试找错练习和 Set 游戏挑战。模型没有通过找错测试。
下一题是为一个程序编写 Python 单元测试:程序检查姓名是否只含字母和数字,然后反转字符串。模型写出了测试,但我还需要一份实现代码供测试使用。我要求它写出代码,再明确要求它将测试文件与实现连接起来。
生成的三个测试全部通过;我用自己的名字运行程序时,也得到了反转后的字符串。我将代码和测试两项都判为通过,同时指出还需要额外提示才能把各部分接起来。
随后,我在新对话中粘贴一道找错练习,要求模型找出所有错误。它说没有明显错误,给出效率建议,然后开始重复内容。练习的参考答案列出了错误,所以我明确判定这次失败。
在 Set 卡牌游戏挑战中,我粘贴规则和示例,要求模型编写函数,判断三张牌是否构成有效组合。第一个回答使用的语言不符合网站检查器要求,所以我改为要求 JavaScript。明确语言后,提交的代码通过了网站测试。
快速排序与贪吃蛇
模型识别出一个混淆变量名的快速排序函数,并生成可玩的 Python 贪吃蛇游戏。Berman 给出总体评价。
我还给模型一段变量已改名的代码,要求它解释其作用。它识别出这是递归实现的快速排序,并逐步解释代码。我觉得这个结果很出色,判定通过。
最后,我要求它用 Python 编写贪吃蛇游戏;DeepSeek Coder 自己的主页也展示了这一例子。回答使用了 Pygame。我安装这个库并运行代码后,游戏第一次尝试就能运行:方向控制和计分正常,撞到边界后游戏停止并显示分数。总体来看,我认为模型在这些测试中表现出色。

同频道的其他文章
34:21EN → 简体中文
0:26EN → 简体中文
0:36EN → 简体中文
0:21EN → 简体中文
25:50EN → 简体中文
32:20EN → 简体中文