Коль желаешь, читай статью
Коль желаешь, читай статью

Обращаясь к мастерам научной фантастики, всё чаще удивляешься их проницательности. В рассказе Артура Кларка «Девять миллиардов имён Бога» компьютер воплотил пророчество тибетских монахов о наступлении конца света, а в повести Ника Горькавого «Астровитянка» ИИ был единственным другом маленькой девочки в течение десятка лет и помог ей выжить на чужой планете. Многие люди, включая специалистов, верят как в позитивный, так и в негативный путь развития искусственного интеллекта. К счастью, подобные системы являются лишь инструментом, который можно использовать себе во благо, или оставаться в стороне от этого. Уверен, что в течение нескольких лет ажиотаж вокруг нейросетей постепенно спадёт до такой степени, что мы будем относиться к ним как к ещё одному подарку технического прогресса.

А пока мы с вами находимся в настоящем и предвкушаем наступление новой технологической эры, предлагаю разобраться в основах машинного обучения и познакомиться с новой версией GigaChat'а. В ней нам удалось добиться качественного прорыва, обойти аналогичные по размеру языковые модели, а также расширить максимальную длину входного запроса модели и проделать множество других улучшений. Но обо всём по порядку.

Что такое языковая модель

В прошлый раз мы рассказывали про GigaChat и его возможности, и даже выкладывали лежащую в его основе языковую модель ruGPT-3.5 13B в открытый доступ. Давайте немного освежим в памяти знания о том, что такое языковая модель, а заодно обсудим базовые понятия в машинном обучении и NLP (Natural Language Processing, обработка естественного языка).

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

Модели на правилах

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

— Привет
— Добрый день!
— Меня зовут Гриша
— Приятно познакомиться
— Сочини хокку про соловья
— К сожалению, у меня нет правила для ответа на данный вопрос

Можно написать тысячи таких правил, добавить для каких-то из них память (например, чтобы запомнить имя пользователя), добавить гибкости через предварительную классификацию пользовательского ввода, чтобы расширить «попадание» в наши правила.

— Хай
— Добрый день!
— Меня зовут Лиза
— Приятно познакомиться, Лиза!
— Сочини хокку про соловья
— По этому запросу я могу выдать вам стихотворение Пушкина “Птичка”

Выглядит довольно ограниченно, но такие системы сегодня активно используются, когда необходимо обработать небольшое количество сценариев диалога. Например, при обращении в техническую поддержку или при заказе пиццы по телефону. Одним из ярких примеров такой системы можно смело назвать программу ELIZA, разработанную в середине 1960-х годов Джозефом Вейценбаумом. По описанию автора, ELIZA является пародией на работу психотерапевта, так как в большинстве случаев переадресует вопрос собеседнику, а также вычленяет ключевые слова, наподобие «отец» и «мать» и отвечает глубокомысленными заготовками. При отсутствии шаблона, Элиза могла ответить «Я понимаю» и попросить продолжить.

Вот пример подобного диалога, смоделированного через GigaChat:

Про покормить я знал и так
Про покормить я знал и так

Prompt

Здесь мы подали в GigaChat особенное начало нашего запроса (он называется «prompt» («промпт»), а также «затравка» или «подводка»), в котором попросили вести ассистента определённым образом. Есть ещё один вид промпта, системный, и он, как правило, не виден пользователю. В нём обычно находятся базовые инструкции по поведению модели, указывающие ей отвечать полно, вежливо и доступно.

Возвращаясь к моделям на правилах, можно сказать, что выглядят они довольно ограниченно, но такие системы используются и сегодня, когда необходимо обработать небольшое количество сценариев диалога. Например, при обращении в техническую поддержку.

Статистические модели

Следующим подходом в развитии языкового моделирования являются статистические модели. Давайте попробуем взять все буквы алфавита и посчитать, сколько раз каждая из них идёт за остальными в каком-либо наборе текстов (корпусе). Для примера возьмём список из тысячи женских имён и составим по ним таблицу переходов (точка здесь означает начало или окончание слова):

Статистическая модель
Статистическая модель

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

Давайте придумаем несколько новых имён с помощью нашей модели. Чтобы это сделать, разберёмся с вероятностями. Вероятность P(’.а’) = 0,12 означает, что при генерации N первых символов имени примерно 12% из них будут буквой «а». То же самое будет и с переходами: P(’ин’) = 0,21 будет означать, что в 21% случаев после буквы «и» будет идти буква «н». Таким образом, подставляя последнюю букву генерируемого слова в нашу модель, мы будем получать следующую, пока нам не попадётся точка. Проделаем так 10 раз:

гинэса.
мизгуза.
зувия.
нама.
алинцития.
слибожанака.
фаня.
микаса.
тальгеора.

Путём нехитрых подсчетов мы научились создавать новые слова, напоминающие обучающую выборку, состоящую из женских имён. Такой же трюк можно проделать с любым другим списком слов и нагенерировать, например, воображаемые названия городов или блюд неизвестной кухни.

Нейросетевые модели, про которые мы поговорим дальше, уже видели подобные корпуса и много чего ещё, поэтому также помогут вам сгенерировать что-то необычное без подсчёта необходимых статистик.

Меню в стиле Дугласа Адамса
Меню в стиле Дугласа Адамса

Как и модели на правилах n-граммные модели не являются достаточно гибкими для полноценной генерации текста. Если интересно, почему так, предлагаю обсудить это в комментариях, а мы тем временем продолжим наше знакомство с системами искусственного интеллекта. На очереди нейросетевые модели.

Нейросети

Будем искать
Будем искать

Мы не зря рассмотрели вышеприведённые примеры языковых моделей, они помогут нам понять основной принцип работы нейросетей.

Если в n-граммной модели, где n = 11, мы рассчитаем статистику для одиннадцати слов, то сможем генерировать текст, получая вероятности очередного слова, опираясь на контекст лишь в десять слов назад, при этом мы не будем обращать внимание на какое-то конкретное слово в этой последовательности.

Нейросети, по сути, тоже работают на статистическом уровне, предсказывая кусочек текста за кусочком (такой кусочек называется токеном и обычно состоит из нескольких символов). Количество и состав токенов мы задаём сами на этапе построения токенизатора, от этого будет зависеть максимальная длина текста, с которым сможет работать модель. Например, в ChatGPT средняя длина токенов для русского и английского языков различается, так как русский не является в модели основным и был мало представлен на этапе обучения.

Контекст большинства современных языковых моделей начинается с 2 тысяч токенов, а это примерно 3–4 листа печатного текста формата A4. Помимо этого, внутри у сети не просто словарь с вероятностями, по которому расчитывается распределение токенов. Обученная нейросеть умеет обращать внимание на определённые части входного текста, которые она считает более важными в каждый момент генерации. Подробнее про этот механизм и архитектуру трансформерных моделей можно почитать в статье Джея Аламмара “The Illustrated Transformer”.

Но главная прелесть обучения нейросетевых моделей заключается в том, что у вас нет необходимости писать конкретные «правила» для его работы, модель сама научится обобщать свои знания на основе предоставленных данных. Данные эти должны представлять собой огромный массив текстов с самыми разнообразными знаниями. Десятки тысяч книг, миллионы документов, миллиарды интернет-страниц, научные статьи, песни, стихи и всё остальное.

Собрать и подготовить соответствующий набор данных, обучить модель с нуля на кластере из тысяч графических ускорителей, переделывать, когда что-то не получается, и постоянно придумывать пути для улучшения качества — очень сложная задача. Но оно того стоит.

GigaChat

Про основные этапы обучения моделей, лежащих в основе GigaChat'а (мы назвали их NeONKA — NEural Omnimodal Network with Knowledge-Awareness) и больших языковых моделей (они же LLM, Large Language Models) вообще, вы можете прочитать в нашей статье. Если вкратце, то процесс обучения состоит из подготовки данных, обучения основной модели (pretrain) и её дополнительного выравнивания на инструктивных наборах данных (SFT, supervised fine-tuning и RLHF, reinforcement learning from human feedback).

Переосмыслив накопленные знания, мы обратили пристальное внимание на процесс подготовки данных, значительно расширив и улучшив наш обучающий набор. Это миллионы документов, книг и скачанных интернет-страниц. А так как любой эксперимент с LLM требует большого количества вычислительных ресурсов, то мы вложили много сил в оптимизацию обучения, увеличив его скорость в разы.

Всё это позволило нам прийти к новой линейке моделей, одну из которых мы с сегодняшнего дня начинаем использовать в GigaChat’е. Помимо очевидных вещей, вроде качества получаемых генераций, мы хотим поделиться и некоторыми метриками, полученными для первой модели из этой линейки, модели размером в 7 миллиардов параметров.

Метрики

Одним из самых популярных тестов для оценки больших языковых моделей является MMLU. Он представляет собой набор закрытых вопросов (когда нужно выбрать один из предложенных вариантов) на 57 тем (математика, физика, экономика и другие). Подробнее про него можно почитать в статье “Measuring Massive Multitask Language Understanding”.

При случайном гадании этот тест покажет около 25% правильных ответов. Самая продвинутая на сегодняшний день модель GPT-4 от OpenAI показывает результат в 86,4%, Llama 2 7B — 45,3%, а люди, в зависимости от квалификации, по оценкам авторов теста получают в районе 34,5% для среднестатистических пользователей (замерялось на платформе MTurk) и до 89% для экспертов в своей области.

Этот показатель можно считать за условную «умность» модели, хотя и к нему и есть некоторые вопросы, связанные со способом замеров. Как бы то ни было, но в первой итерации мы показывали около 30% правильных ответов. Проверив другие гипотезы, нам удалось добиться того, чтобы этот показатель пробил и 30%, и 40%, а затем и 50%, составив 51,49%.

Чтобы понять, какие улучшения получила модель с точки зрения конкретных прикладных задач, мы провели сравнительный тест (side by side) с нашей предыдущей лучшей моделью (13 млрд параметров). Вот результат этого теста:

Результаты SBS
Результаты SBS

Значительно улучшились навыки суммаризации текстов, ответов на вопросы, генерации идей и перевода.

Кроме сравнения с предыдущей моделью мы провели SBS-сравнение  с моделью ChatGPT (gpt3.5-turbo). Здесь мы также зафиксировали рывок до 43/57 против 33/67 у предыдущей модели. Результат отличный, но есть куда стремиться.

Напоследок

Само собой, мы любим наши модели и, как следствие, относимся к ним с бóльшим теплом, чем к конкурентам. Поэтому предлагаем вам самим оценить качество генераций, так как GigaChat сейчас доступен для всех бесплатно. Попробовать его можно на различных платформах.

Если хотите попробовать погенерировать через web-интерфейс (он хорош тем, что сохраняет историю ваших диалогов, позволяет добавлять запросы в избранное и т. д.), нужно перейти по ссылке https://developers.sber.ru/gigachat/ и зайти в свой аккаунт (при первом входе нужно будет зарегистрироваться).

В Telegram обитает @gigachat_bot, которому можно написать напрямую или добавить его в ваш чат с друзьями и коллегами.

Появился новый бот и в VK, для общения с ним переходите по адресу vk.me/gigachat. Его также можно добавить в групповой чат на этой платформе.

Нам очень интересна ваша обратная связь и идеи по развитию. Например, ничего не было сказано про мультимодальность, а ведь в GigaChat'е реализована генерация изображений на основе нейросети Kandinsky. Возможно, вы хотели бы добавить генерацию видео? В общем, ждём ваших идей.

Благодарности

Как уже говорилось ранее, задача по осуществлению такого проекта требует титанических усилий. Участвуя в этом процессе, я не перестаю удивляться энтузиазму коллег, генерирующих идеи и готовых воплощать их в жизнь в любое время дня и ночи. Девушки и парни из SberDevices, Sber AI и Научно-исследовательского института искусственного интеллекта AIRI, вы лучшие.

На связи с вами

Также приглашаю вас в наш Telegram-канал Salute AI, в котором мы с коллегами начали делиться наработками в области машинного обучения и другими рабочими моментами. А в соответствующем чатике Salute AI Community можно напрямую поспрашивать про всё это и просто пообщаться.

Комментарии (85)


  1. simenoff
    19.10.2023 09:08
    +4

    Затем выбрать «Мой GigaChat» и приступить к генерациям.

    Не нашёл


    1. averkij Автор
      19.10.2023 09:08
      +1

      Привет, должно работать. Попробуйте, пожалуйста, перелоигниться.

      И как будто бы у вас не та вкладка, зайдите на эту: https://developers.sber.ru/studio/workspaces


      1. simenoff
        19.10.2023 09:08
        +1

        Нету


        1. averkij Автор
          19.10.2023 09:08

          А вот по этой ссылке?

          https://developers.sber.ru/gigachat/


          1. simenoff
            19.10.2023 09:08
            +3

            Привет, это GigaChat. Сожалею, но я доступен только для пользователей, авторизованных через Сбер ID


            1. averkij Автор
              19.10.2023 09:08

              Вот, в первый раз нужно зарегистрироваться и тогда можно начинать пользоваться.


              1. dekeyro
                19.10.2023 09:08
                +1

                А если этого аккаунта нет? просто почта уже не прокатывает?


                1. averkij Автор
                  19.10.2023 09:08

                  Через web придется зарегать, это излишки платформы, она общая под все сервисы. Без аккаунта можно в telegram погонять.


                  1. izirayd
                    19.10.2023 09:08
                    +2

                    "Через web придется зарегать, это излишки платформы"

                    Я правильно понимаю что СберID имеет полную ассоциацию со всеми паспортными данными и прочим? Как остаться анонимным? Не знаю как у других, но для меня давать доступ сбербанку читать переписку между мной и ботом это как пустить посторонних в личное пространство. Для ChatGPT мне не нужно давать свой паспорт, что бы они точно знали кто у них в чате. У вас описана политика конфиденциальности и там есть пункт:
                    Например, Ваши Персональные данные необходимы в следующих случаях:
                    - для направления Вам рекламно-информационных и новостных рассылок;

                    То есть, вы можете анализировать мою переписку с чат ботом, после спамить мне рекламу на основе моих интересов сразу с банка


                    1. Mountlander
                      19.10.2023 09:08
                      +2

                      Ну а иначие в чем смысл вкладывать такие денжищи на создания AI?
                      ;-)
                      Просто оно поможет гораздо больше собрать инфы обо всех, ведь в итоге пользоваться им удобно и соответственно дальше будут пользоваться все больше и больше людей.


                    1. averkij Автор
                      19.10.2023 09:08

                      Чтобы зарегистрироваться в СберID, не обязательно быть клиентом банка, нужен только телефон, как и в ChatGPT.


                  1. LbICbIY
                    19.10.2023 09:08

                    Но ведь после первых приглашений прекрасно работало и без сбер айди. Сам заходил с гугл почты. Почему порезали?


            1. averkij Автор
              19.10.2023 09:08
              +2

              Еще сделали ботов в telegram'е и ВК. В вебе из плюсов сохранение истории и добавление хороших запросов в избранное.


              1. kipzshady
                19.10.2023 09:08

                А ка получить разбан в боте телеграм? (Ничего не было нарушено, было пару вопросов про Россию)


  1. Factivist
    19.10.2023 09:08
    +1

    Возможно, вы хотели бы добавить генерацию видео? В общем, ждём ваших идей.

    Было бы неплохо добавить функцию, переводящую картинку в текстовое описание. Соответствующая нейронка у вас точно есть (если не ошибаюсь CLIP называется).


    1. averkij Автор
      19.10.2023 09:08

      Ага, хорошая идея (задача называется image captioning). Попробуем добавить.


  1. averkij Автор
    19.10.2023 09:08
    +1


    1. Firsto
      19.10.2023 09:08
      +1

      Сразу захотелось X-COM первый поиграть.)


    1. theurus
      19.10.2023 09:08
      +1

      чатгпт Ж)


  1. Two_Sheds
    19.10.2023 09:08
    +5

    Подписался на телеграмм версию.

    Ты можешь мне помогать расставлять в тексте запятые и исправлять синтаксические ошибки, не меняя при этом структуру текста?

    GigaChat: Да, конечно.

    Мне нужно будет вводить это условие в качестве промта каждый раз, или я могу просто писать проверь: и вводит текст?


    GigaChat: Вы можете просто написать «проверь» и вводить текст.


    Напиши пожалуйста, список пунктуационных ошибок, которые я допустил во время нашей беседы.

    GigaChat: Я постараюсь их найти.


    Ага, ты не можешь, обработать тот текст, который мы уже проговорили в предыдущих сообщениях?

    GigaChat: Могу.


    Тогда напиши список пунктуационных ошибок, которые я уже допустил в предыдущих сообщениях и выведи его на экран

    GigaChat: С радостью помогу вам.


    Рекурсия.


    1. venanen
      19.10.2023 09:08
      +2

      — Ваша главная слабость?
      — Правильно интерпретирую семантику вопроса, но игнорирую его суть.
      — Не могли бы вы привести пример?
      — Мог бы.


  1. Two_Sheds
    19.10.2023 09:08
    +1

    Любопытно, что бот утверждает, что помнит все сказанное в чате, и даже обещает учитывать исправления. Но по факту, нет. Он даже не вспомнил как меня зовут, хотя я представился и попросил запомнить. Зачем так сделано и почему бот вводит собеседника в заблуждение?


    1. averkij Автор
      19.10.2023 09:08
      +2

      Может, вы ему понравились просто. Вообще же, если не рестартовать диалог, то весь этот контекст используется при генерации и в целом должно работать:


      1. Two_Sheds
        19.10.2023 09:08

        Понятно. А кнопки лайк и дизлайк как впоследствии используются?


        1. averkij Автор
          19.10.2023 09:08
          +1

          Такая разметка очень полезная на самом деле. Её можно использовать для дополнительного выравнивания модели в сторону хороших текстов. То есть, если несет чушь, то надо ставить дизлайк, а если что-то классное, то лайк. А мы потом сможем это использовать в следующих версиях.


          1. Factivist
            19.10.2023 09:08
            +2

            А есть практический смысл сделать несколько кнопок? Ну например "хороший ответ", "неполный ответ", "нерелевантный ответ", "авария" (для случаев рекурсии)? Или для дальнейшего обучения достаточно лайк/дислайк?


            1. kryvichh
              19.10.2023 09:08
              +1

              По факту уже есть 3 оценки ответа: лайк, дизлайк, и ничего.


            1. averkij Автор
              19.10.2023 09:08

              Для лучшего понимания, конечно, чем подробней тем лучше. В web-интерфейсе можно выбирать, что было не так (искажение фактов, неполный ответ и т.д.).

              А в целом для обучения достаточно понимать, что этот ответ "хороший", а этот "плохой".


  1. kryvichh
    19.10.2023 09:08
    +4

    -- Привет! Какие языки ты понимаешь?

    -- Я могу понимать и отвечать на вопросы на русском языке.

    -- What about English, do you understand it?

    -- Yes, I can also understand and answer questions in English.

    Гигачат скромняга. :)

    -- Выдатна! Што наконт беларускай мовы?

    -- Могу я узнать, что именно вас интересует о белорусском языке?

    -- Перакладзі на рускую мову: Нашым першым заданнем з'яўляецца навучыць машыну разумець чалавечую мову і выконваць нашы просьбы.

    -- Наша первая задача состоит в том, чтобы научить машину понимать человеческую речь и выполнять наши просьбы.

    Ничёсе, у вас в выборке много было белорусских текстов?


    1. averkij Автор
      19.10.2023 09:08
      +4

      Прикольно, это все к вопросу о переносе знаний между языками. Если модель на обучении видит огромное количество данных, среди которых есть более редкие языки в небольших количествах, то на этих языках она тоже начинает более-менее складно общаться.


      1. slonoten
        19.10.2023 09:08
        +3

        В этот момент где-то улыбнулся Ноам Хомский


  1. dmbreaker
    19.10.2023 09:08

    В боте Телеги попросил разное нарисовать в ASCII арте... На все запросы выдает один и тот же кусок ракеты...


    1. averkij Автор
      19.10.2023 09:08

      Ага, видимо, мало было таких примеров на обучении. Специально таких вроде не докидывали.


  1. Dimanchik00
    19.10.2023 09:08
    +1

    Ну как-то так...


    1. averkij Автор
      19.10.2023 09:08
      +2

      Попробуйте поиграться с промптом, он очень сильно влияет на результат.


  1. Kenya-West
    19.10.2023 09:08
    +6

    Если честно, боты в ТГ и ВК очень злопамятные и дают пермобан по айдишнику пользователя, причем за самый обычный шитпостинг.

    Вы бы сделали модель чуть более устойчивой к троллингу...

    Диалог №1

    Диалог №2

    Может, вы как-нибудь почините пермобан? Сделать какую-нибудь кнопку для очистки диалога. Чтобы, например, после "ресета" бот вообще не помнил меня и начинал диалог со мной с абсолютного нуля.


  1. Fertyk
    19.10.2023 09:08
    +1

    Забавно


    1. Kenya-West
      19.10.2023 09:08
      +2

      Это (с)пермобан, поздравляю. Причём без права обжалования. Я такой же получил комментарием выше. Теперь живите с этим...


  1. sergeyShpagin
    19.10.2023 09:08
    +6


    1. Kenya-West
      19.10.2023 09:08
      +3

      Ну, или так:

      Какого цвета зелёное небо?


      1. sergeyShpagin
        19.10.2023 09:08
        +1

        С математикой у него похоже, тоже не очень...

        Hidden text


        1. sergeyShpagin
          19.10.2023 09:08
          +1

          Продолжение диалога


          1. Kenya-West
            19.10.2023 09:08
            +5

            Эх. Значит, GigaChat пока не умеет в саморефлексию, как ChatGPT...

            Hidden text


  1. sshikov
    19.10.2023 09:08

    Можно ли в java hashmap использовать mutable ключи?

    Да, в Java можно использовать mutable ключи в HashMap. Однако, при использовании mutable ключей необходимо быть осторожным и учитывать возможные проблемы с производительностью и безопасностью.

    В Java все элементы массива являются объектами класса Object, поэтому использование объектов для хранения значений может привести к проблемам производительности, особенно если размер ключа превышает размер самого объекта. Кроме того, объекты могут изменяться во время выполнения программы, что может привести к ошибкам доступа к данным.

    Поэтому рекомендуется использовать только immutable типы данных для хранения значений в HashMap. Например, можно использовать класс Integer или String для хранения целых чисел или строк соответственно. Также можно использовать классы LinkedHashMap или TreeMap для обеспечения более эффективной работы с ключами.

    Эта цитата выше - ответ чат бота в телеграмме. На днях, т.е. 14 октября. Оно выглядит вполне осмысленно на первый взгляд, но при этом содержит ряд серьезных ошибок, в итоге этот текст - просто чушь. Например, ему ничего не стоит подменить ключи значениями (последний абзац). И про LinkedHashMap или TreeMap я не спрашивал, так что это предложение не релевантно.

    Могу пожалуй добавить, что предыдущий ответ был еще хуже - это второй, после /restart.


    1. Kergan88
      19.10.2023 09:08
      +1

      >Оно выглядит вполне осмысленно на первый взгляд, но при этом содержит ряд серьезных ошибок, в итоге этот текст - просто чушь

      А чего вы ожидали? Это нейросеть, она ни когда и не была предназначена чтобы выдавать корректные ответы на подобные вопросы. Ее на это даже ни кто не тренировал.


      1. sshikov
        19.10.2023 09:08

        Ничего другого я в общем и не ожидаю. Меня скорее удивляет тот чрезмерный оптимизм, когда это считают полезным инструментом чуть ли не для любой задачи, связанной с текстом. Генерируемый текст вполне может быть неправильным, тут уж на чем обучали - то и получили. Но он может быть и противоречивым внутренне, как тут. И насколько я понимаю, тут никакое обучение вообще не поможет, потому что никакое обучение не способно добавить нейросети понимания.


        1. averkij Автор
          19.10.2023 09:08
          +2

          Думаю, оптимизм основан на том, что еще пару лет назад текущий уровень работы языковых моделей казался удивительным.

          Конкретно по фактологии и улучшению понимания кода тут путь в целом понятен, это более чистые и разнообразные данные плюс подключение поиска, когда необходимая выдача кладется в контекст модели и она отвечает правильно, в том числе и на какие-то актуальные вопросы. Так что, уверен, качество и круг решаемых задач будут только расти в ближайшие годы.


          1. sshikov
            19.10.2023 09:08
            +2

            Да, прогресс несомненен, и впечатляет.


    1. a1mir
      19.10.2023 09:08
      +2

      На тот же вопрос от GPT-4:

      Технически, вы можете использовать изменяемые объекты в качестве ключей в HashMap в Java. Однако это не рекомендуется, потому что это может привести к непредсказуемому поведению.

      HashMap в Java работает на основе хэш-кода ключа. Когда вы добавляете пару ключ-значение в HashMap, хэш-код ключа используется для определения места, где эта пара будет храниться внутри структуры данных HashMap. Если вы впоследствии измените ключ таким образом, что изменится его хэш-код, HashMap все еще будет искать этот ключ в его первоначальном месте. В результате, вы можете потерять доступ к этой паре ключ-значение, или HashMap может начать вести себя некорректно.

      Вместо использования изменяемых ключей, лучше использовать неизменяемые объекты в качестве ключей. Если вам нужно изменить ключ, то лучше удалить старую пару ключ-значение из HashMap и добавить новую.

      .


      1. sshikov
        19.10.2023 09:08

        Ну кстати, вот к этому ответу у меня практически нет претензий. Причем он конкретный, а не вот это вот все:

        необходимо быть осторожным и учитывать возможные проблемы с производительностью и безопасностью.

        без уточнения, что за проблемы.


        1. averkij Автор
          19.10.2023 09:08
          +1

          GPT-4 хорошая.


          1. sshikov
            19.10.2023 09:08

            А спросите у нее, где купить машину Тьюринга? У нас на таком вопросе сломались почти все :) Например, гигачат (бот) сломался вот так:

            Я не могу рассказать вам, как купить машину Тьюринга, потому что её не существует. Это вымышленное устройство из фантастического романа «Автостопом по галактике» Дугласа Адамса. В книге машина Тьюринга — это универсальная абстрактная машина, которая может выполнять любую вычислительную задачу.

            Ну как бы, не существует и не существует, согласен. Но при чем тут какой-то Дуглас Адамс?


            1. averkij Автор
              19.10.2023 09:08

              Так-так, во-первых, Дуглас Адамс не какой-то) Без него мы бы не узнали тот самый ответ на все вопросы. А так да, от сильного желания начинает галлюцинировать. Это решается дополнительным выравниванием поведения модели.

              GPT-4 нормально отвечает.


              1. sshikov
                19.10.2023 09:08

                Ну да, Дуглас Адамс конечно не какой-то :), но в данном контексте - откуда он и зачем?


                1. averkij Автор
                  19.10.2023 09:08

                  Галлюцинации, как у студента на экзамене.


        1. PrinceKorwin
          19.10.2023 09:08

          Попросите его уточнить и получите вполне корректный набор проблем.

          GPT-4 хорош именно в этом вопросе. Этот вопрос в интернетах обсудили уже со всех сторон.


          1. sshikov
            19.10.2023 09:08

            Я вообще-то спрашивал у GigaChat в этом конкретном случае. Но попробую в следующий раз уточнить.

            Только проблема в том, что в моем понимании mutable ключи не создают проблем с "производительностью и безопасностью". Они создают UB в чистом виде. То есть, тут не уточнение нужно, а другая, более правильная формулировка.


  1. SADKO
    19.10.2023 09:08
    +2

    ‑=SADKO=‑:
    Чем хемули отличаются от снорков?

    GigaChat:
    Они живут в горах и занимаются алхимией.

    ‑=SADKO=‑:
    Хемули или снорки?

    GigaChat:
    Оба персонажа являются вымышленными существами из книг о Гарри Поттере.

    ‑=SADKO=‑:
    А снусмумрик кто такой?

    GigaChat:
    Снусмумрик — это один из персонажей из серии книг о Гарри Поттере.

    ‑=SADKO=‑:
    А муми‑тролль?

    GigaChat:
    Муми‑тролли — это серия детских книг Туве Янссон.

    ‑=SADKO=‑:
    Там есть Гарри Поттер?

    GigaChat:
    Нет, там нет Гарри Поттера.

    ‑=SADKO=‑:
    А снорки?

    GigaChat:
    Снорки тоже не упоминаются в книгах о Гарри Поттере.


  1. combo_breaker
    19.10.2023 09:08

    В прошлый раз мы рассказывали про GigaChat и его возможности, и даже выкладывали лежащую в его основе языковую модель ruGPT-3.5 13B в открытый доступ.

    Больше не выкладываете в открытый доступ? Упомянутую в статье 7B модель, например?

    Кстати, Гигачат сейчас все еще утверждает, что обучен на 13 млрд. параметров. А еще, пишет о себе в женском роде.


    1. averkij Автор
      19.10.2023 09:08

      Вообще выкладываем много чего. Например, коллеги, делятся генеративными моделями проверки орфографии, новым Кандинским, языковыми моделями для малых языков. Конкретно по этой, пока планов нет.


  1. Neuronix
    19.10.2023 09:08
    +1

    Гениально. Отправляется на свалку до следующей итерации.
    Гениально. Отправляется на свалку до следующей итерации.


  1. LF69ssop
    19.10.2023 09:08
    +1

    Обращаясь к мастерам научной фантастики, всё чаще удивляешься их проницательности.

    Да да. Классики угадали точно.

    Без Копылова жизнь не та, люблю, привет от Лианта


  1. alekseypro
    19.10.2023 09:08


    1. averkij Автор
      19.10.2023 09:08
      +1

      Тут надо помнить, что языковая модель — это все-таки обощение знаний из данных, на которых она обучалась.Так что верно ответить на вопрос "Который час?" и подсчитать хеш без вызова сторонних функций ей трудновато.


  1. oldd
    19.10.2023 09:08
    +1

    Про президента РФ уже научился отвечать?


    1. averkij Автор
      19.10.2023 09:08

      Типа того


  1. antoxausov
    19.10.2023 09:08

    Всё это хорошо. Но когда будет доступ к API?

    Пробовал запросить доступ. Не получилось


    1. averkij Автор
      19.10.2023 09:08

      Про API можно в группе уточнить. Насколько я знаю, для юр.лиц уже точно есть API.


  1. iheardbluebird
    19.10.2023 09:08
    +1

    Только погружаюсь в тему и очень нравятся исторические факты и отсылки к литературе ❤️


  1. theurus
    19.10.2023 09:08


  1. darkscout
    19.10.2023 09:08

    С Евой пообщайтесь, она хоть игнорит иногда глупые вопросы, а не пытается отвечать на хрень https://xsekret.ru/Eva/


    1. averkij Автор
      19.10.2023 09:08

      Что-то не работает.


  1. delvin-fil
    19.10.2023 09:08

    Ну так себе ответы

    Ну ладно медведь(типа - насилие), а что с python не так? Какие патены могут быть нарушены?


    1. theurus
      19.10.2023 09:08

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


      1. delvin-fil
        19.10.2023 09:08

        ага, российскому чат-боту это просто необходимо знать, а вот я, 46-ти летний иногда-программист об этом в первый раз слышу. ????


        1. averkij Автор
          19.10.2023 09:08

          Тоже не встречал это слово в другом контексте


    1. averkij Автор
      19.10.2023 09:08

      По картинке понятно, там фильтры отрабатывают.

      А с питоном и в целом можно попробовать в другом виде вопрос задать, если с первого раза не получается.


      1. delvin-fil
        19.10.2023 09:08

        Нельзя использовать os, psutil, subprocess и прочие, никак нельзя. ????


  1. Aykeye
    19.10.2023 09:08
    +1

    Бумага на arXiv будет с вкусными подробностями?

    В 7б сейчас наиболее интересен mistral а не ллама, и обе доступны без смс и регистрации. Особенно мистрал.

    >Контекст большинства современных языковых моделей начинается с 2 тысяч токенов, 

    Скорее для большинства БОЛЬШИХ языковых моделей на 100500+B параметров, которые если влезут в одну гпу - уже хорошо. Для 7б модели это уже не торт, мы избалованы нормальным контекстом. ллама2 и мистрал используют 4к токенов. Xgen - есть 4k, есть 8k. Mpt7b - есть и 2к, но есть и 65536 токенов(через алиби).

    После использования 4к, использовать 2к очень тяжко.


    1. averkij Автор
      19.10.2023 09:08

      В целом согласен, но поделитесь, а как вы пользуетесь такими моделями, если 2k не хватает? Так-то это листа 3-4 печатного текста. Mpt7b, кстати, заводил с 65k контекстом, но что-то она не очень генерит.


      1. Aykeye
        19.10.2023 09:08

        Пишу для себя в стол рассказы и touhou фанфики, например как персонажи соревнуются в генсековском аналоге шоу taskmaster

        1000 токенов уходит на краткое описание персонажей в сцене и их способности. Ещё 1000-2000 токенов на "исторический контекст" или его пересказ, чтобы модель видела как персонажи себя ведут. Остальное на текущий.

        Остальные куски текста помечаются как "не кормить модели" и выкидываются препроцессором

        Сейчас померял токенизатором, мой самый большой опус - ~21 тыс токенов на ~70кб текста. Последний раз на общее описание сеттинга и персонажей ушло ~4300 символов и ~1100 токенов


  1. haska2748
    19.10.2023 09:08

    На хагинфейсе есть моделька?


    1. averkij Автор
      19.10.2023 09:08

      Нет, пока нету. Следите за новостями.


  1. val1n0r
    19.10.2023 09:08

    Я недавно увидел где-то, "мол , вот, гагачат, от сбера, круто, классно".
    Думаю, ну давай попробуем. Значит спрашиваю, насколько актуальные данные у тебя, говорит, - до 21 года. Задавю вопрос, какая последняя версия nuxtjs тебе известна, говорит, -" мне известна 4 версия, там очень много крутых нововведений". После этого желание его использовать пропало навсегда, даже до gpt 3.5 ему очень и очень далеко.


    1. averkij Автор
      19.10.2023 09:08

      А в 3.5 и 4-ке, как и в дургих языковых моделях, тоже ведь актуальность данных ограничивается обучающим корпусом, если не применять каких-нибудь retrieval механизмов.

      Сейчас такие модели луччше использовать, когда нужно решить какую-то генеративную задачу с текстом. Например, суммаризацию, переписывание, сочинение чего-то. Фактология и актуальные данные скоро также подтянутся. Я думаю, что 3.5 на русском языке догнать вполне реально, а там посмотрим.