Никакого парадокса нет, эти параметры моделей выбираются самими разработчиками — число параметров модели и объем обучающей выборки.
парадокс для читателя, мол, как так - текста меньше, чем сама нейронка, она ж его просто выучит, даже сжимать не надо.
Про внешние тулы типа калькулятора на 100% согласен. Более сложные примеры в статью кидать не хотелось, хотя они, безусловно, есть.
Обобщения как у детей не происходит после изучения таблицы сложения и умножения,
спорный тезис, даже вот на умножении - сетка решает больше 90% примеров для 3-значных чисел. Таких вариантов 900*900, 90% от этого это 729'000 примеров. я готов биться об заклад, что точно не все из них были в трейне, а значит модель ответила верно на такие примеры, которых не видела - смогла обобщить.
я не согласен с этой точкой зрения, так как вектор для одного и того же слова разный в разных контекстах -> они как бы всегда уникальные, но по этой логике и рандомные вектора тоже уникальны, и это тоже "язык", хотя структуры и связей у них нет.
я больше имел ввиду начинают ли такие модели "глючить" при переобучении? Можно ли этим объяснить ээ "вранье" и выдуманные тексты?
Да, могут начать глючить, особенно если переобучены на конкретный фидбек. Про это можно почитать по прилагаемой в конце статьи ссылке на мою другую статью про ChatGPT - тоже очень увлекательно.
вы имеете в виду сверточную "подсеть"-классификатор на входе?
я не понял, что значит классификатор, но нет. На входе стоит эмбеддинг слой, который по словарю переводит слово в вектор. Этот словарь дифференцируемый, то есть он обучается вместе с моделью, меняет чиселки в векторах.
а чем текст в цифровом виде от числа отличается?
модель не умеет работать с текстом, только с числами. На вход числа, внутри числа, на выходе числа. В этом смысле "текст в цифровом виде" модель вообще никогда не видит.
GPT - что у них с переобучением?
in general переобучить их очень сложно, потому что модели огромны. Но они легко переобучатся на одну маленькую конкретную задачу. Если будет активное обучение в онлайне, то всё должно быть ок, покуда есть очень большой набор тестов / метрик для отслеживания
Там не совсем так, если я верно понял, о чем речь. Такие модели переводят текст в вектор (в набор чисел, очень большой набор, сотни и тысячи float'ов для каждого слова), а затем другая модель "читает" эти вектора и "переводит" их на иностранный язык. Но это не язык в прямом смысле - это просто метод сжатия информации из текста в числа, он же и в GPT, разбираемой в статье, применяется.
Причем железки в скорости проигрывают, берут числом, обучаясь одновременно на 100500 GPU. По итогу вроде и всего за месяц нейронка прочитала весь интернет, а вроде и 10000000000 GPU-часов (просто эффективно распаралелленных)
Интересная точка зрения :) Но это правда - раньше в модель зашивали как можно больше "понимания" того, как люди видят язык: синтаксические деревья, грамматику, прочее. А оказалось, что всё это не нужно, работает и без него (правда мы не можем определить, что внутри находится).
Я предпочитаю избегать такой аналогии. Да, отдельные концепты в нейросетях переняты от человека, мы как бы свои "удачные" механизмы внедряем как априорные знания. Но эти похожие вещи очень условно можно называть одинаковыми. То есть концепция нейрона из головы слабо переносится на концепцию нейрона в нейросети. Поэтому сравнивать сложно.
На данный момент они слишком медленные, и нерасторопные.
ну станет быстрее - в you.com приведенном же он работает не за 5 минут. Архитектура, которая лежит в основе ChatGPT, появилась всего 6 лет назад, принципы обучения - 1-3 года тому назад. Глупо полагать (даже если интерполировать, а не экстраполировать), что в следующие 3-4 года не произойдет большого скачка, который позволит применять модели почти в рантайме.
их ответы в формате абзаца не совсем оптимальные для читателей, которые хотят быстро обрабатывать большой объем информации. Как только новизна общения с роботом исчезнет, большинство людей, скорее всего, вернутся к тому, чтобы получать информацию в обычном режиме.
Люди научатся по-другому формулировать свои запросы, модели научатся по-другому писать, и тогда от основного аргумента не останется и следа. В 2010м, наверное, тоже говорили, что кто будет смотреть, блин, видео НА ТЕЛЕФОНАХ? Вы чего? Т
Поэтому в статье уделено огромное количество времени процессу подготовки данных, оценки ответов. Ну и очевидный факт - что выборка для тренировки исходной модели GPT-3 очень сильно фильтровалась (не только регулярками, но и другими моделями, например, классификаторами токсичности) - я упоминать не стал.
Ну и на случай с майкрософт в 2016-17 я оставил ссылочку в тексте :)
Этот тезис похож на правду, но на растущих рынках и у растущих продуктов. Если у тебя уже миллиард пользователей, и ты на каждом будешь терять 1 цент в неделю - ты разоришься, никакие инвестиции не спасут. Пока MAU < 5M - да, хорошая стратегия, можно работать в убыток.
Про YouTube не слышал, но это немного странно, так как у них с 2013го revenue > $3B, что существенно.
Ну и последнее - состояние рынка и индустрии, сейчас все очень осторожны с деньгами, и не хотят напихивать лишнего, так что стало еще сложнее оправдывать изначально нежизнеспособную юнит-экономику.
Ты имеешь в виду, что прям в одних и тех же фактах ошибаются? Или что в общем, например, "часто ошибаются в датах"? Если второе, то причина этого описана под спойлером "Ещё раз, почему врут?", где описан процесс генерации, и он общий для любой LM (за вычетом разных трюков). Поэтому и любая языковая модель будет страдать от подобных "провалов в памяти".
Статья так названа потому, что именно ChatGPT (и как интерфейс/UX, и как архитектуру/подход к тренровке) Microsoft хочет внедрить в поиск. Сам же подход, описанный в статье - унифицированный, можно и ChatGPT научить ему, и TPG-Tahc какой-нибудь :) Также старался скорректировать ожидания первым абзацем под катом:
Данная статья в сущности представляет собой разбор подхода WebGPT (одного из предков ChatGPT), но с большим количеством сопроводительной и уточняющей информации, а также моих комментариев и мнений.
вроде бы и не соврал.
Интересный факт: если ChatGPT попросить вернуть первые 50 символов промпта/контекста, то там будет часть "browsing: disabled". Кто знает, может оно уже умеет сёрфить интернет, просто пока отключили для простых смертных фичу :)
Если же ещё добавить к этому историю отрытых страниц по этим запросам, то довольно много информации из этого можно получить.
боюсь, что у поисковика нет такой информации - после клика по ссылке они ничего не видят, кроме факта возвращения обратно в выдачу. Да, есть Edge, прости господи, но и там информация скорее всего собирается в очень агрегированном виде, без деталей, чтобы на этом обучать модель. (по крайней мере пока, до начала проработки вопроса внедрения GPT в BING)
Это правда, частая практика - закэшировать ответ для выдачи (иногда для топ-запросов применяются более тяжелые и продвинутые модели, видел такое - ведь для них цена ответа не X, а пропорциональна X * N, где N - количество показов ответа на вопрос).
Однако мне кажется, что на самые популярные вопросы современные поисковики и без того околоидеально отвечают. У гугла уже сколько лет есть тип ответа "маленькая выжимка текста + выделение жирным ответа"? И карточки сбоку?
А вот основной потенциал таких моделей как раз и лежит в так называемом длинном хвосте распределения, где вопросы сложные, непонятные, редкие, уникальные и многоступенчатые.
Это очень правильные вопросы. BoN-метод неприменим в продакшене - это сразу увеличивает цену обработки запроса в 30-60 раз. Никакая юнит-экономика не сойдется. Поэтому нужно смотреть в сторону одной LMки (+набора эвристик), которые отвечают за генерируемый ответ.
Но для такого типа поиска не требуется большое количество ресурсов
для поиска и прокликивания ссылок - не нужно, но нужно для получения команд от модели и для финального ответа. Понятно, что модели размером 175B никто не затащит в ближайшем будущем, по крайней мере в бесплатный тариф. Сейчас трансформеры уже используются в переводчиках, да и в самом поиске, но они куда меньше. Тут главный вопрос - насколько хорошо смогут маленькие модели подстраиваться под фидбек людей, даст ли это прирост по отношению к простому поиску.
Сейчас OpenAI заставляет платить $0.0020 за генерацию 1K токенов моделькой размера 6.7B (предположительно), а на 1.3B - еще в 4 раза дешевле. Сойдется или нет экономика при таких тратах (за вычетом маржи) - я не знаю :(
Возможно, с выходом нового поколения железа (у гугла это TPU v5, которые специально заточены под большие трансформеры) цены упадут в несколько раз, что подвинет на шажок ближе. Или исследователи найдут способ дать бОльший прирост метрик малым моделям.
потому что всё не захардкодишь. Да и на самом деле даже базовые вещи, как мне кажется (ссылки не будет), ОООЧЕНЬ сложно донести до моделей. При этом может пострадать что-то неочевидное. Как модель, которая оперирует законами логики, будет шутить или подражать неидеальному человеку?
лучше считает при помощи калькулятора, чем вручную
безусловно, и как раз вся статья по сути про то, как прирастить один из таких инструментов сеткам. Можно прирастить еще питон-интерпретатор, чтобы модель не выучивала математику и не складывала и умножала "в голове". Вместо этого она пишет код, который исполняется вне неё, и оперирует ответом. Про это немного в тексте упоминается, вот ссылка с чудесным примером: тык
На второй абзац у меня нет ни идей, ни знаний, чтобы ответить :)
Для нас текст - это поток символов (не только букв). Перед подачей в модель этот поток нарезается на куски по принципу "самые популярные подряд идущие символы". Это могут быть слова, года ("2021" - это один токен, так как он частый). Множество таких токенов жестко задано перед процедурой обучения и остается неизменным.
А почему не применяют построение синтаксического дерева на "универсальном промежуточном языке"
Тут можно развернуть очень большую дискуссию, что и как лучше, и такие подходы, как упомянуты в комменте, уже были в прошлом. Сейчас модель сама выучивает это, но она не просто запоминает - она выводит зависимости. Поэтому нам вручную не нужно ВСЁ задавать (тут экономим на времени), и в то же время модель учится обобщать. Поэтому с моей точки зрения тезис
Мы теряем в качестве, упускаем точные аналитические методы
неправильный - мы наоборот улучшаем качество за счет того, что не передаем часть знаний модели, а учим ее, как ребенка, разбираться в этом мире. Как раз в основной статье, где была представлена архитектура трансформера, было сказано, что хочется максимально уйти от человеческих абстракций и захардкоженной логики. Это ведь применимо не только к текстам - для изображений мы используем сверточные нейронные сети, которые опираются на свертки - потому что они архитектурно больше подходят для обработки изображений. Всё это - примеры "биасов", смещений, которые мы вносим в модель. Токенизация в некотором роде тоже смещение на самом деле.
Так вот, факт в том, что трансформеры настолько уникальны, что без свёрток научились решать задачу обработки изображений лучше или на уровне свёрточных сетей. Так зачем же нам тогда этот придуманный конструкт? :)
потом гадаем - а можно ли доверять нейросети?
Гадать не надо, надо придумать, как заставить нейросеть смотреть с людьми в одну сторону и объяснить, что конкретно от нее ожидается. Это проблема выравнивания, или alignment, и ChatGPT/WebGPT - результаты работы команды Alignment из OpenAI. Они пытаются придумать, как мнение человека, его фидбек, вложить в модель.
Такое наверняка исследуют, но я не углублялся, поэтому не отвечу чего-то содержательного.
парадокс для читателя, мол, как так - текста меньше, чем сама нейронка, она ж его просто выучит, даже сжимать не надо.
Про внешние тулы типа калькулятора на 100% согласен. Более сложные примеры в статью кидать не хотелось, хотя они, безусловно, есть.
спорный тезис, даже вот на умножении - сетка решает больше 90% примеров для 3-значных чисел. Таких вариантов 900*900, 90% от этого это 729'000 примеров. я готов биться об заклад, что точно не все из них были в трейне, а значит модель ответила верно на такие примеры, которых не видела - смогла обобщить.
я не согласен с этой точкой зрения, так как вектор для одного и того же слова разный в разных контекстах -> они как бы всегда уникальные, но по этой логике и рандомные вектора тоже уникальны, и это тоже "язык", хотя структуры и связей у них нет.
Да, могут начать глючить, особенно если переобучены на конкретный фидбек. Про это можно почитать по прилагаемой в конце статьи ссылке на мою другую статью про ChatGPT - тоже очень увлекательно.
Но вранье это не должно объяснять.
я не понял, что значит классификатор, но нет. На входе стоит эмбеддинг слой, который по словарю переводит слово в вектор. Этот словарь дифференцируемый, то есть он обучается вместе с моделью, меняет чиселки в векторах.
модель не умеет работать с текстом, только с числами. На вход числа, внутри числа, на выходе числа. В этом смысле "текст в цифровом виде" модель вообще никогда не видит.
in general переобучить их очень сложно, потому что модели огромны. Но они легко переобучатся на одну маленькую конкретную задачу. Если будет активное обучение в онлайне, то всё должно быть ок, покуда есть очень большой набор тестов / метрик для отслеживания
Там не совсем так, если я верно понял, о чем речь. Такие модели переводят текст в вектор (в набор чисел, очень большой набор, сотни и тысячи float'ов для каждого слова), а затем другая модель "читает" эти вектора и "переводит" их на иностранный язык. Но это не язык в прямом смысле - это просто метод сжатия информации из текста в числа, он же и в GPT, разбираемой в статье, применяется.
Причем железки в скорости проигрывают, берут числом, обучаясь одновременно на 100500 GPU. По итогу вроде и всего за месяц нейронка прочитала весь интернет, а вроде и 10000000000 GPU-часов (просто эффективно распаралелленных)
Интересная точка зрения :) Но это правда - раньше в модель зашивали как можно больше "понимания" того, как люди видят язык: синтаксические деревья, грамматику, прочее. А оказалось, что всё это не нужно, работает и без него (правда мы не можем определить, что внутри находится).
Я предпочитаю избегать такой аналогии. Да, отдельные концепты в нейросетях переняты от человека, мы как бы свои "удачные" механизмы внедряем как априорные знания. Но эти похожие вещи очень условно можно называть одинаковыми. То есть концепция нейрона из головы слабо переносится на концепцию нейрона в нейросети. Поэтому сравнивать сложно.
Архитектурно - да, но RM имеет меньший размер (6B против 175B), так как были проблемы с обучением/оптимизацией.
ну станет быстрее - в you.com приведенном же он работает не за 5 минут. Архитектура, которая лежит в основе ChatGPT, появилась всего 6 лет назад, принципы обучения - 1-3 года тому назад. Глупо полагать (даже если интерполировать, а не экстраполировать), что в следующие 3-4 года не произойдет большого скачка, который позволит применять модели почти в рантайме.
Люди научатся по-другому формулировать свои запросы, модели научатся по-другому писать, и тогда от основного аргумента не останется и следа. В 2010м, наверное, тоже говорили, что кто будет смотреть, блин, видео НА ТЕЛЕФОНАХ? Вы чего? Т
В общем, так и живем.
Поэтому в статье уделено огромное количество времени процессу подготовки данных, оценки ответов. Ну и очевидный факт - что выборка для тренировки исходной модели GPT-3 очень сильно фильтровалась (не только регулярками, но и другими моделями, например, классификаторами токсичности) - я упоминать не стал.
Ну и на случай с майкрософт в 2016-17 я оставил ссылочку в тексте :)
Этот тезис похож на правду, но на растущих рынках и у растущих продуктов. Если у тебя уже миллиард пользователей, и ты на каждом будешь терять 1 цент в неделю - ты разоришься, никакие инвестиции не спасут. Пока MAU < 5M - да, хорошая стратегия, можно работать в убыток.
Про YouTube не слышал, но это немного странно, так как у них с 2013го revenue > $3B, что существенно.
Ну и последнее - состояние рынка и индустрии, сейчас все очень осторожны с деньгами, и не хотят напихивать лишнего, так что стало еще сложнее оправдывать изначально нежизнеспособную юнит-экономику.
Ты имеешь в виду, что прям в одних и тех же фактах ошибаются? Или что в общем, например, "часто ошибаются в датах"? Если второе, то причина этого описана под спойлером "Ещё раз, почему врут?", где описан процесс генерации, и он общий для любой LM (за вычетом разных трюков). Поэтому и любая языковая модель будет страдать от подобных "провалов в памяти".
Статья так названа потому, что именно ChatGPT (и как интерфейс/UX, и как архитектуру/подход к тренровке) Microsoft хочет внедрить в поиск. Сам же подход, описанный в статье - унифицированный, можно и ChatGPT научить ему, и TPG-Tahc какой-нибудь :) Также старался скорректировать ожидания первым абзацем под катом:
вроде бы и не соврал.
Интересный факт: если ChatGPT попросить вернуть первые 50 символов промпта/контекста, то там будет часть "browsing: disabled". Кто знает, может оно уже умеет сёрфить интернет, просто пока отключили для простых смертных фичу :)
боюсь, что у поисковика нет такой информации - после клика по ссылке они ничего не видят, кроме факта возвращения обратно в выдачу. Да, есть Edge, прости господи, но и там информация скорее всего собирается в очень агрегированном виде, без деталей, чтобы на этом обучать модель. (по крайней мере пока, до начала проработки вопроса внедрения GPT в BING)
Это правда, частая практика - закэшировать ответ для выдачи (иногда для топ-запросов применяются более тяжелые и продвинутые модели, видел такое - ведь для них цена ответа не X, а пропорциональна X * N, где N - количество показов ответа на вопрос).
Однако мне кажется, что на самые популярные вопросы современные поисковики и без того околоидеально отвечают. У гугла уже сколько лет есть тип ответа "маленькая выжимка текста + выделение жирным ответа"? И карточки сбоку?
А вот основной потенциал таких моделей как раз и лежит в так называемом длинном хвосте распределения, где вопросы сложные, непонятные, редкие, уникальные и многоступенчатые.
Это очень правильные вопросы. BoN-метод неприменим в продакшене - это сразу увеличивает цену обработки запроса в 30-60 раз. Никакая юнит-экономика не сойдется. Поэтому нужно смотреть в сторону одной LMки (+набора эвристик), которые отвечают за генерируемый ответ.
для поиска и прокликивания ссылок - не нужно, но нужно для получения команд от модели и для финального ответа. Понятно, что модели размером 175B никто не затащит в ближайшем будущем, по крайней мере в бесплатный тариф. Сейчас трансформеры уже используются в переводчиках, да и в самом поиске, но они куда меньше. Тут главный вопрос - насколько хорошо смогут маленькие модели подстраиваться под фидбек людей, даст ли это прирост по отношению к простому поиску.
Сейчас OpenAI заставляет платить $0.0020 за генерацию 1K токенов моделькой размера 6.7B (предположительно), а на 1.3B - еще в 4 раза дешевле. Сойдется или нет экономика при таких тратах (за вычетом маржи) - я не знаю :(
Возможно, с выходом нового поколения железа (у гугла это TPU v5, которые специально заточены под большие трансформеры) цены упадут в несколько раз, что подвинет на шажок ближе. Или исследователи найдут способ дать бОльший прирост метрик малым моделям.
Спасибо, исправил - так и вправду лучше звучит.
потому что всё не захардкодишь. Да и на самом деле даже базовые вещи, как мне кажется (ссылки не будет), ОООЧЕНЬ сложно донести до моделей. При этом может пострадать что-то неочевидное. Как модель, которая оперирует законами логики, будет шутить или подражать неидеальному человеку?
безусловно, и как раз вся статья по сути про то, как прирастить один из таких инструментов сеткам. Можно прирастить еще питон-интерпретатор, чтобы модель не выучивала математику и не складывала и умножала "в голове". Вместо этого она пишет код, который исполняется вне неё, и оперирует ответом. Про это немного в тексте упоминается, вот ссылка с чудесным примером: тык
На второй абзац у меня нет ни идей, ни знаний, чтобы ответить :)
Для нас текст - это поток символов (не только букв). Перед подачей в модель этот поток нарезается на куски по принципу "самые популярные подряд идущие символы". Это могут быть слова, года ("2021" - это один токен, так как он частый). Множество таких токенов жестко задано перед процедурой обучения и остается неизменным.
Тут можно развернуть очень большую дискуссию, что и как лучше, и такие подходы, как упомянуты в комменте, уже были в прошлом. Сейчас модель сама выучивает это, но она не просто запоминает - она выводит зависимости. Поэтому нам вручную не нужно ВСЁ задавать (тут экономим на времени), и в то же время модель учится обобщать. Поэтому с моей точки зрения тезис
неправильный - мы наоборот улучшаем качество за счет того, что не передаем часть знаний модели, а учим ее, как ребенка, разбираться в этом мире. Как раз в основной статье, где была представлена архитектура трансформера, было сказано, что хочется максимально уйти от человеческих абстракций и захардкоженной логики. Это ведь применимо не только к текстам - для изображений мы используем сверточные нейронные сети, которые опираются на свертки - потому что они архитектурно больше подходят для обработки изображений. Всё это - примеры "биасов", смещений, которые мы вносим в модель. Токенизация в некотором роде тоже смещение на самом деле.
Так вот, факт в том, что трансформеры настолько уникальны, что без свёрток научились решать задачу обработки изображений лучше или на уровне свёрточных сетей. Так зачем же нам тогда этот придуманный конструкт? :)
Гадать не надо, надо придумать, как заставить нейросеть смотреть с людьми в одну сторону и объяснить, что конкретно от нее ожидается. Это проблема выравнивания, или alignment, и ChatGPT/WebGPT - результаты работы команды Alignment из OpenAI. Они пытаются придумать, как мнение человека, его фидбек, вложить в модель.