Forwarded from Нейромаргиналы 18+
Дорогие друзья и товарищи нейронщики в своих нейронных чатах и сообществах (а также те, кто не имеет отношения к нейронкам, но к кому это случайно прилетело). Поздравляю вас всех с днем расстрела Чикатило! Ой! То есть с днем Святого Валентина!
Желаю вам всем большой крепкой нежной страстной и сильной любви, как у этой милой парочки эльфов!
Желаю вам всем большой крепкой нежной страстной и сильной любви, как у этой милой парочки эльфов!
❤10
Forwarded from Data, Stories and Languages
LiRank: Industrial Large Scale Ranking Models at LinkedIn
Это статья про LiRank - recommender system от LinkedIn. Статья скорее техническая, с деталями того, как делали фреймворк. Описывают новые техники калибровки, подходы для explore/exploit задач, способы оптимизации модели и архитектуру (Residual DCN, Dense Gating, Transformers).
В итоге заметно улучшили метрики: увеличение сессий пользователей на 0.5%, квалифицированных откликов на вакансии на 1.76% и CTR объявлений на 4.3%.
Выглядит довольно интересно и полезно.
Paper link
Мои обзоры:
Personal blog
Medium
Linkedin Pulse
#paperreview
Это статья про LiRank - recommender system от LinkedIn. Статья скорее техническая, с деталями того, как делали фреймворк. Описывают новые техники калибровки, подходы для explore/exploit задач, способы оптимизации модели и архитектуру (Residual DCN, Dense Gating, Transformers).
В итоге заметно улучшили метрики: увеличение сессий пользователей на 0.5%, квалифицированных откликов на вакансии на 1.76% и CTR объявлений на 4.3%.
Выглядит довольно интересно и полезно.
Paper link
Мои обзоры:
Personal blog
Medium
Linkedin Pulse
#paperreview
👍12🔥2❤1
Очень красивый подход с 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