Получи случайную криптовалюту за регистрацию!

Говорит AI

Логотип телеграм канала @govorit_ai — Говорит AI Г
Логотип телеграм канала @govorit_ai — Говорит AI
Адрес канала: @govorit_ai
Категории: Технологии
Язык: Русский
Количество подписчиков: 1.04K
Описание канала:

Саммари статей про open-domain диалоговые системы и NLP вокруг них от команды Replika (replika.ai)

Рейтинги и Отзывы

2.33

3 отзыва

Оценить канал govorit_ai и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

0

4 звезд

1

3 звезд

0

2 звезд

1

1 звезд

1


Последние сообщения

2022-06-29 10:40:17
831 viewsDenis, 07:40
Открыть/Комментировать
2022-06-29 10:39:48 Typical Decoding for Natural Language Generation
https://arxiv.org/abs/2202.00666v2

TL;DR
Предложили новый способ сэмплирования из языковых моделей, основанный на концепциях теории информации и предположениях о том, как люди оперируют естественным языком в реальной жизни.

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

Под эффективной передачей информации авторы статьи понимают следующее: каждое сгенерированное слово должно содержать в себе столько информации, сколько в среднем ожидается на текущем шаге (7). Информативность конкретного слова измеряется как минус логарифм вероятности этого слова при условии контекста (т.е. чем более вероятно слово, тем меньше информации оно несет), а средняя ожидаемая информация - как энтропия распределения слов, посчитанная по всему словарю при условии текущего контекста (6). Чтобы лучше понять интуицию этого подхода, можно рассмотреть два предельных случая: когда мы только начинаем генерировать последовательность и когда уже заканчиваем. В первом случае энтропия может быть высокой, поэтому, возможно, стоит взять наиболее информативное (и значит, не слишком очевидное) слово. Во втором случае, когда вся основная информация уже передана и текст подходит к концу, энтропия низкая, и значит достаточно выбрать наиболее вероятное слово, которое естественным образом завершит текст.

Результаты
Авторы протестировали подход на двух задачах: абстрактной суммаризации и генерации рассказов. В качестве базовой модели использовали GPT-2 на 345M параметров. Для замеров в оффлайне использовали перплексию, различные метрики повторяемости (чем реже модель повторяет ранее сгенерированные подстроки, тем лучше), а также свежий подход MAUVE. В онлайне сравнивали модели с помощью асессорской разметки с 5-и кратным перекрытием.

В итоге новый подход, не смотря на заметный "проигрыш" по перплексии, показал на остальных метриках в среднем более высокие результаты (в т.ч. на асессорской разметке), чем стандартные алгоритмы сэмплирования, такие как top-k и nucleus. Это в какой-то мере подтверждают гипотезу авторов, что наиболее вероятные тексты не обязательно по итогу самые хорошие.

Новый метод сэмплирования доступен в transformers начиная с версии 4.17 и активируется параметром typical_p.
883 viewsDenis, edited  07:39
Открыть/Комментировать
2022-04-21 12:37:10
368 viewsDenis, 09:37
Открыть/Комментировать
2022-04-21 12:37:02
371 viewsDenis, 09:37
Открыть/Комментировать
2022-04-21 12:36:54
362 viewsDenis, 09:36
Открыть/Комментировать
2022-04-21 12:36:32 Red Teaming Language Models with Language Models
https://arxiv.org/abs/2202.03286

TL;DR
Предложили оригинальный способ поиска оскорбительного поведения в языковых моделях: благодаря способностям к zero-shot генерации можно создавать «провокационные» контексты с помощью других языковых моделей. Метод позволяет выявлять bias в модели практически без ручного вмешательства, причём как в режиме «вопрос-ответ», так и при ведении полноценного диалога.

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

Вспомним теперь, что современные языковые модели достигли больших высот в генерации нужного нам текста по небольшому набору примеров или вообще по одному описанию задачи. Почему бы не использовать эту способность для создания тестовых кейсов для других языковых моделей? Авторы статьи Red Teaming из DeepMind предлагают в точности это: нам понадобятся исходная языковая модель (target LM), модель-«провокатор» (Red LM) и бинарный классификатор, определяющий «вредность» ответа тестируемой модели на провокацию (подойдёт даже Python-функция). С помощью Red LM мы генерируем много тестовых примеров, которые потом продолжает Target LM. Если её выход для конкретного примера оказался плохим, то мы считаем такой пример подходящим для тестирования.

На более детальном уровне у подхода есть нюансы: в частности, изначально тестовые примеры — это просто вопросы, которые генерирует Red LM по контексту «List of questions to ask someone», но потом мы можем вписать в качестве prompts вопросы, которые стали удачными провокациями. Также можно зафайнтюнить Red LM на провалившихся тестах через supervised learning или RL, чтобы она генерировала больше примеров, приводящих к оскорбительным ответам. Наконец, помимо простых вопросов можно подать в Red LM префикс, описывающий диалог, и просимулировать несколько шагов общения моделей.

Результаты
Авторы генерируют тестовые примеры с помощью Gopher на 280B параметров и тестируют Dialogue-Prompted Gopher — ту же самую модель, обусловленную префиксом на ведение диалога. В качестве классификатора используется версия Gopher с 1.4B весов, дообученная на датасете Bot-Adversarial Dialogue. В итоге оказалось, что из 0.5M zero-shot примеров 18K привели к оскорбительным ответам Target LM. Другие способы имеют больший процент «успеха», но оказываются менее разнообразными, потому что эксплуатируют конкретные паттерны языковой модели.

Авторы нашли несколько кластеров похожих оскорбительных ответов: в частности, одна из повторяющихся шуток встретилась в обучающих данных несколько сотен раз, и информацию об этом можно использовать для фильтрации датасета. Также применение похожей техники позволило выявить примеры утечки обучающих данных в ответах языковой модели, причем как текстовых фрагментов, так и контактной информации реальных людей. При этом сами по себе тестовые примеры довольно заметно отличаются от того, что есть в датасете BAD, то есть Red Teaming можно сочетать с использованием размеченных данных.
354 viewsDenis, edited  09:36
Открыть/Комментировать
2022-04-13 14:11:24
616 viewsRenat, 11:11
Открыть/Комментировать
2022-04-13 14:11:14 Результаты
Применяемый подход сравнивали с обучением со “стандартными” параметрами, а также с двумя работами конкурентов - 1) с дискретным 2-ступенчатым увеличением длины последовательности (“2-stage CL“) и 2) плавным увеличением размера батча (“Bsz Warmup 45”). Метрики меряли по перплексии на валидации, перплексии на WikiText и accuracy на LAMBADA. Для анализа “нестабильности” обучения предложили метрику “loss ratio” - отношение текущего лосса к минимальному за все предыдущие шаги, и сравнивали по ней модели (еще смотрели на максимальный накопленный variance state в Адаме).

Pre-training “большой” модели с размером батча в 4К с применением CL-подхода авторов проходит на 65% быстрее (121 час vs 341), чем при обучении с размером батча в 512, достигая при этом метрик не хуже на LAMBADA/WikiText (и использует для обучения суммарно на 23% меньше токенов - 121 млрд vs 157 млрд). Для сравнения, при обучении с размером батча в 4К со стандартными параметрами целевые (как с маленьким размером батча) метрики не достигаются даже при обучении на полном объеме токенов.

Также при применении авторского-CL подхода практически полностью исчезла нестабильность в обучении - максимальный loss ratio остается в пределах 1.02-1.06х (против 5х+ при стандартном обучении). В работах конкурентов есть ускорение по сравнению со стандартным подходом, но меньшее + не решается проблема нестабильности обучения (как по loss ratio, так и по max variance state в Адаме)
640 viewsRenat, 11:11
Открыть/Комментировать
2022-04-13 14:11:06 Curriculum Learning: A Regularization Method for Efficient and Stable Billion-Scale GPT Model Pre-Training
https://arxiv.org/abs/2108.06084

TL;DR
Microsoft показали, что возможно делать pre-training больших (1.5B) GPT-модели с большим размером батча (bs 4К), более стабильно (без скачков лосса) и без потери в качестве - если плавно увеличивать максимальную длину последовательности в ходе обучения.

Суть подхода
Для pre-training огромных трансформеров, как правило, нужно много GPU + большой размер батча, чтобы модель обучалась за разумное время. Но при увеличении размера батча обучение становится более нестабильным, а модель медленнее (относительно использованного числа токенов) сходится к нужным метрикам. Цель, которую поставили перед собой авторы статьи - не терять в стабильности и качестве при обучении с большим размером батча. Анализ проводили на двух GPT-моделях - “маленькой” (117M параметров) и “большой” (1.5B) и с batch size 512 и 4096, в качестве оптимизатора использовали только Adam (с другими не сравнивали).

Подход авторов состоит в постепенном повышении длины последовательности по линейной “pacing function” (пробовали также другие - дискретные, степенные и т.д. - линейная работает лучше всего). У такой pacing function всего 2 параметра - стартовая длина последовательности seqlen1 (брали 8/64 токенов для маленькой/большой модели) и число шагов T до максимальной длины последовательности. В графиках в основной части статьи авторы пробуют обучают модель с несколькими вариантами T.

В конце статьи авторы также предлагают эвристику для подбора этих параметров: сначала на небольшом числе шагов (num LR warmup steps х небольшой множитель) увеличивать seqlen1 до исчезновения сильных колебаний перплексии на валидации. Затем на том же числе шагов бинарным поиском найти максимальный T, на котором не возникает тех же колебаний перплексии. Утверждается, что результаты при подборе по такой эвристики не хуже, чем при переборе по grid search (полный перебор делали только для модели 117М).
1.1K viewsRenat, 11:11
Открыть/Комментировать
2022-01-11 10:02:46 Channel photo updated
07:02
Открыть/Комментировать