NVIDIA Triton Inference Server是一个针对CPU和GPU进行优化的云端和推理的解决方案。
支持的模型类型包括TensorRT、TensorFlow、PyTorch(meta-llama/Llama-2-7b)、Python(chatglm)、ONNX Runtime和OpenVino。
NVIDIA Triton Server是一个高性能的推断服务器,具有以下特点:
1. 高性能:Triton Server为使用GPU进行推断的工作负载提供了高性能和低延迟。它能够在高吞吐量和低延迟的情况下同时服务多个模型。
2. 内存管理:大模型通常需要大量的显存来进行推断。Triton Server具有灵活的内存管理机制,可以有效地管理和分配显存,确保大模型的推断可以高效地进行。
3. 可扩展性:Triton Server通过并行处理和异步推断支持高度并发的推断请求。它可以根据负载的需要自动扩展和收缩。
4. 多模型支持:Triton Server能够同时部署和管理多个模型。这允许您共享服务器资源并以一致的方式部署和管理不同的模型。
5. 灵活性:Triton Server支持多种模型格式和推断框架,包括TensorFlow、PyTorch、ONNX等。您可以使用您喜欢的模型和工具进行模型开发和训练,并将其轻松部署到Triton Server上。
6. 高级特性:Triton Server提供了许多高级特性,例如模型版本管理、请求并发控制、动态批处理大小优化、请求时间跟踪等。这些特性增强了模型的部署和管理能力。
Serve a Model in 3 (N) Easy Steps 官方文档
Serve a Model in n Easy Steps
-p端口映射要注意, 后期要改很麻烦.
tritonserver版本和python_backend后端版本一定要对应.
比如都用22.12
下载python后端代码:
容器内操作:如果中途退出容器,使用命令 docker exec -it 容器名 /bin/bash 进入容器
如下载不下来可以拷贝到容器内:docker cp python_backend busy_galileo:/opt
cd python_backend
1)创建模型目录: mkdir -p models/chatglm2-6b/1/
2)宿主机拷贝chatglm2到容器内模型目录: docker cp chatglm2-6b 容器名:/容器内路径/models/chatglm2-6b
模型的输入,输出和参数可以在这里使用python脚本进行加工处理
cuda版本和显卡驱动必须对应,cuda toolkit与驱动版本
torch科学计算框架,旨在为机器学习和其他科学计算任务提供高效的矩阵运算和自动微分功能。
提供了丰富的预训练模型和算法库,使用户能够快速构建和训练各种机器学习任务。
CUDA Deep Neural Network library是由NVIDIA提供的GPU加速的深度神经网络(DNN)库。它旨在优化和加速深度学习任务中的神经网络模型训练和推理。
cuDNN提供了一组用于卷积神经网络(Convolutional Neural Networks, CNN)和循环神经网络(Recurrent Neural Networks, RNN)等常见深度学习任务的核心算法和函数。这些算法和函数针对GPU架构进行了高度优化,以提供最佳的性能和效率。
Compute Unified Device Architecture库是由NVIDIA开发的用于GPU编程的并行计算平台和API。
通过CUDA库,可以在GPU上同步或异步地进行模型推理,同时支持批处理和多张卡并行计算,以提升模型推理的速度和效率
nohup apt-get update
nohup apt-get install -y autoconf autogen clangd gdb git-lfs libb64-dev libz-dev locales-all mosh openssh-server python3-dev rapidjson-dev sudo tmux unzip zstd zip zsh
响应:
CI(Continuous Integration,持续集成)/CD(Continuous Delivery,持续交付/Continuous Deployment,持续部署)
未来可实现:
1.使用k8s自动操作容器部署--类似行云
2.保存一个大模型运行环境的完整docker镜像, 只需下载模型文件到对应目录即可启动提供服务..
3.单机部署多种开源模型, 提供不同模型的应答接口 , 可对比应答效果
4.创建dockerFile自动构建基础容器
k8s文档
在所有节点上安装Docker和kubeadm,kubenet
部署Kubernetes Master
部署容器网络插件kubectl
部署 Kubernetes Node,将节点加入Kubernetes集群中