Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Text-Generation-Inference introducing Multi-Backend #2580

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

mfuntowicz
Copy link
Member

No description provided.


## Introduction

Since its inception in 2022, text-generation-inference (TGI) has provided Hugging Face and the AI Community with a performance-focused tool to easily deploy large-language models (LLMs). TGI initially offered an almost no-code solution to load models from the Hugging Face Hub and deploy them in production on NVIDIA GPUs. Over time, support expanded to include AMD Instinct, Intel GPUs, AWS Trainium/Inferentia, Google TPU, and Intel Gaudi.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Since its inception in 2022, text-generation-inference (TGI) has provided Hugging Face and the AI Community with a performance-focused tool to easily deploy large-language models (LLMs). TGI initially offered an almost no-code solution to load models from the Hugging Face Hub and deploy them in production on NVIDIA GPUs. Over time, support expanded to include AMD Instinct, Intel GPUs, AWS Trainium/Inferentia, Google TPU, and Intel Gaudi.
Since its initial release in 2022, Text-Generation-Inference (TGI) has provided Hugging Face and the AI Community with a performance-focused solution to easily deploy large-language models (LLMs). TGI initially offered an almost no-code solution to load models from the Hugging Face Hub and deploy them in production on NVIDIA GPUs. Over time, support expanded to include AMD Instinct GPUs, Intel GPUs, AWS Trainium/Inferentia, Google TPU, and Intel Gaudi.

## Introduction

Since its inception in 2022, text-generation-inference (TGI) has provided Hugging Face and the AI Community with a performance-focused tool to easily deploy large-language models (LLMs). TGI initially offered an almost no-code solution to load models from the Hugging Face Hub and deploy them in production on NVIDIA GPUs. Over time, support expanded to include AMD Instinct, Intel GPUs, AWS Trainium/Inferentia, Google TPU, and Intel Gaudi.
Over the years, multiple inferencing solutions have emerged, including vLLM, SGLang, llama.cpp, TensorRT-LLM, etc., splitting up the overall ecosystem. Different models, hardware, and scenarios often require distinct backends to achieve optimal performance. However, configuring these backends correctly, managing licenses, and integrating them into existing infrastructure can be challenging for users.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Over the years, multiple inferencing solutions have emerged, including vLLM, SGLang, llama.cpp, TensorRT-LLM, etc., splitting up the overall ecosystem. Different models, hardware, and scenarios often require distinct backends to achieve optimal performance. However, configuring these backends correctly, managing licenses, and integrating them into existing infrastructure can be challenging for users.
Over the years, multiple inferencing solutions have emerged, including vLLM, SGLang, llama.cpp, TensorRT-LLM, etc., splitting up the overall ecosystem. Different models, hardware, and use cases may work best or require a specific backend to achieve optimal performance. However, configuring each backend correctly, managing licenses, and integrating them into existing infrastructure can be challenging for users.

Since its inception in 2022, text-generation-inference (TGI) has provided Hugging Face and the AI Community with a performance-focused tool to easily deploy large-language models (LLMs). TGI initially offered an almost no-code solution to load models from the Hugging Face Hub and deploy them in production on NVIDIA GPUs. Over time, support expanded to include AMD Instinct, Intel GPUs, AWS Trainium/Inferentia, Google TPU, and Intel Gaudi.
Over the years, multiple inferencing solutions have emerged, including vLLM, SGLang, llama.cpp, TensorRT-LLM, etc., splitting up the overall ecosystem. Different models, hardware, and scenarios often require distinct backends to achieve optimal performance. However, configuring these backends correctly, managing licenses, and integrating them into existing infrastructure can be challenging for users.

To address this, we are excited to introduce the concept of TGI backends. This new feature gives the flexibility to integrate with any of the solutions above through a single unified frontend layer: TGI. This change makes it easier for the community to get the best performance for their production workloads, switching backends according to their modeling, hardware, and performance requirements.
Copy link
Member

@jeffboudier jeffboudier Jan 9, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
To address this, we are excited to introduce the concept of TGI backends. This new feature gives the flexibility to integrate with any of the solutions above through a single unified frontend layer: TGI. This change makes it easier for the community to get the best performance for their production workloads, switching backends according to their modeling, hardware, and performance requirements.
To address this, we are excited to introduce the concept of TGI Backends. This new architecture gives the flexibility to integrate with any of the solutions above through TGI as a single unified frontend layer. This change makes it easier for the community to get the best performance for their production workloads, switching backends according to their modeling, hardware, and performance requirements.

Since its inception in 2022, text-generation-inference (TGI) has provided Hugging Face and the AI Community with a performance-focused tool to easily deploy large-language models (LLMs). TGI initially offered an almost no-code solution to load models from the Hugging Face Hub and deploy them in production on NVIDIA GPUs. Over time, support expanded to include AMD Instinct, Intel GPUs, AWS Trainium/Inferentia, Google TPU, and Intel Gaudi.
Over the years, multiple inferencing solutions have emerged, including vLLM, SGLang, llama.cpp, TensorRT-LLM, etc., splitting up the overall ecosystem. Different models, hardware, and scenarios often require distinct backends to achieve optimal performance. However, configuring these backends correctly, managing licenses, and integrating them into existing infrastructure can be challenging for users.

To address this, we are excited to introduce the concept of TGI backends. This new feature gives the flexibility to integrate with any of the solutions above through a single unified frontend layer: TGI. This change makes it easier for the community to get the best performance for their production workloads, switching backends according to their modeling, hardware, and performance requirements.
Copy link
Member

@jeffboudier jeffboudier Jan 9, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
To address this, we are excited to introduce the concept of TGI backends. This new feature gives the flexibility to integrate with any of the solutions above through a single unified frontend layer: TGI. This change makes it easier for the community to get the best performance for their production workloads, switching backends according to their modeling, hardware, and performance requirements.
To address this, we are excited to introduce the concept of TGI Backends. This new feature gives the flexibility to integrate with any of the solutions above through a single unified frontend layer: TGI. This change makes it easier for the community to get the best performance for their production workloads, switching backends according to their modeling, hardware, and performance requirements.
The Hugging Face team is excited to contribute to and collaborate with the teams that build vLLM, llama.cpp, TensorRT-LLM, and the teams at AWS, Google, NVIDIA, AMD and Intel to offer a robust and consistent user experience for TGI users whichever backend and hardware they want to use.


## Looking into 2025

Things are constantly in motion here at Hugging Face, and TGI is no exception. As we look ahead to 2025 we are excited to share some of the upcoming developments for TGI:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Things are constantly in motion here at Hugging Face, and TGI is no exception. As we look ahead to 2025 we are excited to share some of the upcoming developments for TGI:
The new multi-backend capabilities of TGI open up many impactful roadmap opportunities. As we look ahead to 2025 we are excited to share some of the TGI developments we are most excited about:


Things are constantly in motion here at Hugging Face, and TGI is no exception. As we look ahead to 2025 we are excited to share some of the upcoming developments for TGI:

* **NVIDIA TensorRT-LLM backend**: We are collaborating with the NVIDIA TensorRT-LLM team to bring all the astonishing NVIDIA GPUs \+ TensorRT performances to the community. This work will be covered more extensively in an upcoming blog post. It closely relates to our mission to empower AI builders with the open-source availability of both `optimum-nvidia` quantize/build/evaluate TensorRT compatible artifacts alongside TGI+TRTLLM to easily deploy, execute, and scale deployments.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* **NVIDIA TensorRT-LLM backend**: We are collaborating with the NVIDIA TensorRT-LLM team to bring all the astonishing NVIDIA GPUs \+ TensorRT performances to the community. This work will be covered more extensively in an upcoming blog post. It closely relates to our mission to empower AI builders with the open-source availability of both `optimum-nvidia` quantize/build/evaluate TensorRT compatible artifacts alongside TGI+TRTLLM to easily deploy, execute, and scale deployments.
* **NVIDIA TensorRT-LLM backend**: We are collaborating with the NVIDIA TensorRT-LLM team to bring all the optimized NVIDIA GPUs \+ TensorRT performances to the community. This work will be covered more extensively in an upcoming blog post. It closely relates to our mission to empower AI builders with the open-source availability of both `optimum-nvidia` quantize/build/evaluate TensorRT compatible artifacts alongside TGI+TRTLLM to easily deploy, execute, and scale deployments on NVIDIA GPUs.


* **NVIDIA TensorRT-LLM backend**: We are collaborating with the NVIDIA TensorRT-LLM team to bring all the astonishing NVIDIA GPUs \+ TensorRT performances to the community. This work will be covered more extensively in an upcoming blog post. It closely relates to our mission to empower AI builders with the open-source availability of both `optimum-nvidia` quantize/build/evaluate TensorRT compatible artifacts alongside TGI+TRTLLM to easily deploy, execute, and scale deployments.
* **Llama.cpp backend**: we are collaborating with the llama.cpp team to extend the support for server production use cases. The llama.cpp backend for TGI will provide a strong CPU-based option for anyone willing to deploy on Intel, AMD, or ARM CPU servers.
* **vLLM backend**: we have been contributing to the vLLM project and are looking to integrate vLLM as a TGI backend in Q1 '25.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* **vLLM backend**: we have been contributing to the vLLM project and are looking to integrate vLLM as a TGI backend in Q1 '25.
* **vLLM backend**: we have been contributing to the vLLM project and are looking to integrate vLLM as a TGI backend in Q1 '25.
* **Neuron backend**: we are working with the Neuron teams at AWS to enable Inferentia 2 and Trainium 2 support natively in TGI

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dacorvo does that sound good for you?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can also mention a Google TPU backend, something like:

* **TPU Backend**: we are working to integrate with the Jetstream teams to provide the best performance and enable it as a TGI backend.

* **Llama.cpp backend**: we are collaborating with the llama.cpp team to extend the support for server production use cases. The llama.cpp backend for TGI will provide a strong CPU-based option for anyone willing to deploy on Intel, AMD, or ARM CPU servers.
* **vLLM backend**: we have been contributing to the vLLM project and are looking to integrate vLLM as a TGI backend in Q1 '25.

We are convinced that backends will help simplify the deployments of LLMs, bringing versatility and performance to all TGI users.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
We are convinced that backends will help simplify the deployments of LLMs, bringing versatility and performance to all TGI users.
We are convinced that TGI backends will help simplify the deployments of LLMs, bringing versatility and performance to all TGI users.

* **vLLM backend**: we have been contributing to the vLLM project and are looking to integrate vLLM as a TGI backend in Q1 '25.

We are convinced that backends will help simplify the deployments of LLMs, bringing versatility and performance to all TGI users.
Our vision is to establish TGI as the reference solution powering our *Inference Endpoints* product. With the addition of new backends, users will be able to deploy managed inference models across a wide range of cloud providers and hardware platforms ensuring top-tier performance and reliability.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Our vision is to establish TGI as the reference solution powering our *Inference Endpoints* product. With the addition of new backends, users will be able to deploy managed inference models across a wide range of cloud providers and hardware platforms ensuring top-tier performance and reliability.
You will soon be able to benefit from it directly within [Inference Endpoints](https://huggingface.co/inference-endpoints/), our managed deployment service, as we integrate TGI Backends into the product. As we add support for new TGI Backends, customers will be able to easily deploy models on various hardware with top-tier performance and reliability out of the box.

Comment on lines +9 to +11
# Text-Generation-Inference empowering all the AI Builders Community

## Introducing multi-backends support for TGI
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# Text-Generation-Inference empowering all the AI Builders Community
## Introducing multi-backends support for TGI
# Introducing TGI Backends: one for all, all for one

@@ -0,0 +1,48 @@
---
title: "Text-Generation-Inference empowering all the AI Builders Community"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
title: "Text-Generation-Inference empowering all the AI Builders Community"
title: "Introducing TGI Backends: one for all, all for one"

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i'd go for something more obvious like just Introducing multi-backend (TRT-LLM, vLLM) support for TGI


Stay tuned for the next blog posts to dig into technical details and performance benchmarks of upcoming backends\!

[image1]: <data:image/png;base64,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>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(move the image to a hub repo)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants