DeepSeek V3 两周使用总结
2024 年 12 月 26 日,杭州深度求索人工智能基础技术研究有限公司发布 DeepSeek-V3 大模型。官方宣称:(1)基于自研的 MoE 模型和 671B 参数,在 14.8T token 上进行了预训练;(2)多项评测成绩超越了 Qwen2.5 - 72B 和 Llama - 3.1 - 405B 等其他开源模型,在性能上与世界顶尖的闭源模型 GPT-4o 以及 Claude-3.5-Sonnet 不分伯仲。个人自 2025 年 1 月 3 日开始试用,至今两周零两天,以下是使用过程中的心得体会与经验总结,仅供参考。
DeepSeek V3 免费使用地址:https://chat.deepseek.com/
一、先说结论
以下结论仅针对免费使用版(非开源版):
(1)优点:整体回答效果优于 GPT-4o(GPT-4o 温度设置为 0.8,下同)。
(2)不足:给出错误答案的概率高于 GPT-4o。
(3)适用范围:相比 GPT-4o,DeepSeek V3 更适合用于解答开放式问题。对于较为具体的细节问题,两者各有优势,GPT-4o 更保守且更可靠,DeepSeek 广度和维度更高但也更容易出错。建议根据实际需求选用或两者参照使用。
(4)个人选择:目前在日常工作中,开放性问题以 DeepSeek V3 为主、GPT4-o 为辅;细节问题则对照两者使用,且仍以 DeepSeek V3 的回答为主并二次验证。
二、使用过程
1. 一天尝鲜试用 - 确实不错
1 月 3 日周五,在上班路上刷阮一峰的 科技爱好者周刊(第 332 期):西蒙·威利森的年终总结,梁文锋的访谈。看到阮大师分享及推荐了 DeepSeek V3,而后在朋友圈也看到一些推荐和分享。当天是周五,组内有新技术探索安排,于是我抱着好奇、尝鲜、怀疑和谨慎的态度测试了一下,看看 DeepSeek V3 是否真如宣传所说那么好?
我承认刚开始我是怀疑的,以为又是个嘴炮,毕竟类似的事情遇到不少,前几天刚被 Logback 坑了,Logback 官方自称其性能远高于 Log4j2,实际上只是在某个时间点(2021 年),在特定配置和特定版本下的极限测试结果,且其测试基准不符合实际生产环境需求,比如将 FileAppender 的 immediateFlush 设置为 false,所以无实际指导性意义。时至今日,两者真实性能已截然不同,在当前最新版本和相同配置下,两者性能总体相当,甚至在部分场景下 Logback 性能反而不如 Log4j2,向作者反馈后,他仍旧选择了沉默,更别说同步更新或撤销Logback 性能说明文档。
由于之前有多次类似工作,积累了不少 CASE,于是选取了其中部分典型的研发 CASE,以 GPT-4o 为基准,快速测试及验证。
当时的结果及初步结论如下:
(1)DeepSeek V3 在研发技术方面的回答效果略好于 GPT-4o,得分为 106.5 分(以 GPT-4o 为基线,总分为 100 分)。
(2)官方文档比较简陋,WEB 页面功能少,设计和交互体验一般。
(3)部分问答结果感觉是在 GPT-4 基础之上做了升华和补充,有些怀疑其使用了 GPT-4 的训练数据。网络上也有类似的声音:DeepSeek 把自己误认成了 ChatGPT?分析人士称,或用了 GPT 生成文本做训练数据。
部分测试 CASE 如下:
| 编号 | 问题 | DeepSeek V3 回答评分(GPT-4o 为 10 分) |
|---|---|---|
| 1 | 以下内容是否包含敏感信息:XXX | 9 |
| 2 | Ingress 中可以配置超时时间为 30ms 么 | 7 |
| 3 | Java 中使用 Thread.sleep() 设置等待时间可能有误差么 | 11 |
| 4 | 微服务架构有哪些组成部分?在 Java 中有哪些实现方案,应该如何选型? | 11 |
| 5 | ts 中如何避免滥用 any 类型 | 12 |
| 6 | wrk2 解决了 wrk 哪些不足 | 11 |
| 7 | Maven enforce 插件解决什么问题?有哪些功能? | 12 |
| 8 | Java 中如何评估一个方法的性能? | 12 |
| 9 | js 中如何获取用户网络情况? | 10.5 |
| 10 | 基于 snowflake 算法,使用 Java 实现分布式 id | 10 |
说明: 以上 CASE 仅供参考,评分结果依赖个人主观评价。由于大语言模型先天存在幻觉问题,无法保证答案及其效果的可重复性。
2. 一周进阶使用 - 缺点很致命
尝鲜后,感觉 DeepSeek V3 确实不错,远超预期。不过心中仍有所保留,国产大模型(含商业版)各个都说自己不亚于 GPT-4,但实际使用来看,暂时还没有综合实力比 GPT-4 强的产品。此外,既然 DeepSeek V3 效果比 GPT-4o 好,是否应该将其作为我日常工作的第一 LLM?我不可能长时间将同一问题,同时向 GPT-4o 和 DeepSeek 发问,而后细看两者回答,最后再取长补短。所以本阶段我将日常工作中遇到的各类问题,同时向 DeepSeek V3 和 GPT-4o 提问,通过对比两者效果,以帮助我更客观和更全面地判断两者优劣,便于我未来二选一。
使用总结:
(1)DeepSeek V3 的问答效果波动性较大,不靠谱的概率较高,好的时候比 GPT-4 好不少,差的时候则各种瞎说。
举例三个明显坑爹的回答:
(1)RandomAccessFile 竟然使用了内存映射文件的技术?事实当然不是

(2)FileAppender 竟然不支持无 GC 模式,MemoryMappedFileAppender 竟然支持文件滚定?事实与之相反

(3)RandomAccessFile 中 immediateFlush 默认值竟然是 false?实际上 immediateFlush 默认值是 true

3. 一周深度使用 - 选对场景避短扬长
经上阶段使用后,由于 DeepSeek V3 的缺点(给出错误答案的概率高于 GPT-4o)很致命,一度让我想放弃。然而,它的优点(整体回答效果优于 GPT-4o)又让我十分不舍,比如在尝鲜阶段测试 CASE 中的“ts 中如何避免滥用 any 类型”问题上,DeepSeek V3 的回答是迄今为止我见过的最好的,没有之一。相比坑爹的回答,优秀案例比例更高。所以在本阶段,继续使用 DeepSeek V3,希望能总结其特点,找到合适的适用场景,从而最大化地发挥它的优势。
经过一周使用后,个人认为:DeepSeek V3 更适合用于解答开放式问题。对于较为具体的细节问题,两者各有优势,GPT-4o 更保守且更可靠,DeepSeek 广度和维度更高但也更容易出错。建议用户根据实际需求选用,或两者参照使用。
三、总结与建议
(1)从个人使用来看,DeepSeek V3 效果确实很好,还能免费使用,NB。期望 DeepSeek V3 能越做越好,能优先支持自定义 BOT。
(2)个人建议在日常工作中,开放性问题可以以 DeepSeek V3 为主、GPT4-o 为辅;细节问题则对照两者使用,以 DeepSeek V3 的回答为主,并进行二次验证。
四、附 DeepSeek V3 关于“ts 中如何避免滥用 any 类型”问题的解答
在 TypeScript 中,any 类型是一种“逃逸舱”,它可以绕过类型检查,但过度使用 any 会削弱 TypeScript 的类型安全性。为了避免使用 any,可以采取以下策略:
1. 明确类型
始终为变量、函数参数和返回值指定明确的类型,而不是使用 any。
示例:
// 不推荐
function processData(data: any) {
// ...
}
// 推荐
function processData(data: { id: number; name: string }) {
// ...
}
2. 使用联合类型
当某个值可能是多种类型时,使用联合类型(|)而不是 any。
示例:
// 不推荐
let value: any;
// 推荐
let value: string | number;
3. 使用类型别名或接口
对于复杂的数据结构,使用类型别名(type)或接口(interface)定义类型。
示例:
// 不推荐
function getUser(user: any) {
// ...
}
// 推荐
interface User {
id: number;
name: string;
email: string;
}
function getUser(user: User) {
// ...
}
4. 使用泛型
当函数或类需要处理多种类型时,使用泛型(Generic)而不是 any。
示例:
// 不推荐
function identity(value: any): any {
return value;
}
// 推荐
function identity<T>(value: T): T {
return value;
}
5. 使用类型断言
如果明确知道某个值的类型,可以使用类型断言(as)而不是 any。
示例:
let value: unknown = "Hello, TypeScript";
// 不推荐
let length = (value as any).length;
// 推荐
let length = (value as string).length;
6. 使用 unknown 类型
当类型不确定时,使用 unknown 类型而不是 any。unknown 是类型安全的,因为它要求在使用前进行类型检查。
示例:
// 不推荐
function processValue(value: any) {
// ...
}
// 推荐
function processValue(value: unknown) {
if (typeof value === "string") {
console.log(value.toUpperCase());
} else if (typeof value === "number") {
console.log(value.toFixed(2));
}
}
7. 使用类型守卫
通过类型守卫(Type Guard)缩小 unknown 或联合类型的范围。
示例:
function isString(value: unknown): value is string {
return typeof value === "string";
}
function processValue(value: unknown) {
if (isString(value)) {
console.log(value.toUpperCase());
}
}
8. 使用工具类型
TypeScript 提供了许多工具类型(Utility Types),可以帮助避免 any。
示例:
// 使用 Partial<T> 表示部分属性可选
interface User {
id: number;
name: string;
email: string;
}
function updateUser(user: Partial<User>) {
// ...
}
9. 启用严格模式
在 tsconfig.json 中启用严格模式,可以避免隐式的 any。
示例:
{
"compilerOptions": {
"strict": true
}
}
严格模式包括以下选项:
noImplicitAny:禁止隐式的any类型。strictNullChecks:确保变量不能为null或undefined。strictFunctionTypes:确保函数参数类型严格匹配。- 等等。
10. 使用第三方库的类型定义
如果使用第三方库,确保安装了对应的类型定义文件(@types 包)。
示例:
npm install --save lodash
npm install --save-dev @types/lodash
11. 逐步替换 any
如果项目中已经存在大量 any,可以逐步替换:
- 使用
eslint或tslint禁止使用any。 - 逐步为每个
any添加明确的类型。
12. 使用 never 类型
对于不可能存在的值,使用 never 类型。
示例:
function throwError(message: string): never {
throw new Error(message);
}
总结
避免使用 any 是编写高质量 TypeScript 代码的关键。通过明确类型、使用联合类型、泛型、类型断言、unknown 类型、类型守卫和工具类型,可以显著提高代码的类型安全性和可维护性。同时,启用严格模式和逐步替换 any 也是有效的策略。
DeepSeek V3 两周使用总结的更多相关文章
- 材价看板(2)- 运行两周的kanban,改进的起点
改进从何谈起?必须找到起点,那起点从哪来? 看板不需要像Scrum那样改变以往工作角色,简单通过任务上墙,配合敏捷的设计就能通过显示化日常工作来让问题自己蹦出来.在任何一个新采用看板的研发团队,执行一 ...
- 一个java实习生两周八次的面试经历
以前从来没有因为求职出去面试过,一直觉得面试很可怕,没想到最近两周我也成为了面霸,两周面试八次,我的找工作之路就这样开始了!大概两个星期之前,我看着自己在招聘网站上写好的简历连投出去的勇气都没有,战战 ...
- 两周“学会”bootstrap搭建一个移动站点
一直想着用bootstrap搭建网站,它的自适应.元素封装完善.现成的Glyphicons字体图标,省去很多的css.js.ui的工作,可以快速搭建一个客户需要的站点.ytkah自己有一些div+cs ...
- 来TN公司两周的记录
刚好上两周班,现在记录一下吧. 第一周:全部是培训,关于系统的架构.BOSS.NGBOSS.编码规范.开发规范.项目文档等.听了之后对公司的技术还是有一定的了解.至少知道公司不只一个web站. 第二周 ...
- Servlet课程0426(十一)Servlet Cookie实现两周内不用重复登录
Welcome.java //登录界面 package com.tsinghua; import javax.servlet.http.*; import java.io.*; import java ...
- 如何两周达到150行Java程序的能力--part 1
面向对象程序先导课是体系化面向对象课程的重要组成部分,其目标是帮助那些有一定C语言基础,但对面向对象概念陌生,基本没碰过Java编程的同学.该课程设计为暑期选修课,因为没有其他课程,我们设计为现场训练 ...
- 重拾《 两周自制脚本语言 》- Eclipse插件实现语法高亮
源码库: program-in-chinese/stone-editor-eclipse 参考: FAQ How do I write an editor for my own language? D ...
- 这两周服务器被攻击,封锁了600多个IP地址段后今天服务器安静多了
这两周服务器被攻击,封锁了600多个IP地址段后今天服务器安静多了 建议大家在自己的服务器上也封杀这些瘪三的地址 iptables -I INPUT -s 123.44.55.0/24 -j DROP ...
- 上海支付宝终面后等了两周,没能收到offer却来了杭州淘宝的电话面试
上上周一(14/12/22)上海支付宝hr终面 http://www.cnblogs.com/zhanghaoh/p/4178386.html 苦苦等了两周,没能如愿收到offer,却在今天等来了 杭 ...
- 两周多学完Java 23种设计模式
最近两周任务不是很繁重,对于一个刚入职4个月的菜鸟来说,学习设计模式并灵活使用简直天方夜谭:但是当我询问我导师需要学点啥的时候?“<Java设计模式>,这个必须要学”,一句简单粗略的 ...
随机推荐
- 联邦学习开山之作Communication-Efficient Learning of Deep Networks from Decentralized Data
1 介绍 1.1 背景 越来越多的手机和平板电脑成为许多人的主要计算设备.这些设备上强大的传感器(包括摄像头.麦克风和GPS),加上它们经常被携带的事实,意味着它们可以访问前所未有的大量数据,其中大部 ...
- CodeForces - 1336A Linova and Kingdom
CodeForces - 1336A 就差一点点,很可惜,少发现个很显而易见的结论 就是一个点的价值,实际上就是(这个点的深度 - 之后的点的数目) 就是 \(depth_i - size_i\) 然 ...
- 答题判题程序题目集 1~3 的总结性 Blog
前言 1.1 题目集概述 答题判题程序 - 1: 字符串解析:题目内容和答题内容都是按照特定格式给出的字符串,程序需要能正确地拆分和解析这些字符串,然后进行匹配. 对象和类的使用:为了更好地管理题目和 ...
- WordCloudStudio 支持支付宝周期性订阅
我们很高兴地宣布,WordCloudStudio 现已支持通过支付宝 (AliPay) 的周期性订阅支付功能!无论您是需要制作精美的词云图用于演示.社交媒体.教育资源,还是其他创意项目,现在都可以更便 ...
- 记录一个Linux代码移植到Windows平台下的Visual Studio 2022的代码编码格式的问题
一.前言 工作上与公司的前辈对接,他给了我一份在linux下面编写的代码压缩包,按照道理来说使用条件宏编译不同的windows和linux的API即可实现代码的通用.但是我在Visual Studio ...
- element-ui resetFields 无效的问题
1.问题 触发bug的条件是先打开,编辑进行赋值,后打开新增 先点开编辑 再打开新增 这个时候你会发现刚刚赋值过的数据还遗留在表单里面 即使在打开 dialog 的时候执行了重置也没有效果 res ...
- 在运行期通过反射了解JVM内部机制
本文由 ImportNew - 黄飞飞 翻译自 takipioncode.欢迎加入Java小组.转载请参见文章末尾的要求. 在日常工作中,我们都习惯直接使用或者通过框架使用反射.在没有反射相关硬编码知 ...
- MySQL命令行客户端工具之mycli
官网: mycli 目前市面上存在各种五花八门的图形界面客户端,如 phpmyadmin,navicat 以及官方的 MySQL Workbench 等等.而在日常工作或者使用中,通过命令连接 MyS ...
- 十亿手机号去重-BitSet
思路:使用Java自带BitSet函数,将手机号分为两段(15555555555 -> 155+55555555) public class demo { public static void ...
- vue3 + pnpm 打造一个 monorepo 项目
Monorepo 和 Multirepo 单一仓库(Monorepo)架构,可以理解为:利用单一仓库来管理多个packages的一种策略或手段:与其相对的是多仓库(Multirepo)架构 Monor ...