tencent cloud

TACO LLM 推理加速引擎
最后更新时间:2025-04-30 16:01:17
TACO LLM 推理加速引擎
最后更新时间: 2025-04-30 16:01:17

一、产品介绍

TACO-LLM(TencentCloud Accelerated Computing Optimization LLM) 是基于腾讯云异构计算产品推出的一款大语言模型(LLM)推理加速引擎,用于提高大语言模型的推理效能。通过充分利用计算资源的并行计算能力,TACO-LLM 能够同时处理更多的大语言模型推理请求,为用户提供兼顾高吞吐和低时延的优化方案。TACO-LLM 可以降低生成结果的等待时间,提高推理流程效率,助您优化业务成本。
TACO-LLM 的优势:
高易用性
TACO-LLM 设计实现了简单易用的接口,完全兼容业界开源 LLM 推理框架 vLLM。如果您正在使用 vLLM 作为推理引擎,可以无缝迁移到 TACO-LLM,轻松获得比 vLLM 更优的性能。此外,TACO-LLM 接口的简单易用性,使得使用其他推理框架的用户也能快速上手。
多计算平台支持
TACO-LLM 支持 GPU(Nvidia/AMD/Intel)、CPU(Intel/AMD)、TPU 等多种计算平台,后续还将支持主要国产计算平台。
高效能
TACO-LLM 使用 Continuous Batching、Paged Attention、投机采样、Auto Prefix Caching、CPU 辅助加速、长序列优化等多种 LLM 推理加速技术,针对不同的计算资源进行性能优化,全方位提升 LLM 推理计算的效能。

二、支持的模型

TACO-LLM 支持 Huggingface 模型格式的多种生成式 Transformer 模型。下面列出了 TACO-LLM 目前支持的模型架构和对应的常用模型。

Decoder-only 语言模型

Architecture
Models
Example HuggingFace Models
LoRA
BaiChuanForCausalLM
Baichuan & Baichuan2
baichuan-inc/Baichuan2-13B-Chat, baichuan-inc/Baichuan-7B, etc.
BloomForCausalLM
BLOOM, BLOOMZ, BLOOMChat
bigscience/bloom, bigscience/bloomz, etc.
-
ChatGLMModel
ChatGLM
THUDM/chatglm2-6b, THUDM/chatglm3-6b, etc.
FalconForCausalLM
Falcon
tiiuae/falcon-7b, tiiuae/falcon-40b, tiiuae/falcon-rw-7b, etc.
-
GemmaForCausalLM
Gemma
google/gemma-2b, google/gemma-7b, etc.
Gemma2ForCausalLM
Gemma2
google/gemma-2-9b, google/gemma-2-27b, etc.
GPT2LMHeadModel
GPT-2
gpt2, gpt2-xl, etc.
-
GPTBigCodeForCausalLM
StarCoder, SantaCoder, WizardCoder
bigcode/starcoder, bigcode/gpt_bigcode-santacoder, WizardLM/WizardCoder-15B-V1.0, etc.
GPTJForCausalLM
GPT-J
EleutherAI/gpt-j-6b, nomic-ai/gpt4all-j, etc.
-
GPTNeoXForCausalLM
GPT-NeoX, Pythia, OpenAssistant, Dolly V2, StableLM
EleutherAI/gpt-neox-20b, EleutherAI/pythia-12b, OpenAssistant/oasst-sft-4-pythia-12b-epoch-3.5, databricks/dolly-v2-12b, stabilityai/stablelm-tuned-alpha-7b, etc.
-
InternLMForCausalLM
InternLM
internlm/internlm-7b, internlm/internlm-chat-7b, etc.
InternLM2ForCausalLM
InternLM2
internlm/internlm2-7b, internlm/internlm2-chat-7b, etc.
-
LlamaForCausalLM
Llama 3.1, Llama 3, Llama 2, LLaMA, Yi
meta-llama/Meta-Llama-3.1-405B-Instruct, meta-llama/Meta-Llama-3.1-70B, meta-llama/Meta-Llama-3-70B-Instruct, meta-llama/Llama-2-70b-hf, 01-ai/Yi-34B, etc.
MistralForCausalLM
Mistral, Mistral-Instruct
mistralai/Mistral-7B-v0.1, mistralai/Mistral-7B-Instruct-v0.1, etc.
MixtralForCausalLM
Mixtral-8x7B, Mixtral-8x7B-Instruct
mistralai/Mixtral-8x7B-v0.1, mistralai/Mixtral-8x7B-Instruct-v0.1, mistral-community/Mixtral-8x22B-v0.1, etc.
NemotronForCausalLM
Nemotron-3, Nemotron-4, Minitron
nvidia/Minitron-8B-Base, mgoin/Nemotron-4-340B-Base-hf-FP8, etc.
OPTForCausalLM
OPT, OPT-IML
facebook/opt-66b,
facebook/opt-iml-max-30b, etc.

PhiForCausalLM
Phi
microsoft/phi-1_5, microsoft/phi-2, etc.
Phi3ForCausalLM
Phi-3
microsoft/Phi-3-mini-4k-instruct,
microsoft/Phi-3-mini-128k-instruct,
microsoft/Phi-3-medium-128k-instruct, etc.
-
Phi3SmallForCausalLM
Phi-3-Small
microsoft/Phi-3-small-8k-instruct, microsoft/Phi-3-small-128k-instruct, etc.
-
PhiMoEForCausalLM
Phi-3.5-MoE
microsoft/Phi-3.5-MoE-instruct
, etc.
-
QWenLMHeadModel
Qwen
Qwen/Qwen-7B, Qwen/Qwen-7B-Chat, etc.
-

Qwen2ForCausalLM
Qwen2
Qwen/Qwen2-beta-7B, Qwen/Qwen2-beta-7B-Chat, etc.
Qwen2MoeForCausalLM
Qwen2MoE
Qwen/Qwen1.5-MoE-A2.7B, Qwen/Qwen1.5-MoE-A2.7B-Chat, etc.
-
StableLmForCausalLM
StableLM
stabilityai/stablelm-3b-4e1t/ , stabilityai/stablelm-base-alpha-7b-v2, etc.
-
Starcoder2ForCausalLM
Starcoder2
bigcode/starcoder2-3b, bigcode/starcoder2-7b, bigcode/starcoder2-15b, etc.
-
XverseForCausalLM
Xverse
xverse/XVERSE-7B-Chat, xverse/XVERSE-13B-Chat, xverse/XVERSE-65B-Chat, etc.
-

多模态语言模型

Architecture
Models
Modalities
Example HuggingFace Models
LoRA
InternVLChatModel
InternVL2
Image(E+)
OpenGVLab/InternVL2-4B, OpenGVLab/InternVL2-8B, etc.
-
LlavaForConditionalGeneration
LLaVA-1.5
Image(E+)
llava-hf/llava-1.5-7b-hf, llava-hf/llava-1.5-13b-hf, etc.
-
LlavaNextForConditionalGeneration
LLaVA-NeXT
Image(E+)
llava-hf/llava-v1.6-mistral-7b-hf, llava-hf/llava-v1.6-vicuna-7b-hf, etc.
-
LlavaNextVideoForConditionalGeneration
LLaVA-NeXT-Video
Video
llava-hf/LLaVA-NeXT-Video-7B-hf, etc. (see note)
-
PaliGemmaForConditionalGeneration
PaliGemma
Image(E)
google/paligemma-3b-pt-224, google/paligemma-3b-mix-224, etc.
-
Phi3VForCausalLM
Phi-3-Vision, Phi-3.5-Vision
Image(E+)
microsoft/Phi-3-vision-128k-instruct, microsoft/Phi-3.5-vision-instruct etc.
-
PixtralForConditionalGeneration
Pixtral
Image(+)
mistralai/Pixtral-12B-2409
-
QWenLMHeadModel
Qwen-VL
Image(E+)
Qwen/Qwen-VL, Qwen/Qwen-VL-Chat, etc.
-
Qwen2VLForConditionalGeneration
Qwen2-VL (see note)
Image(+) / Video(+)
Qwen/Qwen2-VL-2B-Instruct, Qwen/Qwen2-VL-7B-Instruct, Qwen/Qwen2-VL-72B-Instruct, etc.
-
说明:
E:表示 Pre-computed embeddings 可以作为多模态输入。
+:表示一个 prompt 可以插入多个多模态输入。

三、TACO LLM 安装

环境准备

TACO-LLM 需要依赖 GPU 相关的基础软件,如 GPU 驱动 /CUDA 等。为了避免基础软件依赖导致 TACO-LLM 无法正常运行,我们提供了 TACO-LLM docker环境镜像,建议您优先使用该镜像作为 TACO-LLM 的运行环境。按照如下命令可以获取 docker 镜像并启动容器环境:
docker run -it \\
--privileged \\
--net=host \\
--ipc=host \\
--shm-size=16g \\
--name=taco_llm \\
--gpus all \\
-v /home/workspace:/home/workspace \\
ccr.ccs.tencentyun.com/taco/tacollm-dev:latest /bin/bash

安装 whl 包

说明:
如果您有任何业务需求需要试用 TACO-LLM,请 提交工单 联系 TACO 团队获取安装包。
1. 通过 提交工单 获取 TACO-LLM whl 安装包之后,可以按照如下命令在容器环境中安装 TACO-LLM:
pip3 install taco_llm-${version}-cp310-cp310-linux_x86_64.whl
2. 安装 TACO-LLM whl 包时,会自动安装相关的 python 依赖包。

四、TACO LLM 使用方法

TACO-LLM 提供了实现 OpenAI CompletionsChat API 的 HTTP 服务端,您可以按照以下流程进行使用。

启动服务

首先,执行以下命令启动服务:
taco_llm serve facebook/opt-125m --api-key taco-llm-test

发送请求

您可以使用 OpenAI 的官方 Python 客户端来发送请求:
from openai import OpenAI

client = OpenAI(
base_url="http://localhost:8000/v1",
api_key="taco-llm-test",
)

completion = client.chat.completions.create(
model="facebook/opt-125m",
messages=[
{"role": "user", "content": "Hello!"}
]
)

print(completion.choices[0].message)
您也可以直接使用 HTTP 客户端来发送请求:
import requests

api_key = "taco-llm-test"

headers = {
"Authorization": f"Bearer {api_key}"
}

pload = {
"prompt": "Hello!",
"stream": True,
"max_tokens": 128,
}

response = requests.post("http://localhost:8000/v1/completions",
headers=headers,
json=pload,
stream=True)

for chunk in response.iter_lines(chunk_size=8192,
decode_unicode=False,
delimiter=b"\\0"):
if chunk:
data = json.loads(chunk.decode("utf-8"))
output = data["text"][0]
print(output)

完整客户端参数配置

除了少部分参数不支持外,TACO-LLM 完全支持 OpenAI 的参数配置。您可以参见 OpenAI API 官方文档 查看完整的 API 参数配置。不支持的少部分参数配置如下:
Chat: tools, and tool_choice。
Completions: suffix。

本页内容是否解决了您的问题?
您也可以 联系销售 提交工单 以寻求帮助。

文档反馈