/ Модель

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

Контекст
8 192 токена
Параметры
2,5 млрд
Размер весов
5 ГБ
Лицензия
Apache 2.0
Архитектура
gemma · dense
Библиотека
transformers
Опубликована
23 фев 2024

gemma-2b-it_oasst2_chatML_Cluster_2_V1

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

Диалоговая модель Gemma с 2,5 млрд параметров, дообученная на OpenAssistant для генерации ответов на нескольких языках.

23скачиваний за 30 дней1лайквеса обновлены23 фев 2024

Бенчмарки

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

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Текст» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

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

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

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

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

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

NickyNicky/gemma-2b-it_oasst2_chatML_Cluster_2_V1 — чат-модель на архитектуре Gemma, дообученная на основе google/gemma-2b-it на данных OpenAssistant/oasst2. В карточке указаны седьмая эпоха обучения и вариант Cluster_2; метаданные описывают плотную архитектуру GemmaForCausalLM с 2,5 млрд параметров и контекстом до 8192 токенов.

Модель предназначена для диалоговой генерации текста и поддерживает языки, перечисленные в карточке, включая русский и английский. Она распространяется в формате Safetensors через Transformers по лицензии Apache-2.0. Карточка сообщает, что оценка модели пока не опубликована, поэтому качество ответов и сравнительные характеристики не подтверждены.

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

  • ведение диалога с пользователем на русском языке
  • ответы на вопросы в формате чат-бота
  • генерация текста в многоязычных диалогах

Ограничения

В README указано, что оценка модели ещё не опубликована; качество ответов не подтверждено представленными данными.

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

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

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

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

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

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

Открыть на Hugging Face

image/png

reference data model:

  datasets:
    - lang: "bg,ca,cs,da,de,en,es,fr,hr,hu,it,nl,pl,pt,ro,ru,sl,sr,sv,uk"
      link: https://huggingface.co/datasets/NickyNicky/oasst2_clusters

  model:
    - google/gemma-2b-it
      Link:
        https://huggingface.co/google/gemma-2b-it

  Epoch: 7

  future experts: Cluster_2

  Eval model:
    - link:
        soon

!python -m pip install --upgrade pip
!pip install "torch>=2.1.1" -U
!pip install torchaudio==2.2.0
!pip install -q datasets trl peft bitsandbytes sentencepiece wandb
!pip install -q accelerate safetensors deepspeed
!pip install -q scipy ninja -U
!pip install -q -U transformers==4.38.0

Version

import torch
torch.__version__
#OUTPUTS: ('2.2.0+cu121' )

How to use


from transformers import (
    AutoModelForCausalLM,
    AutoTokenizer,
    BitsAndBytesConfig,
    HfArgumentParser,
    TrainingArguments,
    pipeline,
    logging,
    GenerationConfig,
    TextIteratorStreamer,
)

from transformers import StoppingCriteria, StoppingCriteriaList

import torch

model_id='NickyNicky/gemma-2b-it_oasst2_chatML_Cluster_2_V1'

model = AutoModelForCausalLM.from_pretrained(model_id,
                                             device_map="auto",
                                             trust_remote_code=True,
                                             torch_dtype=torch.bfloat16,
                                             attn_implementation="flash_attention_2",
                                             # load_in_4bit=True,
                                             # low_cpu_mem_usage= True,

                                             )

max_length=2055
print("max_length",max_length)


tokenizer = AutoTokenizer.from_pretrained(model_id,
                                          # use_fast = False,
                                          max_length=max_length,)


class ListOfTokensStoppingCriteria(StoppingCriteria):
    """
    Clase para definir un criterio de parada basado en una lista de tokens específicos.
    """
    def __init__(self, tokenizer, stop_tokens):
        self.tokenizer = tokenizer
        # Codifica cada token de parada y guarda sus IDs en una lista
        self.stop_token_ids_list = [tokenizer.encode(stop_token, add_special_tokens=False) for stop_token in stop_tokens]

    def __call__(self, input_ids, scores, **kwargs):
        # Verifica si los últimos tokens generados coinciden con alguno de los conjuntos de tokens de parada
        for stop_token_ids in self.stop_token_ids_list:
            len_stop_tokens = len(stop_token_ids)
            if len(input_ids[0]) >= len_stop_tokens:
                if input_ids[0, -len_stop_tokens:].tolist() == stop_token_ids:
                    return True
        return False

# Uso del criterio de parada personalizado
stop_tokens = ["<end_of_turn>"]  # Lista de tokens de parada

# Inicializa tu criterio de parada con el tokenizer y la lista de tokens de parada
stopping_criteria = ListOfTokensStoppingCriteria(tokenizer, stop_tokens)

# Añade tu criterio de parada a una StoppingCriteriaList
stopping_criteria_list = StoppingCriteriaList([stopping_criteria])



#EXAMPLE #1
txt="""<bos><start_of_turn>system
You are a helpful AI assistant.<end_of_turn>
<start_of_turn>user
Me dices los diferentes tipos de reciclaje que suelen existir en las ciudades europeas<end_of_turn>
<start_of_turn>model
"""

#EXAMPLE #2
txt="""<bos><start_of_turn>system
You are a helpful AI assistant.<end_of_turn>
<start_of_turn>user
What is the meaning of life in the current time?<end_of_turn>
<start_of_turn>model
"""


inputs = tokenizer.encode(txt,
                          return_tensors="pt",
                          add_special_tokens=False).to("cuda:0")
max_new_tokens=1000
generation_config = GenerationConfig(
              max_new_tokens=max_new_tokens,
              temperature=0.55,
              #top_p=0.9,
              #top_k=len_tokens,
              repetition_penalty=1.1, 
              do_sample=True,
          )
outputs = model.generate(generation_config=generation_config,
                         input_ids=inputs,
                         stopping_criteria=stopping_criteria_list,)
tokenizer.decode(outputs[0], skip_special_tokens=False) #True

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

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

GPU в ailist

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

Можно запустить

Подбираем GPU…

Класс архитектуры
GemmaForCausalLM
Ревизия весов
b422682

0 моделей