快速呼叫 GLM-4-9B-Chat 語言模型

方倍工作室發表於2024-07-02

一、確認本機顯示卡配置

二、下載大模型

國內可以從魔搭社群下載,

下載地址:https://modelscope.cn/models/ZhipuAI/glm-4-9b-chat/files

三、執行官方程式碼

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

device = "cuda"

tokenizer = AutoTokenizer.from_pretrained("E:\openai\ChatGLM4\glm-4-9b-chat", trust_remote_code=True)

query = "你好"

inputs = tokenizer.apply_chat_template([{"role": "user", "content": query}],
                                       add_generation_prompt=True,
                                       tokenize=True,
                                       return_tensors="pt",
                                       return_dict=True
                                       )

inputs = inputs.to(device)
model = AutoModelForCausalLM.from_pretrained(
    "E:\openai\ChatGLM4\glm-4-9b-chat",
    torch_dtype=torch.bfloat16,
    low_cpu_mem_usage=True,
    trust_remote_code=True
).to(device).eval()

gen_kwargs = {"max_length": 2500, "do_sample": True, "top_k": 1}
with torch.no_grad():
    outputs = model.generate(**inputs, **gen_kwargs)
    outputs = outputs[:, inputs['input_ids'].shape[1]:]
    print(tokenizer.decode(outputs[0], skip_special_tokens=True))

結果如下

中間需要安裝環境,建議用anaconda來安裝

官方文件中說到可以用vLLM的方式跑起來,即CPU的方式

使用 transformers 後端進行推理 使用 vLLM 後端進行推理: 區別是什麼

使用不同的後端進行推理,主要區別在於效能、靈活性和易用性方面。以下是使用transformers後端和vLLM後端進行推理的一些區別:

  1. 效能:transformers後端使用硬體加速(如GPU、TPU等)進行推理,因此在處理大量資料和複雜模型時具有更高的效能。而vLLM後端使用CPU進行推理,效能相對較低,但適用於輕量級模型和移動裝置。

  2. 靈活性:transformers後端支援多種預訓練模型和任務,如文字分類、命名實體識別、機器翻譯等。您可以根據需求選擇合適的模型。vLLM後端主要針對輕量級語言模型,適用於文字生成和補全任務。

  3. 易用性:transformers後端提供了豐富的API和工具,方便使用者進行模型載入、推理和部署。vLLM後端相對較簡單,易於在移動裝置和嵌入式裝置上整合和使用。

  4. 資源消耗:transformers後端在推理過程中可能消耗較多的計算資源和記憶體,尤其是在使用大型模型時。vLLM後端資源消耗相對較低,適合在資源受限的環境中執行。

總之,選擇哪種後端進行推理取決於您的具體需求,包括任務型別、效能要求、資源限制等因素。如果需要高效能、靈活性和豐富的功能,可以選擇transformers後端;如果關注輕量級、易於整合和低資源消耗,可以選擇vLLM後端。

python安裝vLLM的時候報錯,只能裝在linux上

相關文章