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