senior-ml-engineer senior-ml-engineer

高级机器学习工程师技能,专注于生产中模型的部署、MLOps流程构建以及大型语言模型的集成。涵盖模型部署、特征存储、漂移监控、RAG系统和成本优化。

机器学习 0 次安装 0 次浏览 更新于 3/5/2026

高级机器学习工程师

生产机器学习工程模式,用于模型部署、MLOps基础设施和大型语言模型(LLM)集成。


目录


模型部署工作流

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

  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推理服务器 非常低 非常高 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. 设置令牌计数和上下文截断
  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)

成本管理

提供商 输入成本 输出成本
GPT-4 $0.03/1K $0.06/1K
GPT-3.5 $0.0005/1K $0.0015/1K
Claude 3 Opus $0.015/1K $0.075/1K
Claude 3 Haiku $0.00025/1K $0.00125/1K

RAG系统实现

构建检索增强生成管道:

  1. 选择向量数据库(Pinecone、Qdrant、Weaviate)
  2. 根据质量/成本权衡选择嵌入模型
  3. 实施文档分块策略
  4. 创建带有元数据提取的摄取管道
  5. 构建带有查询嵌入的检索
  6. 添加重新排名以提高相关性
  7. 格式化上下文并发送到LLM
  8. 验证: 响应引用检索到的上下文,无幻觉

向量数据库选择

数据库 托管 规模 延迟 最适合
Pinecone 托管 生产,托管
Qdrant 两者 非常低 性能关键
Weaviate 两者 混合搜索
Chroma 自托管 中等 原型制作
pgvector 自托管 中等 中等 现有Postgres

分块策略

策略 块大小 重叠 最适合
固定 500-1000个令牌 50-100 一般文本
句子 3-5句话 1句话 结构化文本
语义 可变 基于含义 研究论文
递归 层次结构 父子 长文档

模型监控

监控生产模型的漂移和退化:

  1. 设置延迟跟踪(p50、p95、p99)
  2. 配置错误率警报
  3. 实施输入数据漂移检测
  4. 跟踪预测分布变化
  5. 在可用时记录真实情况
  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的自动重新训练管道

LLM集成指南

references/llm_integration_guide.md包含:

  • 提供商抽象层模式
  • 带有tenacity的重试和回退策略
  • 少量样本、CoT的提示工程模板
  • 使用tiktoken进行令牌优化
  • 成本计算和跟踪

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