mcpField
S
senior-ml-engineer

senior-ml-engineer

github.com/alirezarezvani开发28.9k923 次安装2 天前更新
代码仓库

关于 senior-ml-engineer

senior-ml-engineer 面向部署和运维模型及 LLM 功能的团队,提供生产级 ML 工程指导。内容涵盖部署、MLOps、RAG、LLM 集成和监控,并附带用于生成流水线与部署产物的脚本。

主要功能

  1. 01模型部署流程与产物生成
  2. 02自动化 MLOps 流水线指导
  3. 03LLM 集成模式
  4. 04RAG 流水线脚手架
  5. 05漂移与性能监控

适用场景

  1. 01准备将模型部署到生产环境
  2. 02设置模型跟踪与再训练
  3. 03构建检索增强生成流水线
  4. 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.md
mlops_production_patterns.md
rag_system_architecture.md
scripts/
ml_monitoring_suite.py
model_deployment_pipeline.py
rag_system_builder.py

详细介绍

高级 ML 工程师

面向模型部署、MLOps 基础设施和 LLM 集成的生产级 ML 工程模式。


目录


模型部署工作流

将训练好的模型部署到生产环境并进行监控:

  1. 将模型导出为标准化格式(ONNX、TorchScript、SavedModel)
  2. 使用 Docker 容器打包模型及其依赖
  3. 部署到预发布环境
  4. 针对预发布环境运行集成测试
  5. 向生产环境部署金丝雀版本(5% 流量)
  6. 监控延迟和错误率 1 小时
  7. 若指标达标,则推广为全量生产版本
  8. 验证: 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 流水线搭建

建立自动化训练和部署:

  1. 配置特征存储(Feast、Tecton)以供训练数据使用
  2. 搭建实验追踪(MLflow、Weights & Biases)
  3. 创建带有超参数日志记录的训练流水线
  4. 在模型注册表中注册模型并附带版本元数据
  5. 配置由注册表事件触发的预发布部署
  6. 搭建用于模型对比的 A/B 测试基础设施
  7. 启用带告警的数据漂移监控
  8. 验证: 新模型会自动与基线进行评估
特征存储模式
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 集成到生产应用中:

  1. 创建供应商抽象层,以便灵活切换供应商
  2. 实现带指数退避的重试逻辑
  3. 配置回退到备用供应商
  4. 设置 token 计数和上下文截断
  5. 为重复查询添加响应缓存
  6. 实现按请求追踪成本
  7. 使用 Pydantic 添加结构化输出校验
  8. 验证: 响应可正确解析,成本在预算之内
供应商抽象
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)流水线:

  1. 选择向量数据库(Pinecone、Qdrant、Weaviate)
  2. 根据质量与成本的权衡选择嵌入模型
  3. 实现文档分块策略
  4. 创建带有元数据提取的摄取流水线
  5. 通过查询嵌入构建检索
  6. 添加重排序以提升相关性
  7. 格式化上下文并发送给大模型
  8. 验证: 响应引用了检索到的上下文,且没有幻觉
向量数据库选型
数据库托管方式规模延迟最适合
Pinecone托管高低生产环境,托管
Qdrant两者皆可高极低性能敏感场景
Weaviate两者皆可高低混合搜索
Chroma可自托管中低原型开发
pgvector可自托管中中已有 Postgres
分块策略
策略分块大小重叠最适合
固定500-1000 个 token50-100通用文本
句子3-5 个句子1 个句子结构化文本
语义可变基于语义研究论文
递归层级式父子关系长文档

模型监控

监控生产环境模型的漂移与性能退化:

  1. 设置延迟跟踪(p50、p95、p99)
  2. 配置错误率告警
  3. 实现输入数据漂移检测
  4. 跟踪预测分布变化
  5. 在可用时记录真实标签(ground truth)
  6. 通过 A/B 指标比较模型版本
  7. 设置自动化重训练触发器
  8. 验证: 告警会在用户可感知的性能退化之前触发
漂移检测
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
MLOpsMLflow、Weights & Biases、Kubeflow
数据Spark、Airflow、dbt、Kafka
部署Docker、Kubernetes、Triton
数据库PostgreSQL、BigQuery、Pinecone、Redis

评论

支持 Markdown