/ Модель

Характеристики

Контекст
32 768 токенов
Параметры
7,1 млрд
Размер весов
18,8 ГБ
Лицензия
Apache 2.0
Архитектура
sparsetral · MoE
Опубликована
5 фев 2024

sparsetral-16x7B-v2

Генерация текстаТекст → текст5 профессий

Англоязычная разговорная модель Sparsetral на архитектуре Mistral MoE для генерации текста и ответов в диалоге.

278скачиваний за 30 дней69лайковвеса обновлены6 фев 2024

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Sparsetral-16x7B-v2 — разговорная языковая модель семейства Sparsetral, представленная serpdotai. Это модель типа mixture-of-experts на архитектуре MistralForCausalLM: из 16 экспертов для обработки токена выбираются 4. По метаданным, в репозитории 7,1 млрд параметров, контекст составляет 32 768 токенов; веса доступны в формате safetensors.

Модель предназначена для генерации текста и диалоговых сценариев общего назначения на английском языке. В README описано дообучение с помощью QLoRA и адаптеров и маршрутизаторов MoE на датасете OpenHermes-2.5; приведён шаблон диалога с ролями system, user и assistant. Разработчик указывает, что для ускоренного инференса существует форк vLLM с поддержкой Sparsetral.

Модель распространяется по лицензии Apache-2.0. README сообщает о последовательностях обучения длиной 4096 токенов, поэтому эта настройка обучения короче указанного в метаданных контекста в 32 768 токенов.

Сценарии применения

  • ответы на вопросы в англоязычном чате
  • генерация диалоговых ответов по шаблону system-user-assistant
  • создание и продолжение англоязычных текстов

Ограничения

README описывает обучение на последовательностях длиной 4096 токенов, тогда как метаданные указывают контекст 32 768 токенов; качество на полной длине контекста отдельно не подтверждено. Карточка не приводит результатов оценки качества.

Для каких профессий подходит5

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Training

  • 8x A6000s
  • Forked version of unsloth for efficient training
  • Sequence Length: 4096
  • Effective batch size: 128
  • Learning Rate: 2e-5 with linear decay
  • Epochs: 1
  • Base model trained with QLoRA (rank 64, alpha 16) and MoE adapters/routers trained in bf16
  • Num Experts: 16
  • Top K: 4
  • Adapter Dim: 512

Prompt Format

<|im_start|>system\n{message}<|im_end|>\n<|im_start|>user\n{message}<|im_end|>\n<|im_start|>assistant\n

Usage

from transformers import AutoModelForCausalLM, AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("serpdotai/sparsetral-16x7B-v2", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("serpdotai/sparsetral-16x7B-v2", device_map="auto", trust_remote_code=True).eval()

system_str = "<|im_start|>system\n{message}<|im_end|>\n"
user_str = "<|im_start|>user\n{message}<|im_end|>\n"
assistant_str = "<|im_start|>assistant\n{message}<|im_end|>\n"

def construct_prompt(messages):
    prompt = ""
    for message in messages:
        if message["from"] in ["human", "user"]:
            prompt += user_str.format(
                message=message["value"]
            )
        elif message["from"] in ["gpt", "assistant"]:
            prompt += assistant_str.format(
                message=message["value"]
            )
        elif message["from"] in ["system", "instruction"]:
            prompt += system_str.format(
                message=message["value"]
            )
        else:
            raise ValueError(
                f"Unknown message type: {message['from']}"
            )
    return prompt + "<|im_start|>assistant\n"

system = "You are a helpful assistant who will help the user to the best of their ability. If you don't know something, say \"I don't know\""
user = "Are you sentient?"

messages = [
    {"from": "system", "value": system},
    {"from": "user", "value": user},
]

prompt = construct_prompt(messages)
inputs = tokenizer(prompt, return_tensors="pt")
inputs = inputs.to(model.device)
pred = model.generate(**inputs, max_length=4096, do_sample=True, top_k=50, top_p=0.99, temperature=0.9, num_return_sequences=1)
print(tokenizer.decode(pred.cpu()[0], skip_special_tokens=True))

Other Information

Paper reference: Parameter-Efficient Sparsity Crafting from Dense to Mixture-of-Experts for Instruction Tuning on General Tasks

Original Paper repo

Forked repo with mistral support (sparsetral)

If you are interested in faster inferencing, check out our fork of vLLM that adds sparsetral support

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм

Нельзя запустить

Модели нужен код из репозитория; автор пока не в списке доверенных организаций.

Класс архитектуры
modeling_sparsetral.MistralForCausalLM
Ревизия весов
87bae27

0 моделей