面试表达
面试时怎么讲
一句话:我围绕「LLMOps:可观测与评测体系」做过从问题拆解、方案设计、工程落地到效果验证的闭环。
追问重点:为什么这么设计、指标怎么验证、失败案例如何定位、上线后怎么观测和回滚。
证据建议:准备 README、架构图、关键代码片段、评测表和 2 个坏例复盘。
把“能跑”升级为“可观测、可评估、可迭代”:trace、指标、数据集、A/B。
本地学习进度
只保存在当前浏览器,不上传服务器。
学习产出
进阶能力,P1。阅读时尽量把知识点转成可演示项目、面试回答和简历证据。
能回答
为什么是核心能力 / 课程目标 / 认知地图
能交付
整理一页项目笔记,记录问题、方案、指标和取舍
下一步
把本篇总结成 90 秒面试讲述
面试表达
一句话:我围绕「LLMOps:可观测与评测体系」做过从问题拆解、方案设计、工程落地到效果验证的闭环。
追问重点:为什么这么设计、指标怎么验证、失败案例如何定位、上线后怎么观测和回滚。
证据建议:准备 README、架构图、关键代码片段、评测表和 2 个坏例复盘。
简历表达
围绕 LLMOps:可观测与评测体系 场景,完成「把“能跑”升级为“可观测、可评估、可迭代”:trace、指标、数据集、A/B。」相关能力建设,沉淀可复用工程方案、测试样本和面试表达材料。
没有评测与观测,优化是玄学;面试中最值钱的是你能拿出“变好/变坏”的证据链。
本课搭一套最小可落地 LLMOps:从第一次请求到持续迭代。
| 组件 | 解决什么问题 | 最小实现 |
|---|---|---|
| Trace | 哪一步慢、哪一步错 | OpenTelemetry span 或 LangSmith run |
| Metrics | 趋势、告警 | Prometheus 计数 + Grafana |
| Eval set | 防回归 | 版本化 JSON/CSV + 标签 |
| Human review | 主观质量 | 抽检表 + rubric |
quality-rubric.md。trace_id, span_name, latency_ms, model, tokens, retrieval_hits, tool_calls, error_type。factual, multi-hop, tool, refusal, edge。eval-report.md:通过率 + 失败样例 ID。eval-report.md 模板 + 一次真实跑批bad-case-taxonomy.md这一节对标 50K+ 岗位:面试官想听的不是“我用了 LangSmith”,而是“你给我一个 Agent,我有标准方法把它迭代到可上线水平”。
| 层 | 范围 | 规模 | 来源 |
|---|---|---|---|
| Smoke | 每次提交跑 | 10–30 | 精选“不能倒的题” |
| Regression | 每日 / 发版 | 100–300 | 真实线上脱敏 + 人工标注 |
| Adversarial | 每周 | 60–200 | 红队 + bad case 归档(和 ai-application-security 联动) |
type, difficulty, lang, persona, risk, gold_points[]。必须要点[] + 正则 / JSON schema 校验。# LLM-as-Judge 强验证模版
def llm_judge(q, gold_points, answer):
prompt = f"""打分规则(给 0/1/2):
0 = 缺失关键要点或错误
1 = 部分命中
2 = 全部要点命中且无幻觉
问题:{q}
必须要点:{gold_points}
待评回答:{answer}
输出 JSON: {{"score": 0|1|2, "hit": ["要点名"], "miss": [...], "reason": "..."}}"""
return judge_llm(prompt, temperature=0, seed=42) # 务必 seedtrace_id, parent_span, node_name, node_kind (retrieval|tool|llm|post),
start_ts, latency_ms, prompt_hash, response_hash,
model, input_tokens, output_tokens, cached_tokens, cost_usd,
retrieval_hits, rerank_score, tool_name, tool_args_hash,
error_type, risk_flags[], decision失败
├─ 检索层
│ ├─ 空召回
│ ├─ 召回噪声高
│ └─ 不支持的问题类型
├─ 工具层
│ ├─ 选错工具
│ ├─ 参数填错
│ └─ 工具返回截断
├─ 模型层
│ ├─ 幻觉
│ ├─ 拒答失败
│ └─ 格式违约
└─ 后处理
├─ 截断
└─ 引用丢失每类必须绑 1 个修复策略 + 1 个回归样本。
# .github/workflows/eval.yml
on: [pull_request]
jobs:
eval:
steps:
- run: python eval/run.py --suite smoke --baseline main
- uses: actions/github-script@v7
with:
script: |
const r = require('./eval/report.json');
if (r.regressions > 0) core.setFailed(`回归 ${r.regressions} 条`);eval/datasets/*.jsonl(三层集合)eval/graders/*.py(硬断言 + LLM judge)eval/report-template.md(baseline / delta / regression)docs/bad-case-playbook.md与 rag-engineering、agent-state-persistence-hitl、ai-application-security 互相指引。