# 引言

在人工智能应用中,处理大型语言模型(LLM)对于提高应用程序性能至关重要。vLLM 提供了一种快速且易于使用的库,用于 LLM 推理和服务,其特点包括最先进的服务吞吐量和优化的 CUDA 内核等。本篇文章旨在介绍如何使用 vLLM 进行高效的 LLM 推理,并展示如何与 Langchain 集成。

# 主要内容

## vLLM 的关键特性

- **PagedAttention**:高效管理注意力键和值内存。
- **连续批处理**:处理传入请求批次。
- **优化的 CUDA 内核**:提升计算效率。

## 安装 vLLM

在开始之前,确保已经安装好 vLLM 包:

```bash
%pip install --upgrade --quiet vllm -q

使用 Langchain 集成 vLLM

通过 Langchain 社区包,可以轻松将 vLLM 集成到您的应用程序中。

初始化 LLM

from langchain_community.llms import VLLM

llm = VLLM(
    model="mosaicml/mpt-7b",
    trust_remote_code=True,  # 使用远程代码是必须的
    max_new_tokens=128,
    top_k=10,
    top_p=0.95,
    temperature=0.8,
)

print(llm.invoke("What is the capital of France ?"))  # 输出结果:Paris

将模型集成到 LLMChain

from langchain.chains import LLMChain
from langchain_core.prompts import PromptTemplate

template = """Question: {question}

Answer: Let's think step by step."""
prompt = PromptTemplate.from_template(template)

llm_chain = LLMChain(prompt=prompt, llm=llm)

question = "Who was the US president in the year the first Pokemon game was released?"
print(llm_chain.invoke(question))

分布式推理

vLLM 支持分布式张量并行推理与服务。通过设置 tensor_parallel_size 参数,可以使用多 GPU 进行推理。

llm = VLLM(
    model="mosaicml/mpt-30b",
    tensor_parallel_size=4,  # 使用4个GPU
    trust_remote_code=True,
)
llm.invoke("What is the future of AI?")

量化支持

vLLM 支持 awq 量化,可以通过 vllm_kwargs 参数启用。

llm_q = VLLM(
    model="TheBloke/Llama-2-7b-Chat-AWQ",
    trust_remote_code=True,
    max_new_tokens=512,
    vllm_kwargs={"quantization": "awq"},
)

OpenAI 兼容服务器

vLLM 可以作为服务器部署,模仿 OpenAI API 协议,使得 vLLM 能够作为应用程序中 OpenAI API 的替代。

from langchain_community.llms import VLLMOpenAI

llm = VLLMOpenAI(
    openai_api_key="EMPTY",
    openai_api_base="http://localhost:8000/v1",  # 使用API代理服务提高访问稳定性
    model_name="tiiuae/falcon-7b",
    model_kwargs={"stop": ["."]},
)
print(llm.invoke("Rome is"))

常见问题和解决方案

  • 网络限制:如果所在地区对某些 API 的访问有限,建议使用 API 代理服务,以确保服务的稳定性。
  • 模型性能问题:考虑调整 top_ktop_ptemperature 参数,以优化生成质量。

总结和进一步学习资源

通过本文,您了解了如何使用 vLLM 实现高效的 LLM 推理与服务。vLLM 通过优化的内存管理和并行计算,为开发者带来了便捷和性能提升。建议深入了解 vLLM 文档和 Langchain 如何与其他工具集成。

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---
Logo

免费领 200 小时云算力,进群参与显卡、AI PC 幸运抽奖

更多推荐