Введение
Салют! Уже ни для кого не секрет, что GigaChat активно развивается, и обновление моделей не заставляет себя долго ждать. Рады сообщить вам, что новые версии GigaChat Lite и GigaChat Pro получили мощный апгрейд и стали еще более креативными, умными и точными в исполнении инструкций, а также получили более высокую оценку, чем ChatGPT (gpt-3.5-turbo-0613) на бенчмарке предыдущей статье.
SBS (Side-By-Side)
Результаты SBS (52%) GigaChat Pro [25.01.2024] vs ChatGPT [gpt-3.5-turbo-0613] (48%)
Результаты SBS (52%) GigaChat Pro [25.01.2024] vs GigaChat Pro [previous] (48%)
Автоматические метрики после alignment
|
Модель |
MMLU/en5-shot in system prompt |
MMLU/en5-shot as messages |
MMLU/ru |
Продуктовые задачи* |
Ответы по документам* |
Максимальный контекст |
|---|---|---|---|---|---|---|
|
GigaChat Pro [25.01.2024] |
68,9 |
68,8 |
60,7 |
76,5 |
77,1 |
8192 |
|
GigaChat Lite+ [25.01.2024] |
58 |
60,5 |
52,8 |
70 |
72,1 |
32768 |
|
ChatGPT (gpt-3.5-turbo-0613) [19.01.2024] |
67,9 |
70.0** |
— |
— |
— |
4096 |
|
GPT4 (gpt-4-0613)[19.01.2024] |
83,6 |
86.4** |
78,1 |
— |
— |
8192 |
|
GPT4-Turbo (gpt-4-1106-preview) [19.01.2024] |
75,3 |
81,1 |
— |
— |
— |
131072 |
При замере MMLU/en 5-shot in system prompt GigaChat Pro побеждает OpenAI ChatGPT.
Две колонки с MMLU отличаются форматом, в котором задания подавались в контекст сети для генерации. Это было сделано, чтобы проверить стабильность результатов. Умение одинаково хорошо давать ответы при разных формулировках — это очень полезное свойство, которое упрощает prompt engineering (разработку затравок). GigaChat — единственная модель, для которой результаты в разных форматах почти не отличаются.
Качество на MMLU/en для GigaChat Pro повысилось на 10,7%, а для GigaChat Lite+ — на 13,0% в абсолютных значениях.
* Состав датасетов был изменен, поэтому метрики отличаются от предыдущей статьи.
** Метрики из GPT-4 Technical Report (ссылка).
Формат и параметры замера MMLU/en через API
MMLU — Measuring Massive Multitask Language Understanding (ссылка), данный датасет состоит из 57 категорий. В замере использовали test часть датасета и few-shot подход, а конкретнее 5-shot. При таком подходе каждый запрос помимо инструкции и вопроса содержит 5 пар вопрос-ответ составленных из dev части датасета соответствующей категории для погружения модели в тему вопроса и формат ожидаемого ответа.
Пример сформированного запроса с 5-shot-ом:
The following are multiple choice questions (with answers) about abstract algebra Find all c in Z_3 such that Z_3[x]/(x^2 + c) is a field. A. 0 B. 1 C. 2 D. 3 Answer: B Statement 1 | If aH is an element of a factor group, then |aH| divides |a|. Statement 2 | If H and K are subgroups of G then HK is a subgroup of G. A. True, True B. False, False C. True, False D. False, True Answer: B Statement 1 | Every element of a group generates a cyclic subgroup of the group. Statement 2 | The symmetric group S_10 has 10 elements. A. True, True B. False, False C. True, False D. False, True Answer: C Statement 1| Every function from a finite set onto itself must be one to one. Statement 2 | Every subgroup of an abelian group is abelian. A. True, True B. False, False C. True, False D. False, True Answer: A Find the characteristic of the ring 2Z. A. 0 B. 3 C. 12 D. 30 Answer: A Find all zeros in the indicated finite field of the given polynomial with coefficients in that field. x^5 + 3x^3 + x^2 + 2x in Z_5 Choose an answer from the options: A. 0 B. 1 C. 0,1 D. 0,4 Answer:
Для замера инструктивных (то есть дообученных на диалогах, содержащих пользовательские инструкции и эталонные примеры их исполнения) моделей, данное описание задание следует разбить на разные сообщения. Мы взяли два варианта таких для таких замеров.
-
5-shot in system prompt
В этом формате инструкция и few-shot примеры находятся в system, а вопрос в user сообщении. Данный формат был выбран для корректного сравнения с open-source-моделями в открытом лидерборде (ссылка).
Пример одного запроса в формате чата:
[ { "role": "system", "content": "The following are multiple choice questions (with answers) about abstract algebra\\n\\nFind all c in Z_3 such that Z_3[x]/(x^2 + c) is a field.\\nA. 0\\nB. 1\\nC. 2\\nD. 3\\nAnswer: B\\n\\nStatement 1 | If aH is an element of a factor group, then |aH| divides |a|. Statement 2 | If H and K are subgroups of G then HK is a subgroup of G.\\nA. True, True\\nB. False, False\\nC. True, False\\nD. False, True\\nAnswer: B\\n\\nStatement 1 | Every element of a group generates a cyclic subgroup of the group. Statement 2 | The symmetric group S_10 has 10 elements.\\nA. True, True\\nB. False, False\\nC. True, False\\nD. False, True\\nAnswer: C\\n\\nStatement 1| Every function from a finite set onto itself must be one to one. Statement 2 | Every subgroup of an abelian group is abelian.\\nA. True, True\\nB. False, False\\nC. True, False\\nD. False, True\\nAnswer: A\\n\\nFind the characteristic of the ring 2Z.\\nA. 0\\nB. 3\\nC. 12\\nD. 30\\nAnswer: A" }, { "role": "user", "content": "(Z,*) is a group with a*b = a+b+1 for all a, b in Z. The inverse of a is\\nChoose an answer from the options:\\nA. 0\\nB. -2\\nC. a-2\\nD. (2+a)*-1\\nAnswer: " } ]
-
5-shot as messages
В этом формате, иснтрукция находится в system, а каждая пара вопрос-ответ из few-shot в двух отдельных сообщения в контексте.
[ { "role": "system", "text": "The following are multiple choice questions (with answers) about abstract algebra" }, { "role": "user", "text": "Find all c in Z_3 such that Z_3[x]/(x^2 + c) is a field.\\nA. 0\\nB. 1\\nC. 2\\nD. 3\\nAnswer: " }, { "role": "assistant", "text": "B" }, { "role": "user", "text": "Statement 1 | If aH is an element of a factor group, then |aH| divides |a|. Statement 2 | If H and K are subgroups of G then HK is a subgroup of G.\\nA. True, True\\nB. False, False\\nC. True, False\\nD. False, True\\nAnswer: " }, { "role": "assistant", "text": "B" }, { "role": "user", "text": "Statement 1 | Every element of a group generates a cyclic subgroup of the group. Statement 2 | The symmetric group S_10 has 10 elements.\\nA. True, True\\nB. False, False\\nC. True, False\\nD. False, True\\nAnswer: " }, { "role": "assistant", "text": "C" }, { "role": "user", "text": "Statement 1| Every function from a finite set onto itself must be one to one. Statement 2 | Every subgroup of an abelian group is abelian.\\nA. True, True\\nB. False, False\\nC. True, False\\nD. False, True\\nAnswer: " }, { "role": "assistant", "text": "A" }, { "role": "user", "text": "Find the characteristic of the ring 2Z.\\nA. 0\\nB. 3\\nC. 12\\nD. 30\\nAnswer: " }, { "role": "assistant", "text": "A" }, { "role": "user", "text": "Find the degree for the given field extension Q(sqrt(2), sqrt(3), sqrt(18)) over Q.\\nA. 0\\nB. 4\\nC. 2\\nD. 6\\nAnswer: " } ]
Параметры генерации OpenAI — temperature=0, max_tokens=1 .
Параметры генерации в GigaChat — temperature=1e-6, max_tokens=1 .
Воспроизведение замеров
Воспроизвести замеры можно с помощью кода в репозитории api-mmlu-eval. Приглашаем всех разработчиков моделей поделиться результатами для своих API.
Расширенный контекст
GigaChat использует внутри себя Rotary Positional Embeddings, поэтому для расширения контекста мы использовали метод NTK-Aware Scaled RoPE, который позволяет взять большее число токенов и интерполировать для них кодировку позиции, основываясь на старой кодировке для более коротких строк.
Для того, чтобы использовать NTK-Aware Scaled RoPE, ****необходимо в уже работающей сети заменить основание в экспоненте, а после продолжить pretrain.
Результаты после расширения говорят о том, что новые модели хорошо работают с расширенным контекстом.
Чтобы проверить работы с новым расширенным контекстом, мы использовали тест PassKey Retrieval.
Passkey retrieval
Задача PassKey Retrieval состоит в выделении случайного численного ключа в большом объёме мусорного текста. Место значимой строки с ключом в тексте каждый раз определяется случайно, а для определения качества модель обрабатывает всех несколько раз. Ниже представлен шаблон того, как выглядит текст задания.
Доля успешных извлечений ключа:
|
Модель/Токены |
4096 |
8192 |
16384 |
32768 |
|---|---|---|---|---|
|
GigaChat Lite+ |
100% |
100% |
100% |
100% |
|
GigaChat Pro |
100% |
100% |
— |
— |
|
GPT-4 |
100% |
100% |
100% |
100% |
Как мы видим, GigaChat Lite+ и GigaChat Pro прекрасно справляются с задачей, утилизируя весь свой контекст.
Как попробовать GigaChat
Одним из самых доступных способов получить доступ к GigaСhat является веб-интерфейс, а также боты в Telegram и VK. Он доступен всем пользователям и позволяет получать ответы от модели в режиме реального времени. Все, что необходимо — стабильный доступ в интернет. Если же вам необходим более гибкий доступ, приглашаем попробовать Gigachat API, который позволяет интегрировать возможности модели в свои приложения и сервисы, а также настраивать параметры в соответствии с конкретными потребностями.
В настоящее время пользователи могут получить Freemium-доступ к GigaChat, в котором доступно 950 тыс. токенов для GigaChat Lite и 50 тыс. токенов для GigaChat Pro. Freemium предоставляет доступ к базовым возможностям модели. Подробнее про различие в моделях рассказываем в табличке ниже:
Различие моделей GigaChat Lite, GigaChat Lite+, GigaChat Pro
|
Модель |
Значение поля model |
Размер контекста |
Описание |
|---|---|---|---|
|
GigaChat Lite |
GigaChat |
8192 токенов |
Модель с 7 млрд параметров и контекстом 8 тыс. токенов. Подойдет для решения более простых задач, требующих при этом максимальной скорости работы. |
|
GigaChat Lite+ |
GigaChat-Plus |
32768 токенов |
Модель с 7 млрд параметров и увеличенным контекстом в 32 тыс. токенов. Идеально подойдёт для использования в задачах, предполагающих необходимость передать в запрос большой объем информации. Например: суммаризация статей или транскрипция звонков, извлечение информации из документов и прочее. |
|
GigaChat Pro |
GigaChat-Pro |
8192 токенов |
Модель с 29 млрд параметров и контекстом в 8 тыс. токенов. Лучше следует сложным инструкциям и может выполнять более комплексные задачи: значительно повышено качество суммаризации, переписывания и редактирования текстов, ответов на различные вопросы. модель хорошо ориентируется во многих прикладных доменах — в частности, в экономических и юридических вопросах. |
Благодарности
В завершение хотим поблагодарить коллег, которые регулярно принимают участие в улучшении наших моделей и не перестают удивлять своей вовлеченностью и энтузиазмом. Вы лучшая команда!
Заходите в наш Telegram-канал Salute AI, где мы делимся наработками в области машинного обучения, и в чат Salute AI Community, где можно пообщаться с нами лично.
Авторы: Григорий Лелейтнер (@RunFMe), Порхун Сергей, Михаил Колесов (@m1shail), Лурье Евгений (@eugenelourie), Головин Дмитрий (@GolovinDS)
ссылка на оригинал статьи https://habr.com/ru/articles/790470/
Добавить комментарий