/ Модель

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

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

openchat

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

OpenChat — дообученная на диалогах языковая модель на базе LLaMA-13B для многоходового общения и генерации ответов.

37скачиваний за 30 дней288лайковвеса обновлены4 июл 2023

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

OpenChat — серия языковых моделей для диалогов, разработанная проектом OpenChat. Эта версия основана на LLaMA-13B и дообучена на многоходовых беседах: авторы сообщают об использовании примерно 6 тысяч отобранных диалогов GPT-4 из набора ShareGPT. Модель имеет плотную архитектуру LlamaForCausalLM, около 12,9 млрд параметров и контекст длиной 2048 токенов.

Модель предназначена для ведения диалогов и генерации ответов на английском языке. В README также описаны версии OpenChat-8192 и OpenCoderPlus, но они отличаются от этой модели. Для общения используется шаблон с ролями Human и Assistant и специальным токеном завершения хода. Для загрузки авторы рекомендуют формат bfloat16; в репозитории указаны веса PyTorch.

README приводит высокие результаты на Vicuna GPT-4 evaluation и AlpacaEval, однако это результаты авторской оценки. Лицензия обозначена как other, поэтому условия использования следует сверять с файлами лицензии репозитория.

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

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

Ограничения

Контекст ограничен 2048 токенами. Заявленные результаты основаны на оценках из README, а лицензия указана как other, поэтому условия использования нужно уточнять в репозитории.

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

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

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

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

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

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% Win-rate on AlpacaEval

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,
    )
}

License

Our weight license is subject to their corresponding base model. For example, OpenChat and OpenChat-8192 are the same as the model License of LLaMA for non-commercial use only, while OpenCoderPlus is under the License of StarCoder. Furthermore, we should follow the Privacy Practices of ShareGPT. The code released on GitHub is under Apache License 2.0.

Citation

@software{openllms23,
  title = {{OpenLLMs: Less is More for Open-source Models}},
  author = {Wang, Guan and Cheng, Sijie and Yu, Qiying and Liu, Changling},
  doi = {10.5281/zenodo.8105775},
  url = {https://github.com/imoneoi/openchat},
  version = {pre-release},
  year = {2023},
  month = {7},
}

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

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

GPU в ailist

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

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

Подбираем GPU…

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

0 моделей