Невозможно очистить память графического процессора даже после удаления переменных при использовании модели Llama 2.
У меня возникли проблемы с очисткой памяти графического процессора после загрузки модели Llama 2 в конвейер.
очистка памяти графического процессора отлично работает на других моделях (например, delvariables, torch.cuda.empty_cache()), но, похоже, она не работает при использовании модели Llama 2.
Я тестировал это на своем ПК с Ubuntu 22, а также на Google Colab с графическим процессором, и поведение соответствует. если я создаю экземпляр токенизатора и модели, а затем удаляю их, память графического процессора очищается. но если я также создам экземпляр конвейера и впоследствии удалю его, память графического процессора останется. пример кода ниже:
from transformers import pipeline, AutoTokenizer, AutoModelForCausalLM
import torch
import gc
modelId = "meta-llama/Llama-2-7b-chat-hf"
model = AutoModelForCausalLM.from_pretrained(modelId, device_map="auto", torch_dtype=torch.float16)
tokenizer = AutoTokenizer.from_pretrained(modelId)
## if pipeline isnt instantiated, the GPU memory is released upon model del
## if pipeline is instantiated, del pipeline doesnt release GPU memory!
pipeline = pipeline(task="text-generation", model=model, tokenizer=tokenizer)
## clearing out GPU memory
del model
del tokenizer
del pipeline
gc.collect()
torch.cuda.empty_cache()
кто-нибудь еще испытал это? любое понимание или руководство будут очень признательны.
Спасибо