晴栀初眸 - AI Model
type: channel
link: https://shackles.cn/index.php/category/AI-Model
items: vllm 参数解读
items: Ray Cluster + Vllm 部署满血版DeepSeek R1 671B
items: 部署各种AI Model

vllm 参数解读
type: item
date: 2025-03-05T08:43:22+00:00
description: 模型加载与配置1、--model说明要使用的模型名称或模型权重文件在本地的存放路径，如不选择本地路径默认会去huggingface拉取默认值facebook/opt-125m参数选项模型库加载：facebook/opt-125m本地加载：/models/DeepSeek-R1/使用场景选择运行的模型是从本地加载还是从互联网的模型库加载2、--task说明task 参数可以让模型更偏向于某一方面的任务执行，帮助模型理解希望它专注于某种类型的操作。通过指定不同的任务，模型会在执行时调整其处理方式，以适应特定类型的需求。默认值auto参数选项auto使用场景：当不确定要执行什么任务，可以让模型自动选择最合适的任务时。例子：只是想让模型理解并响应你的输入，模型会根据输入自动决定任务。generate使用场景：需要生成文本内容，如创作文章、编写代码、生成故事等。例子：写一篇关于人工智能的文章，生成一个Python代码段，编写一个关于未来科技的短篇小说。embedding使用场景：文本嵌入生成，用于信息检索、相似度搜索或聚类分析。例子：将一篇文章转换为向量表示，以便于之后在大数据中进行相似度搜索，或者在推荐系统中使用。embed使用场景：将文本转换为可供机器学习模型进一步处理的嵌入表示。例子：将用户的评论转换为嵌入向量，用于训练情感分析模型。classify使用场景：文本分类，常用于情感分析、垃圾邮件检测、产品推荐等。例子：分析一段评论，判断它是正面的还是负面的；将邮件分类为“垃圾邮件”或“非垃圾邮件”。score使用场景：为文本内容打分，通常用于质量评分、评估任务等。例子：对某篇文章的质量进行评分，或者根据某些标准给一段文本评分（如流畅度、逻辑性等）。reward使用场景：在强化学习或某些任务中给模型的输出打分或奖励。例子：评估一个模型生成的答案，并根据正确性、创造性等因素给予奖励。transcription使用场景：将语音或音频文件转换为文本。例子：将会议录音转换为文字记录，或者将视频中的对白转写成文本。使用场景比如做一个情感分析任务，classify 任务就非常适合；如果你需要基于某些文本生成新的内容，generate 任务则是更好的选择。3、--tokenizer说明指定要使用的分词器的名称或路径。默认值null参数选项本地就选路径：/models/DeepSeek-R1/云端就选模型库的名称：unsloth/DeepSeek-R1-BF16 默认走huggingface使用场景分词器是处理文本的工具，将文本分割成更小的单位（称为 tokens），并将这些 tokens 转换为模型能够理解的数值形式。可自定义分词器或者用模型自带分词器。4、--skip-tokenizer-init说明跳过分词器（tokenizer）和解码器（detokenizer）的初始化过程。默认值null参数选项null使用场景比如已经明确知道分词器已经被正确加载，或者希望手动管理分词器的初始化时，可用此参数5、--revision说明用于指定模型权重的具体版本。可以是一个分支名（branch name）、标签名（tag name）或提交 ID（commit id）默认值默认拉取默认版本，类似docker 中pull的过程，不给tag 就pull tag为latest的image参数选项分支名(branch name)标签名(tag name)提交 ID(commit id)使用场景加载特定的分支、标签或提交版本。回退到旧版本以解决问题。进行多版本测试或对比实验。6、--code-revision说明用于指定模型代码的版本，可以是一个分支名（branch name）、标签名（tag name）或提交 ID（commit id）默认值默认拉取默认版本，类似docker 中pull的过程，不给tag 就pull tag为latest的image参数选项分支名(branch name)标签名(tag name)提交 ID(commit id)使用场景加载特定的分支、标签或提交版本的模型代码。回退到旧版本的模型代码以解决问题。进行多版本测试或对比实验。7、--tokenizer-revision说明用于指定分词器（tokenizer）的具体版本。可以是一个分支名（branch name）、标签名（tag name）或提交 ID（commit id）。默认值默认拉取默认版本，类似docker 中pull的过程，不给tag 就pull tag为latest的image参数选项分支名(branch name)标签名(tag name)提交 ID(commit id)使用场景加载特定的分支、标签或提交版本的分词器。回退到旧版本的分词器以解决问题。进行多版本测试或对比实验。8…

Ray Cluster + Vllm 部署满血版DeepSeek R1 671B
type: item
date: 2025-02-14T00:58:00+00:00
description: 系统环境系统版本IP地址主机名vllm版本ray版本显卡Ubuntu 22.04.5 LTS10.84.10.24server1Version: 0.7.2Version: 2.42.18x(A100*80G)Ubuntu 22.04.5 LTS10.84.10.22server3Version: 0.7.2Version: 2.42.18x(A100*80G)Ubuntu 22.04.4 LTS10.84.10.23server4Version: 0.7.2Version: 2.42.18x(A100*80G)前提条件已经安装了显卡驱动机器间是万兆带宽系统调优（所有节点都要做）提高系统可打开的最大文件描述符数量。如果 ulimit -n 过小，可能会出现进程无法创建新的 socket，导致分布式训练/推理失败。Too many open files临时修改ulimit -n 65536永久修改1、修改 /etc/security/limits.confecho "* soft nofile 65536" | sudo tee -a /etc/security/limits.conf echo "* hard nofile 65536" | sudo tee -a /etc/security/limits.conf2、修改 /etc/systemd/system.conf 和 /etc/systemd/user.confsudo sed -i '/^#DefaultLimitNOFILE/c\DefaultLimitNOFILE=65536' /etc/systemd/system.conf sudo sed -i '/^#DefaultLimitNOFILE/c\DefaultLimitNOFILE=65536' /etc/systemd/user.conf3、重启生效sudo reboot优化 NCCL 的通信性能（所有节点都要做）head节点export NCCL_SOCKET_IFNAME=ens110f1 export GLOO_SOCKET_IFNAME=ens110f1 export NCCL_CROSS_NIC=1 export NCCL_NET_GDR_LEVEL=SYS export NCCL_DEBUG=TRACE export NCCL_DEBUG_SUBSYS=^ALLOC export VLLM_HOST_IP=10.84.10.24 export VLLM_LOGGING_LEVEL=DEBUGWorker-1 节点export NCCL_SOCKET_IFNAME=ens6f1 export GLOO_SOCKET_IFNAME=ens6f1 export NCCL_CROSS_NIC=1 export NCCL_NET_GDR_LEVEL=SYS export NCCL_DEBUG=TRACE export NCCL_DEBUG_SUBSYS=^ALLOC export VLLM_HOST_IP=10.84.10.22 export VLLM_LOGGING_LEVEL=DEBUGWorker-2 节点export NCCL_SOCKET_IFNAME=ens6f0 export GLOO_SOCKET_IFNAME=ens6f0 export NCCL_CROSS_NIC=1 export NCCL_NET_GDR_LEVEL=SYS export NCCL_DEBUG=TRACE export NCCL_DEBUG_SUBSYS=^ALLOC export VLLM_HOST_IP=10.84.10.23 export VLLM_LOGGING_LEVEL=DEBUG变量解释export GLOO_SOCKET_IFNAME： 指定 GLOO (PyTorch 分布式后端) 绑定的网卡接口export NCCL_SOCKET_IFNAME： 指定 NCCL (NVIDIA Collective Communications Library) 绑定的网卡接口，用于 GPU 之间的高速通信。export NCCL_CROSS_NIC：启用跨网卡（NIC）通信，1启用，0禁用export VLLM_LOGGING_LEVEL：配置默认日志级别export NCCL_NET_GDR_LEVEL：控制 GPU Direct RDMA (GDR) 的使用级别，NCCL_NET_GDR_LEVEL 的值可以是以下几种：PIX: 仅在同一个 PCIe 设备内使用 GDR。PHB: 在同一个 NUMA 节点内的 PCIe 设备之间使用 GDR。SYS: 在整个系统范围内使用 GDR。OFF: 禁用 GDR。…

部署各种AI Model
type: item
date: 2024-10-22T06:20:00+00:00
description: 使用TEI部署模型安装 Rust建议安装 Rust 的最新版本 1.75.0，安装命令如下curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shTEI 的安装1、下载 TEI 的 github 仓库git clone https://github.com/huggingface/text-embeddings-inference.git && cd text--embeddings-inference2、安装cargo install时所用依赖root@localhost:~/BAAI/text-embeddings-inference-1.5.0# apt install pkg-config libssl-dev3、gcc g++ 的版本要>=12ubuntu 20.04中apt的gcc和g++最高版本为9，所以采用下下策，编译安装gcc和g++# 下载 GCC 源码 root@localhost:~/BAAI/text-embeddings-inference-1.5.0# wget http://ftp.gnu.org/gnu/gcc/gcc-12.2.0/gcc-12.2.0.tar.gz root@localhost:~/BAAI/text-embeddings-inference-1.5.0# tar -xzf gcc-12.2.0.tar.gz root@localhost:~/BAAI/text-embeddings-inference-1.5.0# cd gcc-12.2.0 # 安装依赖 root@localhost:~/BAAI/text-embeddings-inference-1.5.0# sudo apt install build-essential libgmp3-dev libmpfr-dev libmpc-dev # 配置和编译 root@localhost:~/BAAI/text-embeddings-inference-1.5.0# ./configure --disable-multilib --enable-languages=c,c++ root@localhost:~/BAAI/text-embeddings-inference-1.5.0# make -j$(nproc) root@localhost:~/BAAI/text-embeddings-inference-1.5.0# sudo make install #验证是否编译成功 root@localhost:~/BAAI/text-embeddings-inference-1.5.0# /usr/local/bin/gcc --version gcc (GCC) 12.2.0 Copyright (C) 2022 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. root@localhost:~/BAAI/text-embeddings-inference-1.5.0# /usr/local/bin/g++ --version g++ (GCC) 12.2.0 Copyright (C) 2022 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.4、设置环境变量export CC=/usr/local/bin/gcc export CXX=/usr/local/bin/g++ export CARGO_TARGET_DIR=/root/BAAI/text-embeddings-inference-1.5.0/target5、安装TEI 项目相关依赖ln -sf /root/.cargo/bin/cargo /usr/bin/ cargo install --path router -F candle6、部署 Rerank 模型ln -sf /root/.cargo/bin/text-embeddings-router /usr/bin/ …