Advertisement
Guest User

Untitled

a guest
Sep 18th, 2024
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.87 KB | None | 0 0
  1. from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
  2. import torch
  3.  
  4. # Замените 'your_model_path' на путь к вашей модели
  5. model_name = "Reflection-70B"
  6.  
  7. # Настройки квантовки с float32 offload на CPU
  8. bnb_config = BitsAndBytesConfig(
  9.     load_in_8bit=True  # Загрузка в 8-битном формате
  10. )
  11.  
  12. # Загрузка токенизатора
  13. tokenizer = AutoTokenizer.from_pretrained(model_name)
  14.  
  15. # Явное распределение устройства и offload float32 на CPU
  16. model = AutoModelForCausalLM.from_pretrained(
  17.     model_name,
  18.     quantization_config=bnb_config,  # Используем объект конфигурации BitsAndBytes
  19.     device_map="auto",  # Автоматическое распределение между CPU и GPU
  20.     load_in_8bit_fp32_cpu_offload=True,  # Offload float32 модулей на CPU
  21.     trust_remote_code=True
  22. )
  23.  
  24. # Функция для генерации ответа
  25. def generate_response(prompt, max_length=100):
  26.     inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
  27.     with torch.no_grad():
  28.         outputs = model.generate(**inputs, max_length=max_length, pad_token_id=tokenizer.eos_token_id)
  29.     return tokenizer.decode(outputs[0], skip_special_tokens=True)
  30.  
  31. # Основная функция чата
  32. def chat():
  33.     print("Чат с моделью начат. Для выхода введите 'exit'.")
  34.     while True:
  35.         # Получаем ввод от пользователя
  36.         user_input = input("Вы: ")
  37.         if user_input.lower() == "exit":
  38.             print("Чат завершен.")
  39.             break
  40.        
  41.         # Генерация ответа
  42.         response = generate_response(user_input)
  43.         print(f"Модель: {response}")
  44.  
  45. # Запуск чата
  46. chat()
  47.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement