ArcticInference:为LLM和Embeddings提供极速推理的开源插件
ArcticInference 项目地址: https://gitcode.com/gh_mirrors/ar/ArcticInference
ArcticInference 是一款开源的vLLM插件,由Snowflake公司贡献给社区,为大型语言模型(LLM)和Embeddings提供目前最快的开源推理解决方案。该项目通过一系列推理优化技术,实现了高吞吐量和低延迟的性能。
项目介绍
ArcticInference 的核心是Snowflake在推理创新方面的技术,这些技术经过优化后,使得ArcticInference成为了处理LLM和Embeddings任务的最快、成本效益最高的开源工具。ArcticInference不仅仅是一个插件,它还通过高度优化的推理流程,为用户提供了极致的性能体验。
项目技术分析
ArcticInference 的技术核心在于它的高效推理优化策略。以下是它采用的一些关键优化技术:
- 高级并行主义:包括Ulysses(序列并行)和Shift Parallelism(移位并行),这些技术可以有效提升模型的并行处理能力。
- 投机解码:通过Arctic Speculator和Suffix Decoding,ArcticInference可以在不牺牲准确性的情况下,快速生成响应。
- 模型优化:SwiftKV是一种内存管理优化技术,可以显著降低推理成本。
- 其他优化:针对Embeddings和Reasoning的优化,使得ArcticInference在多种任务中都表现出色。
项目及技术应用场景
ArcticInference 适用于多种场景,特别是需要处理大规模语言模型和Embeddings推理的应用。以下是一些典型的应用场景:
- 在线聊天机器人:利用ArcticInference的低延迟特性,可以提供流畅的交互体验。
- 大规模文本分析:高吞吐量使得ArcticInference能够快速处理大量文本数据。
- 推荐系统:通过Embeddings优化,ArcticInference可以加速推荐系统的响应时间。
项目特点
ArcticInference 的特点可以总结为以下几点:
- 性能卓越:ArcticInference + vLLM在单一部署中即可实现快速的响应时间、高吞吐量和快速的生成速度。
- 优化全面:无论是推理速度还是成本,ArcticInference都能提供显著的优化。
- 易于使用:安装后,ArcticInference可以自动与vLLM集成,用户无需改变现有的API调用习惯。
- 开源友好:ArcticInference遵循Apache 2.0许可,鼓励社区贡献和共享。
性能对比
在真实世界的LLM工作负载中,ArcticInference + vLLM与最佳吞吐量优化部署相比,可以实现3.4倍更快的请求完成时间和1.06倍的更高吞吐量;与最佳延迟优化部署相比,则可以提供1.7倍的更高吞吐量和1.28倍的更快请求完成时间。
Embeddings优化
对于Embeddings任务,ArcticInference + vLLM在GPU上每秒可以处理高达140万个tokens,比标准vLLM快16倍,比Text Embeddings Inference(TEI)快2.4倍。
快速入门
安装ArcticInference非常简单,只需要使用pip命令:
$ pip install arctic-inference[vllm]
之后,用户可以根据提供的示例代码,开始使用Shift Parallelism、Speculative Decoding和SwiftKV等优化技术。
使用示例
以下是使用ArcticInference与vLLM一起运行的服务端和离线推理示例:
服务端
vllm serve \
Snowflake/Llama-3.1-SwiftKV-70B-Instruct \
--quantization "fp8" \
--tensor-parallel-size 1 \
--ulysses-sequence-parallel-size 4 \
--enable-shift-parallel \
--speculative-config '{
"method": "arctic",
"model":"Snowflake/Arctic-LSTM-Speculator-Llama-3.1-70B-Instruct",
"num_speculative_tokens": 3,
"enable_suffix_decoding": true,
"disable_by_batch_size": 64,
}'
离线
import vllm
from vllm import LLM, SamplingParams
vllm.plugins.load_general_plugins()
llm = LLM(
model="Snowflake/Llama-3.1-SwiftKV-70B-Instruct",
quantization="fp8",
tensor_parallel_size=1,
ulysses_sequence_parallel_size=4,
enable_shift_parallel=True,
speculative_config={
"method": "arctic",
"model": "Snowflake/Arctic-LSTM-Speculator-Llama-3.1-70B-Instruct",
"num_speculative_tokens": 3,
"enable_suffix_decoding": True,
"disable_by_batch_size": 64
},
)
conversation = [
{
"role": "user",
"content": "Write an essay about the importance of higher education.",
},
]
sampling_params = SamplingParams(temperature=0.1, max_tokens=128)
outputs = llm.chat(conversation, sampling_params=sampling_params)
ArcticInference 通过这些优化技术,为开源社区提供了一个强有力的工具,使得LLM和Embeddings推理变得更加高效和可行。无论是对于研究人员还是开发者,ArcticInference都是一个值得尝试的解决方案。
ArcticInference 项目地址: https://gitcode.com/gh_mirrors/ar/ArcticInference
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考