Zamba2-mini: компактная и производительная модель с гибридной архитектурой.Zamba…
Zamba2-mini – гибридная модель c 1.2B параметров, построенная из блоков state-space Mamba (SSM) и transformer.
Модель создана на общей архитектуре Zamba, но отличается от большей модели 2.7B тремя особенностями:
Zamba2-mini использует токенизатор Mistral v0.1 и была предварительно обучена на 3 триллионах токенов текстовых данных и коде различных языков программирования, полученных из открытых веб-наборов данных, к которым был добавлен собственный корпу данных Zyda.
Впоследствии, на втором этапе Zamba2-mini была подвергнута дополнительной фазе агрессивного снижения скорости обучения на смеси из 100B высококачественных токенов.
Zamba2-mini показала в тестах результаты, сопоставимые с моделями с параметрами <2B и может конкурировать с некоторыми LLM большего размера.
Благодаря уникальной гибридной архитектуре SSM Zamba2-mini демонстрирует низкие задержки логического вывода и быструю генерацию при значительно меньшем потреблении VRAM, чем другие модели такой же плотности параметров на основе трансформеров.
Такие характеристики делает ее идеальной универсальной моделью для приложений на устройствах.
⚠️ Примечание: Zamba2-mini еще не полностью совместима со всеми фреймворками и инструментами HuggingFace.
Реализацию Zamba2-1.2B для Pytorch можно найти здесь.
# Clone repositiry
git clone https://github.com/Zyphra/transformers_zamba2.git
#Install requirments:
cd transformers_zamba2
pip install -e .
pip install accelerate
#Inference
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
tokenizer = AutoTokenizer.from_pretrained("Zyphra/Zamba2-1.2B")
model = AutoModelForCausalLM.from_pretrained("Zyphra/Zamba2-1.2B", device_map="cuda", torch_dtype=torch.bfloat16)
input_text = "A funny prompt would be "
input_ids = tokenizer(input_text, return_tensors="pt").to("cuda")
outputs = model.generate(**input_ids, max_new_tokens=100)
print(tokenizer.decode(outputs[0]))