/ Модель

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

Контекст
8 192 токена
Параметры
12,9 млрд
Размер весов
26 ГБ
Архитектура
llama · dense
Опубликована
22 июн 2023

openchat_8192

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

Производная модели openchat/opencoderplus. OpenCoderPlus — дообученная на StarCoderPlus модель OpenChat для генерации кода и текстового диалога с контекстом до 8192 токенов.

78скачиваний за 30 дней219лайковвеса обновлены2 июл 2023

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Карточка модели openchat/openchat_8192 на Hugging Face совпадает с карточкой openchat/opencoderplus, поэтому описание составлено по ней.

OpenCoderPlus — языковая модель для генерации кода из серии OpenChat, разработанной командой OpenChat. Она дообучена на базе StarCoderPlus и предназначена для продолжения и генерации кода, а также для диалога в формате User/Assistant. Модель использует архитектуру GPTBigCodeForCausalLM, принимает текст и выдаёт текст; заявленная длина контекста — 8192 токена. Карточка сообщает об оценках на Vicuna GPT-4 и AlpacaEval, однако не приводит подробностей методики для задач программирования.

Для диалогов используется шаблон с маркерами User, Assistant и специальным токеном конца хода. Репозиторий содержит веса PyTorch. README рекомендует загружать модель в формате bfloat16. Лицензия в предоставленных данных не указана.

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

  • генерация кода по текстовому запросу
  • продолжение фрагмента программы
  • диалог о программировании в формате User/Assistant

Ограничения

Заявленные в README оценки относятся к общим диалоговым бенчмаркам и сами по себе не подтверждают качество на конкретных задачах программирования. Лицензия в предоставленных данных не указана.

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

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

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

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

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

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

Открыть на Hugging Face

OpenChat: Less is More for Open-source Models

OpenChat is a series of open-source language models fine-tuned on a diverse and high-quality dataset of multi-round conversations. With only ~6K GPT-4 conversations filtered from the ~90K ShareGPT conversations, OpenChat is designed to achieve high performance with limited data.

Generic models:

  • OpenChat: based on LLaMA-13B (2048 context length)
    • 🚀 105.7% of ChatGPT score on Vicuna GPT-4 evaluation
    • 🔥 80.9% Win-rate on AlpacaEval
    • 🤗 Only used 6K data for finetuning!!!
  • OpenChat-8192: based on LLaMA-13B (extended to 8192 context length)
    • 106.6% of ChatGPT score on Vicuna GPT-4 evaluation
    • 79.5% of ChatGPT score on Vicuna GPT-4 evaluation

Code models:

  • OpenCoderPlus: based on StarCoderPlus (native 8192 context length)
    • 102.5% of ChatGPT score on Vicuna GPT-4 evaluation
    • 78.7% Win-rate on AlpacaEval

Note: Please load the pretrained models using bfloat16

Code and Inference Server

We provide the full source code, including an inference server compatible with the "ChatCompletions" API, in the OpenChat GitHub repository.

Web UI

OpenChat also includes a web UI for a better user experience. See the GitHub repository for instructions.

Conversation Template

The conversation template involves concatenating tokens.

Besides base model vocabulary, an end-of-turn token <|end_of_turn|> is added, with id eot_token_id.

# OpenChat
[bos_token_id] + tokenize("Human: ") + tokenize(user_question) + [eot_token_id] + tokenize("Assistant: ")
# OpenCoder
tokenize("User:") + tokenize(user_question) + [eot_token_id] + tokenize("Assistant:")

Hint: In BPE, tokenize(A) + tokenize(B) does not always equals to tokenize(A + B)

Following is the code for generating the conversation templates:

@dataclass
class ModelConfig:
    # Prompt
    system: Optional[str]

    role_prefix: dict
    ai_role: str
    eot_token: str
    bos_token: Optional[str] = None

    # Get template
    def generate_conversation_template(self, tokenize_fn, tokenize_special_fn, message_list):
        tokens = []
        masks = []

        # begin of sentence (bos)
        if self.bos_token:
            t = tokenize_special_fn(self.bos_token)
            tokens.append(t)
            masks.append(False)

        # System
        if self.system:
            t = tokenize_fn(self.system) + [tokenize_special_fn(self.eot_token)]
            tokens.extend(t)
            masks.extend([False] * len(t))

        # Messages
        for idx, message in enumerate(message_list):
            # Prefix
            t = tokenize_fn(self.role_prefix[message["from"]])
            tokens.extend(t)
            masks.extend([False] * len(t))

            # Message
            if "value" in message:
                t = tokenize_fn(message["value"]) + [tokenize_special_fn(self.eot_token)]
                tokens.extend(t)
                masks.extend([message["from"] == self.ai_role] * len(t))
            else:
                assert idx == len(message_list) - 1, "Empty message for completion must be on the last."

        return tokens, masks


MODEL_CONFIG_MAP = {
    # OpenChat / OpenChat-8192
    "openchat": ModelConfig(
        # Prompt
        system=None,

        role_prefix={
            "human": "Human: ",
            "gpt": "Assistant: "
        },
        ai_role="gpt",
        eot_token="<|end_of_turn|>",
        bos_token="<s>",
    ),

    # OpenCoder / OpenCoderPlus
    "opencoder": ModelConfig(
        # Prompt
        system=None,

        role_prefix={
            "human": "User:",
            "gpt": "Assistant:"
        },
        ai_role="gpt",
        eot_token="<|end_of_turn|>",
        bos_token=None,
    )
}

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

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

GPU в ailist

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

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

Подбираем GPU…

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

0 моделей