目录
前言
去年我用deepseek2.5的时候就说在一些场景(Blender python api编程),deepseek2.5秒杀所有大模型,所以我当时在一些“论坛”吹捧deepseek,当时网友说我是不是收了deepseek钱了
2025年1月19日的时候我说deepseek的深度推理很不好用(诸如无限重复、可读性差和语言混合等),v3也不是完全吊打其它模型,让后网友说我是不是收了美国钱了,当然是1月20日后回复我的。
deepseek在1月20日发布的R1确实很惊艳,但对于大模型由于训练集,参数,算法的不同多少都会有一些差异,作为用户,往常只能通过搜索引擎找到答案,现在可能需要同时向多家AI和搜索引擎提问来得到想要的答案,有时能更快的解决问题,有时会带来更多无效尝试。
这篇文章我从过年开始写,2月下旬才抽空写完,这中间发生了很多事情,例如qwen2.5max(我用起来一般),gork-3(接口有点贵,没怎么试),google-gemini-2.0(中文支持很差),总的来说其实各家模型各有优势,并没有谁全方面吊打另一家的情况。
测试原则
- 本测试不考虑prompt合理性,因为使用一样的prompt所以一视同仁
- 不考虑o1和r1的推理特性带来的额外收益,主观场景无法评分,我们推理的目的还是为了结果(至少我注重结果)
- 无额外上下文(不懂的可以理解为,未开启互联网搜索,且不会再一条会话上持续)
对比参数
OpenAI,Claude:poe.com,自建机器人
DeepSeek:API,自建dify,(Chat模型统一选择deepseek-chat,根据官方文档2.5版本后两个选项背后的模型一样,如果不一样这里我测的是chat而不是code)
统一系统提示词(除了o3-mini系列和R1)
系统提示词参考智谱调试台默认提示词
你是一个乐于解答各种问题的助手,你的任务是为用户提供专业、准确、有见地的建议。
接口参数
POE平台只提供了一个温度参数可调,我不清楚背后对应的是什么参数
- Chat模型
- GPT4o: POE平台默认,温度:0.35
- Claude-3.5-Sonnet: POE平台默认,温度:0.5
- DeepSeek-V3: top_p: 0.5 其它:默认值
- 深度推理
- GPTo1: POE平台默认,温度:0.35
- DeepSeek-R1: api默认值
- GPTo3-mini: POE默认参数,默认系统提示词(POE暂不支持自定义)
- GPTo3-mini-high: POE默认参数,默认系统提示词(POE暂不支持自定义)
开发场景
问题:Blender Python脚本 简单处理
prompt:
blender版本: 3.6
python版本: 3.10
基于blender python api写一个脚本
把一个立方体变成一个渐变色的球体
- 评分标准
- 变成球体:+0.5
- 添加渐变材质:+1
- 脚本报错:-0.5
deepseek-v3 | gpt4o202411 | Claude3.5Sonnet20241022 | o1 | r1 | o3-mini | o3-mini-high |
---|---|---|---|---|---|---|
0.5 | 0 | 1.5 | -0.5 | 1.5 | 1 | 1.5 |
问题:用最短的代码帮我写一个html文件,打开即玩的贪吃蛇
用最短的代码帮我写一个html文件,打开即玩的贪吃蛇
使用较新版本的edge,你无需考虑旧游览器兼容性
- 评分标准
- 实现需求:+1
- GPT4o: -0.5
- 原因: 功能实现了,但蛇跑的太快一下就撞墙了,人根本反应不过来
- R1: +0.1/-0.1
- 原因:R1写的是难以阅读但极短的代码,运行后基本满足需求
- 结束后可以重新开始:+0.5
- 有简单的计分功能: 2.5
deepseek-v3 | gpt4o202411 | Claude3.5Sonnet20241022 | o1 | r1 | o3-mini | o3-mini-high |
---|---|---|---|---|---|---|
2.5 | 0.5 | 1.5 | 1 | 1? | 1.5 | 1 |
问题:帮我写一个运行llm模型的示例代码
帮我写一个运行llm模型的示例代码,和完整运行的简单demo需要执行的python
模型格式: safetensors,你不需要关心模型位置,写个demo占位符即可
运行硬件:*** #这里我写了我的设备是mac,arm,具体型号就不说了
Python环境:使用conda你给出完整的方案和pip命令
使用float16量化,你不需要担心模型大小有我自己把控
尽量一次给出完整代码,不需要太多复杂的设置,能运行一个对话demo即可
- 评分标准
- 经过一次修正才完成需求:+0.5
- 完成需求:+1
- 完成需求,但把参数调的很奇怪,导致模型效果奇怪:-0.2
- R1: r1给出了mlx库解决方案很聪明,但不手动修复的话代码是用不了的,不给分
deepseek-v3 | gpt4o202411 | Claude3.5Sonnet20241022 | o1 | r1 | o3-mini | o3-mini-high |
---|---|---|---|---|---|---|
0.5 | 1 | 0.8 | 1 | 0 | 1 | 1 |
问题:基于kratos框架写一个简单的点赞系统
帮我写一个mac上运行的完整脚本,基于kratos框架写一个简单的点赞系统
目标:实现核心功能,用户id由接口传入,使用sqlite
注意:你要给出的是一个完整脚本,包括写入go文件位置和go文件内容,以及最后运行脚本
尽量简短,尽量给出完整答案
- 评分标准
- 不是一个脚本:不得分
- R1: +1?
- 原因:虽然脚本破例采用多轮error修正,但三轮之后依旧无法完成,且第一轮也不是一个完整的脚本
- O1: +5
- 原因:一个脚本完成了叙述的需求
- o3-mini-high: +4
- 原因:实现了需求,但相对O1,使用了post接口本应该加分,但脚本上入侵了非当前目录犯了大忌,所以不如o1
deepseek-v3 | gpt4o202411 | Claude3.5Sonnet20241022 | o1 | r1 | o3-mini | o3-mini-high |
---|---|---|---|---|---|---|
0 | 0 | 0 | 5 | 1? | 0 | 4 |
运维场景
运维场景实在难找,就随便找2个现实问题吧。如果用容器环境模拟系统有很多问题,因设备受限起虚拟机又很麻烦,所以很难找到合适的运维问题。
问题:img如何打包镜像
prompt: img如何打包镜像
img: 这个题歧义较多,我这里想问的是名字叫img的容器镜像打包工具
问题来源: 实际场景,但之前我用的时候是只有deepseek网页版赢了,但原问题可能和这个prompt不符,我记不起来了
评分标准:
符合题意:+1
胡言乱语:-1
答案优秀:+0.5 or +1
deepseek-v3 | gpt4o202411 | Claude3.5Sonnet20241022 | o1 | r1 | o3-mini | o3-mini-high |
---|---|---|---|---|---|---|
0 | -1 | 1 | 1.5 | 0 | 2 | 2 |
答案解读: GPT4o直接理解成了系统镜像,deepseek r1和v3答案如出一辙,r1是基于v3训练的出现这种结果很正常,GPTo1给出了更完整更合理的答案,不知道是不是训练集有所区别,o3-mini表现异常出色额外+0.5
问题:brew安装mysqldump问题
prompt:
brew已经无法安装mysql5.7版本的mysqldump,说是不在维护,我如何安装mysql5.7版本的mysqldump
评分标准:
- 不得分答案
- 去官网下载
- 得分答案
- docker方案:+0.5
- 手动编译:+0.5
- 使用三方包管理器:+0.5
- 提供的三方包管理器脚本可行:+1
- 扣分答案
- 提供无效的命令行方案(基本跑题):-0.5
deepseek-v3 | gpt4o202411 | Claude3.5Sonnet20241022 | o1 | r1 | o3-mini | o3-mini-high |
---|---|---|---|---|---|---|
2.5 | 0.5 | 0.5 | 1 | 0.5 | 0.5 | 0 |
答案解读:
我使用了deepseek-v3提供的方法成功安装(虽然没写path),但其它模型答案全军覆没
- deepseek-v3: docker+0.5 手动编译+0.5 三方包管理+1.5
- GPT4o:docker+0.5,编译+0.5
- 给出了一个使用自定义brew安装包的方案,但未给出任何仓库名,我认为这方案完全没有意义,扣除0.5分
- Claude-3.5-Sonnet: docker+0.5
- 给出了自定义brew方案,但给出了建议仓库名,虽然不存在,但至少提供了方向,不扣分
- o1: docker+0.5,编译+0.5
- 给出了自定义brew方案,比Claude3.5SN更完善,但可惜用不了不得分
- r1: docker+0.5
- 回答最差,不上图,不解释,推理过程由于使用的dify没接收,看不到,不想查,答案基本上比GPT4o还拉垮
- o3-mini: docker+0.5
- 和4o的brew方案类似,但说的更清楚,不扣分
- o3-mini-high: 表现不如o3-mini
总结
不计排名,因为都是主观评分,一线大模型实际上表现都各有千秋,更何况我使用的中文测试,英文的话国外模型表现力会上升。
回答我只摘录一个o1的回答,我认为这个回答超出了我的预期,我本以为这个问题要全军覆没,但o1和o3-mini-high居然完成了,其它的问题实际上都大差不差,对于brew已经不维护的mysql,deepseek-v3倒是给了一个解决方案,这个我本来就找不到一个比较官方的方案,我也不想找什么不权威的三方链接,没想到测这个的时候居然解决了,不过惊艳程度不如o1的这个回答,就不放了,实际上那个已经是过年期间测的了,我已经找不到了【狗头】。
最后关于deepseek训练使用多少算力的问题,我没找到deepseek到底在哪写了自己的成本计算方式,因为除了上市公司外(虽然上市公司的财报也很水),其它公司的成本核算规则都是不透明的,比如之前有个团队说20美元成本打榜,简直是在开玩笑,那个20美元只算了电费,而且是微调模型。总的来说deepseek我从2.5版本就觉得很好用,虽然不知道成本具体情况,但可以确定的是只会比大厂低,也不可能比大厂高,中国有这样的公司我觉得是一件值得高兴的事情,且避免了美国一家独大。
王者回答
基于kratos框架写一个简单的点赞系统: OpenAPI-GPTo1答案
下面给出一个在 macOS 上可直接运行的完整脚本示例,使用 Kratos + SQLite 实现一个简单的“点赞系统”。脚本内容包含:
- 创建项目目录并初始化 go module
- 安装需要的依赖(kratos、sqlite driver 等)
- 写入
main.go
文件的代码(完整) - 启动示例服务
您只需将下面脚本复制保存为 run_like_service.sh
,然后在终端运行:
chmod +x run_like_service.sh
./run_like_service.sh
即可在本地端口 8000
启动服务。随后,可通过访问示例:
http://localhost:8000/like?user_id=test_user
来实现点赞示例。
以下是脚本(请注意整段代码一起复制):
#!/bin/bash
# 确保安装了Go与Kratos相关环境
# 如果尚未安装 kratos CLI,可执行:
# go install github.com/go-kratos/kratos/cmd/kratos/v2@latest
# 1. 创建项目目录
mkdir -p like-service
cd like-service
# 2. 初始化go module
go mod init like-service
# 3. 拉取需要的依赖
go get github.com/go-kratos/kratos/v2
go get github.com/go-kratos/kratos/v2/transport/http
go get github.com/mattn/go-sqlite3
# 4. 写入 main.go 完整代码
cat <<'EOF' > main.go
package main
import (
"database/sql"
"fmt"
"net/http"
_ "github.com/mattn/go-sqlite3"
"github.com/go-kratos/kratos/v2"
"github.com/go-kratos/kratos/v2/log"
"github.com/go-kratos/kratos/v2/middleware/recovery"
kratosHTTP "github.com/go-kratos/kratos/v2/transport/http"
)
var db *sql.DB
// likeHandler 处理点赞请求
func likeHandler(w http.ResponseWriter, r *http.Request) {
userID := r.URL.Query().Get("user_id")
if userID == "" {
http.Error(w, "user_id is required", http.StatusBadRequest)
return
}
// 如果不存在则插入,已存在则 like_count + 1
_, err := db.Exec("INSERT INTO likes(user_id, like_count) VALUES(?, 1) ON CONFLICT(user_id) DO UPDATE SET like_count=like_count+1", userID)
if err != nil {
http.Error(w, "Failed to update like_count: "+err.Error(), http.StatusInternalServerError)
return
}
fmt.Fprintf(w, "User %s liked successfully!\n", userID)
}
func main() {
var err error
// 打开/创建数据库
db, err = sql.Open("sqlite3", "./likes.db")
if err != nil {
panic(err)
}
defer db.Close()
// 初始化表
_, err = db.Exec("CREATE TABLE IF NOT EXISTS likes (user_id TEXT PRIMARY KEY, like_count INTEGER NOT NULL)")
if err != nil {
panic(err)
}
// 注册 http server
httpSrv := kratosHTTP.NewServer(
kratosHTTP.Address(":8000"),
kratosHTTP.Middleware(
recovery.Recovery(),
),
)
httpSrv.HandleFunc("/like", likeHandler)
// 构建并启动 Kratos 应用
app := kratos.New(
kratos.Name("like-service"),
kratos.Server(httpSrv),
kratos.Logger(log.DefaultLogger),
)
if err := app.Run(); err != nil {
panic(err)
}
}
EOF
# 5. 启动服务
echo "Starting like service on http://localhost:8000 ..."
go run main.go
如何测试:
- 脚本启动后,服务会监听在
http://localhost:8000
- 在浏览器或命令行访问:
即可完成一次对用户 ID 为 “alice” 的点赞操作。curl "http://localhost:8000/like?user_id=alice"
- 重复请求同样的
user_id
会让该用户的like_count
自增。