Skip to main content

什么是 MLOps?

· 3 min read

DevOps, DataOps 和 MLOps

术语

  • MLOps - DevOps 式自动化方法与 ML 最佳实践的结合,侧重于将 ML 模型部署到生产系统中并进行操作。
  • DevOps- 协作文化和开发人员自动化操作,以持续改进部署并减少业务部门之间的摩擦。包括 CI/CD 等自动化工具和原则。
  • CI/CD- 持续集成和持续交付 - DevOps 工作流程中的关键实践。CI 包括定期自动测试和验证增量构建的软件,而 CD 则侧重于自动向生产等环境发布更新。
  • 成熟度模型 - MLOps 中的概念,定义了 MLOps 复杂性和有效性的递增级别,通常为 4-5 级,从手动、孤立、不可靠到可扩展、自主和弹性系统。
  • 数据运维- 具体侧重于使用 DevOps 概念和自动化原则来管理数据工作负载,如聚合、转换、存储、分析等。
  • 特征存储- 用于管理、存储和提供 ML 特征的中央存储库,以便构建模型和进行再培训。优化数据管道和重用。

Kubernetes 理论与实践-1-基础-Pods, ReplicaSets, Services, Deployments, Ingress

· 19 min read

一点历史

  • 在物理服务器时代,基础设施管理和部署是合在一起的,因为所有的设置是不可变的,只要安装后基本不会改变;有了 VM 和 镜像后,基础设置管理和部署可以分开,这就能够让原本在福 wish 昂不可变的应用设置获得一定程度的可变性。
  • 后来,Chef, Puppet, Ansible 陆续发展以支持基础设施管理(基础设施状态管理),但是却没有花更多到部署那块。为了支持可变性,Packer 应运而生;发展至今,现在的答案是 Terraform, Packer, CloudFormation。
  • 部署流程中,在 Docker 和容器没有出现之前,我们有 Linux 和 cGroup,但是它很难用;再之前是一堆专注于基础设置管理的软件(Puppet, CFEngine, SALTSTACK, Chef, Ansible)。
  • Docker(容器运行时) 和容器的出现,保证了 容器景象是不可变的情况下,给部署流程带来拥抱可变性的可能;容器很好,不过直接运行容器并不会让你获得高容错和自愈功能,因此需要有一个东西充分利用和安排它们配置到合适的地点,从而体现出扩展性、高稳定性和高可用性。
  • 有了容器之后,部署流程可变后,Schdulers 调度器程序 (MESOS, MARATHON, Docker Swarm, Kubernetes) 应运而生;调度器管理一个集群内多个应用之间的部署交互;

Kubernetes 特性

Kubeflow 常用组件

· 4 min read

Kubeflow 是一个基于 Kubernetes 的端到端机器学习平台,集成了多个开源工具和组件,覆盖了从数据准备到模型部署的全流程。以下是  Kubeflow 常用的核心组件及其作用,按功能模块分类整理:

如何保证和确定模型训练效果?

· 3 min read

在  Kubernetes + Kubeflow  环境中确保模型训练可靠,需贯穿  数据 → 训练 → 评估 → 部署  全链路的验证:

流程阶段

  • 数据阶段: 自动化质量检查 + 特征一致保障
  • 训练阶段: 实时监控 + 分布式协调 + 检查点容灾
  • 评估阶段: 性能/可解释性/飘逸检测 (Drift detection) 三层次验证
  • 运维层面: k8s 自愿隔离 + Kubeflow 流水线自动化测试

自注意力机制 Self-attention详解 - 原理、应用与比较

· 5 min read

解决的问题

之前的输入全部是以一个向量作为输入,如何处理输入是一排不定数量的向量呢?

可能的输入

文字输入句子,语音信号,关系图(人际关系,分子结构)

可能的输出

  • Each vector has a label (label: value type for regression problem, class type for classification problem)
  • 应用: 分析文字的词性,分析声音信号里面的 phonetic,分析 social network 中每个节点的特性,比如电商环境里面分析某个人会不会购买某个商品。