-
Notifications
You must be signed in to change notification settings - Fork 785
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
base: main
Are you sure you want to change the base?
Conversation
|
||
## 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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* **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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* **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 |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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. |
# Text-Generation-Inference empowering all the AI Builders Community | ||
|
||
## Introducing multi-backends support for TGI |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
# 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" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
title: "Text-Generation-Inference empowering all the AI Builders Community" | |
title: "Introducing TGI Backends: one for all, all for one" |
There was a problem hiding this comment.
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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> |
There was a problem hiding this comment.
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)
No description provided.