Эффективный формат чисел для нейросетей
Недавно узнал про существование Block Floating Point формата чисел. Его прикол в том, что он хорошо подходит для перемножения матриц. Значит, и для применения нейросетей. Реализация BlockFP на уровне железа должна ускорить инференс на порядки (и разработка такого железа сейчас уже ведется).
Напоминание про обычный Floating Point формат. Каждый элемент представлен
- экспонентой (range): насколько большие числа могут быть представлены (~ длина линейки)
- мантиссой (precision): точность (~ плотность и количество засечек на линейке)
Существует ещё Fixed Point формат, в котором только мантисса, а коэффициент масштабирования фиксирован для всех элементов.
Грубо говоря, Floating Point формат это гибко, точно, медленно, а Fixed Point - не гибко, но очень эффективно. Так вот BlockFP это нечто среднее: одна экспонента используется для блока элементов (последняя строчка на картинке). Получается и динамический range, и эффективное умножение на fixed point процессорах.
Для матричного перемножения двух блоков нужно только
- вычислить новую экспоненту за одну операцию перемножения
- матрично умножить fixed-point числа
А ещё у нейросетей внутри линейных слоев числа чаще всего как раз одного порядка, что делает этот формат ещё более подходящим 👍
Статья от Microsoft про аналогичный формат данных
Недавно узнал про существование Block Floating Point формата чисел. Его прикол в том, что он хорошо подходит для перемножения матриц. Значит, и для применения нейросетей. Реализация BlockFP на уровне железа должна ускорить инференс на порядки (и разработка такого железа сейчас уже ведется).
Напоминание про обычный Floating Point формат. Каждый элемент представлен
- экспонентой (range): насколько большие числа могут быть представлены (~ длина линейки)
- мантиссой (precision): точность (~ плотность и количество засечек на линейке)
Существует ещё Fixed Point формат, в котором только мантисса, а коэффициент масштабирования фиксирован для всех элементов.
Грубо говоря, Floating Point формат это гибко, точно, медленно, а Fixed Point - не гибко, но очень эффективно. Так вот BlockFP это нечто среднее: одна экспонента используется для блока элементов (последняя строчка на картинке). Получается и динамический range, и эффективное умножение на fixed point процессорах.
Для матричного перемножения двух блоков нужно только
- вычислить новую экспоненту за одну операцию перемножения
- матрично умножить fixed-point числа
А ещё у нейросетей внутри линейных слоев числа чаще всего как раз одного порядка, что делает этот формат ещё более подходящим 👍
Статья от Microsoft про аналогичный формат данных
🔥9👍6
🤖 ➕ 🧮 🟰🚀
11-13 апреля в Стенфорде прошел 2023 Annual Affiliates Meeting с разными интересными лекциями. В первый день было про новые направления исследований, во второй - про Generative AI и Foundational models, в третий - безопасность (не только про AI). Смотреть можно здесь.
Посмотрел keynote про LLMки. Очень попсово, но вот одна из мыслей.
Пара существенных проблем LLMок (не исчерпывающий список) - выдумывание фактов и рассуждений, которые выглядят очень правдоподобно. Это может быть особенно опасно в каких-нибудь медицинских консультациях от ИИ (а заменить дорогостоящего врача очень хочется, и спрос на них большой).
И встает вопрос: можно ли вложить ещё больше ресурсов в текущие подходы и получить более надежные модели? Ответ да означает
- больше модели
- больше контекст
- дольше обучать
- добавлять новые модальности (картинки, звук, видео, …)
- больше RLHF
- retrieval-augmented модели
- улучшение методов промптинга (CoT, иерархичный, и т.д.)
Но кажется, что из нейронной сети в принципе никогда не получится надежный калькулятор. Поэтому ставка делается на нейросимвольный подход: скрестить LLM и модули калькулятора, конвертера валют, похода в базу данных, …. Статья с описанием подобной модульной архитектуры: тык. Плагины в OpenAI, кстати, как раз про это😱
Подписывайтесь: https://t.iss.one/building_singularity. Здесь больше интересных постов про AI👍
11-13 апреля в Стенфорде прошел 2023 Annual Affiliates Meeting с разными интересными лекциями. В первый день было про новые направления исследований, во второй - про Generative AI и Foundational models, в третий - безопасность (не только про AI). Смотреть можно здесь.
Посмотрел keynote про LLMки. Очень попсово, но вот одна из мыслей.
Пара существенных проблем LLMок (не исчерпывающий список) - выдумывание фактов и рассуждений, которые выглядят очень правдоподобно. Это может быть особенно опасно в каких-нибудь медицинских консультациях от ИИ (а заменить дорогостоящего врача очень хочется, и спрос на них большой).
И встает вопрос: можно ли вложить ещё больше ресурсов в текущие подходы и получить более надежные модели? Ответ да означает
- больше модели
- больше контекст
- дольше обучать
- добавлять новые модальности (картинки, звук, видео, …)
- больше RLHF
- retrieval-augmented модели
- улучшение методов промптинга (CoT, иерархичный, и т.д.)
Но кажется, что из нейронной сети в принципе никогда не получится надежный калькулятор. Поэтому ставка делается на нейросимвольный подход: скрестить LLM и модули калькулятора, конвертера валют, похода в базу данных, …. Статья с описанием подобной модульной архитектуры: тык. Плагины в OpenAI, кстати, как раз про это
Подписывайтесь: https://t.iss.one/building_singularity. Здесь больше интересных постов про AI
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍5❤1🤔1
Assisted Generation: оригинальный способ ускорить генерацию
Прикольный пост на Huggingface про ускорение генерации больших LMок. Реализация уже в 🤗, можно использовать👍
One sentence summary: маленькая модель генерирует последовательности токенов, большая проверяет
🔹 Как происходит генерация?
- последовательно, токен за токеном
- 1 forward pass на 1 токен
- предыдущие внутренние состояния кешируются
- вычисления скрытого состояния для нового токена идут послойно
🔹 Основной ботлнек и что с этим делать?
Для больших языковых моделей ботлнек это пропускная способность памяти GPU во время матричного умножения. То есть, основное время уходит не на вычисления, а на трансфер весов из памяти к вычислительным ядрам🤔
Отсюда получается
- INT8 квантизация, Flash Attention и другие техники, учитывающие факт выше, помогают заметно снизить латенси
- Увеличение размера батча увеличивает пропускную способность модели, так как один раз загруженные в вычислительные ядра веса, используются для нескольких примеров (латенси при этом немного возрастает)
- Tensor Parallelism (если есть > 1 GPU) параллелит трансфер весов (и вычисления), что позволяет уменьшить латенси
🔹 Их метод (в посте есть понятная визуализация)
1. Генерируем маленькой assistant моделью несколько последующих токенов (жадно)
2. Большой моделью делаем один forward и получаем логиты для этих сгенерированных токенов
3. Берем от логитов argmax и отбрасываем предложенные assistant моделью токены, начиная с первого несовпадения
4. goto 1.
Для семплинга тоже придумали, но быстрее работает с жадной генерацией
Интересный подход. Получатся разные латенси для разных текстов: легкие (ожидаемые) будут генерироваться быстрее. Типа роутинга запросов, только внутри одного метода генерации 🤔
Прикольный пост на Huggingface про ускорение генерации больших LMок. Реализация уже в 🤗, можно использовать
One sentence summary: маленькая модель генерирует последовательности токенов, большая проверяет
🔹 Как происходит генерация?
- последовательно, токен за токеном
- 1 forward pass на 1 токен
- предыдущие внутренние состояния кешируются
- вычисления скрытого состояния для нового токена идут послойно
🔹 Основной ботлнек и что с этим делать?
Для больших языковых моделей ботлнек это пропускная способность памяти GPU во время матричного умножения. То есть, основное время уходит не на вычисления, а на трансфер весов из памяти к вычислительным ядрам
Отсюда получается
- INT8 квантизация, Flash Attention и другие техники, учитывающие факт выше, помогают заметно снизить латенси
- Увеличение размера батча увеличивает пропускную способность модели, так как один раз загруженные в вычислительные ядра веса, используются для нескольких примеров (латенси при этом немного возрастает)
- Tensor Parallelism (если есть > 1 GPU) параллелит трансфер весов (и вычисления), что позволяет уменьшить латенси
🔹 Их метод (в посте есть понятная визуализация)
1. Генерируем маленькой assistant моделью несколько последующих токенов (жадно)
2. Большой моделью делаем один forward и получаем логиты для этих сгенерированных токенов
3. Берем от логитов argmax и отбрасываем предложенные assistant моделью токены, начиная с первого несовпадения
4. goto 1.
Для семплинга тоже придумали, но быстрее работает с жадной генерацией
Интересный подход. Получатся разные латенси для разных текстов: легкие (ожидаемые) будут генерироваться быстрее. Типа роутинга запросов, только внутри одного метода генерации 🤔
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍4🤯2❤1
Open Source vs Big Tech
Недавно в сеть утек внутренний пост сотрудника из Гугла. Как и с любым утекшим документом достоверность факта утечки не 100%, это не позиция компании и прочие предупреждения. Тем не менее, пост интересный)
В нем есть занимательные рассуждения про open source vs big tech, и подробный таймлайн успехов open source коммьюнити начиная с релиза LLaMA.
Но вот одно утверждение, которое слишком уж преувеличено, как мне кажется: гуглу нужен опенсорс больше, чем опенсорсу гугл (OpenAI, Meta, …).
Коммьюнити сделало реально много крутых штук, но часто это что то типа
- как дообучить / инферить большую модель на карте с 4 гб
- как впихнуть большую модель в любой чайник
- воспроизведение того, что уже открыто, исследовано и доказано (эмпирически) работает у Big Tech
Но чтобы понять, какие подходы работают и как надо делать, компании потратили кучу денег и времени. В общем, респект и тем, и тем👍
Недавно в сеть утек внутренний пост сотрудника из Гугла. Как и с любым утекшим документом достоверность факта утечки не 100%, это не позиция компании и прочие предупреждения. Тем не менее, пост интересный)
В нем есть занимательные рассуждения про open source vs big tech, и подробный таймлайн успехов open source коммьюнити начиная с релиза LLaMA.
Но вот одно утверждение, которое слишком уж преувеличено, как мне кажется: гуглу нужен опенсорс больше, чем опенсорсу гугл (OpenAI, Meta, …).
Коммьюнити сделало реально много крутых штук, но часто это что то типа
- как дообучить / инферить большую модель на карте с 4 гб
- как впихнуть большую модель в любой чайник
- воспроизведение того, что уже открыто, исследовано и доказано (эмпирически) работает у Big Tech
Но чтобы понять, какие подходы работают и как надо делать, компании потратили кучу денег и времени. В общем, респект и тем, и тем
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍4❤1
Конкуренция AI продуктов🏆
Альтернатива ChatGPT от гугла: Bard
➕ Бесплатный
➕ С доступом к поиску под капотом, то есть можно спрашивать про свежие события
➕ Быстрее, чем ChatGPT
➕ Чаще выводит результат в удобно читаемой табличке (мне такое нравится 🙂)
➖ Только на английском
Смелый шаг от гугла. Такой новый поиск пока не понятно как монетизировать. То есть это угроза их основному бизнесу (рекламе). Плюс, теперь их бренд в какой то степени будет ассоциироваться с галлюцинациями, которые иногда выдают все LMки (и Bard не исключение). И наверняка будет достаточно желающих засудить гугл за неверные факты в ответах
Ну а пользователям больше опций только лучше) Конкуренция - хорошо и весело🥔
(только если эти компании станут сильно меньше публиковать информации про свои открытия, это не так весело👎 )
Альтернатива ChatGPT от гугла: Bard
➕ Бесплатный
➕ С доступом к поиску под капотом, то есть можно спрашивать про свежие события
➕ Быстрее, чем ChatGPT
➕ Чаще выводит результат в удобно читаемой табличке (мне такое нравится 🙂)
➖ Только на английском
Смелый шаг от гугла. Такой новый поиск пока не понятно как монетизировать. То есть это угроза их основному бизнесу (рекламе). Плюс, теперь их бренд в какой то степени будет ассоциироваться с галлюцинациями, которые иногда выдают все LMки (и Bard не исключение). И наверняка будет достаточно желающих засудить гугл за неверные факты в ответах
Ну а пользователям больше опций только лучше) Конкуренция - хорошо и весело
(только если эти компании станут сильно меньше публиковать информации про свои открытия, это не так весело
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍3❤1👎1🤔1
Безопасный Искусственный Интеллект 🤖
Последнее время много обсуждается про возможные опасности ИИ и как он уничтожит человечество. В связи с этим, популярней становятся исследования про AI Safety. Вот некоторые направления в этой области, если вдруг захочется сделать вклад😉
☝ Интерпретируемость. Нейросеть - черный ящик, перемножение и складывания чиселок миллиарды раз. Но есть разные подходы, чтобы понимать на какие части входного текста модель опиралась больше, или за что отвечает отдельно взятый нейрон, и так далее
☝ Робастность. Если подать на вход нетипичные данные, которые модель не видела во время обучения, она может выдать полный бред. Робастность это как раз про то, чтобы на широком спектре входных данных отвечать адекватно
☝ Честность. LLMки способны генерировать очень правдоподобный вымысел. Какой нибудь медицинский совет от ChatGPT может звучать очень научно и классно, но следовать ему без дополнительного факт чекинга - плохая идея
☝ Определение награды. Как донести до нейросети человеческие ценности, предпочтения? Самый популярный подход сейчас: Reward modeling на попарных сравнениях, сделанных людьми, и последующий RL
☝ Оценка качества. Перед тем как выпускать свежеобученную нейросеть в мир, было бы хорошо оценить её способности на разнообразных тестах, и заранее обнаружить её слабые и сильные стороны
Последнее время много обсуждается про возможные опасности ИИ и как он уничтожит человечество. В связи с этим, популярней становятся исследования про AI Safety. Вот некоторые направления в этой области, если вдруг захочется сделать вклад
☝ Интерпретируемость. Нейросеть - черный ящик, перемножение и складывания чиселок миллиарды раз. Но есть разные подходы, чтобы понимать на какие части входного текста модель опиралась больше, или за что отвечает отдельно взятый нейрон, и так далее
☝ Робастность. Если подать на вход нетипичные данные, которые модель не видела во время обучения, она может выдать полный бред. Робастность это как раз про то, чтобы на широком спектре входных данных отвечать адекватно
☝ Честность. LLMки способны генерировать очень правдоподобный вымысел. Какой нибудь медицинский совет от ChatGPT может звучать очень научно и классно, но следовать ему без дополнительного факт чекинга - плохая идея
☝ Определение награды. Как донести до нейросети человеческие ценности, предпочтения? Самый популярный подход сейчас: Reward modeling на попарных сравнениях, сделанных людьми, и последующий RL
☝ Оценка качества. Перед тем как выпускать свежеобученную нейросеть в мир, было бы хорошо оценить её способности на разнообразных тестах, и заранее обнаружить её слабые и сильные стороны
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍6🤔3❤1
SLiC-HF - убийца 🔪 RLHF?
RLHF, которым обучались ChatGPT и GPT-4, обладает следующим недостатком: сложное, долгое и нестабильное RL дообучение, с большими требованиями по памяти; ведь во время него нужно оценивать генерации с помощью Reward модели и считать вероятности изначальной моделью для KL члена (на рисунке 3 более подробное сравнение).
Так вот, чуваки из гугла показали, что есть более эффективный и простой способ дообучаться на сложный недифференцируемый сигнал типа Human Feedback'а. По human evaluation их метод статзначимо выигрывает у RLHF💪
Коротко про метод (Sequence Likelihood Calibration):
1️⃣ Обучить нейронку моделировать Human Feedback. Они экспериментировали с pair-wise (контрастив) и point-wise обучениями
2️⃣ Создать датасет
a. сгенерировать
b. либо взять непосредственно датасет попарных сравнений в качестве
c. микс a и b
3️⃣ Дообучить на нем с лоссом с рисунка 1
Что круто, они сравнились с более простым и очевидным способом улучшения модели: простой supervised finetuning на
Подробности читайте в статье, очень годная 🔥
Подписывайтесь на мой канал, чтобы читать про интересные штуки в AI: https://t.iss.one/building_singularity :)
RLHF, которым обучались ChatGPT и GPT-4, обладает следующим недостатком: сложное, долгое и нестабильное RL дообучение, с большими требованиями по памяти; ведь во время него нужно оценивать генерации с помощью Reward модели и считать вероятности изначальной моделью для KL члена (на рисунке 3 более подробное сравнение).
Так вот, чуваки из гугла показали, что есть более эффективный и простой способ дообучаться на сложный недифференцируемый сигнал типа Human Feedback'а. По human evaluation их метод статзначимо выигрывает у RLHF
Коротко про метод (Sequence Likelihood Calibration):
1️⃣ Обучить нейронку моделировать Human Feedback. Они экспериментировали с pair-wise (контрастив) и point-wise обучениями
2️⃣ Создать датасет
(x, y+, y-, y_ref)
:a. сгенерировать
n
кандидатов, проранжировать их моделью с 1 шага, выбрать лучший в качестве y_ref
, и ещё пару для y+
и y-
b. либо взять непосредственно датасет попарных сравнений в качестве
y+
и y-
; а в качестве y_ref
- написанные людьми суммаризацииc. микс a и b
3️⃣ Дообучить на нем с лоссом с рисунка 1
Что круто, они сравнились с более простым и очевидным способом улучшения модели: простой supervised finetuning на
y_ref
(рисунок 2)Подробности читайте в статье, очень годная 🔥
Подписывайтесь на мой канал, чтобы читать про интересные штуки в AI: https://t.iss.one/building_singularity :)
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍7❤2🎉1
Улучшение качества 📈 за счет оптимального выбора весов для обучающих датасетов 📚
Датасеты бывают из разных доменов: интернет новости, википедия, код, диалоги, инструкции... И применяться одна и та же модель может на разных задачах: например это могут быть chit-chat диалоги, диалоги с детьми, диалоги, склоняющие к целевому действию - в зависимости от пользователя. В каких пропорциях брать датасеты в финальный трейн сет?
Авторы статьи (из Гугла и Стенфорда) предлагают способ выбора весов для каждого домена, который в их экспериментах:
🔹 Уменьшил лосс на каждом домене относительно бейзлайна (эвристически подобранные веса датасета Pile) - без трейдоффа, просто улучшение (рисунок 1)
🔹 Обученная их методом модель улучшила среднюю точность One-Shot’а в 5 разных задачах (рисунок 2)
Метод (рисунок 3):
1️⃣ Обучить небольшую reference Langauage Model
2️⃣ Обучить прокси модель (используя Group Distributionally Robust Optimization), чтобы получить новые веса для доменов
3️⃣ Обучить финальную большую LM с этими весами
❗️Group DRO: минимизация наибольшего лосса по всем доменам. То есть ищем модель, которая работает как можно лучше в самых тяжелых случаях.
На самом деле Group DRO не просто лосс минимизирует, а разницу лосса прокси и референс моделей (но получилось бы слишком тяжелое для понимания предложение 😁). Сам процесс обучения: поочередное изменение весов доменов и весов прокси LM’ки для решения минимакс задачи (алгоритм на рисунке 4)
В итоге:
🔸 качество строго лучше и достигается оно быстрее - относительно эвристически подобранных весов
🔸 качество такое же, но эксперименты дешевле - относительно оптимизации весов доменов под целевые задачи сразу с большой LM’кой
Статья: DoReMi: Optimizing Data Mixtures Speeds Up Language Model Pretraining
Датасеты бывают из разных доменов: интернет новости, википедия, код, диалоги, инструкции... И применяться одна и та же модель может на разных задачах: например это могут быть chit-chat диалоги, диалоги с детьми, диалоги, склоняющие к целевому действию - в зависимости от пользователя. В каких пропорциях брать датасеты в финальный трейн сет?
Авторы статьи (из Гугла и Стенфорда) предлагают способ выбора весов для каждого домена, который в их экспериментах:
🔹 Уменьшил лосс на каждом домене относительно бейзлайна (эвристически подобранные веса датасета Pile) - без трейдоффа, просто улучшение (рисунок 1)
🔹 Обученная их методом модель улучшила среднюю точность One-Shot’а в 5 разных задачах (рисунок 2)
Метод (рисунок 3):
1️⃣ Обучить небольшую reference Langauage Model
2️⃣ Обучить прокси модель (используя Group Distributionally Robust Optimization), чтобы получить новые веса для доменов
3️⃣ Обучить финальную большую LM с этими весами
❗️Group DRO: минимизация наибольшего лосса по всем доменам. То есть ищем модель, которая работает как можно лучше в самых тяжелых случаях.
На самом деле Group DRO не просто лосс минимизирует, а разницу лосса прокси и референс моделей (но получилось бы слишком тяжелое для понимания предложение 😁). Сам процесс обучения: поочередное изменение весов доменов и весов прокси LM’ки для решения минимакс задачи (алгоритм на рисунке 4)
В итоге:
🔸 качество строго лучше и достигается оно быстрее - относительно эвристически подобранных весов
🔸 качество такое же, но эксперименты дешевле - относительно оптимизации весов доменов под целевые задачи сразу с большой LM’кой
Статья: DoReMi: Optimizing Data Mixtures Speeds Up Language Model Pretraining
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍4❤1🤔1
Большой обзор 👁 методов по исправлению ответов LLM’ок 👨🏫
В генерациях LLM могут быть ложные факты, неверные рассуждения, код с багами, токсичные высказывания и прочие приколы. Авторы разложили по полочкам имеющиеся способы борьбы с этим.
Самый популярный сейчас подход для такого - собрать датасет предпочтений пользователей и делать RLHF. Но есть и намного более быстрые способы, где LLM генерирует критику сама для себя, и на её основе сама же исправляется😱
Такой пример post-hoc исправления может быть дешевле и эффективней в некоторых задачах, чем исправление в процессе обучения как в RLHF.
Авторы выделили во всех этих методах 3 сущности (рисунок 1):
1. Языковую модель, которая генерирует изначальный ответ
2. Критика, который дает фидбек; это может быть человеческая оценка, ответ GPT4 с нужным промптом, награда ревард модели, …
3. Способ исправления
Способы исправления могут быть:
⁃ С дообучением модели: RLHF (или SLiC / DPO) или просто составление исправленного датасета и обычный файнтюн
⁃ Во время генерации: изменять вероятности новых токенов на основе награды ревард модели, например; или генерировать N кандидатов, а затем выбирать лучший по мнению критика
⁃ Post-hoc исправление (рисунок 2): генерация той же LLM с 1ого шага, но с расширенным промптом, ...
Прикольно смотреть на такую таксономию, всё уложилось четко😗
Можно брать листья из каждой ветки, получать новый способ по исправлению ответов, и писать статью :D
(хотя там столько ссылок на другие работы, что может всё уже и перебрали)
Статья: "Automatically Correcting Large Language Models: Surveying the landscape of diverse self-correction strategies"
В генерациях LLM могут быть ложные факты, неверные рассуждения, код с багами, токсичные высказывания и прочие приколы. Авторы разложили по полочкам имеющиеся способы борьбы с этим.
Самый популярный сейчас подход для такого - собрать датасет предпочтений пользователей и делать RLHF. Но есть и намного более быстрые способы, где LLM генерирует критику сама для себя, и на её основе сама же исправляется
Такой пример post-hoc исправления может быть дешевле и эффективней в некоторых задачах, чем исправление в процессе обучения как в RLHF.
Авторы выделили во всех этих методах 3 сущности (рисунок 1):
1. Языковую модель, которая генерирует изначальный ответ
2. Критика, который дает фидбек; это может быть человеческая оценка, ответ GPT4 с нужным промптом, награда ревард модели, …
3. Способ исправления
Способы исправления могут быть:
⁃ С дообучением модели: RLHF (или SLiC / DPO) или просто составление исправленного датасета и обычный файнтюн
⁃ Во время генерации: изменять вероятности новых токенов на основе награды ревард модели, например; или генерировать N кандидатов, а затем выбирать лучший по мнению критика
⁃ Post-hoc исправление (рисунок 2): генерация той же LLM с 1ого шага, но с расширенным промптом, ...
Прикольно смотреть на такую таксономию, всё уложилось четко
Можно брать листья из каждой ветки, получать новый способ по исправлению ответов, и писать статью :D
(хотя там столько ссылок на другие работы, что может всё уже и перебрали)
Статья: "Automatically Correcting Large Language Models: Surveying the landscape of diverse self-correction strategies"
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥3❤2
Какой размер датасета 📚 нужен для дообучения❓
Точного ответа конечно нет, но есть статьи где показали
- профит с гигантским датасетом: Orca на 5М инструкций и ответов, полученных от GPT-4
- профит с небольшими, но очень качественными датасетами
Например в статье Less is More for Alignment (LIMA) чуваки из Meta вручную собрали датасет из 1000 примеров. Дообучение на нем дает результаты лучше, чем на 52к примеров из Alpaca датасета.
Но вручную собирать дорого и долго, и в статье AlpaGasus предложили автоматизировать это (рис. 1)
Ученые придумали промпт🧠
Причем они даже не пробовали разные, просто сказали что воспользовались этим (рис. 2) и всё👍
Использовали GPT-4 с этим промптом, чтобы для пар (инструкция, ответ) получить оценку от 0 до 5 - насколько они подходят друг другу. Проскорили все пары в Alpaca и выбрали 9k примеров с оценкой больше 4.5. Дообучили модель на этих 9к и сравнились с обучением на 52к аж на 4 тест сетах:
- WizardLM 250к сложных примеров evol-instruct методом
- Vicuna 70к диалогов с ChatGPT
- Koala 260к разных датасетов (QA, диалоги с LLM, ...)
- Self-Instruct 82к инструкций и ответов, сгенерированных GPT-3
Выглядит как хороший замер, да вот только примеров в тест сетах было 180, 80, 218 и 252 соотвественно😵
Замеряли качество используя GPT-4, так что я вообще не понял, почему так мало. Тем не менее, по всем тест сетам стало лучше (рис. 3)
На других обучающих данных свой подход автоматической фильтрации они не пробовали. Возможно, потому что на GPT-4-distilled датасетах (типа vicuna) это и работать не будет. Статья в общем то не очень (на мой взгляд; плюс это препринт), но есть пара вещей, которые мне кажутся действительно полезными и применимыми на практике:
1️⃣ Маленький и качественный дотасет как отличная начальная точка; больше данных не всегда лучше
2️⃣ Фильтровать ответы моделей (не ChatGPT/GPT-4) по небинарным скорам от GPT-4 (хотя в первую очередь имеет смысл просто сгенерировать ответов от GPT-4 на своем домене)
subscribe
like, share, repost :D
Точного ответа конечно нет, но есть статьи где показали
- профит с гигантским датасетом: Orca на 5М инструкций и ответов, полученных от GPT-4
- профит с небольшими, но очень качественными датасетами
Например в статье Less is More for Alignment (LIMA) чуваки из Meta вручную собрали датасет из 1000 примеров. Дообучение на нем дает результаты лучше, чем на 52к примеров из Alpaca датасета.
Но вручную собирать дорого и долго, и в статье AlpaGasus предложили автоматизировать это (рис. 1)
Ученые придумали промпт
Причем они даже не пробовали разные, просто сказали что воспользовались этим (рис. 2) и всё
Использовали GPT-4 с этим промптом, чтобы для пар (инструкция, ответ) получить оценку от 0 до 5 - насколько они подходят друг другу. Проскорили все пары в Alpaca и выбрали 9k примеров с оценкой больше 4.5. Дообучили модель на этих 9к и сравнились с обучением на 52к аж на 4 тест сетах:
- WizardLM 250к сложных примеров evol-instruct методом
- Vicuna 70к диалогов с ChatGPT
- Koala 260к разных датасетов (QA, диалоги с LLM, ...)
- Self-Instruct 82к инструкций и ответов, сгенерированных GPT-3
Выглядит как хороший замер, да вот только примеров в тест сетах было 180, 80, 218 и 252 соотвественно
Замеряли качество используя GPT-4, так что я вообще не понял, почему так мало. Тем не менее, по всем тест сетам стало лучше (рис. 3)
На других обучающих данных свой подход автоматической фильтрации они не пробовали. Возможно, потому что на GPT-4-distilled датасетах (типа vicuna) это и работать не будет. Статья в общем то не очень (на мой взгляд; плюс это препринт), но есть пара вещей, которые мне кажутся действительно полезными и применимыми на практике:
subscribe
like, share, repost :D
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥3❤1😁1