必须承认,在2025年编写代码,比十年前甚至五年前都要容易得多。
编程语言从Fortran到C再到Python,每一步都降低了实现功能所需的努力。如今,像Cursor和GitHub Copilot这样的工具,仅需几行自然语言描述,就能编写样板代码、重构函数并优化编码流程。
与此同时,进入人工智能、数据科学和机器学习领域的人数也达到了前所未有的规模。产品经理、分析师、生物学家、经济学家等各行各业的人士,都在学习如何编码、理解AI模型的工作原理并高效解读数据。
这一切都指向一个结论:
资深数据科学家与初级数据科学家的真正区别,已不再是编码水平。
需要明确的是,区别依然是技术性的,依然取决于对数据、统计学和建模的理解。但这不再关乎能否在白板上手写反转二叉树,或者用O(n)复杂度解决某个算法问题。
通过与不同领域的杰出数据科学家合作,可以观察到资深数据专业人士处理问题的一种共性模式。这种模式并非取决于他们采用的具体模型或编码能力,而在于他们为将一个尚不存在的产品转化为稳健的数据驱动解决方案,所采用的结构化、系统化工作流程。
本文将阐述资深数据科学家在开发数据科学产品或功能时,通常遵循的六阶段工作流:
- 绘制生态系统地图,再动手编码
- 将数据科学产品视为操作者来思考
- 用“纸笔”端到端设计系统
- 从简单开始,赢得增加复杂性的权利
- 审视指标与输出结果
- 调整输出以适应受众,并选择合适的工具展示成果
下文将逐一展开这六个阶段。目标是,读完本文后,读者能够在日常工作中应用这六个阶段,像资深数据科学家一样思考。
绘制生态系统地图
数据从业者往往容易迷恋产品的“数据科学核心”,热衷于调优模型、尝试不同的损失函数、调整网络层数或测试新的数据增强技巧。毕竟,这也是多数人接受训练的方式。在学术环境中,重点在于技术本身,而非技术将运行的环境。
然而,资深数据科学家深知,在实际产品中,模型只是更大系统中的一个组件。其周围存在着产品需要融入的完整生态系统。忽略这个背景,很容易构建出精巧但实际无关紧要的东西。
理解这个生态系统,始于提出以下问题:
- 我们正在改进的具体问题是什么?目前是如何解决的?
- 谁将使用这个模型?它将如何改变他们的日常工作?
- 从业务角度看,“更好”在实践中意味着什么(例如,减少工单、增加收入、降低人工审核量)?
简而言之,在进行任何编码或系统设计之前,至关重要的是理解产品旨在提供什么价值。

作者制作图片
此步骤得出的答案应类似这样:
[我的数据产品] 旨在改善系统 [Y] 中产品 [X] 的功能 [A]。该数据科学产品将提升 [Z]。预期获得 [Q],改进 [R],并减少 [T]。
将数据科学产品视为操作者
在清晰理解生态系统后,便可以开始思考数据产品本身。
这是一个与真实用户换位思考的练习。如果我们是该产品的用户,使用体验会是怎样的?
要回答这个问题,需要明确以下几点:
- 衡量产品满意度的良好指标是什么?最优情况、次优情况和最坏情况分别如何定义?
- 可接受的等待时长是多少?是几分钟、十秒,还是需要实时响应?
- 该产品的预算是多少?可以为此花费多少?
- 系统失败时会发生什么?是回退到基于规则的决策、向用户请求更多信息,还是仅显示“无结果”?最安全的默认方案是什么?

作者制作图片
可以看出,这已进入系统设计的范畴,但尚属前期阶段。此阶段主要是确定系统的所有约束、限制和功能要求。
用“纸笔”端到端设计系统
至此,我们已经:
- 全面理解了产品将所处的生态系统。
- 完全掌握了所需数据科学产品的性能和约束。
因此,具备了开始系统设计阶段所需的一切。
简而言之,就是利用之前发现的所有信息来确定:
- 系统的输入和输出
- 可用的机器学习架构
- 如何构建训练和测试数据
- 用于训练和评估模型的指标
可用于此部分头脑风暴的工具包括Figma和Excalidraw。作为参考,下图展示了使用Excalidraw绘制的部分系统设计(即上述列表中的模型部分/第二部分)。

作者使用Excalidraw制作的系统设计图
此时,资深数据科学家的真正技能开始显现。迄今为止积累的所有信息必须汇聚到系统设计中。预算有限?那么训练一个700亿参数的深度学习架构可能不是好主意。需要低延迟?批处理不可行。需要一个上下文重要且数据集有限的复杂NLP应用?或许大语言模型是一个选项。
请记住,这仍然只是“纸笔”阶段:尚未编写任何代码。但至此,已经对需要构建什么以及如何构建有了清晰的理解。现在,只有现在,才可以开始编码。
*系统设计本身是一个庞大的主题,用不到10分钟的时间来阐述几乎是不可能的。若想深入了解,强烈推荐ByteByteGo的这门课程。
从简单开始,赢得增加复杂性的权利
资深数据科学家在进行建模时,最花哨、最强大、最复杂的机器学习模型通常是他们最后尝试的选项。
通常的工作流程遵循以下步骤:
- 尝试手动执行问题:如果由人(而非机器)来执行此任务,会怎么做?
- 特征工程:基于上一点的知识,会考虑哪些特征?能否构建一些特征来高效完成任务?
- 从简单开始:尝试一个相对简单*的传统机器学习模型,例如,分类任务用随机森林/逻辑回归,回归任务用线性/多项式回归。如果精度不够,再逐步升级。
所谓“逐步升级”,含义如下:

作者制作图片
简而言之:仅在必要时才增加复杂性。请记住:目标不是用最新技术给人留下深刻印象,而是构建一个稳健、功能完善的数据驱动产品。
*所谓“相对简单”,是指对于某些复杂问题,一些非常基础的机器学习算法可能一开始就不适用。例如,如果要构建一个复杂的NLP应用,可能永远不会使用逻辑回归,而直接从Hugging Face上更复杂的架构(如BERT)开始是更稳妥的选择。
审视指标与输出结果
资深人士与初级专业人士的一个关键区别在于他们看待模型输出的方式。
通常,资深数据科学家会花费大量时间手动审查输出。这是因为手动评估是产品经理(资深数据科学家需要向其展示工作成果的人)想要了解模型性能时首先会做的事情之一。因此,从手动评估的角度看,模型输出显得“有说服力”非常重要。此外,通过手动审查成百上千个案例,可能会发现算法失败的场景,这为后续改进模型提供了起点。
当然,这只是开始。下一个重要步骤是选择最合适的指标进行定量评估。例如,是否希望模型能充分代表数据集中的所有类别/选择?那么,召回率就非常重要。是否希望模型在进行分类时极其精准,即使牺牲一些数据覆盖率?那么,就是在优先考虑精确率。两者都想要?AUC/F1分数是最佳选择。
简而言之:优秀的数据科学家确切知道使用哪些指标以及为何使用。这些指标将用于内部沟通和/或向客户展示。不仅如此,这些指标还将成为下一次迭代的基准:如果有人想要改进模型(针对同一任务),就必须提升那个指标。
调整输出以适应受众,并选择合适的工具展示成果
回顾一下当前进展:
- 已在生态系统中定位了数据科学产品并定义了约束条件。
- 完成了系统设计并开发了机器学习模型。
- 评估了模型,且其精度已达到要求。
现在终于到了展示成果的时候。这一点至关重要:工作的质量,仅等同于有效沟通它的能力。首先必须明确:
向谁展示?
如果是向高级数据科学家进行模型评估,或是向软件工程师展示以便他们将模型投入生产,亦或是向需要向上级决策层汇报工作的产品经理展示,所需的交付物将各不相同。
经验法则如下:
- 向产品经理提供非常高层次的模型概览和指标结果。
- 向高级数据科学家展示更详细的模型细节和指标解释。
- 向将代码投入生产的超级英雄——软件工程师——提供非常具体的细节,包括代码脚本和笔记本。

结论
在2025年,编写代码已不再是区分资深与初级数据科学家的标准。资深数据科学家之所以更优秀,并非因为他们能熟记TensorFlow文档,而是因为他们构建数据驱动产品时,遵循一套特定的工作流程。
本文通过一个六层流程,阐释了标准的资深数据科学家工作流:
- 一个沟通层,用于根据受众调整交付内容(面向产品经理的故事、数据科学的严谨性、工程师就绪的工件)
- 一种在动手编码前绘制生态系统地图的方法(问题、基线、用户、“更好”的定义)
- 一个将数据科学功能视为操作者的思考框架(延迟、预算、可靠性、故障模式、最安全的默认方案)
- 一个轻量级的纸笔系统设计流程(输入/输出、数据源、训练循环、评估循环、集成)
- 一种从简单开始、仅在必要时增加复杂性的建模工作流
- 一种审视输出和指标的实用方法(先手动审查,再根据产品目标选择正确的指标)
- 一个沟通层,用于根据受众调整交付内容(面向产品经理的故事、数据科学的严谨性、工程师就绪的工件)
