关于 senior-ml-engineer
senior-ml-engineer 面向部署和运维模型及 LLM 功能的团队,提供生产级 ML 工程指导。内容涵盖部署、MLOps、RAG、LLM 集成和监控,并附带用于生成流水线与部署产物的脚本。
主要功能
- 01模型部署流程与产物生成
- 02自动化 MLOps 流水线指导
- 03LLM 集成模式
- 04RAG 流水线脚手架
- 05漂移与性能监控
适用场景
- 01准备将模型部署到生产环境
- 02设置模型跟踪与再训练
- 03构建检索增强生成流水线
- 04监控生产模型的漂移与延迟
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alirezarezvani/ claude-skills --skill senior-ml-engineer安装后在 Claude Code 中输入/senior-ml-engineer确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/llm_integration_guide.mdmlops_production_patterns.mdrag_system_architecture.mdscripts/ml_monitoring_suite.pymodel_deployment_pipeline.pyrag_system_builder.py详细介绍
高级 ML 工程师
面向模型部署、MLOps 基础设施和 LLM 集成的生产级 ML 工程模式。
目录
模型部署工作流
将训练好的模型部署到生产环境并进行监控:
- 将模型导出为标准化格式(ONNX、TorchScript、SavedModel)
- 使用 Docker 容器打包模型及其依赖
- 部署到预发布环境
- 针对预发布环境运行集成测试
- 向生产环境部署金丝雀版本(5% 流量)
- 监控延迟和错误率 1 小时
- 若指标达标,则推广为全量生产版本
- 验证: p95 延迟 < 100ms,错误率 < 0.1%
容器模板
FROM python:3.11-slim
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY model/ /app/model/
COPY src/ /app/src/
HEALTHCHECK CMD curl -f http://localhost:8080/health || exit 1
EXPOSE 8080
CMD ["uvicorn", "src.server:app", "--host", "0.0.0.0", "--port", "8080"]
服务化方案
| 方案 | 延迟 | 吞吐量 | 使用场景 |
|---|---|---|---|
| FastAPI + Uvicorn | 低 | 中 | REST API、小型模型 |
| Triton Inference Server | 极低 | 极高 | GPU 推理、批处理 |
| TensorFlow Serving | 低 | 高 | TensorFlow 模型 |
| TorchServe | 低 | 高 | PyTorch 模型 |
| Ray Serve | 中 | 高 | 复杂流水线、多模型 |
MLOps 流水线搭建
建立自动化训练和部署:
- 配置特征存储(Feast、Tecton)以供训练数据使用
- 搭建实验追踪(MLflow、Weights & Biases)
- 创建带有超参数日志记录的训练流水线
- 在模型注册表中注册模型并附带版本元数据
- 配置由注册表事件触发的预发布部署
- 搭建用于模型对比的 A/B 测试基础设施
- 启用带告警的数据漂移监控
- 验证: 新模型会自动与基线进行评估
特征存储模式
from feast import Entity, Feature, FeatureView, FileSource
user = Entity(name="user_id", value_type=ValueType.INT64)
user_features = FeatureView(
name="user_features",
entities=["user_id"],
ttl=timedelta(days=1),
features=[
Feature(name="purchase_count_30d", dtype=ValueType.INT64),
Feature(name="avg_order_value", dtype=ValueType.FLOAT),
],
online=True,
source=FileSource(path="data/user_features.parquet"),
)
重训练触发条件
| 触发条件 | 检测方式 | 动作 |
|---|---|---|
| 定时 | Cron(每周/每月) | 全量重训练 |
| 性能下降 | 准确率 < 阈值 | 立即重训练 |
| 数据漂移 | PSI > 0.2 | 先评估,再重训练 |
| 新数据量 | 新增 X 条样本 | 增量更新 |
LLM 集成工作流
将 LLM API 集成到生产应用中:
- 创建供应商抽象层,以便灵活切换供应商
- 实现带指数退避的重试逻辑
- 配置回退到备用供应商
- 设置 token 计数和上下文截断
- 为重复查询添加响应缓存
- 实现按请求追踪成本
- 使用 Pydantic 添加结构化输出校验
- 验证: 响应可正确解析,成本在预算之内
供应商抽象
from abc import ABC, abstractmethod
from tenacity import retry, stop_after_attempt, wait_exponential
class LLMProvider(ABC):
@abstractmethod
def complete(self, prompt: str, **kwargs) -> str:
pass
@retry(stop=stop_after_attempt(3), wait=wait_exponential(min=1, max=10))
def call_llm_with_retry(provider: LLMProvider, prompt: str) -> str:
return provider.complete(prompt)
成本管理
不要硬编码价格,也不要相信任何文档中的价格表(包括本文档中的)。 供应商每年会多次调整定价,过时的数字会让商业测算得出错误结论。
按层级工作,并在请求时查询最新价格:
| 层级 | 典型用途 | 相对成本 |
|---|---|---|
| 小型 | 分类、抽取、路由、短输出 | 1x 基准 |
| 中型 | 摘要、结构化输出、中等程度推理 | 约为小型的 10-25 倍 |
| 大型 | 多步推理、代码生成、长上下文 | 约为小型的 50-100 倍 |
从供应商的定价页面读取实时费率并作为参数传入,方式与
engineering-team/skills/senior-prompt-engineer/scripts/prompt_optimizer.py
通过 --price-per-mtok 接收参数的方式相同。
各层级之间的比例远比绝对价格稳定,因此应基于该比例来做模型路由决策。
RAG 系统实现
构建检索增强生成(RAG)流水线:
- 选择向量数据库(Pinecone、Qdrant、Weaviate)
- 根据质量与成本的权衡选择嵌入模型
- 实现文档分块策略
- 创建带有元数据提取的摄取流水线
- 通过查询嵌入构建检索
- 添加重排序以提升相关性
- 格式化上下文并发送给大模型
- 验证: 响应引用了检索到的上下文,且没有幻觉
向量数据库选型
| 数据库 | 托管方式 | 规模 | 延迟 | 最适合 |
|---|---|---|---|---|
| Pinecone | 托管 | 高 | 低 | 生产环境,托管 |
| Qdrant | 两者皆可 | 高 | 极低 | 性能敏感场景 |
| Weaviate | 两者皆可 | 高 | 低 | 混合搜索 |
| Chroma | 可自托管 | 中 | 低 | 原型开发 |
| pgvector | 可自托管 | 中 | 中 | 已有 Postgres |
分块策略
| 策略 | 分块大小 | 重叠 | 最适合 |
|---|---|---|---|
| 固定 | 500-1000 个 token | 50-100 | 通用文本 |
| 句子 | 3-5 个句子 | 1 个句子 | 结构化文本 |
| 语义 | 可变 | 基于语义 | 研究论文 |
| 递归 | 层级式 | 父子关系 | 长文档 |
模型监控
监控生产环境模型的漂移与性能退化:
- 设置延迟跟踪(p50、p95、p99)
- 配置错误率告警
- 实现输入数据漂移检测
- 跟踪预测分布变化
- 在可用时记录真实标签(ground truth)
- 通过 A/B 指标比较模型版本
- 设置自动化重训练触发器
- 验证: 告警会在用户可感知的性能退化之前触发
漂移检测
from scipy.stats import ks_2samp
def detect_drift(reference, current, threshold=0.05):
statistic, p_value = ks_2samp(reference, current)
return {
"drift_detected": p_value < threshold,
"ks_statistic": statistic,
"p_value": p_value
}
告警阈值
| 指标 | 警告 | 严重 |
|---|---|---|
| p95 延迟 | > 100ms | > 200ms |
| 错误率 | > 0.1% | > 1% |
| PSI(漂移) | > 0.1 | > 0.2 |
| 准确率下降 | > 2% | > 5% |
参考文档
MLOps 生产模式
references/mlops_production_patterns.md 包含:
- 带有 Kubernetes 清单的模型部署流水线
- 基于 Feast 示例的特征存储架构
- 含漂移检测代码的模型监控
- 带流量切分的 A/B 测试基础设施
- 基于 MLflow 的自动化重训练流水线
大模型集成指南
references/llm_integration_guide.md 包含:
- 提供商抽象层模式
- 基于 tenacity 的重试与回退策略
- 提示词工程模板(少样本、CoT)
- 基于 tiktoken 的 token 优化
- 成本计算与跟踪
RAG 系统架构
references/rag_system_architecture.md 包含:
- 带代码的 RAG 流水线实现
- 向量数据库对比与集成
- 分块策略(固定、语义、递归)
- 嵌入模型选型指南
- 混合搜索与重排序模式
工具
模型部署流水线
python scripts/model_deployment_pipeline.py --model model.pkl --target staging
生成部署产物:Dockerfile、Kubernetes 清单、健康检查。
RAG 系统构建器
python scripts/rag_system_builder.py --config rag_config.yaml --analyze
搭建带有向量存储集成和检索逻辑的 RAG 流水线脚手架。
ML 监控套件
python scripts/ml_monitoring_suite.py --config monitoring.yaml --deploy
设置漂移检测、告警和性能仪表板。
技术栈
| 类别 | 工具 |
|---|---|
| ML 框架 | PyTorch、TensorFlow、Scikit-learn、XGBoost |
| LLM 框架 | LangChain、LlamaIndex、DSPy |
| MLOps | MLflow、Weights & Biases、Kubeflow |
| 数据 | Spark、Airflow、dbt、Kafka |
| 部署 | Docker、Kubernetes、Triton |
| 数据库 | PostgreSQL、BigQuery、Pinecone、Redis |