Введение
Салют! Уже ни для кого не секрет, что GigaChat активно развивается, и обновление моделей не заставляет себя долго ждать. Рады сообщить вам, что новые версии GigaChat Lite и GigaChat Pro получили мощный апгрейд и стали еще более креативными, умными и точными в исполнении инструкций, а также получили более высокую оценку, чем ChatGPT (gpt-3.5-turbo-0613) на бенчмарке MMLU. На сегодняшний день GigaChat используют уже более 2,5 миллионов человек.
В новом обновлении GigaChat Lite получил расширение максимального контекста до 32768 токенов (GigaChat Lite+), а GigaChat Pro — до 8192 токенов. Вместе с контекстом мы улучшили качество ответов, превзойдя ChatGPT на русском SBS и английском MMLU, а также сделали апдейт датасетов по экономике, медицине и праву, добавили экспертные и редакторские данные, а также прокачали функции (улучшили работу запросов).
Узнать, как попробовать самую сильную версию GigaChat бесплатно, можно в конце статьи.
Метрики
Подробности о методике подсчета SBS и других метрик мы раскрывали в предыдущей статье.
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)