遵义网站建设有限公司,机关事业单位网站建设,东营智能网站设计,wordpress更改访问量使用 vllm 库调用大模型#xff0c;这里调用的是通义千问#xff0c;那需要先下载#xff1a;
通义千问-14B-Chat vllm 这个库目前只能在 linux 上用#xff0c; win 是用不了的#xff0c;pip 安装不了#xff0c;这里弄了一个调用示例代码
from vllm import LLM, Sam…使用 vllm 库调用大模型这里调用的是通义千问那需要先下载
通义千问-14B-Chat vllm 这个库目前只能在 linux 上用 win 是用不了的pip 安装不了这里弄了一个调用示例代码
from vllm import LLM, SamplingParams
from transformers import AutoModelForCausalLM, AutoTokenizer
import os
os.environ[CUDA_VISIBLE_DEVICES] 0 # 设置使用第一块 gpu
model_path
# tokenizer_modeslow表示使用慢速但更精确的tokenizer模式。
# tensor_parallel_size2表明在多GPU环境下进行张量并行计算的大小
# trust_remote_codeTrue信任远程代码执行根据具体库实现可能与安全性相关
model LLM(modlemodel_path, tokenizermodel_path, tokenizer_modeslow, tensor_parallel_size2,trust_remote_codeTrue)
pad_token|extra_0|指定了填充token当需要对输入序列进行填充以保持固定长度时会用到这个token。在处理批次数据时通常需要所有序列具有相同的长度较短的序列会在指定侧这里是左侧使用填充token进行填充。
eos_token终止符End of Sequence表示序列的结束。在自回归语言模型中它有时用来标记文本块的结尾。当模型生成文本时遇到此标记可能会停止生成新的tokens。
padding_sideleft指定在哪个侧面对序列进行填充。在这里是“left”意味着在每个样本的左侧添加填充token直到所有样本达到batch中最长样本的长度。
trust_remote_codeTrue这个参数允许从远程位置如Hugging Face Model Hub加载tokenizer时信任远程代码。这主要是为了安全和执行远程代码而设置的一个选项确保在加载预训练模型tokenizer时能够顺利运行来自可信源的代码。tokenizer AutoTokenizer.from_pretrained(model_path,pad_token|extra_0|, # 设置填充tokeneos_token|endoftext|,padding_sideleft, # 在序列左侧进行填充trust_remote_codeTrue #
)# temperature 调节生成样本的随机性默认情况下温度越高生成结果越多样温度越低生成结果越接近训练数据的概率分布。一般 0-1 超过1模型说的话不太可用
# stop[, |im_start|, ]当生成的序列包含这些终止符时停止生成
# max_tokens1000限制生成的最大token数量
sampling_params SamplingParams(temperature0.9,stop[|im_end|,|im_start|, |endoftext|], max_tokens1000)
|im_start| 和 |endoftext| 是预定义的特殊标记分别表示一个新对话的开始和文本块的结束。当模型在生成过程中遇到这些标记时
它会知道当前输入已经完成
因为调用模型是一批一批的存入列表中去调用的肯呢个 vllm 内部会吧列表的东西合起来这样就需要加入结束符来区别每次的输入prompt_before |im_start|system\n你是自然语言处理专家|im_end|\n|im_start|user\n
prompt_after |im_end|\n|im_start|assistant\nmessage f你好你是谁
batch_prompts []
cur_prompts prompt_before message prompt_after
batch_prompts.append(message)
outputs model.generate(batch_prompts, sampling_params)
for output in outputs:generated_text output.outputs[0].textprint(generated_text)