/ Модель

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

Лицензия
MIT
Архитектура
dcformer · dense
Опубликована
11 мая 2024

DCFormer-2.8B

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

Предварительно обученная модель Caiyun AI на 2,8 млрд параметров для генерации текста с архитектурой динамически компонуемого внимания DCFormer.

175скачиваний за 30 дней2лайкавеса обновлены29 мая 2024

Бенчмарки

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

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

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

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

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

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

DCFormer-2.8B — предварительно обученная языковая модель Caiyun AI на 2,8 млрд параметров, обученная на корпусе The Pile с использованием 300 млрд токенов. Она построена на архитектуре DCFormer с динамически комбинируемыми головами внимания, призванной повысить выразительность и вычислительную эффективность по сравнению с обычным многоголовым вниманием.

Модель предназначена для генерации текста и может использоваться как основа для продолжения текста и экспериментов с языковыми моделями. В карточке приведены ссылка на исследовательскую статью и открытый код обучения на JAX; для ускорения вывода авторы рекомендуют скомпилированную версию с torch.compile. Для загрузки требуется Transformers версии 4.40.2 или новее. Лицензия — MIT.

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

  • генерация продолжения текста
  • эксперименты с архитектурами внимания
  • исследование и оценка языковых моделей
  • дообучение языковой модели под прикладную задачу

Ограничения

Карточка не приводит оценки качества и рекомендует использовать скомпилированной моделью для ускорения вывода. Для загрузки нужна версия Transformers 4.40.2 или новее.

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

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

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

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

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

Открыть на Hugging Face

DCFormer-2.8B is a pretrained language model on the Pile with 300B tokens, which is a parameter and computation efficient attention architecture that tackles the shortcomings of MHA and increases the expressive power of the model by dynamically composing attention heads. It is short for DCFormer++2.8B and please see downstrem evaluations and more details in the paper(Improving Transformers with Dynamically Composable Multi-Head Attention). In addition, we open-source Jax training code on (Github).

We recommend compiled version of DCFormer with torch.compile for inference acceleration. Please refer to Generation section for compile implementation.

Usage

Env

You need to upgrade transformers to avoid (loading problems).

pip install transformers>=4.40.2

Generation

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

import os
os.environ['TOKENIZERS_PARALLELISM'] = 'false'

tokenizer = AutoTokenizer.from_pretrained("Caiyun-AI/DCFormer-2.8B")
model = AutoModelForCausalLM.from_pretrained("Caiyun-AI/DCFormer-2.8B", trust_remote_code=True)

device = torch.device('cuda')
MAX_BATCH_SIZE = 1
MAX_SEQ_LENGTH = 2048
NUM_TOKENS_TO_GENERATE = 100
COMPILE = True

_ = model.to(device=device,dtype=torch.float16)
with torch.device(device):
    model.setup_caches(max_batch_size=MAX_BATCH_SIZE, max_seq_length=MAX_SEQ_LENGTH, set_kv_cache=True)

def decode_one_token(model, cur_token, input_pos):
    logits = model(cur_token, input_pos=input_pos, return_tensor=True)
    new_token = torch.argmax(logits[:, -1], dim=-1)[:,None]
    return new_token

prompt = "Beijing is the capital of China. London is the capital of"
input_ids = tokenizer.encode(prompt, return_tensors='pt')

compiled_decode_one_token = torch.compile(decode_one_token,mode="reduce-overhead", fullgraph=True) if COMPILE else None

with torch.no_grad():
    generated_ids = model.generate(input_ids.to(device),num_tokens_to_generate=NUM_TOKENS_TO_GENERATE, compiled_decode_one_token=compiled_decode_one_token)
    text = tokenizer.decode(generated_ids[0])
    print('generated text:', text)

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

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

GPU в ailist

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

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

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

Класс архитектуры
DCFormer
Ревизия весов
51d254e

0 моделей