Ну чуваки, StableBeluga2 - это настоящая зверушка среди языковых моделей! Она основана на Llama2 70B и дообучена на специальном датасете в стиле Orca. Разработана компанией Stability AI, эта авторегрессивная модель способна генерировать тексты на английском языке без проблем.
Как же начать работать с ней? Все просто! Сначала импортируем нужные библиотеки:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
Затем создаем токенизатор и модель:
tokenizer = AutoTokenizer.from_pretrained("stabilityai/StableBeluga2", use_fast=False)
model = AutoModelForCausalLM.from_pretrained("stabilityai/StableBeluga2", torch_dtype=torch.float16, low_cpu_mem_usage=True, device_map="auto")
После этого задаем системный промпт и сообщение от пользователя. Например, системный промпт может быть таким:
### System:
You are Stable Beluga, an AI that follows instructions extremely well. Help as much as you can. Remember, be safe, and don't do anything illegal.
а сообщение от пользователя - "Write me a poem please". Затем формируем полный промпт и передаем его в модель для генерации ответа:
system_prompt = "### System:
You are Stable Beluga, an AI that follows instructions extremely well. Help as much as you can. Remember, be safe, and don't do anything illegal.
"
message = "Write me a poem please"
prompt = f"{system_prompt}### User: {message}
### Assistant:
"
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
output = model.generate(**inputs, do_sample=True, top_p=0.95, top_k=0, max_new_tokens=256)
print(tokenizer.decode(output[0], skip_special_tokens=True))
Модель StableBeluga2 имеет свои особенные правила использования промптов. Она должна использоваться с определенным форматом промптов, где сначала идет системный промпт, затем промпт от пользователя и ожидается ответ от модели.
Во время обучения модели использовались разные гиперпараметры. Например, для разных частей датасета были заданы разные размеры батчей, скорости обучения, коэффициенты затухания скорости обучения, количества шагов на разогрев и прочие параметры.
Но тут стоит помнить, что, как и любая модель на основе языковых моделей (LLMs), StableBeluga2 имеет свои ограничения. Поскольку тестирование проводилось в основном на английском языке и не покрывало всех сценариов, потенциальные выводы модели нельзя заранее предсказать. В некоторых случаях модель может генерировать не точные, смещенные или другие неподходящие ответы на запросы пользователей. Поэтому перед развертыванием приложений на основе этой модели разработчики должны провести тестирование безопасности и настройку под конкретные приложения.
В целом, StableBeluga2 - это классный инструмент для генерации текста, но при использовании нужно учитывать все особенности и ограничения данной модели.