如何在没有 GPU 的 Windows 下从 Transformers 库运行 LLM?

问题描述 投票:0回答:1

我没有 GPU,但我可以从

openbuddy-llama3-8b-v21.1-8k
运行
ollama
。它的工作速度约为 1 t/s。

但是当我尝试以下代码时它不起作用:

from transformers import (
    AutoModelForCausalLM,
    AutoTokenizer,
    GenerationConfig,
)
import torch

new_model = "openbuddy/openbuddy-llama3-8b-v21.1-8k"
model = AutoModelForCausalLM.from_pretrained(
    new_model,
    device_map="auto",
    trust_remote_code=True,
    torch_dtype=torch.bfloat16,
    low_cpu_mem_usage=True,
)


tokenizer = AutoTokenizer.from_pretrained(
    new_model,
    max_length=2048,
    trust_remote_code=True,
    use_fast=True,
)

tokenizer.pad_token = tokenizer.eos_token
tokenizer.padding_side = "right"


prompt = """<|im_start|>system
You are a helpful AI assistant.<|im_end|>
<|im_start|>user
Как открыть брокерский счет?<|im_end|>
<|im_start|>assistant
"""

inputs = tokenizer.encode(
    prompt, return_tensors="pt", add_special_tokens=False
).cpu() 

generation_config = GenerationConfig(
    max_new_tokens=700,
    temperature=0.5,
    top_p=0.9,
    top_k=40,
    repetition_penalty=1.1, 
    do_sample=True,
    pad_token_id=tokenizer.eos_token_id,
    eos_token_id=tokenizer.eos_token_id,
)
outputs = model.generate(
    generation_config=generation_config,
    input_ids=inputs,
)
print(tokenizer.decode(outputs[0], skip_special_tokens=False))

看起来

model.generate
的运行速度比从
ollama
运行要慢得多。

我看到该进程仅使用 25% 的 cpu。

我哪里错了?

python huggingface-transformers large-language-model
1个回答
0
投票

据我了解 -

transformers
ollama
慢得多,它是一个主要针对gpus优化的库。

我尝试过:

import ollama

response = ollama.chat(
    model="openbuddy/openbuddy-llama3-8b-v21.1-8k",
    messages=[
        {
            "role": "user",
            "content": "Как открыть брокерский счет?",
        },
    ],
)
print(response["message"]["content"])

效果完美。

© www.soinside.com 2019 - 2024. All rights reserved.