Git Product home page Git Product logo

thevina / grps Goto Github PK

View Code? Open in Web Editor NEW

This project forked from netease-media/grps

0.0 0.0 0.0 45.7 MB

【深度学习模型部署框架】支持tensorflow/torch/tensorrt/vllm以及更多nn框架、支持dynamic batching、streaming、可限制、可拓展、高性能。帮助用户快速地将模型部署到线上,并通过HTTP/RPC接口方式提供服务。

Shell 4.55% C++ 45.77% Python 39.31% C 0.14% Java 5.76% CMake 2.36% Dockerfile 0.13% Roff 1.99%

grps's Introduction

grps.png

GRPS(Generic Realtime Prediction Service)

grps_outline.png

1. 介绍

一款支持tf/torch/trt/vllm以及更多nn框架的、稳定的、性能较好的模型在线部署框架,核心目的是帮助用户快速搭建一个在线模型推理服务,将模型部署到线上生产环境,并通过HTTP/RPC接口方式提供服务。

grps具有如下特性:

  • 通用性:通用服务访问接口和自定义框架,自定义拓展不限制模型类型,不限制深度学习框架,不限制前后处理。
  • 易用性:内置tensorflowtorch以及tensorrt(支持多流模式)推理后端,可以实现一键快速部署服务,自定义拓展简单。
  • 双语言:支持纯c++实现的高性能服务以及python轻量级服务,一键快捷部署功能由纯c++实现。
  • 可拓展:提供c++py两种编程语言自定义工程,用户可以自定义自己的前后处理、模型推理以及http接口格式等。
  • 可限制:通过配置方式可以实现tftorch显存限制功能,适用于共享gpu场景;通过配置方式可以实现服务并发限制。
  • 可监控:提供用户日志系统,内置指标监控系统,内置简洁的web图形展示页面,可以便捷的观测qpslatencycpugpu使用情况等。
  • 灵活访问方式:自动适配httpgRPCbRPC访问方式,提供pyc++java等客户端样例。
  • Batching:支持dynamic batching,充分利用gpu资源,提高推理性能与吞吐。
  • Streaming:支持模型持续推理并返回结果,适用于自然语言生成、视频处理等场景。
  • 多模型支持:支持部署多个模型,多个模型可以组合成一个服务或者单独提供服务。
  • 多卡支持:支持配置方式选择gpu部署模型,支持监控多gpu使用情况。
  • 更好的性能:通过rpc支持、纯c++服务支持、tensorrt多流推理支持、dynamic batching支持等等,使得服务能够达到更高的性能。
  • LLM支持:目前通过自定义后端插件方式支持vllm,见vllm样例,通过LLMEngine Api实现vllm推理后端,同vllm-api-server相比服务性能有所提升。

2. 目录结构

|--apis: 接口定义
|--deps: 环境依赖
|--docker: docker相关
|--docs: 文档
|--grpst: grps工具链
|--server: grps server实现
|--template: grps自定义工程模板
|--grps_client_env.sh: grps client环境配置脚本
|--grps_client_install.sh: grps client安装脚本
|--grps_env.sh: grps环境配置脚本
|--grps_install.sh: grps安装脚本

3. 文档教程

4. TODO

框架在持续开发中,计划在未来版本支持:

  • 支持更多的推理后端,例如onnx-runtimetensorrt-llm等。
  • 支持更多batching算法,例如continuous batching
  • 支持分布式组装服务,由多个推理后端组装成完整服务。
  • 模型推理性能分析工具。

grps's People

Contributors

zhaocc1106 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.