pytorch OutOfMemoryError:LLM中的CUDA内存不足

oxcyiej7  于 6个月前  发布在  其他
关注(0)|答案(1)|浏览(70)

我有一个文本列表,我需要将每个文本发送到大型语言模型(llama 2 - 7 b)。然而,我正在获取CUDA内存错误。我在Google Colab上运行A100。这是我的尝试:

path = "meta-llama/Llama-2-7b-chat-hf"
tokenizer = LlamaTokenizer.from_pretrained(path)
model = LlamaForCausalLM.from_pretrained(path).to("cuda")

def interact_with_model(query, input_text=""):
    if pd.isna(input_text): return ("NaN")
    else:
        prompt = query + input_text
        inputs = tokenizer(prompt, return_tensors="pt", return_attention_mask=False).to("cuda")
        generate_ids = model.generate(**inputs)
        output = tokenizer.batch_decode(outputs)[0]
        return output

def process_data(query,batch):
  responses = []
  for i in range(len(batch)):
      reponse = interact_with_model(query, batch[i])
      responses.append(reponse)
  return responses


query_1 = "Summarize the following text"
responses_1 = []
for i in range(0,len(inputs),50):
    sub_inputs = inputs[i:i+50]
    responses_1.append(process_data(query_1, batch=sub_inputs))

字符串
我试图发送文本到模型由50样品在每一次,但这也没有工作。问题在哪里?

nr9pn0ug

nr9pn0ug1#

您的GPU没有足够的内存来处理您正在使用的输入大小。请将批处理大小减少到1,将生成长度减少到1个令牌。检查内存使用情况,然后从那里增加以查看GPU的限制。

相关问题