只需 24G 显存,用 vllm 跑起来 Yi-34B 中英双语大模型

这里是 只需 24G 显存,用 vllm 跑起来 Yi-34B 中英双语大模型 的笔记哦。

引言

上次介绍了用 vllm 去部署 mixtral 8x7b 的 GPTQ 量化版本,只是跑了一下 benchmark,这次玩一下 Yi-34b 这个模型的量化版本,看看怎么使用 vllm 直接暴露出来一个 API 服务。

Mixtral 这个模型虽然很强大,但是它对中文的支持并不好,尤其是对中文的知识了解的非常有限。而 Yi-34b 这个模型则是从一开始就进行的中英双语语料进行训练。

  1. 目前来看,依然在 chatbot arena 名列前茅。
  2. 在 huggingface 上依然有大量的微调版本出现。(我也好想去微调个试试看!)

而且 int4 版本可以在限定上下文长度的情况下部署在 24G 显存的消费级显卡上。这里我就记录下在 autodl 进行模型部署的详细步骤。

模型下载

之前有小伙伴反馈,hf 的资源其实是下不到的,这次 yi-34b 在 modelscope 上也有提供模型,我们可以通过 modelscope 进行下载。

1. 安装 modelscope

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple modelscope

2. 下载模型

from modelscope.hub.snapshot_download import snapshot_download
model_dir = snapshot_download('01ai/Yi-34B-Chat-4bits', cache_dir='autodl-tmp', revision='master', ignore_file_pattern='.bin')

执行命令,注意使用参数 ignore_file_pattern 避免下载 bin 文件。

安装 vllm

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple vllm

开启 openai 兼容的服务

python -m vllm.entrypoints.openai.api_server \
    --model /root/autodl-tmp/01ai/Yi-34B-Chat-4bits \
    --served-model-name 01ai/Yi-34B-Chat-4bits \
    --trust-remote-code \
    --max-model-len 2048 -q awq 

测试服务是否可用:

curl http://localhost:8000/v1/completions \
-H "Content-Type: application/json" \
-d '{
    "model": "01ai/Yi-34B-Chat-4bits",
    "prompt": "San Francisco is a",
    "max_tokens": 7,
    "temperature": 0
}'

执行 benchmark 测试

主要跑之前要关掉上一部开启的 api server。

下载 vllm 源码

source /etc/network_turbo
git clone https://github.com/vllm-project/vllm
cd vllm/benchmarks

执行 benchmark 测试

python benchmark_throughput.py \
    --backend vllm \
    --input-len 128 --output-len 512 \
    --model /root/autodl-tmp/01ai/Yi-34B-Chat-4bits \
    -q awq --num-prompts 100 --seed 1100 \
    --trust-remote-code \
    --max-model-len 2048

使用 gradio 的 chat 组件测试 openai 兼容的 api server

依据 vllm quickstart 的代码片段创建以下的代码:

from openai import OpenAI
import gradio as gr

# Set OpenAI's API key and API base to use vLLM's API server.
openai_api_key = "EMPTY"
openai_api_base = "http://localhost:8000/v1"

# 创建一个 OpenAI 客户端,用于与 API 服务器进行交互
client = OpenAI(
    api_key=openai_api_key,
    base_url=openai_api_base,
)

def predict(message, history):
    # 将聊天历史转换为 OpenAI 格式
    history_openai_format = [{"role": "system", "content": "你是个靠谱的 AI 助手,尽量详细的解答用户的提问。"}]
    for human, assistant in history:
        history_openai_format.append({"role": "user", "content": human })
        history_openai_format.append({"role": "assistant", "content":assistant})
    history_openai_format.append({"role": "user", "content": message})

    # 创建一个聊天完成请求,并将其发送到 API 服务器
    stream = client.chat.completions.create(
        model='01ai/Yi-34B-Chat-4bits',   # 使用的模型名称
        messages= history_openai_format,  # 聊天历史
        temperature=0.8,                  # 控制生成文本的随机性
        stream=True,                      # 是否以流的形式接收响应
        extra_body={
            'repetition_penalty': 1, 
            'stop_token_ids': [7]
        }
    )

    # 从响应流中读取并返回生成的文本
    partial_message = ""
    for chunk in stream:
        partial_message += (chunk.choices[0].delta.content or "")
        yield partial_message

# 创建一个聊天界面,并启动它,share=True 让 gradio 为我们提供一个 debug 用的域名
gr.ChatInterface(predict).queue().launch(share=True)

将文件保存为 chat.py

首先跑起来 vllm 的 openai api server:

python -m vllm.entrypoints.openai.api_server \
    --model /root/autodl-tmp/01ai/Yi-34B-Chat-4bits \
    --served-model-name 01ai/Yi-34B-Chat-4bits \
    --trust-remote-code \
    --max-model-len 2048 -q awq 

然后开启一个新的终端执行命令:

python chat.py

稍等它在终端给我们生成一个 xxxx.gradio.live 的域名,访问这个域名就可以进行测试了。

参考链接

  1. 模型的下载
  2. Yi-34B-Chat-4bits
  3. Welcome to vLLM!
  4. How to Create a Chatbot with Gradio
<think>好的,我现在需要回答用户关于开源LLM模型的问题。首先,用户之前问了如何部署Langchain-Chatchat,现在转向询问有哪些开源的LLM模型。这可能意味着用户对构建自己的聊天应用感兴趣,或者想了解可用的模型选项。 首先,我需要确定用户的需求。他们可能想了解目前主流的开源大语言模型,以便选择适合自己项目的模型。考虑到用户之前的问题涉及部署,他们可能对模型的易用性、硬件要求和中文支持特别关注。 接下来,我需要回忆当前知名的开源LLM模型。例如,Meta的Llama系列,特别是Llama 2和最新的Llama 3,这些都是非常重要的模型,拥有多种尺寸,适合不同计算资源。然后是中国的模型,比如ChatGLM系列(如ChatGLM3-6B),由智谱AI开发,支持中英双语,这对中文用户来说很关键。还有百川智能的Baichuan系列,以及零一万物的Yi模型,这些也都是中文社区中比较流行的。 另外,像Falcon、Mistral和MosaicML的MPT系列也是国际上的热门选择。需要提到它们的参数规模、适用场景以及许可证情况,因为有些模型虽然开源,但商用可能需要授权,比如Llama 2需要Meta的许可。 用户可能还关心模型的下载渠道,比如Hugging Face、ModelScope等平台,以及如何快速部署这些模型。同时,需要注意模型的硬件需求,比如显存大小,是否需要GPU加速等,这对用户部署时的硬件准备很重要。 此外,可能还需要提到一些微调框架,比如LLaMA-Factory,方便用户根据自己的需求对模型进行调整。最后,强调选择模型时要考虑语言支持、硬件限制和许可协议,确保合规和适用性。 需要组织这些信息,分门别类,结构清晰。可能分为国际模型、中文模型、其他模型,每个类别下列举几个主要模型,介绍其特点、参数、许可证和适用场景。同时,给出参考链接,方便用户进一步查阅。 检查是否有遗漏的重要模型,比如最近发布的模型,如Qwen(通义千问)的开源版本,或者DeepSeek等。确保信息更新及时,特别是版本号,如Llama 3是较新的发布,需要包含进去。 最后,用简洁明了的语言表达,避免技术术语过多,但保持专业性。确保每个要点的信息准确无误,特别是许可证和下载来源,避免误导用户。</think>以下是当前主流的开源大语言模型分类介绍(截至2024年5月最新信息): --- ### **一、国际主流开源模型** 1. **Llama 系列(Meta)** - **Llama 3**(最新) - 参数规模:8B/70B - 特点:支持8K上下文,多语言优化 - 许可证:需申请商用授权 - 下载:https://llama.meta.com - **Llama 2**(经典版) - 参数:7B/13B/70B - 适用场景:通用对话、推理任务 - 衍生版本:Chinese-Llama-2(中文优化) 2. **Mistral 系列** - **Mistral-7B** - 特点:7B参数超越13B模型性能 - 优势:内存效率高(适合消费级显卡) - 许可证:Apache 2.0 3. **Falcon 系列(TII UAE)** - **Falcon-40B/180B** - 特色:基于Apache 2.0完全开源 - 适用场景:商业应用、多轮对话 --- ### **二、中文优化模型** | 模型名称 | 参数规模 | 亮点特性 | 推荐场景 | |------------------|----------|------------------------------|-----------------------| | **ChatGLM3-6B** | 6B | 中英双语、微调工具链完善 | 企业知识库问答 | | **Baichuan2** | 7B/13B | 支持法律/医疗垂直领域 | 专业领域对话 | | **Qwen-7B** | 7B | 阿里研发,支持插件扩展 | 复杂任务处理 | | **Yi-34B** | 34B | 全球首个200K上下文窗口 | 长文档理解 | | **DeepSeek-MoE** | 16B | 稀疏架构(显存节省40%) | 资源受限环境 | --- ### **三、其他重要模型** 1. **MPT 系列(MosaicML)** - 特色:支持8K+长上下文 - 推荐版本:MPT-30B(商用友好) 2. **Bloom(BigScience)** - 参数:176B - 特点:多语言支持(46种语言) - 局限:需要高性能硬件 3. **StarCoder(代码专用)** - 参数:15.5B - 专长:代码生成/补全 - 许可证:商用需授权 --- ### **四、模型获取渠道** 1. **Hugging Face Hub** ```python from huggingface_hub import snapshot_download snapshot_download(repo_id="meta-llama/Llama-2-7b-chat") ``` 2. **ModelScope(国内镜像)** ```bash git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git ``` 3. **官方Git仓库** - Baichuan:https://github.com/baichuan-inc - ChatGLM:https://github.com/THUDM --- ### **五、选型建议** 1. **资源优先型**: -显存(8GB):选择ChatGLM3-6B量化版 - 中等显存24GB):Mistral-7B 2. **中文任务优先**: - 通用场景:Qwen-7B - 长文本处理:Yi-34B 3. **商业应用**: - 合规首选:Falcon-40B(Apache 2.0) - 高性能需求:Llama3-70B(需授权) --- ### **重要提醒** 1. 使用Llama系列需注意商用授权限制 2. 中文模型推荐搭配RAG技术增强效果 3. 最新趋势:MoE架构模型(如DeepSeek-MoE)显存效率提升显著 建议通过LLaMA-Factory等微调框架进行二次开发:https://github.com/hiyouga/LLaMA-Factory
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值