本周系统设计复习:
- DeepSeek 单页介绍
- 我推荐给软件开发者的 10 本书
- 什么是 AI 代理?
- Git vs. GitHub
- 数据库性能速查表
- 18 个值得知道的常用端口
DeepSeek R1 模型
据说它以非常低的成本开发了强大的 AI 模型,最终训练运行成本约 600 万美元。2025 年 1 月,据说它发布了最新的专注于推理的模型 DeepSeek R1。
发布使其成为 Apple Play Store 上下载量第一的免费应用。
大多数 AI 模型使用监督微调训练,意味着它们通过模仿大量人类标注示例数据集学习。这种方法有局限性。
DeepSeek R1 通过使用群相对策略优化(GRPO)克服这些局限性,这是一种强化学习技术,通过比较同一上下文内的多个可能答案提高推理效率。
DeepSeek R1 模型的一些事实
- DeepSeek-R1 使用专家混合(MoE)架构,总参数 6710 亿,每个任务仅激活 370 亿参数
- 它通过 MoE 采用选择性参数激活进行资源优化
- 模型在 52 种语言的 14.8 万亿令牌上预训练
- DeepSeek-R1 仅使用 2000 个 Nvidia GPU 训练。相比之下,ChatGPT-4 在 90-100 天内需要约 2.5 万个 Nvidia GPU
- 模型比竞争对手成本低 85-90%
- 它在数学、编码和推理任务中表现出色
- 此外,模型已作为开源在 MIT 许可证下发布
软件开发者书籍推荐
通用建议
- The Pragmatic Programmer - Andrew Hunt 和 David Thomas
- Code Complete - Steve McConnell:通常被认为是软件开发者的圣经,这本综合书籍涵盖软件开发的所有方面,从设计和编码到测试和维护。
编码
- Clean Code - Robert C. Martin
- Refactoring - Martin Fowler
软件架构
- Designing Data-Intensive Applications - Martin Kleppmann
- System Design Interview(我们自己的书 :))
设计模式
- Design Patterns - Eric Gamma 和其他人
- Domain-Driven Design - Eric Evans
数据结构和算法
- Introduction to Algorithms - Cormen、Leiserson、Rivest 和 Stein
- Cracking the Coding Interview - Gayle Laakmann McDowell
什么是 AI 代理?
AI 代理是一个软件程序,可以与环境交互、收集数据,并使用这些数据实现预定目标。AI 代理可以选择执行最佳行动以实现这些目标。
AI 代理的关键特征
代理可以执行自主行动,无需持续人类干预。此外,它们可以有人类在循环中保持控制。
代理有记忆存储个人偏好并允许个性化。它也可以存储知识。LLM 可以进行信息处理和决策功能。
代理必须能够感知和处理环境中可用的信息。
代理也可以使用工具,如访问互联网、使用代码解释器和进行 API 调用。
代理也可以与其他代理或人类协作。
AI 代理类型
有多种类型的 AI 代理可用,如学习代理、简单反射代理、基于模型的反射代理、基于目标的代理和基于效用的代理。
AI 代理系统架构
具有 AI 代理的系统可以用不同的架构方法构建:
- 单代理:代理可以作为个人助理服务。
- 多代理:代理可以以协作或竞争方式相互交互。
- 人机:代理可以与人类交互以更有效地执行任务。
Git vs. GitHub
Git 和 GitHub 是版本控制的流行工具。它们一起工作并互补,提供有效的源代码管理。
在高层面上,Git 专注于版本控制和代码共享,而 GitHub 专注于集中式源代码托管以与其他开发者共享。
然而,它们有一些关键区别:
- Git 是免费的开源版本控制工具。GitHub 是基于云的付费使用服务,在云中运行 Git。
- Git 安装在开发者的本地机器上。GitHub 托管在云中。
- Linux 基金会维护 Git。Microsoft 拥有 GitHub。
- Git 可以管理 git 仓库中对文件编辑的不同版本。GitHub 是上传 Git 仓库副本的空间。
- Git 支持版本控制和源代码管理。GitHub 可用于托管代码、协作和项目管理。
- Git 有 minimal 外部工具配置。GitHub 提供活跃的工具集成市场。
- Git 支持版本控制和源代码管理。GitHub 可用于托管代码、协作和项目管理。
最后,你可以使用 Git 而无需 GitHub,但你不能在没有 Git 的情况下使用 GitHub。
数据库性能速查表
好的数据库性能至关重要,因为它直接影响用户体验、运营成本和可扩展性。
什么影响数据库性能?
评估数据库性能取决于关键指标,如查询执行时间、吞吐量、延迟和资源利用率。
工作负载类型,如写重、读重、删除重和竞争工作负载,提出独特挑战。
其他影响性能的因素是项大小、项类型、数据集大小、并发期望、一致性要求、HA 期望和地理分布。
提高数据库性能的多种策略
存在多种策略来提高数据库性能。一些最重要的如下:
数据库索引 索引对于通过减少扫描数据量加速数据库查询很重要。此外,选择正确的索引类型至关重要。
分片和分区 将数据分成更小、更易管理的块,称为分片。每个分片也存储在不同服务器上。
去规范化 去规范化将数据合并到更少的表中,减少连接开销,提高读性能。
数据库复制 复制涉及维护同一数据库的多个副本,通常有一个主节点用于写入(和关键读取),次级节点用于大多数读操作。
数据库锁定技术 使用锁定技术,如悲观和乐观锁定,管理并发级别和资源竞争。
18 个常用端口
- FTP(文件传输协议):使用 TCP 端口 21
- SSH(安全 Shell 用于登录):使用 TCP 端口 22
- Telnet:使用 TCP 端口 23 用于远程登录
- SMTP(简单邮件传输协议):使用 TCP 端口 25
- DNS:使用 UDP 或 TCP 端口 53 用于 DNS 查询
- DHCP 服务器:使用 UDP 端口 67
- DHCP 客户端:使用 UDP 端口 68
- HTTP(超文本传输协议):使用 TCP 端口 80
- POP3(邮局协议 V3):使用 TCP 端口 110
- NTP(网络时间协议):使用 UDP 端口 123
- NetBIOS:使用 TCP 端口 139 用于 NetBIOS 服务
- IMAP(互联网消息访问协议):使用 TCP 端口 139
- HTTPS(安全 HTTP):使用 TCP 端口 443
- SMB(服务器消息块):使用 TCP 端口 445
- Oracle DB:使用 TCP 端口 1521 用于 Oracle 数据库通信端口
- MySQL:使用 TCP 端口 3360 用于 MySQL 数据库通信端口
- RDP:使用 TCP 端口 3389 用于远程桌面协议
- PostgreSQL:使用 TCP 端口 5432 用于 PostgreSQL 数据库通信
本文为学习目的的个人翻译,译文仅供参考。
原文链接:EP148: DeepSeek 1-Pager。
版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。