❗公告: 安全性更改❗
TorchServe 现在默认启用令牌授权并禁用模型 API 控制。这些安全功能旨在解决未经授权的 API 调用问题,并防止潜在的恶意代码引入模型服务器。有关更多信息,请参考以下文档:令牌授权,模型 API 控制。
TorchServe
TorchServe 是一个灵活且易于使用的工具,用于在生产环境中服务和扩展 PyTorch 模型。
需要 python >= 3.8
curl http://127.0.0.1:8080/predictions/bert -T input.txt
🚀 TorchServe 快速入门
# 安装依赖
# cuda 是可选项
python ./ts_scripts/install_dependencies.py --cuda=cu121
# 最新发布
pip install torchserve torch-model-archiver torch-workflow-archiver
# 每夜构建
pip install torchserve-nightly torch-model-archiver-nightly torch-workflow-archiver-nightly
🚀 TorchServe 快速入门(conda)
# 安装依赖
# cuda 是可选项
python ./ts_scripts/install_dependencies.py --cuda=cu121
# 最新发布
conda install -c pytorch torchserve torch-model-archiver torch-workflow-archiver
# 每夜构建
conda install -c pytorch-nightly torchserve torch-model-archiver torch-workflow-archiver
🐳 Docker 快速入门
# 最新发布
docker pull pytorch/torchserve
# 每夜构建
docker pull pytorch/torchserve-nightly
有关详细信息,请参考 torchserve docker。
🤖 LLM 部署快速入门
#export token=<HUGGINGFACE_HUB_TOKEN>
docker build --pull . -f docker/Dockerfile.llm -t ts/llm
docker run --rm -ti --shm-size 10g --gpus all -e HUGGING_FACE_HUB_TOKEN=$token -p 8080:8080 -v data:/data ts/llm --model_id meta-llama/Meta-Llama-3-8B-Instruct --disable_token_auth
curl -X POST -d '{"prompt":"Hello, my name is", "max_new_tokens": 50}' --header "Content-Type: application/json" "http://localhost:8080/predictions/model"
有关详细信息和其他方法,请参考 LLM 部署。
⚡ 为什么选择 TorchServe
- 一次编写,随处运行,支持在本地、云端、CPU、GPU、AWS Inf1/Inf2/Trn1、Google Cloud TPU、Nvidia MPS 上推理
- 模型管理 API: 优化的工作者到模型分配的多模型管理
- 推理 API: 支持批处理推理的 REST 和 gRPC
- TorchServe 工作流: 部署具有多个相互依赖模型的复杂 DAGs
- 默认方式用于在以下平台上服务 PyTorch 模型:
- Sagemaker
- Vertex AI
- Kubernetes 支持 自动扩展,会话亲和性,使用 Grafana 进行监控,适用于本地、AWS EKS、Google GKE、Azure AKS
- Kserve: 支持 v1 和 v2 API,自动扩展和金丝雀部署 用于 A/B 测试
- Kubeflow
- MLflow
- 导出你的模型以进行优化推理。开箱即用的 Torchscript,PyTorch 编译器 预览,ORT 和 ONNX,IPEX,TensorRT,FasterTransformer,FlashAttention(更好的 Transformer)
- 性能指南: 内置支持优化、基准测试和分析 PyTorch 和 TorchServe 性能
- 丰富的处理器: 一个丰富的处理器架构,使得支持你的用例的推理变得微不足道,且 许多开箱即用
- 指标 API: 开箱即用的系统级指标支持,具有 Prometheus 导出,自定义指标
- 大型模型推理指南: 支持包括 GenAI、LLM 在内的大型模型推理
- 使用
torch.compile
实现 SOTA GenAI 性能 - 使用 FlashAttention v2、连续批处理和流响应的快速内核
- PyTorch 张量并行 预览,流水线并行
- Microsoft DeepSpeed,DeepSpeed-Mii
- Hugging Face Accelerate,Diffusers
- 在 AWS Sagemaker 和 Inferentia2 上运行大型模型
- 在 Mac 上本地运行 Meta Llama 聊天机器人
- 使用
- 使用 Grafana 和 Datadog 进行监控
🤔 TorchServe 如何工作
- PyTorch 模型服务器文档: 完整文档
- TorchServe 内部结构: TorchServe 的构建方式
- 贡献指南: 如何为 TorchServe 做贡献
🏆 突出示例
- 使用 TorchServe 服务 Meta Llama
- 在 Mac 上使用 Meta Llama 的聊天机器人 🦙💬
- 🤗 HuggingFace Transformers 与 更好的 Transformer 集成 / Flash Attention 和 Xformer 内存高效
- 稳定扩散
- 模型并行推理
- 结合文本、音频和视频的多模态模型 使用 MMF
- 用于复杂工作流 DAG 的双神经机器翻译
- TorchServe 集成
- TorchServe 内部结构
- TorchServe 用例
有关 更多示例
🛡️ TorchServe 安全政策
🤓 了解更多
🫂 贡献
我们欢迎所有的贡献!
要了解更多关于如何贡献的信息,请参阅贡献者指南。
📰 新闻
- 使用TorchServe在AWS Inferentia2上部署高性能Llama 2
- Naver案例研究:从高成本GPU迁移到Intel CPU和基于oneAPI的高性能软件
- 使用Amazon SageMaker多模型端点在GPU上运行多个生成式AI模型,节省高达75%的推理成本
- 使用Vertex AI和PyTorch仅需四步部署你的生成式AI模型
- 在Google Cloud TPU v5上进行PyTorch模型服务
- 使用Datadog进行监控
- TorchServe性能调优,动画绘图案例研究
- 沃尔玛搜索:在TorchServe上大规模服务模型
- 🎥 使用TorchServe在CPU上扩展推理
- 🎥 TorchServe C++ 后端
- 从基础原理理解Intel CPU PyTorch性能:TorchServe案例研究
- 从基础原理理解Intel CPU PyTorch性能(第二部分):TorchServe案例研究
- 案例研究:亚马逊广告使用PyTorch和AWS Inferentia扩展广告处理模型
- 使用Amazon SageMaker上的TorchServe进行动态批量推理优化推理任务
- 使用AI让孩子们的绘画作品栩栩如生
- 🎥 在PyTorch中进行模型服务
- Cresta机器学习架构的演变:迁移到AWS和PyTorch
- 🎥 像五岁小孩一样解释:TorchServe
- 🎥 如何使用TorchServe服务PyTorch模型
- 如何在Vertex AI上部署PyTorch模型
- 神经网络服务平台的量化比较
- 在Azure上高效无服务器部署PyTorch模型
- 在Azure机器学习在线端点中使用TorchServe部署PyTorch模型
- Dynaboard:从准确性扩展到自然语言处理中的整体模型评估
- 关于运营化MLFlow和PyTorch的MLOps故事
- 使用KFServing运营化、扩展并注入信任于AI模型
- Wadhwani AI如何使用PyTorch帮助棉花农民
- TorchServe与Streamlit集成
- Dynabench旨在通过分布式人工工作者使AI模型更加稳健
- TorchServe发布公告
💖 所有贡献者
使用contrib.rocks制作。
⚖️ 免责声明
该项目由亚马逊、Meta和CONTRIBUTORS文件中列出的若干独立贡献者共同运营和维护。有关Meta的相关问题,请发送电子邮件至opensource@fb.com。有关亚马逊的相关问题,请发送电子邮件至torchserve@amazon.com。对于其他问题,请在此仓库中提交问题。
TorchServe承认其源自Multi Model Server (MMS)项目