本周系统设计复习:

  • 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 期望和地理分布。

提高数据库性能的多种策略

存在多种策略来提高数据库性能。一些最重要的如下:

  1. 数据库索引 索引对于通过减少扫描数据量加速数据库查询很重要。此外,选择正确的索引类型至关重要。

  2. 分片和分区 将数据分成更小、更易管理的块,称为分片。每个分片也存储在不同服务器上。

  3. 去规范化 去规范化将数据合并到更少的表中,减少连接开销,提高读性能。

  4. 数据库复制 复制涉及维护同一数据库的多个副本,通常有一个主节点用于写入(和关键读取),次级节点用于大多数读操作。

  5. 数据库锁定技术 使用锁定技术,如悲观和乐观锁定,管理并发级别和资源竞争。

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

版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。