Любители мишек ликуют? Вышел Pandas 2.0 с pyarrow обёрткой.
С pyarrow говорят быстрее, чем без.
А что предпочитаешь ты для EDA и DataProcessing?
Голосуем:
🐼 - пандас
🤖- vaex/polars
🙈- чистый python
Пишем в комментариях)
Немного подробностей.
https://telegra.ph/Pandas-200--gejmchejndzher-v-rabote-data-sajentistov-10-19
З. Ы. У меня в целом 🤖🙊🐼 в зависимости от ситуации
С pyarrow говорят быстрее, чем без.
А что предпочитаешь ты для EDA и DataProcessing?
Голосуем:
🐼 - пандас
🤖- vaex/polars
🙈- чистый python
Пишем в комментариях)
Немного подробностей.
https://telegra.ph/Pandas-200--gejmchejndzher-v-rabote-data-sajentistov-10-19
З. Ы. У меня в целом 🤖🙊🐼 в зависимости от ситуации
Telegraph
Pandas 2.0.0 — геймчейнджер в работе дата-сайентистов?
Многофункциональная и универсальная библиотека pandas заняла достойное место в сердце каждого дата-сайентиста. Практически невозможно представить себе работу с данными — начиная с их ввода/вывода до очистки и преобразования — без import pandas as pd. И теперь…
👍5❤2🙈2👎1🔥1🤔1
Forwarded from Градиентное погружение (Максим Герасимов)
🔥TensorRT-LLM
👉Ваш любимый нейронный ускоритель получил расширение!
TensorRT - движок, который применяет оптимизации для эффективного использования NVIDIA-GPU в Deep Learning.
Что интересного?
💡Интеграция с NVIDIA Triton Inference Server
💡Поддержка Multiple GPU
💡Python API (очень напоминает API HF)
💡Есть поддержка 17 моделей (с примерами): Blib2, LLaMa 1/2, GPT-like, StarCoder, Bert, etc
💡Поддержка квантизации: FP32, FP16, BF16, FP8, INT8, INT4
💡Beam-search & Greedy-search
... и многое другое!
Multi-head Attention (MHA), Multi-query Attention (MQA), Group-query Attention (GQA), In-flight Batching, Paged KV Cache for the Attention, Tensor Parallelism, Pipeline Parallelism, INT4/INT8 Weight-Only Quantization (W4A16 & W8A16), SmoothQuant, GPTQ, AWQ, RoPE
@gradientdip
Конечно, сейчас проект сыроват, но все впереди
Github
Performance (не нашел сравнения с обычным TensorRT)
Документация
👉Ваш любимый нейронный ускоритель получил расширение!
TensorRT - движок, который применяет оптимизации для эффективного использования NVIDIA-GPU в Deep Learning.
Что интересного?
💡Интеграция с NVIDIA Triton Inference Server
💡Поддержка Multiple GPU
💡Python API (очень напоминает API HF)
💡Есть поддержка 17 моделей (с примерами): Blib2, LLaMa 1/2, GPT-like, StarCoder, Bert, etc
💡Поддержка квантизации: FP32, FP16, BF16, FP8, INT8, INT4
💡Beam-search & Greedy-search
... и многое другое!
Multi-head Attention (MHA), Multi-query Attention (MQA), Group-query Attention (GQA), In-flight Batching, Paged KV Cache for the Attention, Tensor Parallelism, Pipeline Parallelism, INT4/INT8 Weight-Only Quantization (W4A16 & W8A16), SmoothQuant, GPTQ, AWQ, RoPE
@gradientdip
Конечно, сейчас проект сыроват, но все впереди
Github
Performance (не нашел сравнения с обычным TensorRT)
Документация
❤8👍1🔥1
Новый взгляд на log-simoid pair-ranking loss.
Тут ребятки наделали шума простой модификацией, которая даёт весомый буст , ещё и память экономит во всех смыслах. И на батче и в целом моделька меньше, а делает по качеству ту, что больше.
https://news.1rj.ru/str/lovedeathtransformers/6477
Я даже немного возбудился.
Вру, очень даже возбудился.
Пойду попробую модификацию от log sigmoid в своём пайпе.
прямая ссылка: https://teletype.in/@alexwortega/sYpRYOfkDYz
Тут ребятки наделали шума простой модификацией, которая даёт весомый буст , ещё и память экономит во всех смыслах. И на батче и в целом моделька меньше, а делает по качеству ту, что больше.
https://news.1rj.ru/str/lovedeathtransformers/6477
Я даже немного возбудился.
Вру, очень даже возбудился.
Пойду попробую модификацию от log sigmoid в своём пайпе.
прямая ссылка: https://teletype.in/@alexwortega/sYpRYOfkDYz
Telegram
Love. Death. Transformers.
#чтивонаночь
Давно собирался рассказать про самый интересный папир среди text-image contrastive моделей.
Ребята учат за день 400м модель которая лучше чем модель которая училась месяц, так еще и outperform_ят 5B модели.
Sigmoid loss for Image-Text Pt дамы…
Давно собирался рассказать про самый интересный папир среди text-image contrastive моделей.
Ребята учат за день 400м модель которая лучше чем модель которая училась месяц, так еще и outperform_ят 5B модели.
Sigmoid loss for Image-Text Pt дамы…
❤8👍3❤🔥2🗿1
Не поиском едины.
Вчера вечером посмотрел интересное от Яндекса.
Митап ML в Белграде. Команда поиска рассказывала о своём опыте с LLM.
Мне были интересны первые два доклада. Поэтому мои заметки ниже.
Доклад 1. Про генерацию рекламных предложений в поиске:
Ситуация такая, что ребята делают генерацию шаблонов предложений на GPTlike. Далее при помощи DSSM-BERT + catboost выдают лучший кандидат. Радует, что схема классическая, энкодеры и бустинги всё ещё живут и помогают в выдаче. А не "давайте всё перенесём на генеративные с К бошками, пусть и генерит и реранкит".
От себя. Я бы в кандидаты добавил кроме сгенерированных шаблонов, созданные при помощи людей, преднаписанные или вообще конструктор на аннотаторах (модели такие а-ля NER, topic и тп), где в шаблоны просто филятся кандидаты по полям. Далее это всё вместе уже с генеративной реранкал, чтобы добавить надёжности.
Доклад 2. Сладкий RLHF в LLM для поиска.
(Крч хайп, балдёж и всё такое.)
Очень интересный срез опыта команды alignment LLM в поиске.
Рассказали важное, tldr:
1. Ещё раз напомнили, что PPO не стабильно и делают DPO.
2. Схема CCE => DPO работает хорошо.
3. Best of N или RL для бедных, всё ещё лутает и на батч генерации и на инференсе.
4. DPO требователен к размеру сета.
5. Умный сэмплинг с параметров, ранее полезных для оценки на корзинках, даёт направленное выравнивание.
Теперь подробнее про DPO пункты 2-4:
В общем, ребята не юзают PPO, но берут reward модельку для получения синтетики. А именно, гоняют пассажи и генерации к ним через модель награды и кормят DPO алгоритму эту разметку, получают +5% качества.
Потом идут ещё дальше, и берут
топ2 по скору пары из reward для дообучения в cross entropy (по сути ещё шаг файнтюна) с их LLM. После врубают DPO и модель радостно сходится и даёт ещё +4% win rate.
При этом, CE шаг работает с DPO дословно: ТОЛЬКО в последовательности сначала sft-CE на top2 потом DPO. Отмечают, что ещё DPO требователен к размеру дата сета и нужно порядка 50-100к пар, чтобы завелось.
Ну и такой сэмплинг не только помогает на обучении, но и на генерации ответа, выбор топ1 по награде даёт лучший winrate +7%. Правда зовут они это фильтрацией😁
В общем, зачемкозе баян CE+DPO и почему это работает?
Такие вопросы я задал себе. И подумав, предположил, что дело в направленной сходимости к некоторой области весов сети. Эту область мы достигаем через reward sampling+CE файнтюн (как прям при прогреве ???). Далее уже в этой области мы при помощи DPO доусаживаем веса до оптимального набораи не разлетаемся к хренам. Таким образом ,CE подход напоминает направленную регуляризацию, по аналогии с KLD в PPO? А почему бы не делать для надежности сходимости в PPO также. N шагов с CE, K шагов с PPO и по кругу 🤔
Замечание: тк в центре всего тут reward моделька, то её нужно натренировать максимально качественно и надёжно. Быть уверенным , что она реально хорошо отражает preferences. От себя добавлю, для обучения такой модели нужен сбалансированный сет, без перекосов по стилю и длине текстов. Иначе ваша награда быстро найдёт как разделить такие тексты (по тому же стилю или длине).
На сладкое пункт 5. Что это за такой сэмплинг умный?
Ответ простой. Давайте будем просить размечать генерации не только как хороший/плохой, а ставить доп параметры: безопасный, интересный, информативный и тп.
Далее будем использовать это one-hot кодирования для того, чтобы сэмплить примеры с нужным набором 0/1 по данным осям. Так мы получили на батч генерации направленное выравнивание по нужным нам свойства на оценке метрик! Вот западает у вас безопасность и интересность, берём и семплим где стоят у примеров 1ки по этим параметрам. Но ребята пошли дальше, и разбили такие наборы на группы и раздали веса (экспертно или на прогонах выбрали) для сэмплирования, аля вероятности взять в батч. Ещё +1.5% к качеству. Красиво, молодцы.😏
Фух, вроде всё. Советую очень посмотреть это 📹 по ссылке во вложении. Я кайфанул, думаю вы тоже оцените.
Вчера вечером посмотрел интересное от Яндекса.
Митап ML в Белграде. Команда поиска рассказывала о своём опыте с LLM.
Мне были интересны первые два доклада. Поэтому мои заметки ниже.
Доклад 1. Про генерацию рекламных предложений в поиске:
Ситуация такая, что ребята делают генерацию шаблонов предложений на GPTlike. Далее при помощи DSSM-BERT + catboost выдают лучший кандидат. Радует, что схема классическая, энкодеры и бустинги всё ещё живут и помогают в выдаче. А не "давайте всё перенесём на генеративные с К бошками, пусть и генерит и реранкит".
От себя. Я бы в кандидаты добавил кроме сгенерированных шаблонов, созданные при помощи людей, преднаписанные или вообще конструктор на аннотаторах (модели такие а-ля NER, topic и тп), где в шаблоны просто филятся кандидаты по полям. Далее это всё вместе уже с генеративной реранкал, чтобы добавить надёжности.
Доклад 2. Сладкий RLHF в LLM для поиска.
(Крч хайп, балдёж и всё такое.)
Очень интересный срез опыта команды alignment LLM в поиске.
Рассказали важное, tldr:
1. Ещё раз напомнили, что PPO не стабильно и делают DPO.
2. Схема CCE => DPO работает хорошо.
3. Best of N или RL для бедных, всё ещё лутает и на батч генерации и на инференсе.
4. DPO требователен к размеру сета.
5. Умный сэмплинг с параметров, ранее полезных для оценки на корзинках, даёт направленное выравнивание.
Теперь подробнее про DPO пункты 2-4:
В общем, ребята не юзают PPO, но берут reward модельку для получения синтетики. А именно, гоняют пассажи и генерации к ним через модель награды и кормят DPO алгоритму эту разметку, получают +5% качества.
Потом идут ещё дальше, и берут
топ2 по скору пары из reward для дообучения в cross entropy (по сути ещё шаг файнтюна) с их LLM. После врубают DPO и модель радостно сходится и даёт ещё +4% win rate.
При этом, CE шаг работает с DPO дословно: ТОЛЬКО в последовательности сначала sft-CE на top2 потом DPO. Отмечают, что ещё DPO требователен к размеру дата сета и нужно порядка 50-100к пар, чтобы завелось.
Ну и такой сэмплинг не только помогает на обучении, но и на генерации ответа, выбор топ1 по награде даёт лучший winrate +7%. Правда зовут они это фильтрацией
В общем, зачем
Такие вопросы я задал себе. И подумав, предположил, что дело в направленной сходимости к некоторой области весов сети. Эту область мы достигаем через reward sampling+CE файнтюн (как прям при прогреве ???). Далее уже в этой области мы при помощи DPO доусаживаем веса до оптимального набора
Замечание: тк в центре всего тут reward моделька, то её нужно натренировать максимально качественно и надёжно. Быть уверенным , что она реально хорошо отражает preferences. От себя добавлю, для обучения такой модели нужен сбалансированный сет, без перекосов по стилю и длине текстов. Иначе ваша награда быстро найдёт как разделить такие тексты (по тому же стилю или длине).
На сладкое пункт 5. Что это за такой сэмплинг умный?
Ответ простой. Давайте будем просить размечать генерации не только как хороший/плохой, а ставить доп параметры: безопасный, интересный, информативный и тп.
Далее будем использовать это one-hot кодирования для того, чтобы сэмплить примеры с нужным набором 0/1 по данным осям. Так мы получили на батч генерации направленное выравнивание по нужным нам свойства на оценке метрик! Вот западает у вас безопасность и интересность, берём и семплим где стоят у примеров 1ки по этим параметрам. Но ребята пошли дальше, и разбили такие наборы на группы и раздали веса (экспертно или на прогонах выбрали) для сэмплирования, аля вероятности взять в батч. Ещё +1.5% к качеству. Красиво, молодцы.
Фух, вроде всё. Советую очень посмотреть это 📹 по ссылке во вложении. Я кайфанул, думаю вы тоже оцените.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
ML Party Белград — 25 октября 2023
Добро пожаловать на вечерний митап для ML-инженеров от Яндекса. В этот раз поговорим про прикладной проект на стыке технологий машинного обучения и ecom-продукта, обсудим этапы задачи матчинга предложений на товары и потери на разных стадиях, а также рассмотрим…
👍18❤5🔥3
Интересное открытие flex дня.
Или не BERT и LLM живёт земля...
Был сегодня на встрече со своими коллегами по цеху и даже с бывшими коллегами по работе.
Вот один из таких коллег, сообщил, что моя модель пару лет была бессменно в одном важном сервисе по автоматизации поддержки звонков клиентов крупного банка...😎
Что же за модель спросите вы?
BERT? Нет. GPT? Нет.
Ответ:
BiLSTM+attention+glove и fastext💃 эмбеддинги. Обучены конечно эмбы на логах той же системы. Как сейчас помню 15 гигов логов.
Обучение на CPU макбука в ночь перед уходом с работы, утром проверил метрики и собрал новую ветку на релиз... Вот такие пирОги.
Забавно, что все несли BERTы (ну как же хайпово), а приросту значимого не было...
А вы LLM, трансформеры.. Остальное умерло (хотя кто-то уже и BERTы хоронит).
Кстати тут прошёл сорев, где один человек завёл классик пайп на DeBERTa + почистил данные, ушёл на месяц в свои дела. Через месяц внезапная радость 3е место, золото, призовые. А вокруг один decoder-like...🚬
Говорит закат энкодеров пошёл... Ага щаз... Всему своё место.
Выводы: юзайте сначала что-то простое, если уже сливки с метрики собрали, упёрлись в потолок, усложняйте пайп, чтобы правый хвост добить качества. Если оно вам конечно надо.
Или не BERT и LLM живёт земля...
Был сегодня на встрече со своими коллегами по цеху и даже с бывшими коллегами по работе.
Вот один из таких коллег, сообщил, что моя модель пару лет была бессменно в одном важном сервисе по автоматизации поддержки звонков клиентов крупного банка...
Что же за модель спросите вы?
BERT? Нет. GPT? Нет.
Ответ:
BiLSTM+attention+glove и fastext
Обучение на CPU макбука в ночь перед уходом с работы, утром проверил метрики и собрал новую ветку на релиз... Вот такие пирОги.
Забавно, что все несли BERTы (ну как же хайпово), а приросту значимого не было...
А вы LLM, трансформеры.. Остальное умерло (хотя кто-то уже и BERTы хоронит).
Кстати тут прошёл сорев, где один человек завёл классик пайп на DeBERTa + почистил данные, ушёл на месяц в свои дела. Через месяц внезапная радость 3е место, золото, призовые. А вокруг один decoder-like...
Говорит закат энкодеров пошёл... Ага щаз... Всему своё место.
Выводы: юзайте сначала что-то простое, если уже сливки с метрики собрали, упёрлись в потолок, усложняйте пайп, чтобы правый хвост добить качества. Если оно вам конечно надо.
Please open Telegram to view this post
VIEW IN TELEGRAM
Kaggle
CommonLit - Evaluate Student Summaries
Automatically assess summaries written by students in grades 3-12
👍32❤3🗿1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁19💯7
Augmentex - твой карманный аугментер текста.
Мы недавно вместе с коллегами опубликовали супер-либ SAGE. И зовётся супер-либ не случайно, тк состоит из генеративной части и нашей библиотеки Augmentex.
Если вы хотите получить возможность аугментации текстов на основе добавления опечаток, перестановок и др. и вам не нужны механики генеративной аугментации или custom имитации ошибок- это ваш выбор. Иначе юзайте SAGE.
Например, Augmentex работает на CPU и умеет, на основе general частот ngramm, заменять корректные символы/наборы символов на их комплиментарные ошибки. Тоже самое можно делать и на уровне слов. Встроена возможность добавлять пробелы между символами или склеивать слова и многое другое, см. мануал в репо.
Мы уже поддерживаем 2 языка - русский и английский, а также имитации general ошибок ввода с ПК и мобильной (поддержка Android/IOS раскладок) клавиатур.
Также мы планируем добавить наши bbox атаки , о которых я говорил в своих постах и на выступлениях. Атаки включают и encoders и LLM дискриминацию. Следите за обновлениями!
P. S. Использование атак в генерации батча при обучении наших моделей, добавляет устойчивости и апает метрики качества на 2-5%.
Мы недавно вместе с коллегами опубликовали супер-либ SAGE. И зовётся супер-либ не случайно, тк состоит из генеративной части и нашей библиотеки Augmentex.
Если вы хотите получить возможность аугментации текстов на основе добавления опечаток, перестановок и др. и вам не нужны механики генеративной аугментации или custom имитации ошибок- это ваш выбор. Иначе юзайте SAGE.
Например, Augmentex работает на CPU и умеет, на основе general частот ngramm, заменять корректные символы/наборы символов на их комплиментарные ошибки. Тоже самое можно делать и на уровне слов. Встроена возможность добавлять пробелы между символами или склеивать слова и многое другое, см. мануал в репо.
Мы уже поддерживаем 2 языка - русский и английский, а также имитации general ошибок ввода с ПК и мобильной (поддержка Android/IOS раскладок) клавиатур.
Также мы планируем добавить наши bbox атаки , о которых я говорил в своих постах и на выступлениях. Атаки включают и encoders и LLM дискриминацию. Следите за обновлениями!
P. S. Использование атак в генерации батча при обучении наших моделей, добавляет устойчивости и апает метрики качества на 2-5%.
GitHub
GitHub - ai-forever/augmentex: Augmentex — a library for augmenting texts with errors
Augmentex — a library for augmenting texts with errors - ai-forever/augmentex
👍36🔥5❤2
Forwarded from Love. Death. Transformers.
#чтивонаночь по быстрому
CODEFUSION: A Pre-trained Diffusion Model for Code Generation
и это прям умно - авторы берут претрен T5 еncoder, кидают его стейты в Denoiser(10 блоков трансформера - неизвестных) а в качестве декодера - 6 блоков декодера.
По метрика лучше чем соседи по классу, местами бьет 100кратно лучшие модели
а еще слили размер chatgpt, оказывается она всего то 20B. Имаджинируете лица людей которые разгоняли что у open ai в проде 175b?
paper
CODEFUSION: A Pre-trained Diffusion Model for Code Generation
и это прям умно - авторы берут претрен T5 еncoder, кидают его стейты в Denoiser(10 блоков трансформера - неизвестных) а в качестве декодера - 6 блоков декодера.
По метрика лучше чем соседи по классу, местами бьет 100кратно лучшие модели
а еще слили размер chatgpt, оказывается она всего то 20B. Имаджинируете лица людей которые разгоняли что у open ai в проде 175b?
paper
😁9👏1🤯1
Новый NLP сорев на kaggle.
В век LLM встаёт вопрос детекции синтетики/сгенерированных текстов. И вот наконец-то докатилось и до моей любимой платформы соревнований.
Кстати советую почитать каналы:
1. Юрия Кашницкого
2. И Техножрицы
Всё на тему детекции сгенерированных текстов. Особенно пленяет подход на основе определения размерности вложения и по нему детекции синтетики. Читаем в канале п2.
Соревнование тут:
https://www.kaggle.com/competitions/llm-detect-ai-generated-text/
Всем успехов!
UPD. Дополнение от @inkoziev
1) статья "Intrinsic Dimension Estimation for Robust Detection of AI-Generated Texts" https://arxiv.org/pdf/2306.04723.pdf
2) реп https://github.com/ArGintum/GPTID к пред. статье
3) либа scikit-dimention https://scikit-dimension.readthedocs.io/en/latest/quick_start.html
В век LLM встаёт вопрос детекции синтетики/сгенерированных текстов. И вот наконец-то докатилось и до моей любимой платформы соревнований.
Кстати советую почитать каналы:
1. Юрия Кашницкого
2. И Техножрицы
Всё на тему детекции сгенерированных текстов. Особенно пленяет подход на основе определения размерности вложения и по нему детекции синтетики. Читаем в канале п2.
Соревнование тут:
https://www.kaggle.com/competitions/llm-detect-ai-generated-text/
Всем успехов!
UPD. Дополнение от @inkoziev
1) статья "Intrinsic Dimension Estimation for Robust Detection of AI-Generated Texts" https://arxiv.org/pdf/2306.04723.pdf
2) реп https://github.com/ArGintum/GPTID к пред. статье
3) либа scikit-dimention https://scikit-dimension.readthedocs.io/en/latest/quick_start.html
Kaggle
LLM - Detect AI Generated Text
Identify which essay was written by a large language model
👍19❤3❤🔥1
Forwarded from Alex Ryzhkov
Коллеги, всем привет!
Поскольку большинство из нас не только строит ML модели, но и объединяет их в разного рода композиции для улучшения финального качества, подготовил пост с примером ноутбука по различным методам типа блендинга, голосования, стеккинга и т.п.: https://www.kaggle.com/competitions/playground-series-s3e24/discussion/452123
Думаю, что подобный код будет полезен каждому в качестве шаблона при решении задач и позволит ускорить этап построения композиций
Поскольку большинство из нас не только строит ML модели, но и объединяет их в разного рода композиции для улучшения финального качества, подготовил пост с примером ноутбука по различным методам типа блендинга, голосования, стеккинга и т.п.: https://www.kaggle.com/competitions/playground-series-s3e24/discussion/452123
Думаю, что подобный код будет полезен каждому в качестве шаблона при решении задач и позволит ускорить этап построения композиций
Kaggle
Binary Prediction of Smoker Status using Bio-Signals
Playground Series - Season 3, Episode 24
🔥15❤5👍1
Какой у тебя длинный... 🫢
Вход в transformer. 📝
Или пара вредных советов для создания вашего longformer...
Тут давече вышел хабропост про то, как из вашей модели сделать longformer и расширить вход за 512 seqlen.
Нас это зацепило и мы решили, что можем воспроизвести. Засучили рукава и принялись за работу. В процессе подготовки словили несколько факапов и набили пару шишек. Поэтому, думаю, дополнения от Жеского Дяди не помешает.
Итого, что советуем:
1. При расширении контекста, нужно довыровнять global position embeddings и attention, тк мы же увеличили seqlen. Для адаптации автор поста врубал MLM и фризил всё остальное,кроме указанных выше позиций и внимания. На данном этапе не забудьте расфризить MLM head.
2. Когда собрали и запустили код, обнаружили, что при сетапе из п1. у нас стали умирать конечные эмбеды. Наши метрики упали. А хотелось бы их сохранить. Поэтому автор предлагает 30% доливать коротких текстов. Но на модели с нашим числом весов (large) пришлось увеличить долю до 40%.
3. Но и доработки п.2 не хватало. Обнаружили проблемы с прогревом, снизили его с 15к шагов до 2-5к , иначе всё сходилось не к той области весов и после отключения прогрева разлетелось к чертям.
4. Катастрофическая забывчивость для малых текстов за 2-3 пункты поличилась, но зазор всё ещё был 2-3%
качества, а хотелось воспроизвести результат поста и получить минимум разницы или даже прирост.
Поэтому дядя вспомнил про ChatGPT и как там в RLHF PPO используют KLD регуляризации к reference модели. По сути self дистилляция. И тут мы врубили её к изначальной версии без выравнивания (она учитель) и только для коротких текстов.
Крч дописали ещё одну голову совместно с MLM. В итоге получили даже где-то прирост 0.5% , что радует.
Почему в посте на хабр так всё вышло гладко и сладко? Особенно для tiny модельки. Думаю дело в числе весов и модель успела быстро сойтись и не разлететься по лоссу не в том пространстве. Сетап изначально был напомню 1 в 1. Для больших моделей от large и выше пользуйтесь советами выше.
Как-то так. Дерзайте и кидайте свои наблюдения, советы в комментариях.
Или пара вредных советов для создания вашего longformer...
Тут давече вышел хабропост про то, как из вашей модели сделать longformer и расширить вход за 512 seqlen.
Нас это зацепило и мы решили, что можем воспроизвести. Засучили рукава и принялись за работу. В процессе подготовки словили несколько факапов и набили пару шишек. Поэтому, думаю, дополнения от Жеского Дяди не помешает.
Итого, что советуем:
1. При расширении контекста, нужно довыровнять global position embeddings и attention, тк мы же увеличили seqlen. Для адаптации автор поста врубал MLM и фризил всё остальное,кроме указанных выше позиций и внимания. На данном этапе не забудьте расфризить MLM head.
2. Когда собрали и запустили код, обнаружили, что при сетапе из п1. у нас стали умирать конечные эмбеды. Наши метрики упали. А хотелось бы их сохранить. Поэтому автор предлагает 30% доливать коротких текстов. Но на модели с нашим числом весов (large) пришлось увеличить долю до 40%.
3. Но и доработки п.2 не хватало. Обнаружили проблемы с прогревом, снизили его с 15к шагов до 2-5к , иначе всё сходилось не к той области весов и после отключения прогрева разлетелось к чертям.
4. Катастрофическая забывчивость для малых текстов за 2-3 пункты поличилась, но зазор всё ещё был 2-3%
качества, а хотелось воспроизвести результат поста и получить минимум разницы или даже прирост.
Поэтому дядя вспомнил про ChatGPT и как там в RLHF PPO используют KLD регуляризации к reference модели. По сути self дистилляция. И тут мы врубили её к изначальной версии без выравнивания (она учитель) и только для коротких текстов.
Крч дописали ещё одну голову совместно с MLM. В итоге получили даже где-то прирост 0.5% , что радует.
Почему в посте на хабр так всё вышло гладко и сладко? Особенно для tiny модельки. Думаю дело в числе весов и модель успела быстро сойтись и не разлететься по лоссу не в том пространстве. Сетап изначально был напомню 1 в 1. Для больших моделей от large и выше пользуйтесь советами выше.
Как-то так. Дерзайте и кидайте свои наблюдения, советы в комментариях.
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Dealer.AI
Longformer-tiny для русского языка
Друг скрестил Longformer и BERT-tiny, получив крошечную модель с контекстом в 16к токенов. Детали танцев с бубном и обучения есть на хабре. А картинку нарисовала моя сестра ☺️
Хабр, Huggingface
Друг скрестил Longformer и BERT-tiny, получив крошечную модель с контекстом в 16к токенов. Детали танцев с бубном и обучения есть на хабре. А картинку нарисовала моя сестра ☺️
Хабр, Huggingface
❤15👍3⚡2🔥1
Forwarded from Жёлтый AI
Появились записи с Monolog 2023!
На нем мы рассказывали, где теперь NLP Research ищет идеи после выхода GPT-4; как работает автоматизация поддержки в банке; и где найти данные для предобучения LLM.
Не забывыйте подписываться на наш канал, там будет еще много интересного 👾
На нем мы рассказывали, где теперь NLP Research ищет идеи после выхода GPT-4; как работает автоматизация поддержки в банке; и где найти данные для предобучения LLM.
Не забывыйте подписываться на наш канал, там будет еще много интересного 👾
Т-Банк Митапы
Митап Tinkoff.AI NLP Monolog Meetup #2
Встречаемся в Москве!
👍7
Новый любимый лось:
SigLIP Log-Sigmoid loss🌿
Крч, недавно ребята анонсировали в SigLIP модифицированный log-sigmoid лосс. И да, это тот, который в reward юзают для обучения.😎
Об этом уже писал тут. Обещали быстрый, с малыми затратами по компьюту эффект для contrastive learning. В их случае image2text на примере CLIP-like.
А так как я маньяк на всякие self-supervised штуки а-ля metric/contrastive learning, взял да и реализовал лосю со статьи, но в своём стиле.
Было:
LogSigmLoss = -E[LogSigmoid(Ri -Rj)],
где R=dot(emb1, emb2.T) - значение близости между двумя эмб матрицами. Там могут лежать текст эмбы или текст эмбы и картиночные эмбы.
В статье: добавляется температура и биас так, что R=dot(emb1, emb2.T)*exp(T)+bias
При этом близость косинусная, тк эмбы перед этим L2 нормализуют.
У меня чет не завелось для текстов с нормализацией L2. Поэтому я просто модифицировал свой adaptive margin loss к виду SigLIP. А именно везде, где у нас близости, добавил обучаемый T и bias и загнал в LogSigmoid, где пары имеют близость:
PosSim - без изменений dot-prod между позитивной парой.
NegSim=Log[Sum(exp(neg_mul*exp(T) +bias))] , - это чудовище плата за отсутствие нормализации.
Итого сравнил до и после результаты с добавлением и без обучаемых параметров температуры и смещения. На наших метриках ранжирования recall@10 сходится к лучшим значениям в 3-4 раз быстрее! Это при одинаковом батче, схеме lr scheduling и тп. К примеру recall@10 = 0.74 был достигнут за 27 эпох против 102 до!📈
Это успех, господа и дамы. Мой новый фаворит.💃
SigLIP Log-Sigmoid loss
Крч, недавно ребята анонсировали в SigLIP модифицированный log-sigmoid лосс. И да, это тот, который в reward юзают для обучения.
Об этом уже писал тут. Обещали быстрый, с малыми затратами по компьюту эффект для contrastive learning. В их случае image2text на примере CLIP-like.
А так как я маньяк на всякие self-supervised штуки а-ля metric/contrastive learning, взял да и реализовал лосю со статьи, но в своём стиле.
Было:
LogSigmLoss = -E[LogSigmoid(Ri -Rj)],
где R=dot(emb1, emb2.T) - значение близости между двумя эмб матрицами. Там могут лежать текст эмбы или текст эмбы и картиночные эмбы.
В статье: добавляется температура и биас так, что R=dot(emb1, emb2.T)*exp(T)+bias
При этом близость косинусная, тк эмбы перед этим L2 нормализуют.
У меня чет не завелось для текстов с нормализацией L2. Поэтому я просто модифицировал свой adaptive margin loss к виду SigLIP. А именно везде, где у нас близости, добавил обучаемый T и bias и загнал в LogSigmoid, где пары имеют близость:
PosSim - без изменений dot-prod между позитивной парой.
NegSim=Log[Sum(exp(neg_mul*exp(T) +bias))] , - это чудовище плата за отсутствие нормализации.
Итого сравнил до и после результаты с добавлением и без обучаемых параметров температуры и смещения. На наших метриках ранжирования recall@10 сходится к лучшим значениям в 3-4 раз быстрее! Это при одинаковом батче, схеме lr scheduling и тп. К примеру recall@10 = 0.74 был достигнут за 27 эпох против 102 до!
Это успех, господа и дамы. Мой новый фаворит.
Please open Telegram to view this post
VIEW IN TELEGRAM
arXiv.org
Sigmoid Loss for Language Image Pre-Training
We propose a simple pairwise Sigmoid loss for Language-Image Pre-training (SigLIP). Unlike standard contrastive learning with softmax normalization, the sigmoid loss operates solely on image-text...
🔥37🤯5❤2👍1
Forwarded from что-то на DL-ском
Занятная альтернатива prompt-tuning, апгрейд на бенчмарках GLUE и Super-GLUE. Понравилась работа из-за оценки схожести в эмбединговом пространстве множеств задач относительно друг друга
Теперь по-порядку: у prompt-tuning идея в том, что можно поставить виртуальные токены в начало и обучить только эту часть представлений.
Идея SPoT, а давайте не просто обучим, а сделаем некоторый codebook (как в vq-vae, но это условно, просто уж идея очень похожа). Как составить этот словарик? На ранних стадиях виртуальные токены берем, как значения эмбедингов задачи, а на лучшем чекпоинте (уже поучили), как source prompt (получаем словарь ключ – значение). При обучении, ищем самый близкий эмбединг задачи и настраиваем дальше его source prompt.
Смысл в том, что можно миксовать задачи и дообучать одну из другой, что судя по бенчам хорошо работает, а сам heatmap на третьем скрине
В общем-то еще один способ для мультитаска, а вот сам
🖥 код
Теперь по-порядку: у prompt-tuning идея в том, что можно поставить виртуальные токены в начало и обучить только эту часть представлений.
Идея SPoT, а давайте не просто обучим, а сделаем некоторый codebook (как в vq-vae, но это условно, просто уж идея очень похожа). Как составить этот словарик? На ранних стадиях виртуальные токены берем, как значения эмбедингов задачи, а на лучшем чекпоинте (уже поучили), как source prompt (получаем словарь ключ – значение). При обучении, ищем самый близкий эмбединг задачи и настраиваем дальше его source prompt.
Смысл в том, что можно миксовать задачи и дообучать одну из другой, что судя по бенчам хорошо работает, а сам heatmap на третьем скрине
В общем-то еще один способ для мультитаска, а вот сам
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🤔4
Forwarded from Пресидский залив (Nadia ズエバ)
Вчера был DevDay от openai, где представили несколько новых любопытных обновлений. Главное из них — GPT-4 Turbo! Еще более умная версия 😎
1. Размер контекста GPT-4 Turbo увеличили в 16 раз по сравнению с предыдущим. Для сравнения Сэм сказал, что это примерно 300 книжных страниц
2. В API завозят json mode аутпуты. То есть теперь не нужно будет выцеживать нужную информацию из текстового ответа, можно ее просто явно запросить
3. Знания модели не будут ограничены 2021 годом, сейчас модель знает про мир до апреля 2023го. И разработчики пообещали поддерживать модель актуальной
4. В API теперь можно будет прокидывать картинки (а не только url как было раньше), в GPT-4 turbo будет интеграция с DALLE-3. Кроме того, обещают скоро открыть Whisper v3, в котором будет еще больше языков
5. Откроют gpt-4 для файнтюнинга в экспериментальном режиме. Заверили, что на данных которые юзеры используют для дообучения они не учатся. Анонсировали b2b дообучение моделей под нужды клиента
6. Повысили лимиты токенов в минуту, сделали более приятный прайс. Если нужны еще более высокие лимиты, можно отправлять запросы
1. Размер контекста GPT-4 Turbo увеличили в 16 раз по сравнению с предыдущим. Для сравнения Сэм сказал, что это примерно 300 книжных страниц
2. В API завозят json mode аутпуты. То есть теперь не нужно будет выцеживать нужную информацию из текстового ответа, можно ее просто явно запросить
3. Знания модели не будут ограничены 2021 годом, сейчас модель знает про мир до апреля 2023го. И разработчики пообещали поддерживать модель актуальной
4. В API теперь можно будет прокидывать картинки (а не только url как было раньше), в GPT-4 turbo будет интеграция с DALLE-3. Кроме того, обещают скоро открыть Whisper v3, в котором будет еще больше языков
5. Откроют gpt-4 для файнтюнинга в экспериментальном режиме. Заверили, что на данных которые юзеры используют для дообучения они не учатся. Анонсировали b2b дообучение моделей под нужды клиента
6. Повысили лимиты токенов в минуту, сделали более приятный прайс. Если нужны еще более высокие лимиты, можно отправлять запросы
YouTube
OpenAI DevDay: Opening Keynote
Join us for the opening keynote from OpenAI DevDay — OpenAI’s first developer conference.
We’re gathering developers from around the world for an in-person day of programming to learn about the latest AI advancements and explore what lies ahead.
New models…
We’re gathering developers from around the world for an in-person day of programming to learn about the latest AI advancements and explore what lies ahead.
New models…
👍6🔥1