5 Star 23 Fork 15

Gitee 极速下载/twitter-algorithm

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
此仓库是为了提升国内下载速度的镜像仓库,每日同步一次。 原始仓库: https://github.com/twitter/the-algorithm
克隆/下载
README.md 2.63 KB
一键复制 编辑 原始数据 按行查看 历史
twitter-team 提交于 2023-04-14 10:15 . Latest navi open source refresh

Navi: High-Performance Machine Learning Serving Server in Rust

Navi is a high-performance, versatile machine learning serving server implemented in Rust and tailored for production usage. It's designed to efficiently serve within the Twitter tech stack, offering top-notch performance while focusing on core features.

Key Features

  • Minimalist Design Optimized for Production Use Cases: Navi delivers ultra-high performance, stability, and availability, engineered to handle real-world application demands with a streamlined codebase.
  • gRPC API Compatibility with TensorFlow Serving: Seamless integration with existing TensorFlow Serving clients via its gRPC API, enabling easy integration, smooth deployment, and scaling in production environments.
  • Plugin Architecture for Different Runtimes: Navi's pluggable architecture supports various machine learning runtimes, providing adaptability and extensibility for diverse use cases. Out-of-the-box support is available for TensorFlow and Onnx Runtime, with PyTorch in an experimental state.

Current State

While Navi's features may not be as comprehensive as its open-source counterparts, its performance-first mindset makes it highly efficient.

  • Navi for TensorFlow is currently the most feature-complete, supporting multiple input tensors of different types (float, int, string, etc.).
  • Navi for Onnx primarily supports one input tensor of type string, used in Twitter's home recommendation with a proprietary BatchPredictRequest format.
  • Navi for Pytorch is compilable and runnable but not yet production-ready in terms of performance and stability.

Directory Structure

  • navi: The main code repository for Navi
  • dr_transform: Twitter-specific converter that converts BatchPredictionRequest Thrift to ndarray
  • segdense: Twitter-specific config to specify how to retrieve feature values from BatchPredictionRequest
  • thrift_bpr_adapter: generated thrift code for BatchPredictionRequest

Content

We have included all *.rs source code files that make up the main Navi binaries for you to examine. However, we have not included the test and benchmark code, or various configuration files, due to data security concerns.

Run

In navi/navi, you can run the following commands:

Do note that you need to create a models directory and create some versions, preferably using epoch time, e.g., 1679693908377. so the models structure looks like: models/ -web_click - 1809000 - 1809010

Build

You can adapt the above scripts to build using Cargo.

马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C/C++
1
https://gitee.com/mirrors/twitter-algorithm.git
git@gitee.com:mirrors/twitter-algorithm.git
mirrors
twitter-algorithm
twitter-algorithm
main

搜索帮助

A270a887 8829481 3d7a4017 8829481