面试官一句“你项目里为什么用 RAG 不用微调”,很多人能把 RAG vs 微调的表格背出来,但被追问“你们知识库多久更新一次、为什么不直接 LoRA”就卡住。与其背表,不如把 Codex 变成面试官:打开 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 创建 Key,再把 Codex 的 Base URL 填成 https://taotoken.net/api,让它拿着同一张对比表连续追问。TaoToken 在这里只做一件事:给 Codex 提供兼容通道,让请求稳定发出去。原文第八篇把模型微调、多模态、MCP 和面试高频考点串成结业路线,但“看懂”和“答得上”之间差了一次高压追问。下面就把这条线接上:先用 Codex 的 config.toml 接通 TaoToken,再把原文 1.1 的表格改造成问题清单,最后用同一把 Key 模拟多模态、MCP 和简历项目追问。
1. 面试卡在 RAG vs 微调,不是缺表而是缺追问
1.1 原文 1.1 的对比表为什么一追问就散
原文第八篇开头就把 RAG 和微调做成一张表:RAG 检索外部文档塞进 prompt,微调拿自己的数据重新训练参数;RAG 适合知识频繁更新、需要溯源,微调适合改变模型风格、格式和领域术语;RAG 成本低、改文档实时生效,微调要 GPU、要重新训练。这张表本身没错,问题在于你只是“读”了它,没有在项目语境里“用”过它。
面试官不会满足于你复述“RAG 开卷考、微调背下书”。他会追问:你做的知识库问答系统,文档多久更新一次?如果更新频率是每天,微调怎么跟上?如果用户问“上周刚发布的产品政策”,微调后的模型能不能答出来?如果答案必须附来源,微调模型怎么给出引用链接?这些问题一出来,背表格的人就开始绕。
更麻烦的是,原文 1.1 的结论是“90% 的企业级场景用 RAG 就够了,微调是锦上添花”。这句话在面试里只能当结论,不能当论证。你得能说出:为什么你的场景落在那 90% 里,为什么微调在你的项目里不是必需品,以及如果未来要微调,触发条件是什么。Codex 当面试官的价值就在这里:它不让你停留在结论,而是逼你把结论拆成项目决策。
1.2 给 Codex 写 config.toml:Base URL 填 TaoToken 通道
先把 Codex 的通道接通。打开 TaoToken 注册并创建 API Key,Key 一律用占位符YOUR_API_KEY,不要写进聊天记录或提交到 Git。模型 ID 不要凭记忆写,去 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 的模型广场复制当时可用的 ID。
Codex 读的是~/.codex/config.toml。把model_provider指到自定义供应商,base_url填https://taotoken.net/api,末尾不要加/v1。下面这份可以直接改:
# ~/.codex/config.toml model = "YOUR_MODEL_ID" model_provider = "taotoken" [model_providers.taotoken] name = "TaoToken" base_url = "https://taotoken.net/api" env_key = "TAOTOKEN_API_KEY" wire_api = "chat"然后把 Key 放进环境变量。macOS / Linux:
export TAOTOKEN_API_KEY="YOUR_API_KEY"Windows PowerShell:
$env:TAOTOKEN_API_KEY="YOUR_API_KEY"注意:
base_url只填https://taotoken.net/api,不要带 UTM,也不要写成官网首页。官网首页只用来注册、创建 Key、看模型广场和看用量。
保存后重新打开终端,启动 Codex。如果它不再报缺少 API Key,说明自定义供应商已经被读取。接下来不要急着问业务问题,先用一句测试确认通道:
请用一句话确认你已收到请求,并列出你当前使用的模型 ID。模型 ID 以你从模型广场复制的为准。如果这里返回正常,再进入面试模拟。
2. 用 Codex 把 RAG vs 微调对比表变成追问脚本
2.1 先让 Codex 复述选型边界
把原文 1.1 的表格改写成提示词,不要直接让 Codex “解释 RAG 和微调”。更好的做法是让它当面试官,先问你边界,再抓薄弱点。可以这样发:
你现在扮演大模型应用岗面试官。不要直接给答案。 第一轮只问一个问题:在什么场景下 RAG 比微调更合适? 我回答后,你只挑一个最薄弱的点追问,最多追问三轮。 每轮追问前,先复述我的核心论据,再指出哪里没有项目证据。Codex 第一轮大概率会问:“你项目里的知识更新频率是多少?为什么不用微调?”你的回答不能只说“RAG 成本低”,要落到具体机制:知识库文档更新后,重新 embedding 并入库,检索端马上能取到新内容;微调要重新准备训练数据、重新训练、重新评估,版本回滚也更麻烦。如果面试官追问“那微调是不是完全没用”,你要能区分:微调改变的是模型的行为习惯和输出格式,RAG 解决的是事实来源和时效性。
2.2 连续追问:知识更新、溯源、成本、术语
第二轮让 Codex 专门追问“溯源”。你可以发:
继续上一轮。现在只追问溯源:如果用户要求每个回答都给出出处,RAG 和微调分别怎么实现? 我回答后,请指出我在检索链路、引用格式、置信度处理上漏掉了什么。这时你要能说出检索结果里保留doc_id、chunk_id、原文片段,生成时要求模型引用来源;微调模型如果没有外部检索,无法凭空给出可靠链接,只能靠训练数据里的记忆。第三轮让 Codex 追问“术语和风格”:如果公司内部有很多缩写,微调能不能帮模型学会?可以,但先考虑用 System Prompt 或少量示例约束,成本更低;只有当术语量很大、格式要求非常稳定、且 RAG 检索无法覆盖时,微调才进入候选。
原文 1.2 提到 LoRA、QLoRA 时强调“了解就够”。面试里也是一样:你不需要声称自己训过 7B 模型,但要把 LoRA 的定位说清楚。可以让 Codex 追问:“你说微调是锦上添花,那如果真要做,你会选全量微调还是 LoRA?为什么?”你的回答可以落在:全量微调改全部参数,对显存和算力要求高;LoRA 只训练旁路的小矩阵,原始权重不动,个人或小团队更容易验证。QLoRA 再加上量化,进一步降低显存门槛,但具体能不能跑,取决于模型大小和硬件,不能拍脑袋写数字。
2.3 让 Codex 点评你的回答
每轮回答完,让 Codex 做三件事:指出一个事实错误、指出一个逻辑跳跃、给出一个更贴近项目的表达。比如:
请按下面格式点评: 1. 我回答里最像背书的句子是哪句; 2. 哪个论据没有项目细节; 3. 用面试口语帮我改写成一段 30 秒能说完的答案。这样练几轮,你会发现原文 1.1 的表格不再是两列文字,而是一棵决策树:先看知识是否频繁更新,再看是否必须溯源,再看成本预算,最后才看是否需要改变模型风格。面试官问“为什么用 RAG 不用微调”,你就能从项目事实出发,而不是从定义出发。
3. LoRA 与 QLoRA:Codex 沿着“低秩旁路”继续问
3.1 原文 1.2 的三个概念改成问题
原文 1.2 把全量微调、LoRA、QLoRA 排成递进关系。你可以让 Codex 把这三行改成一串追问:
请基于以下概念连续提问,不要给答案: 全量微调、LoRA、QLoRA。 每个概念问两个问题:一个问原理,一个问适用边界。 我回答后,你判断我是在背定义,还是能解释为什么这样设计。Codex 可能会问:“全量微调为什么需要那么多显存?”“LoRA 为什么不直接改原始权重?”“QLoRA 的量化会带来什么代价?”这些问题对应原文里的“8 张 A100”“一张 3090”“RTX 3060 微调 7B”等说法。你不需要复述具体卡号,而要说出逻辑:全量微调要保存优化器状态和梯度,显存占用大;LoRA 冻结原始权重,只训练低秩矩阵,参数量小,所以更容易在消费级硬件上尝试;QLoRA 把原始权重做 4-bit 量化,进一步压显存,但量化可能带来精度损失,需要评估。
3.2 模拟追问:为什么不改原始权重
面试官很爱追问:“LoRA 只训练旁路,效果会不会不如全量微调?”你可以回答:LoRA 的假设是任务适配不需要改动全部参数,低秩增量可以捕捉大部分领域偏移;如果数据量很大、任务和预训练分布差异极大,全量微调可能上限更高,但成本和灾难性遗忘风险也更高。这个回答既承认边界,又不把 LoRA 吹成万能。
还可以让 Codex 追问:“你个人项目里为什么不用微调?”你可以结合原文结论:我的项目知识更新频繁,且需要引用来源,RAG 已经覆盖;微调更适合固定风格、固定格式或内部术语密集的场景。如果将来要微调,我会先准备高质量指令数据,用 LoRA 做小规模验证,再看是否值得上 QLoRA。注意,不要编造“我训过多少条数据”或“准确率提升多少”,没有真实数据就讲方法和判断条件。
4. 多模态和 MCP:Codex 的下一轮模拟面试
4.1 多模态不是“能看图”
原文第二部分把多模态拆成图片理解、语音转文字、文字生成图片。面试里如果只说“大模型能看图”,很快会被追问:图片怎么传给模型?输入格式是什么?图片太大怎么办?OCR 和视觉理解怎么配合?你可以让 Codex 出题:
请模拟多模态面试官,连续追问我三个问题: 1. 图片理解在 API 里通常怎么传; 2. 图片里既有文字又有图表时,怎么设计处理链路; 3. 如果图片模糊或方向不对,系统怎么兜底。 不要直接给答案,等我回答后再点评。你的回答要落到工程细节:图片可以用 URL 或 base64 传入,具体字段以对应模型文档为准;图表理解可以先用视觉模型抽描述,再把描述和 OCR 结果一起送进文本模型;模糊图片要有重拍提示或人工兜底。不要写“让 Codex 直接识别生产环境截图并执行操作”,Codex 只生成处理思路和代码片段,实际执行仍在你的本地环境。
4.2 MCP 与 Function Calling 分工,别把 MCP 说成直连生产库
原文第三部分把 MCP 比作 Agent 的“USB 接口”,并强调它不会替代 Function Calling。面试里你可以这样组织:MCP 解决的是工具发现和通信标准化,Function Calling 解决的是模型什么时候决定调用工具。前者让工具写一次就能被不同 AI 平台发现,后者是模型输出调用意图、由程序执行。
这里必须划清边界:MCP 不是让 Codex 直接连上你的生产库,也不是让 AI 自动执行高风险命令。工具真正执行时,仍然由你配置的本地服务或受控环境完成。比如查数据库,正确链路是:Codex 生成 SQL 或解释 SQL,你在本地或测试库执行,把报错和结果贴回对话,让 Codex 帮你分析。不要让 Codex 直连生产库,也不要让它替你跑impdp或FETCH这类操作。面试里如果被问到 MCP 的安全性,你可以说:标准化带来便利,但权限控制、审计和人工确认仍然要做。
5. 面试高频题:让 Codex 连续追问,而不是只给答案
5.1 RAG 流程与召回率优化
原文第四部分列了很多高频题。你可以把这些问题一次性交给 Codex,让它随机抽题、连续追问:
请从以下主题里随机抽 3 个,每个主题追问两轮: RAG 完整流程、分块策略、Hybrid Search、Rerank、幻觉控制、Token 成本。 第一轮问概念,第二轮问项目细节。 我回答后,请指出我有没有把“知道”说成“做过”。RAG 流程要能按顺序说清:文档加载、文本分块、Embedding、向量库、用户提问、语义检索、拼 Prompt、生成答案。分块策略要讲权衡:块太大语义被稀释,块太小上下文碎片化,常见做法是设置chunk_size和重叠窗口,但具体数值要看文档类型和评测结果,不能背一个数字走天下。召回率优化可以从三处入手:调分块、混合关键词与向量检索、加重排序。你可以说做过对比实验,但不要编造命中率数字;没有数字就讲实验设计和观察维度。
5.2 Agent 循环、工具失败、框架选择
Agent 相关题目要抓住 ReAct 循环:收到消息、判断是否调用工具、执行工具、把结果塞回上下文、继续判断,直到能直接回答。工具调用失败怎么办?把错误信息作为工具结果返回给模型,让它决定换参数重试、换工具还是告诉用户做不了,关键是程序不要崩。框架选择不要只报名字,要讲你为什么先手写循环、后来用 LangGraph:需要状态图、需要人工介入、需要更清晰的流程编排。
Codex 会追问:“你的 Agent 能直接操作生产机器吗?”答案必须是不能。它只能生成调用代码、解释返回结果、帮你设计重试逻辑;真实执行要在你的本地或测试环境,由你确认后运行。
5.3 系统设计与陷阱题
系统设计题可以用“智能客服”练,但不要照搬原文的架构细节。你可以让 Codex 问:“设计一个内部知识库问答,要求回答带出处、低置信度转人工,你怎么拆模块?”你的回答覆盖:接入层、意图判断、检索层、生成层、引用拼接、置信度评估、人工转接、日志与评估。陷阱题比如“大模型幻觉怎么办”,可以从三方面答:RAG 提供事实依据、System Prompt 约束不知道就说不知道、生产环境加事实校验或相似度检查。Token 成本控制可以讲缓存、对话摘要、限制输出长度、按任务选模型。同样,不要编造“便宜 50 倍”这类数字,以模型广场当时列表为准。
6. 验证与排障:Codex 请求确实走了 TaoToken
6.1 验证:模型对话和控制台看调用
配置保存后,让 Codex 连续回答三轮面试题。如果每轮都能正常返回,说明 Base URL 和 Key 已经生效。为了更直观,可以打开 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 的控制台,看这次调用有没有记上账。也可以用同一把 Key 去模型对话页发一条测试消息,确认模型 ID 没填错。模型对话入口在 TaoToken 模型对话。
6.2 config.toml 常见报错对照
第一种:Codex 报env var TAOTOKEN_API_KEY not set。说明env_key指向的环境变量没有导出,或者你改完配置后没有重开终端。用echo $TAOTOKEN_API_KEY检查,Windows 用echo $env:TAOTOKEN_API_KEY。
第二种:请求返回401。先确认 Key 是否从 控制台 API Keys 创建,再确认环境变量里没有多余空格或引号。
第三种:返回404 model not found。通常是模型 ID 写错,或者base_url末尾多加了/v1。回到 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 的模型广场复制当前模型 ID,并把base_url改回https://taotoken.net/api。
第四种:Codex 仍然走默认 provider。检查model_provider = "taotoken"和[model_providers.taotoken]的表名是否完全一致,TOML 对大小写和拼写敏感。
6.3 把简历项目也丢给 Codex 追问
原文第五部分列了简历项目,比如知识库问答、Function Calling Agent、全栈 AI 应用。你可以把简历里的一句话贴给 Codex,让它扮演面试官:
下面是我简历里的一条项目描述。请只追问,不要夸。 重点追问:数据规模、失败案例、评估方式、我具体负责哪一部分。 如果我的描述里有无法验证的结论,请直接指出来。这比单纯背题更接近真实面试。Codex 会追问“文档加载支持哪些格式”“分块参数怎么定的”“工具调用失败怎么处理”“前端流式输出怎么实现”。你答不上来的地方,就是下一轮复习清单。同一把 Key 还可以继续模拟多模态、MCP、系统设计,不需要每换一个考点就重新配环境。
7. 下一步:同一把 Key 继续模拟,去控制台对一下用量
配通 Codex 之后,先在 TaoToken 模型对话 用同一把 Key 发一条“模拟面试第一题”,确认模型 ID 和 Base URL 没填错。如果你准备长期拿 Codex 刷面试题,可以打开 Coding Plan 看套餐是否够用;新的 Key 在 控制台 API Keys 创建。如果你同时用 Claude Code 对照练习,接入方式见 Claude Code 接入文档。把这次 Codex 的追问记录留下来,比背十遍 RAG vs 微调表格更接近面试现场。