将“llama-2”8 位量化版本加载到 GPU 上

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

基于此存储库GitHub 链接我正在尝试构建一个可以回答用户查询的系统。

我能够在 CPU 上运行模型,响应时间约为 60 秒,现在我想提高响应时间,所以我尝试将模型加载到 GPU 上。

系统规格

  • 处理器 - Intel(R) Xeon(R) Gold 6238R CPU @ 2.20GHz、2195 Mhz、2 核、2 个逻辑处理器,带 24GB RAM
  • GPU - Nvidia A40-12Q,12GB。

这是我的疑问

  1. 如何将 llama 2 或任何模型加载到 GPU 上?
  2. 如果我们将模型加载到 GPU 上,我们可以提高响应时间吗?
  3. 如何提高答题质量?
  4. 我们应该如何制作模型来回答仅与文档相关的问题?

代码

from langchain.llms import CTransformers
from dotenv import find_dotenv, load_dotenv
import box
import yaml
from accelerate import Accelerator
import torch
from torch import cuda
from ctransformers import AutoModelForCausalLM

# Check if GPU is available and set device accordingly
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
print(f"Using Device: {device} in llm.py file")



# Load environment variables from .env file
load_dotenv(find_dotenv())

# Import config vars
with open('config/config.yml', 'r', encoding='utf8') as ymlfile:
    cfg = box.Box(yaml.safe_load(ymlfile))

accelerator = Accelerator()


def build_llm():

    config = {'max_new_tokens': cfg.MAX_NEW_TOKENS,
                            'temperature': cfg.TEMPERATURE,
                             'gpu_layers': 150
                             }
    llm = CTransformers(model=cfg.MODEL_BIN_PATH,
                        model_type=cfg.MODEL_TYPE,
                        config= config
                        )
    llm,config = accelerator.prepare(llm,config)
    return llm

这是模型中加载的部分,但是在查询时,CPU利用率飙升至100%,GPU利用率保持在2%

pytorch langchain large-language-model llama llama-cpp-python
2个回答
0
投票
  1. 如何将 llama 2 或任何模型加载到 GPU 上?

由于您正在使用

accelerate
,因此最好的方法是检查 accelerate 文档。请注意,标准 Llama2 对于您的 GPU 来说太大,因此您可能需要使用量化版本。

  1. 如果我们将模型加载到 GPU 上,我们可以提高响应时间吗?

这要看情况。 GPU 推理的大部分速度提升来自批量推理。如果您一次对单个项目运行推理,您可能不会看到速度的重大改进。对单个项目的推理往往更多地受到内存传输而不是触发器的瓶颈,这就是为什么像 llama.cpp 这样的代码库在笔记本电脑上获得良好性能的原因。 如何提高答题质量?

  1. 您可以尝试改进给模型的提示或整理适当的问题/答案对的数据集以进行微调。

我们应该如何制作模型来回答仅与文档相关的问题?

  1. 这是一个开放的研究问题

当我与从事此工作的人联系时,告诉我“ctransformers[cuda]”用于将模型加载到GPU上,但是ctransformers使用的CUDA版本是11.7.11

0
投票
,但是我使用的是 CUDA 11.4.2,它不支持此功能,这限制了我将模型加载到 GPU 上。

谢谢,

将随时向您通报此问题。

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