☰
第一段 AI 经历选实习还是自研项目:面试官各在看什么
2026/10/14 4:06:29 网站建设 项目流程

版权与内容来源声明
本文为原创整理。文中涉及官方文档、开源仓库、论文与公开报道的内容,均在附表 A 中标注来源;引用官方原文保持原样,不作改写。文中命令、版本号与界面截图以本文成文时的实测/核验结果为准,标注「待验证」的部分请以你本地环境实际输出为判断依据。本文不推荐任何不合规的软件获取方式,也不对任何收益结果作承诺。转载请注明出处。

第 1 章 面试官问的不是「哪个更高级」,而是「你能证明什么」

1.1 从一个常见的纠结说起

手上有两个选择:一家公司愿意让你去做几个月的 AI 相关实习,或者你干脆待在家里,把一个应用从头到尾做完。选哪个?

网上的答案通常是二选一:实习更硬,因为有公司背书;自研更硬,因为实习就是打杂。两种说法都不算错,但都不能直接拿来用,因为它们没回答那个更基本的问题:这段经历最后能变成什么可以被检验的东西。

面试的时间很短,面试官做的其实只有一件事:把你嘴里的「我会」换算成「我信」,中间的媒介就是证据。不同经历产出的证据类型并不一样——这才是纠结的真正来源。

1.2 两类经历,产出的是两种证据

一类是外部约束证据:这件事不是我想做的,是别人要我做的;有明确的截止时间;做完之后别人真的用过;出过问题,有问题记录和回滚动作。它证明的是:你能在真实约束下交付。

另一类是闭环完整度证据:从问题定义、数据准备、评测设计,到最后的取舍说明,整条链路都是你一个人走通的。它证明的是:你能独立把一件事做完做透。

两者不是「高配」和「低配」的关系,而是回答了不同的问题。两段经历如果证据类型重复,加起来也不比一段强多少。

对比项实习通常能提供的自研项目通常能提供的
问题是谁定的需求方定的,你负责解你自己定的,可能要自己论证它值得做
什么时候必须交有截止时间,有别人的排期卡着通常只有你自己定的时间
谁判定做完了使用者用不用、好不好用通常是你自己设计的评测
出了问题怎么办有应急、有回滚、有复盘多数情况下没有线上环境
面试时最容易被追问你到底独立负责了哪一段你的评测是不是自己骗自己

1.3 一个反例:什么都做过,什么都说不清

很常见的简历写法是罗列:做过检索增强问答,做过工具调用智能体,调过开源模型,跑过微调。听起来很满,但顺着任何一个点往下问三句就会卡住:这个问题是谁提出来的?你怎么判断做完了?哪一版是失败的、你从失败里改了什么?

答不上来的原因不是能力差,而是这些经历没有沉淀成证据。证据有三个特征:能被别人验证、有明确的时间点、包含不成功的部分。只有结论没有过程的描述,不是证据,只是标签。

所以「选实习还是选自研」,可以换成一个更可回答的问法:我现在最缺哪一类证据?

第 2 章 实习能给你的证据,与它常常不给你的

2.1 实习真正值钱的是四种外部约束

实习的价值不在于公司名字,而在于它天然带来四种自研项目很难凭空造出来的外部约束。

第一种是真实需求方。有人提需求,意味着有一个你之外的判断标准:他要的是能用的东西,不是你觉得好的东西。第二种是截止时间。有时间压力,你才会真的面对取舍:先做哪一半、砍掉什么、用什么替代方案顶上。

第三种是别人真的用过。用的人会提出你没想到的用法,也会在你认为没问题的地方撞出问题。第四种是线上问题与回滚。回滚指的是把服务退回上一个版本,这件事在成熟工程里是标准动作,不是耻辱柱。

Google 公开的 SRE 系列文档把「发布回滚、流量切换等值班介入」列为需要写复盘的触发条件,并把复盘的基调定成不追责、只找原因;《发布工程》一章还把可复现的构建与可回滚的发布列为基础要求(截至 2026-10-13 可访问)。这说明「参与过一次回滚并写了复盘」在工程语境里是正经经验,可以在面试里讲。

外部约束它替你证明了什么你该留下的凭证
真实需求方你能按别人的标准交付,而不是按自己的标准原始需求、你复述后的理解、中途的需求变更
截止时间你会做取舍,知道先保什么时间表、被砍掉的部分、砍的理由
别人真的用过你的产出在别人流程里跑通过使用者的反馈、你因此改的那一版
线上问题与回滚你见过真实故障,知道怎么退回去问题的现象、处置动作、复盘结论

2.2 只有打杂时怎么自救

实习最常见的不理想状态是:你被安排做边角料,接触不到核心链路。有三种做法能救回一部分证据。

把自己挂到一条完整链路上。哪怕只负责其中一段,也要把这条链路的输入、输出、上下游是谁问清楚。能画出这条链路的人,比只会说自己那一段的人可信得多,因为他知道自己的活在整个系统里的位置。

把交付物外部化。不要只交一个结论,要交三样东西:一段别人能重跑的脚本或步骤、一份说明为什么这么做的文档、一份失败记录。这三样东西的寿命比你的实习期长。

把过程写成可回溯的记录。每次需求变更、每次别人指出问题、每次线上问题怎么处置,各记一行。这些记录是面试时唯一能说清外部约束的凭证。

⚠️代码待验证

gitlog--date=short--pretty=format:'%ad %h %s'--<你的产出文件或目录>

这条命令把你在某份产出上的每一步改动按日期列出来。它不能证明你做得好,但能证明你在某个时间段里持续改过这个东西,而不是最后一天突击写了个结论。输出格式以本地仓库的实际版本为准。

2.3 判断一段实习值不值得去:四个提问

决定去不去之前,可以直接问:我能不能看到一条完整链路的输入和输出?我的产出会不会被别人真正使用?做错了有没有人会及时告诉我?这段时间里我有没有一次必须按时交的压力?

四个问题里有三个能得到肯定回答,这段经历大概率能产出外部约束证据;四个都答不上来,就得提前想清楚,进去之后主动争取这四样东西,而不是等着被安排。

第 3 章 自研项目能给你的证据,与它最容易自欺的地方

3.1 闭环完整度是六个环节,不是一个结果

自研项目的价值不在于「我做出来了」,而在于你走完了一条完整的链。这条链有六个环节,缺一环就要打折扣。

闭环环节做到什么程度算走通最常见的缺失写法
问题定义说清为什么值得做、边界在哪、什么不在范围内只说「我想做一个智能助手」
数据准备说清数据从哪来、怎么清洗、口径怎么定只说「用了一些公开数据」
基线先用最简单的方法跑一遍,作为对比下限没有基线,直接上复杂方案
迭代至少保留一次失败和一次修正只展示最终版本
评测指标先定、留出集不参与任何选择只有一次演示成功的截图
取舍说明说清为什么选这个方案、放弃了什么不提代价,只讲好处

这里有两个词要解释。基线指先用最简单的方法(一条规则或一个固定回答)跑一遍,当作对比下限,后面所有方案都要跟它比。留出集指从一开始就切出一份,全程不参与任何调整,只在最后评一次。没有留出集,分数就是在自己看过的题上考出来的。

3.2 三种最常见的自欺

自研项目最危险的地方在于:没有外部约束,所以你可以一直骗自己。

第一种是自造需求。你给自己设了一个题目,然后自己判定它很重要。规避的办法是找一个你之外的需求方——你原来行业的真实流程、一个公开数据集上的公开任务、或者某个开源项目里长期挂着没解决的 issue(这类 issue 属于社区讨论帖,非官方文档,未经官方确认,只能当需求线索)。

第二种是没有评测。只看了一次演示成功,就认为方案可行。scikit-learn 官方文档讲得很直接:数据泄漏指建模时用到了预测时根本拿不到的信息,结果是评测分数过分乐观;规则也很直接——不要在测试数据上做拟合,任何预处理都只能从训练数据里学(scikit-learn 官方文档,截至 2026-10-13 可访问)。翻译过来就一句话:先切留出集,再动任何一步。

评测怎么组织,Anthropic 官方公开的评测指南给过一个可复用的结构:一次评测通常由输入提示、模型输出、参考答案、分数四部分组成;打分方式分代码打分、人工打分、模型打分三类,官方建议能设计成代码打分就优先用(Anthropic 官方 cookbook,截至 2026-10-13 可访问)。这三类打分怎么选,本身就是面试时能讲的一个取舍。

第三种是只演示成功案例。这是前两种自欺的外在表现。规避它不需要额外能力,只需要一页纸。

3.3 让自研项目「可被验证」的四个最小动作

不需要把项目做成产品,只需要四个动作。

动作一,固定随机种子。随机初始化会带来随机性,同一个脚本跑两次结果不一样,别人就无法复现。

⚠️代码待验证

importrandomimportnumpyasnp SEED=42random.seed(SEED)np.random.seed(SEED)# 顺序很重要:先切留出集,再动任何一步# 留出集不参与调参、不参与特征选择、不参与提示词试错# 只在最后一次评测里使用

这段骨架的重点不在代码,而在于把「先切留出集」写成流程的第一步。如果先做特征选择或反复调提示词再切留出集,留出集就已经被污染。具体 API 以本地安装的版本为准。

动作二,准备一页失败案例。写清四个字段就够了。

⚠️代码待验证

输入:<一个让方案出错的真实输入> 期望输出:<按你的口径应该是什么> 实际输出:<方案实际给出了什么> 我的判断:<属于哪一类失败,可能的原因是什么>

动作三,写清边界:适用范围、已知做不到的事、要用在真实场景还需补什么。NeurIPS 官方论文检查清单把「讨论工作的局限」单列为一项要求,并明确说明不因作者诚实而扣分(NeurIPS 官方指南,截至 2026-10-13 可访问)。顶会论文都要求写局限,个人项目更没有理由只讲优点。

动作四,把数据来源写清楚:来自哪里、怎么采集、推荐用途是什么、有哪些已知问题。这套做法有公开的文档范式可以照抄(见附表 A 中数据文档与模型卡两条)。

第 4 章 核心判据:一张经历选择打分表

4.1 五个维度怎么定义

真到做决定的时候,原则需要落成数字。下面五个维度,每个按 0 分、1 分、2 分三档打分,满分 10 分。

能不能拿到真实数据:真实数据指有真实的分布、真实的脏、真实的边界情况。能拿到 2 分,只有公开且已清洗的数据 1 分,只能自己造样例 0 分。

有没有外部约束:有人提需求、有人卡时间、有人使用,三者都占 2 分,只占一个 1 分,全靠自己管自己 0 分。

能不能留下可复现的产物:别人照着你的说明能跑出同样结果 2 分,能跑但需要你口头补充 1 分,只有一个演示画面 0 分。

有没有人给反馈:反馈来自真实使用者 2 分,来自同行或社区 1 分,只有自己 0 分。

时间是否可控:有稳定的整块时间 2 分,零碎但总量够 1 分,完全不可控 0 分。

4.2 打分表

维度0 分1 分2 分
能否拿到真实数据只能自己造样例公开但已清洗的数据真实分布、有脏数据和边界情况
有没有外部约束全靠自己管自己只占其一(需求方 / 时间 / 使用者)需求方、时间、使用者三者都占
能否留下可复现产物只有一段演示画面能跑,但需要口头补充照说明就能跑出同样结果
有没有人给反馈只有自己同行或社区真实使用者
时间是否可控完全不可控零碎但总量够稳定的整块时间

用法很朴素:把两三个候选机会各自对着五个维度打分,把分数写下来,不要只在脑子里比。

4.3 分数怎么用:不是选总分最高的

这张表不是用来选总分最高的,而是用来找你现在最缺的那条证据。7 分以上证据类型比较完整,可以直接做;4 到 6 分说明缺一到两个维度,先把时间和评测补齐;3 分以下基本是自己跟自己玩,优先换成有外部约束的机会。

还有一个容易漏的点:分数是可以被你改的。同一个机会,进去之前是 4 分,进去之后你主动争取到使用者、主动补了评测,可能会变成 7 分。所以打分表也用来指导你进去之后该抢什么。

第 5 章 两者都不理想时的第三条路

5.1 为什么这条路常常最划算

现实里更常见的情况是:实习机会拿不到,自己闷头做项目又觉得没有底气。这时候有一条常被忽略的路——把实习里遇到的真实问题拿出来,自己做深一遍。

它划算的地方在于同时补上两边短板:问题有外部性,因为它是真实环境里长出来的;闭环完整度也有了,因为整条链是你自己走的。它还规避了实习的两个最大风险:接触不到核心链路,产出不能带走。

5.2 四步做法

第一步,把问题抽象成与数据无关的形式。去掉具体的表名、字段名、客户特征,只留下问题的形状:输入是什么类型的信息,输出要满足什么条件,判断对错的标准是什么。抽象这一步本身就是能力展示。

第二步,用公开数据或自造数据重建一个可以做的最小版本。规模可以小,但链路要完整。

这一步同时要把四个替代关系写进项目说明:输入用什么公开数据替代,判断标准在没有业务方时靠什么规则替代,线上指标用哪几个代理指标替代,与真实环境的差异会影响哪些结论。

第三步,把评测补齐。因为你没有线上环境,评测就是你全部的证明材料:先把指标定下来,再切留出集,再记录失败案例。

第四步,写清与真实环境的差异。差异不是减分项。能准确说出差异的人,说明他知道自己结论的边界在哪。把差异写成一段话,比多做一个功能有用。

5.3 边界:什么不能带走

这条路有一条硬边界:带走的是对问题的抽象,不是公司的资产。公司数据、代码、内部文档、客户信息、内部系统名称,都不属于可以带走的问题。

具体做法是:只保留问题的形状,去掉所有能定位到具体业务的标识;不写公司名,也不写内部系统名;严格遵守你签署过的保密约定,不确定的先去确认再动。这一步做得干净,讲出来是加分项;做得不干净,它会变成风险点。

这份资料是什么:一份把「问题抽象成可复现版本」时用到的清单。它和本章 5.2 节的四步做法是配套的,放在资料包里,扫码即可获取:

第 6 章 面试时两类经历各怎么讲

6.1 一个共用的结构

两类经历可以用同一个骨架来讲:背景 → 我的判断 → 我的动作 → 结果 → 复盘。

差别在结果和复盘这两段。实习的结果有外部参照物,可以说清别人用了之后怎么样;自研的结果通常只有评测,所以必须把评测讲得足够细。实习的复盘受限于你接触到的信息,自研的复盘则由你自己定义范围。

6.2 两类经历的讲法差异

要讲的环节实习讲法自研讲法
背景谁提的需求、为什么提、当时的约束是什么问题怎么定义的、为什么值得做、边界在哪
我的判断你在哪些方案之间做过取舍,依据是什么你的基线是什么,为什么先跑基线
我的动作你独立负责的那一段,具体到接口和产出数据怎么准备、评测怎么设计
结果别人用不用、好不好用、出了什么问题评测结果、与基线的差距、失败案例
复盘一次回滚或一次返工,你的结论是什么一次失败迭代,你改了什么、为什么

讲实习最容易犯的错,是把团队成果说成个人成果。与其说「我们做了某某系统」,不如说「这条链路上我负责哪一段,上游给我什么,我输出什么,我怎么知道我做对了」——范围小反而可信。讲自研最容易犯的错,是只讲结果不讲过程,而面试官想确认的恰恰是你的判断力,判断力只能从「你为什么这么选」里看出来。

6.3 会被顺着往下问的三个方向

无论讲哪一类,都大概率会被追问。实习方向上的追问一般围绕:这个需求是谁提的,你怎么知道做对了,出问题怎么退回去。自研方向上的追问一般围绕:为什么不用最简单的方法,你的评测可信吗,失败案例在哪。

这些问题在确认同一件事——你说的这个结果,是你判断出来的,还是碰巧对的。把答案准备成「我当时的依据是……,现在回头看我会改成……」这种带时间差的说法,比背一个标准答案稳得多。

第 7 章 三种处境的不同排法

7.1 应届 / 还没实习过

完全没有经历时,优先级很清楚:先把闭环跑通一遍,再去找外部约束。因为手上没有东西可以拿去换实习机会,而一个走完六个环节的最小项目本身就是敲门砖。规模要小到能做完,宁可做窄做深,不要做宽做浅。

7.2 转行 / 有旧行业经验

转行的人手里其实有一张牌:你原来行业里,哪些流程是可以被模型改进的。把这张牌打出来,问题定义那一步就天然有了外部性,而且你能说清为什么这个需求是真的。注意分寸:讲行业问题讲的是流程和判断标准,不要讲原公司的数据与内部信息。

7.3 在职 / 时间碎片化

在职的人最缺稳定整块时间,那就别比项目数量,改成比证据密度:一个项目,但留出集、基线、失败案例、边界说明一应俱全。每周固定几小时的节奏比周末熬夜更可持续,因为评测和记录依赖连续性。

处境优先补哪类证据可交付节奏
应届、无实习闭环完整度优先先把一个窄项目走完六个环节,再投机会
转行、有旧行业经验两者兼顾,用行业问题做入口先用行业流程定义问题,再补评测与记录
在职、时间碎片外部约束优先保持一个沉淀项目,同时争取一段有使用者的经历

三种排法背后的判断是同一个:先看证据,再看机会。手上缺什么就去补什么,而不是看别人在选什么。

这份资料是什么:一张按五个维度打分的机会评估表,填完就能看出自己缺哪类证据。它和本章的三种排法是配套的,放在资料包里,扫码即可获取:

附表 A:本文引用事实与出处对照表

事实出处本文位置
论文检查清单要求作者逐项回答可复现性、局限性等问题,且明确说明不因作者诚实讨论局限而扣分NeurIPS 官方指南《NeurIPS Paper Checklist Guidelines》,NeurIPS 官方站点,https://neurips.cc/public/guides/PaperChecklist (截至 2026-10-13 可访问)第 3 章 3.3 节
提出用一套检查清单衡量机器学习系统的生产就绪程度,包含 28 项具体测试与监控要求Breck, Cai, Nielsen, Salib, Sculley,《The ML Test Score: A Rubric for ML Production Readiness and Technical Debt Reduction》,2017 IEEE International Conference on Big Data,DOI 10.1109/BigData.2017.8258038第 3 章 3.1 节
「值班工程师介入(发布回滚、流量切换等)」被列为需要撰写复盘的触发条件;复盘采用不追责、只找原因的形式Google SRE 官方文档《Site Reliability Engineering》第 15 章 Postmortem Culture,Google 官方站点,https://sre.google/sre-book/postmortem-culture/ (截至 2026-10-13 可访问)第 2 章 2.1 节
可复现的构建、自动化的构建与测试、以及可回滚的发布,被列为发布工程的基础原则Google SRE 官方文档《Site Reliability Engineering》第 8 章 Release Engineering,Google 官方站点,https://sre.google/sre-book/release-engineering/ (截至 2026-10-13 可访问)第 2 章 2.1 节
评测通常由输入提示、模型输出、参考答案、分数四部分组成;打分方式分为代码打分、人工打分与模型打分三类,并建议优先使用代码打分Anthropic 官方 cookbook《Building evals》,Anthropic 官方站点,https://platform.claude.com/cookbook/misc-building-evals (截至 2026-10-13 可访问)第 3 章 3.2 节
数据泄漏指建模时使用了预测阶段无法获得的信息,会导致评测结果过分乐观;官方规则为不要在测试数据上拟合,任何预处理只能从训练数据中学习scikit-learn 官方文档《Common pitfalls and recommended practices》第 12 章,https://scikit-learn.org/stable/common_pitfalls.html (stable 版本,截至 2026-10-13 可访问)第 3 章 3.2 节
建议为每个数据集配一份说明文档,记录其动机、构成、采集过程与推荐用途Gebru, Morgenstern, Vecchione, Vaughan, Wallach, Daumé III, Crawford,《Datasheets for Datasets》,arXiv:1803.09010(2018 年首次提交,2021-12-01 最后一次修订)第 3 章 3.3 节
建议为发布后的模型配一份简短报告,把评测结果按不同人群与不同条件分列,而不仅是给一个总体指标Mitchell, Wu, Zaldivar, Barnes, Vasserman, Hutchinson, Spitzer, Raji, Gebru,《Model Cards for Model Reporting》,arXiv:1810.03993第 3 章 3.3 节

附表 B:术语速查表

术语一句话解释在本文哪里用到
外部约束证据由别人提需求、别人卡时间、别人使用而产生的可检验记录第 1 章 1.2 节、第 4 章
闭环完整度证据从定义问题到取舍说明由一个人走完的完整链条第 1 章 1.2 节、第 3 章
基线用最简单的方法先跑一遍,作为后续方案的对比下限第 3 章 3.1 节、第 6 章
留出集一开始就切出、全程不参与任何调整、只在最后评一次的那份数据第 3 章 3.3 节、第 5 章
数据泄漏建模时用到了预测时拿不到的信息,导致评测分数虚高第 3 章 3.2 节
可复现同样的输入和配置,别人照着说明能跑出同样的结果第 4 章 4.1 节

写在最后:这篇用到的资料

写这篇文章时,把相关的官方文档和源码又翻了一遍,顺手也整理了几份配套的东西:

  • 大模型学习路线图:从零基础到能自己动手做 Agent,按阶段说明每一步该学什么、哪些可以先跳过
  • 《LangChain + LangGraph + MCP 智能体开发实战》视频课:7 个模块,从私有化部署、Embedding+RAG 到 MCP+Agent 全流程
  • AI 大模型知识库(在线可查):Agent Skills 从入门到落地、Claude Skills 完全指南等专题,按目录浏览即可
  • 640 套 AI 大模型行业报告 + 经典 PDF 书籍:看行业落地案例和别人怎么做的时候用得上
  • 大模型零基础到精通教学视频:跟着敲一遍,比只读文档快得多

资料是我自己整理的,放在下面这个码上,扫码即可获取:






添加时备注「AI」,优先通过。

资料按「先路线、再动手、最后查漏」的顺序整理好了,建议先看学习路线那一份,照着它挑一条适合自己当前基础的路径再往下看。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询