2024-01-07-AI 大模型全栈工程师 - AI 产品部署和交付

摘要

2024-01-07 周日 杭州 阴

本节内容:

  1. 如何选择 GPU 和云服务器,追求最高性价比
  2. 如何部署自己的 fine-tune 的模型,向业务提供高可用服务
  3. 如何控制内容安全,做好算法备案,确保合规

课程内容

1. 硬件选型

a. Nvidia 几乎是模型训练和推理的 GPU 硬件唯一选择

2. 什么是 GPU?

GPU: Graphical Processing Units (GPUs)

  • 图形处理单元(GPU)是一种功能强大的电子芯片,用于沉浸式视频游戏,电影和其他视觉媒体中呈现丰富的 2D/3D 图形和动画;
  • GPU 引起超过 CPU 的并行矩阵运算性能,所以也被广泛应用于人工智能相关的各种系统,包括机器视觉,NLP,语音识别,自动驾驶等
3. CUDA 核心和 Tensor 核心
  • CUDA 核心:

a. CUDA 是NVIDIA 开发的并行计算平台和编程模型,用于 GPU 上的通用计算,就像万能工人,可以做很多不同的工作

b. 适合游戏和图形渲染,天气预报,电影特效等场景

  • Tensor 核心:

a. 中文名: 张量核心
b. 专门设计用于深度学习中的矩阵运算,加速深度学习算法中的关键计算过程
c. 适合语音助手,人脸识别等场景

4. AI 领域常用 GPU
  • 价格排序

2024-01-07-AI 大模型全栈工程师 - AI 产品部署和交付_第1张图片

说明: 美国商务部限制 GPU 对华出口的算力不超过 4800TOPS 和带宽不超过 600GB/s ,导致最强的 H100 和 A100 对华禁售,黄仁勋随后推出针对中国市场的 A800 和 H800 (阉割版)。

  • H100 比 A100 快多少?

2024-01-07-AI 大模型全栈工程师 - AI 产品部署和交付_第2张图片

5. 物理机与云服务器如何选择?

重点前提:

  • 如果经常做微调实验,有自己的物理服务器会更加方便
  • 提供推理服务,首选云服务器
  • 如果有自建机房或者 IDC ,请随意
6. 云服务厂商对比

*a. 国内主流
a.1 阿里云
a.2 腾讯云
a.3 火山引擎

*b. 国外主流
b.1 AWS
b.2 Vultr
b.3 TPU: 谷歌专门用于加速机器学习的硬件,特别适合大规模机器学习任务,架构和性能方面表现出色;

*c. TPU 优势
c.1 高性能和能效
c.2 大规模训练
c.3 实时推理
c.4 云端使用

适用于图像处理,自然语言处理,推荐系统等多个领域,在国外,科研机构,大公司和初创企业普遍使用 TPU。

7. A100 与 T4 对比
  • A100: 在云服务中,A100 是顶级的企业 GPU ,适用于高性能计算需求
  • T4: 相比之下,T4 更为经济,适合日常模型微调和推理任务

2024-01-07-AI 大模型全栈工程师 - AI 产品部署和交付_第3张图片

8. 算力平台

主要用于学习和训练,不适合提供服务

  • Colab: 谷歌产品,升级服务仅需 9 美金(70人民币);
  • Kaggle: 每周30小时 T4 ,A100可用;
  • AutoDL: 价格亲民,支持 Jupyter Notebook 及 SSH ,国内首选;

根据场景选择 GPU(基于 4090 的训练场景)

2024-01-07-AI 大模型全栈工程师 - AI 产品部署和交付_第4张图片

下面是 llm-utils 上的一些选型建议:

2024-01-07-AI 大模型全栈工程师 - AI 产品部署和交付_第5张图片

重点小结:
a. 对于本地个人研发项目,GeForce RTX 4090 等足以满足中等规模需求;
b. 对于公司的大规模数据和复杂模型,推荐使用 NVIDIA A100 的高性能 GPU;
c. 数据规模较小时,选择预算内的 A10 和 T4;
d. 如果追求性价比,可以选择把 4090 显卡搭建成集群服务器使用,也可以选择第三方服务;

9. 阿里云私有部署开源大模型

2024-01-07-AI 大模型全栈工程师 - AI 产品部署和交付_第6张图片

*a. 向量数据库的应用场景

a.1 知识库/问答系统:
a.2 图像识别和搜索
a.3 内容推荐系统

*b. 选择向量数据库

2024-01-07-AI 大模型全栈工程师 - AI 产品部署和交付_第7张图片

*c. 重点小结

c.1 通用数据库最初不是为矢量搜索设计的,因此不如专门矢量数据库性能高
c.2 如果业务知识少量向量(例如TPS<10万),不用考虑太多抉择问题
c.3 当成本和延迟成为问题时,考虑使用专用的矢量数据库

10. TorchServe
  • a. 什么是 TorchServer

TorchServer 是一个专为 PyTorch 设计的模型服务工具,它可以帮助开发者轻松的部署,管理,和提供 PyTorch模型服务,它是由 PyTroch 团队和亚马逊 AWS 团队共同开发的,旨在为 PyTorch 团队提供一个简单,灵活且高效的模型部署解决方案;

  • a. TorchServer 优势

    a.1 模型管理API:通过优化工作角色与模型的分配,实现多模型管理
    a.2 推理 API :支持 REST 和 gRPC 的批量推理
    a.3 性能指南:内置支持优化,基准测试和分析 PyTorch 和 TorchServer 的性能;
    a.4 富有表现力的处理程序架构: 通过多种开箱即用的支持,轻松支持各种用例的推理

2024-01-07-AI 大模型全栈工程师 - AI 产品部署和交付_第8张图片

11. 实验思路

*a. 准备阶段

a.1 获取模型文件: chatglm2-6b
a.2 选择合适的服务器

*b. 部署阶段

b.1 准备好基础镜像: nvida-smi 验证 nvidia 是否安装
b.2 加载模型: 下载好模型

*c. 开发阶段

c.1 使用 FastAPI 创建一个简单的 WebAPI 接口
2024-01-07-AI 大模型全栈工程师 - AI 产品部署和交付_第9张图片

*d. 测试阶段: 通过 Postman/Curl 发送请求,进行测试调试

本地实践,自行完成

总结

你可能感兴趣的:(人工智能)