Очень красивый подход с DPO без тюна, ретривер кстати можно взять лайтовый аля tinyBert или MiniLM MsMarco. 👇
Forwarded from AI[ex]Time (Александр Голубев)
ICDPO (In Context Direct Preference Optimization), или DPO без файн-тюнинга
Очередная работа по методам тюнинга, на этот раз немного необычная. Основной плюс — мы по факту ничего не делаем с весами модели, то есть используем претрейн. За это расплачиваемся дополнительным временем и памятью. Теперь давайте подробнее. Обозначим заданный промпт как x, датасет с заготовленными чистыми примерами как D. Далее:
1. Извлекаем d примеров из D, которые похожи на x. Это классический ретривал, то есть можно использовать BM25 + Sbert, bert, colbert, you name it.
2. Генерируем n различных ответов, поместив примеры d в контекст.
3. Для каждого ответа считаем вероятность p(y | x) = a и p(y | d, x) = b, то есть с условием на примеры d в контексте и без. Можно сказать, что это оценка вероятности ответа y в формате zero-shot и few-shot.
4. Считаем некоторый скор S, который отражает разницу между b и a. Это число показывает, насколько хорошо заалайнен ответ, так как d — качественные примеры из заготовленного датасета. В итоге берем генерацию с максимальным S.
По экспериментам репортят, что удается добиться метрик на уровне тюнинга с LoRA. Ну и как раз за счет ретривера + n генераций мы сильно замедляемся по скорости, так что область применения такой техники сильно ограничена 😢
Статья ICDPO: https://arxiv.org/abs/2402.09320
Статья DPO: https://arxiv.org/abs/2305.18290
Очередная работа по методам тюнинга, на этот раз немного необычная. Основной плюс — мы по факту ничего не делаем с весами модели, то есть используем претрейн. За это расплачиваемся дополнительным временем и памятью. Теперь давайте подробнее. Обозначим заданный промпт как x, датасет с заготовленными чистыми примерами как D. Далее:
1. Извлекаем d примеров из D, которые похожи на x. Это классический ретривал, то есть можно использовать BM25 + Sbert, bert, colbert, you name it.
2. Генерируем n различных ответов, поместив примеры d в контекст.
3. Для каждого ответа считаем вероятность p(y | x) = a и p(y | d, x) = b, то есть с условием на примеры d в контексте и без. Можно сказать, что это оценка вероятности ответа y в формате zero-shot и few-shot.
4. Считаем некоторый скор S, который отражает разницу между b и a. Это число показывает, насколько хорошо заалайнен ответ, так как d — качественные примеры из заготовленного датасета. В итоге берем генерацию с максимальным S.
По экспериментам репортят, что удается добиться метрик на уровне тюнинга с LoRA. Ну и как раз за счет ретривера + n генераций мы сильно замедляемся по скорости, так что область применения такой техники сильно ограничена 😢
Статья ICDPO: https://arxiv.org/abs/2402.09320
Статья DPO: https://arxiv.org/abs/2305.18290
🥴4🔥2❤1👍1
Dealer.AI
Первым делом, расскажу о своём любимом information retrieval для NLP. Так уж вышло, что волею судьбы, мне выпала честь развивать retrieval based dialogue system в одной крупной финансовой компании. И поэтому хайп, который творится вокруг chatGPT, докатился…
Внезапно тихо, после Mistral7b -e5-instruct появился новый инструктор эмбеддер и для multiling-e5.
Идея как в статье reply'я: для того, чтобы не плодить К тасок для каждого типа задачи : qa, retrieval , nli, etc - давайте сделаем инструкции и приклеим их к запросам. Далее вкинем в один батч и получим для одного и того же запроса, но разных тасок разные префикс инструкции, а значит разные эмбеды. Тем самым повысим разнообразие и дадим доп инфо.
На MTEB для english она конечно похуже miastral-e5, но лучше родительской me5 и входит в топ10. Думаю для ру языка она будет лучше mistral-e5, но замерим.
Upd. тех папир тут по me5: https://arxiv.org/abs/2402.05672
Идея как в статье reply'я: для того, чтобы не плодить К тасок для каждого типа задачи : qa, retrieval , nli, etc - давайте сделаем инструкции и приклеим их к запросам. Далее вкинем в один батч и получим для одного и того же запроса, но разных тасок разные префикс инструкции, а значит разные эмбеды. Тем самым повысим разнообразие и дадим доп инфо.
На MTEB для english она конечно похуже miastral-e5, но лучше родительской me5 и входит в топ10. Думаю для ру языка она будет лучше mistral-e5, но замерим.
Upd. тех папир тут по me5: https://arxiv.org/abs/2402.05672
arXiv.org
Multilingual E5 Text Embeddings: A Technical Report
This technical report presents the training methodology and evaluation results of the open-source multilingual E5 text embedding models, released in mid-2023. Three embedding models of different...
👍12🤔3
🤪15🔥6👍2😁1🥴1
сижу в отпуске , пью смузи и читаю " ИИ скандалы, интриги, расследования" 🍿
Оказывается это все вранье😱 чтобы набрать классы 🤨
https://x.com/digital_ninjaaa/status/1760564832216981684?s=20
Оказывается это все вранье
https://x.com/digital_ninjaaa/status/1760564832216981684?s=20
Please open Telegram to view this post
VIEW IN TELEGRAM
X (formerly Twitter)
Digital Ниндзя (@digital_ninjaaa) on X
Помните тред про то, как чувак познакомился с 5239 девушками через Tinder? Он набрал 8.3 миллиона просмотров. Этот тред — выдумка.
У автора, Александра Жадана, Нейро-Казановы, не было технического решения. Я провёл своё расследование и поговорил с ним.
…
У автора, Александра Жадана, Нейро-Казановы, не было технического решения. Я провёл своё расследование и поговорил с ним.
…
😁9👍6🍌2
Токенизируй меня полностью.
Наверняка, вы уже посмотрели замечательное видео от Карпаты про токенизацию в языковых моделях. Если нет, бегом смотреть.
Далее, советую ознакомиться с еще одной мерой описания информации на токен - фертильность. Понятие старое, придуманное еще IBM в далекие 90-е, в рамках машинного перевода. Основная интуиция, лежащая в основе манипуляций с фертильностью, заключалась в том, что одно понятие может быть выражено на английском языке множеством непересекающихся слов. То же справедливо, конечно и для ру языка.
Вопрос:
В языковых моделях мы можем рассматривать число сабвордов/токенов на одно реальное слово. Тогда для словаря только из лексем (реальных слов) фертильность будет равна 1, тк один токен = 1 реальное слово. Но у слов есть словоформы зависящие от числа рода и падежа и тп. Так словарь будет разбухать от сингл лексем, будет пухнуть эмб матрица -> расти модель, время на обучение и тп.
Эффективнее разумеется переходить к сабвордам, тк из их комбинаций можно собрать много слов. Таким образом, вся эта токенизация при помощи bpe/bbpe/wpiece/spiece и др. предстает перед нами с другой стороны. И как мы оцениваем нормальность LLM через перплексию, так мы можем оценить эффективность словаря добавив еще и фертильность. Для примера, в данной работе, авторы при создании многоязычного словаря и токенизатора к нему, проводят непрямое расширение словаря. Для этого они заменяют низкочастотные лексемы одного языка на соответствующие частотные другого, устремляя фертильность расширенного словаря к изначальному монолингвальному (тут я еще сам осознаю как это работает, ибо не лингвист).
Что дальше?
А дальше, можно потыкать вот такую тулзу на HF для демо работы токенизации: https://huggingface.co/spaces/Xenova/the-tokenizer-playground
Посмотреть обзор multiling-bert словаря на предмет покрытия токенов, в тч с расчетом фертильности:
https://juditacs.github.io/2019/02/19/bert-tokenization-stats.html
Почитать про фертильность "мохнатого" года статью.
Наверняка, вы уже посмотрели замечательное видео от Карпаты про токенизацию в языковых моделях. Если нет, бегом смотреть.
Далее, советую ознакомиться с еще одной мерой описания информации на токен - фертильность. Понятие старое, придуманное еще IBM в далекие 90-е, в рамках машинного перевода. Основная интуиция, лежащая в основе манипуляций с фертильностью, заключалась в том, что одно понятие может быть выражено на английском языке множеством непересекающихся слов. То же справедливо, конечно и для ру языка.
Вопрос:
Зачем нужна фертильность? Ответ: Для оценки эффективности словаря. В языковых моделях мы можем рассматривать число сабвордов/токенов на одно реальное слово. Тогда для словаря только из лексем (реальных слов) фертильность будет равна 1, тк один токен = 1 реальное слово. Но у слов есть словоформы зависящие от числа рода и падежа и тп. Так словарь будет разбухать от сингл лексем, будет пухнуть эмб матрица -> расти модель, время на обучение и тп.
Эффективнее разумеется переходить к сабвордам, тк из их комбинаций можно собрать много слов. Таким образом, вся эта токенизация при помощи bpe/bbpe/wpiece/spiece и др. предстает перед нами с другой стороны. И как мы оцениваем нормальность LLM через перплексию, так мы можем оценить эффективность словаря добавив еще и фертильность. Для примера, в данной работе, авторы при создании многоязычного словаря и токенизатора к нему, проводят непрямое расширение словаря. Для этого они заменяют низкочастотные лексемы одного языка на соответствующие частотные другого, устремляя фертильность расширенного словаря к изначальному монолингвальному (тут я еще сам осознаю как это работает, ибо не лингвист).
Что дальше?
А дальше, можно потыкать вот такую тулзу на HF для демо работы токенизации: https://huggingface.co/spaces/Xenova/the-tokenizer-playground
Посмотреть обзор multiling-bert словаря на предмет покрытия токенов, в тч с расчетом фертильности:
https://juditacs.github.io/2019/02/19/bert-tokenization-stats.html
Почитать про фертильность "мохнатого" года статью.
❤15🔥3
много картинок про фертильность
multiling-bert словаря для разных языков.
Фертильность указана над графиком.
https://juditacs.github.io/assets/bert_vocab/bert_sent_len_full_fertility_sorted.png
multiling-bert словаря для разных языков.
Фертильность указана над графиком.
https://juditacs.github.io/assets/bert_vocab/bert_sent_len_full_fertility_sorted.png
❤5
MarksRemarks
Достаточно интересное с точки зрения денег соревнование на Кагле – Home Credit - Credit Risk Model Stability TLDR: Задача – предсказать кредитный дефолт Метрика – сложная на основе gini, falling rate, residuals Денег – 105к$ Данные – очень много табличек…
Говорят, стопнули сореву, косяк с метрикой
https://www.kaggle.com/competitions/home-credit-credit-risk-model-stability/discussion/476867
https://www.kaggle.com/competitions/home-credit-credit-risk-model-stability/discussion/476867
Kaggle
Home Credit - Credit Risk Model Stability
Create a model measured against feature stability over time
🤡14😁6
Балалайка, березка, Matryoshka.
Выпустили концептуальный гайд по эмбам матрехи на hf. Красивые картиносы матрех и схемы, концепты теории и примеры на sentence-transformers.
Ну че тут рассказывать? Все просто берем embs и вдоль dim нарезаем по нарастающей, сводим саб эмбы и эмбы в конвеере metric learning на нужной датке в NLI, STS или qa задачках. Хочешь сводишь все на одном и том же, хочешь каждому эмбу из нарезки сообщаешь свою таску.
В чем польза?
1. Меньше индекс - на поверхности.
2. Возможность строить быстрые каскадные пайпы ранжирования. Преранк, например, на full index с маленьким эмбом (так быстрее), далее сложные примеры на more big эмбах, итоговый реранк в топ1 на жирнючем.
Код в блоге присутствует. Поэтому дерзайте.
Выпустили концептуальный гайд по эмбам матрехи на hf. Красивые картиносы матрех и схемы, концепты теории и примеры на sentence-transformers.
Ну че тут рассказывать? Все просто берем embs и вдоль dim нарезаем по нарастающей, сводим саб эмбы и эмбы в конвеере metric learning на нужной датке в NLI, STS или qa задачках. Хочешь сводишь все на одном и том же, хочешь каждому эмбу из нарезки сообщаешь свою таску.
В чем польза?
1. Меньше индекс - на поверхности.
2. Возможность строить быстрые каскадные пайпы ранжирования. Преранк, например, на full index с маленьким эмбом (так быстрее), далее сложные примеры на more big эмбах, итоговый реранк в топ1 на жирнючем.
Код в блоге присутствует. Поэтому дерзайте.
huggingface.co
🪆 Introduction to Matryoshka Embedding Models
We’re on a journey to advance and democratize artificial intelligence through open source and open science.
👍18🔥2🦄2❤1
Dealer.AI
Photo
Telegram
gonzo-обзоры ML статей
Мистраль выкатил свою большую модель Mistral Large, доступна на La Plateforme и Azure.
32k контекст, мультиязычная, умеет function calling.
Также выкатили оптимизированную Mistral Small, которая лучше Mixtral 8x7B (https://xn--r1a.website/gonzo_ML/2162).
https:/…
32k контекст, мультиязычная, умеет function calling.
Также выкатили оптимизированную Mistral Small, которая лучше Mixtral 8x7B (https://xn--r1a.website/gonzo_ML/2162).
https:/…
👍4
Forwarded from AbstractDL
Do Large Language Models Latently Perform Multi-Hop Reasoning? (by Google)
Авторы обнаружили, что если вопрос сформулирован неявно, то LLM уже во время его чтения "пытаются" подставить промежуточный шаг рассуждений в латентном пространстве. Например, для эмбеддингов последних токенов этого вопроса
растут логиты, соответствующие слову "Стамбул".
Выходит, что на промежуточных слоях происходит multi-hop reasoning. Пока авторы нашли подтверждение этому максимум до 2 шагов рассуждений, причём качество первого шага растёт по мере увеличения модели, а вот второй шаг размазывается по всем слоям и почему-то не сильно зависит от размеров LLM.
Статья
Авторы обнаружили, что если вопрос сформулирован неявно, то LLM уже во время его чтения "пытаются" подставить промежуточный шаг рассуждений в латентном пространстве. Например, для эмбеддингов последних токенов этого вопроса
Сколько людей живут в крупнейшем городе Европы?
растут логиты, соответствующие слову "Стамбул".
Выходит, что на промежуточных слоях происходит multi-hop reasoning. Пока авторы нашли подтверждение этому максимум до 2 шагов рассуждений, причём качество первого шага растёт по мере увеличения модели, а вот второй шаг размазывается по всем слоям и почему-то не сильно зависит от размеров LLM.
Статья
👍12🔥7❤2🤔1
Forwarded from Сергей Марков: машинное обучение, искусство и шитпостинг
Генеративные модели достигли в программировании уровня сеньоров
😁62
Сергей Марков: машинное обучение, искусство и шитпостинг
Генеративные модели достигли в программировании уровня сеньоров
Добавлю комментарии источника:
"зелёное написал человек, а Copilot предлагает продолжение в виде серого текста".
Вот так еще веселее)
Надеюсь там нет кода: "не запускай - убьет" или "я бы не лез сюда, ты еще молодой ... ".
"зелёное написал человек, а Copilot предлагает продолжение в виде серого текста".
Вот так еще веселее)
Надеюсь там нет кода: "не запускай - убьет" или "я бы не лез сюда, ты еще молодой ... ".
😁4
Forwarded from Complete AI (Andrey Kuznetsov)
⚡⚡⚡Вот и статья про Sora пожаловала от OpenAI
(А точнее от Lehigh University и Microsoft Research)
Сделать разбор статьи о том, что внутри?
PDF
@complete_ai
(А точнее от Lehigh University и Microsoft Research)
Сделать разбор статьи о том, что внутри?
@complete_ai
💯53👍4🥴1
Complete AI
⚡⚡⚡Вот и статья про Sora пожаловала от OpenAI (А точнее от Lehigh University и Microsoft Research) Сделать разбор статьи о том, что внутри? PDF @complete_ai
Ну че, почитали одни фантазии, читаем другие
https://habr.com/ru/articles/794566/
p. s. Кста подписчики на пост выше сделали норм пояснение , что это чисто преломление одного ума чела из microsoft.
https://habr.com/ru/articles/794566/
p. s. Кста подписчики на пост выше сделали норм пояснение , что это чисто преломление одного ума чела из microsoft.
Хабр
Настоящее предназначение OpenAI SORA: как и зачем симулировать «Матрицу» для ChatGPT
Ну что, уже успели прочитать восхищения небывалым качеством видео от нейросетки SORA у всех блогеров и новостных изданий? А теперь мы вам расскажем то, о чем не написал никто: чего на самом деле...
🔥9😁3❤🔥1
Последний день этого отпуска. Читал Макиавелли. Принцип лисы и льва: "лиса обойдет ловушки, а лев даст бой, если нужно".
А я блин пока медвед с балалайкой.
А кто вы?
А я блин пока медвед с балалайкой.
А кто вы?
😁18❤1👎1
Восстанови промт, если сможешь.
Новое соревнование на kaggle:
LLM Prompt Recovery | Kaggle
По уже новой традиции соревок с LLM (к примеру LLM detect):
- Трейна неть (ходите генерите сами)🤨
- Тест 1400 семплов, но мы его вам не дадим, у вас докУментов нету🤣
Из плюсов понятна моделька, из которой все это безобразие* идет: Gemma2b или все же 7/9b?😀
Не ясны параметры генерации (врубаем брутфорс перебор).
Че там наделали с ней? Взяли исходный промпт кожАных, переписали его с Gemma, далее получили по этому промпту конечную генерацию. Воть, далее извольте определить, измененный промпт из теста и генерация совместны или нет.
Метрика косинус между векторным представлением промпта вашего решения и верным ответом. Эмбы получают с помощью sentence-t5 модели.
Подстава в том, что у нас нет опорных затравок для переписывания промпта с Gemma. Следовательно, придется выдумывать самому (трансферить стиль на 1 данном примере с LLM я как-то не вижу смысла).
* gemma в последнее время = безобразие ;)
Новое соревнование на kaggle:
LLM Prompt Recovery | Kaggle
По уже новой традиции соревок с LLM (к примеру LLM detect):
- Трейна неть (ходите генерите сами)
- Тест 1400 семплов, но мы его вам не дадим, у вас докУментов нету
Из плюсов понятна моделька, из которой все это безобразие* идет: Gemma2b или все же 7/9b?
Не ясны параметры генерации (врубаем брутфорс перебор).
Че там наделали с ней? Взяли исходный промпт кожАных, переписали его с Gemma, далее получили по этому промпту конечную генерацию. Воть, далее извольте определить, измененный промпт из теста и генерация совместны или нет.
Метрика косинус между векторным представлением промпта вашего решения и верным ответом. Эмбы получают с помощью sentence-t5 модели.
Подстава в том, что у нас нет опорных затравок для переписывания промпта с Gemma. Следовательно, придется выдумывать самому (трансферить стиль на 1 данном примере с LLM я как-то не вижу смысла).
* gemma в последнее время = безобразие ;)
Please open Telegram to view this post
VIEW IN TELEGRAM
Kaggle
LLM Prompt Recovery
Recover the prompt used to transform a given text