NLP实战 项目流程

项目

项目忠告

数据标注

  1. 前期一定要制定充分的标注规则
  2. 数据的采集一定要具有代表性
  3. 非常不建议采用自动标注的方式
  4. 先训练一个初步模型,然后只让相关人员进行校对,可以保证标注效率并减少标注成本。

算法开发

  1. 千万不要采用规则的方式进行开发
  2. 初期就要引导客户使用和购买能够支持深度学习框架的硬件
  3. 算法开发过程中,一定要有量化的指标并记录下来
  4. 开发的过程中,多分解问题
  5. 前端对接的时候一定要引导何为”智能”

效果优化

  1. 初期要充分考虑效果优化所需要的时间和成本
  2. 客户并不知道通过一个什么标准来评估一个系统
  3. 一定要从数据的角度出发进行优化
  4. 学会止损
  5. 除了准确性的优化,还有注重代码运算效率带优化
  6. 算法开发和效果优化常常是需要反复进行的工作

算法部署

  1. 如果客户的系统算比较奇怪,或者难以满足一些要求,要提前让客户知晓一些风险
  2. 即使再小的项目,强烈建议采用微服务架构进行部署
  3. 不要把算法部署在本地,尽量采用云端部署

硬件问题

CPU

在这里插入图片描述
注意CacheMiss!!

GPU

在这里插入图片描述

注意:1. GPU与CPU的数据交互 2. GPU 显存污染(例如模型加载完毕,计算出错,有些时候模型精度整个降低可能就发生了显存污染,显存污染难以监控)

GPU训练注意事项

  1. GPU训练效率可以被DeepSpeed显著提升
  2. 很少出现GPU多进程训练(多个用户共用一块GPU易造成显存污染)
  3. GPU训练有时可能会被一些其他因素影响,如CPU,GPU之间的沟通速度(多GPU或者多节点)
  4. 传统来说,NLP的训练一般不会耗尽NLP的资源,但是容易出现算力不足或者显存资源不足的情况
  5. GPU可处理动态网络

GPU部署的注意事项

  1. GPU部署的最大问题:显存污染(尽量在一块GPU上对应一个server节点)
  2. GPU部署经常被内存与显存之间的带宽影响
  3. 部署时需要对参数做详细调整,最重要发的参数是 Batch Size

AI项目部署基本原则

  1. 采用微服务架构(方便、稳定)

  2. 采用合适硬件,注意CPU选型和GPU选型

  3. 以Profiler为导向进行优化

  4. 推断服务应该用同一个框架和一个线程

  5. 部署应该是在项目初期就考虑的,要制定完善的项目计划,并注意和客户的沟通

深度学习推断框架任务

  1. 读取模型,提供REST接口
  2. 调用不同的硬件资源
  3. 对推断过程做一定处理,其中最重要的是批处理

微服务

Docker Kubernetes Istio

优点:

  1. 入侵性小
  2. 稳定性高
  3. 功能强大

微服务部署AI的一些基本原则

  1. 对于推断,一个节点只部署一个Docker!!

  2. 如果缺少时间,至少部署Kubernetes 和 Docker, 因为Docker容易崩

  3. 其他考虑:

    • 错误恢复 当服务崩溃后能否恢复到原状态
    • 灰度上线
    • Kafka
    • Actor
    • 其他功能

Docker, 因为Docker容易崩

  1. 其他考虑:
    • 错误恢复 当服务崩溃后能否恢复到原状态
    • 灰度上线
    • Kafka
    • Actor
    • 其他功能
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值