nadlskom | Unsorted

Telegram-канал nadlskom - что-то на DL-ском

3653

Авторка активно хочет зашарить все на свете и делится в этом канале. NLP ⊂ AI → NLP/CV/speech ⊂ AI Связаться со мной @nadlsk Тг буст канала: https://t.me/nadlskom?boost Чат айтишниц: https://t.me/+n-WIEfhc3ZFhOGIy Реклама очень дорого.

Subscribe to a channel

что-то на DL-ском

– Созваниваешься с какими-то мужиками
– лежишь целыми днями на кровати
– постоянно у вебки

Обязанности какой профессии описаны?🙂

Читать полностью…

что-то на DL-ском

Ура! Спасибо всем за 104 голоса в опросе. 33% были за картинку номер 3, поэтому ставлю ее. Возможно через какое-то время сменю на что-то еще более классное и близкое к тематике канала 🥰

Читать полностью…

что-то на DL-ском

Время увлекательных историй. Изначально я создавала этот канал, чтобы собирать в одно место всю информацию, которую изучаю в DL. Поэтому аватаркой стала картинка из фильма от черного зеркала «Брандашмыг» (прикольная задумка с деревом решений по истечении фильма).

Но теперь хочется, чтобы картинка канала ассоциировалась больше со мной, поэтому я вчера чуть погенерила и поредактирлвала сверху картинки. Из них получилось 3 фаворита. Но теперь я не могу определиться, что выбрать))). Проголосуйте пожалуйста, что вам больше нравится, и что больше будет ассоциироваться со мной и каналом ☺️

Читать полностью…

что-то на DL-ском

Всем привет!

Мы собрали большой диалоговый датасет (700 мб), с более 100 разными персонажами. Большая часть датасета сгенерировано gpt3.5turbo. Также данные включают в себя немного инструкций, и других тасков.

https://huggingface.co/datasets/SiberiaSoft/SiberianPersonaChat

Кроме того, мы затюнили на этом датасете Fred-T5, который доступен тут:

https://huggingface.co/SiberiaSoft/SiberianPersonaFred/

Фидбэк приветствуется!

Читать полностью…

что-то на DL-ском

Твоя кроличья LAPCA.
ожет и на удачу...)

В семействе Language Agnostic энкодеров прибыло. Напомню, что уже существует LABSE .
Идея у LABSE простая: давайте возьмём некоторую multi-lingual модельку и помимо MLM, NSP таски на pre-train или на дотюн вкинем ещё одну. Будем сводить эмбеды фраз на разных языках, но имеющих один перевод. Такой вот мой любимый contrastive learning.

Что же нового досыпали разработчики из Huawei + Николенко на LAPCA(у) ? :)

На самом деле, идея вполне на поверхности. Используются две задачи. Первая-сводим пары запрос/ответ или запрос/документ в рамках одного языка решая, классическую задачу information retrieval. Вторая же задача призвана, как я считаю, якорить или арканить для того же ответа/запроса его перевод. Тут указано, что для ответа/документа происходит матч с его переводом или текстом на другом языке схожим по смыслу.

Также выделяют ребята три подхода:
- Параллельный майнинг тех самых переводов.
- Hard negative майнинг. Тут по классике ищем сложные негативы с помощью самой же модели.
- Третий пункт они зовут self-training, но по мне - это по аналогии с п.2 сэмплинг позитивов при помощи самой обучаемой модели и topK KNN, но на домене QA.

Далее, всё это учится с помощью encoder с shared weights. Т.е. по сути сиамская сетка. И имеет два лосса: L-self и L-IR.
Их объединяют классически как joint-loss= a*L-IR+(1-a)*L-self.
Также авторы советуют претрейнить сначала с a=0 для параллельного сета и с a=1 для QA + IR дата-сета. И, видимо, далее уже jointly.

В общем взяли всё лучшее и соединили.
Остаются два вопроса:
- Сравнения с LaBSE , казалось бы логичным, нет в таблицах.
- Почему нельзя всё зарядить в триплеты (и парафразы и фразу перевод)?

Скрины прилагаются.

Читать полностью…

что-то на DL-ском

🥋Парсинг кода

👉 tree-hugger - надстройка над tree-sitter (абстрактное синтаксическое дерево) для Python, PHP, Java, JavaScript, C++.

Основной плюс этого API - запуск из питона. Часто парсеры пишутся и запускаются из под одного языка (Условный парсер Go написан на Go). Это накладывает некоторые ограничения, когда приходится работать с несколькими ЯП.

🔥 Библиотека адаптирована под датамайнинг из открытых репозиториев и позволяет добавлять другие языки.

@data_morning

Github

Читать полностью…

что-то на DL-ском

#чтивонаночь длинное

Блог про токенайзеры

Благодоря покупке рекламы помимо обычно чтивананочь появились(пока не регулярные) блоги по разным темам, конкретно этот я тянул больше месяца, но он будет полезен для ознакомления с токенизаторами и в целом что есть внутри hf имплементации.

скоро выйдет погулять текст про новые llam_ы и sd_xl
alexwortega/EpS4-2xAwtX">блог

Читать полностью…

что-то на DL-ском

У меня сегодня появилось немного свободного времени, потому что я больше не смогла смотреть, как моя любимая команда G2 🇪🇺 в киберспортивной дисциплине по CS:GO проигрывает команде из эээ… топ-40, поэтому субботнему разбору статьи быть! 😔

UPD: пока писала вам обзор, они со скрипом, но выиграли. 🐶

И не просто так я написала про CS:GO, потому что сегодня я хочу познакомить вас с новой трансформерной моделью от Google DeepMind , и название этой модели созвучно с названием одной когда-то лучшей команды в соревновательном CS:GO — команда NaVI 🇺🇦 (Natus Vincere) и новая модель NaViT (Native Resolution ViT). Эх, у NaVI 🇺🇦 тоже сейчас не лучшие времена, болеем за стабильных Heroic 🇩🇰!

Авторы NaViT подчеркнули следующую проблему, с которой сталкивается каждый инженер/исследователь компьютерного зрения при проведении экспериментов с обучением своих моделей: это выбор подходящего фиксированного размера входных изображений. Конечно, трансформерные модели более гибкие в решении данной проблемы из-за того, что изображение обрабатывается как последовательностей патчей различной длины. Поэтому Google DeepMind решили воспользоваться данным преимуществом, сделав новую модель, которая для обработки входных изображений с произвольным разрешением и соотношением сторон формирует такие последовательности во время обучения. NaViT можно применить не только для классификации изображений и видео, но и для детекции и сегментации, а также для других задач компьютерного зрения. Никаких больше лишних экспериментов (и трат на аренду GPU, и ценного времени разработчика) для определения подходящего размера картинок. 🤩

Cпойлер: опять взяли очередную хорошую идею из NLP. А ДАВАЙТЕ ВЕСЬ NLP ПЕРЕРОЕМ И К СЕБЕ В КОМПЬЮТЕРНОЕ ЗРЕНИЕ ЗАБЕРЁМ 🆗

Из-за ограничения количества символов в сообщение/посте у Телеграма, то читайте остальной разбор здесь. Сторис выкатили, а на развитие функциональности каналов забили! 👨‍🦳

Если нужен более подробный обзор, то дайте знать. ❤️

Читать полностью…

что-то на DL-ском

У нас есть данные, давайте почистим? Не, давайте возьмем просто еще, 100% обучится, я видел, что надо брать много данных для обучения :

Читать полностью…

что-то на DL-ском

🔥Meta зарелизила набор моделей LLaMa-2-Chat разного размера!

Это огромное событие в мире опенсоурса и науки. Коллеги из LLM отдела GenAI выпустили бомбу! LLaMa-2 на 70B параметров сравнима по качетству с GPT-3.5 и даже лучше ее на некоторых бенчмарках.

Это кстати первая модель такого размера, затюненая c помощью RLHF, и которую выложили для коммерческого использования БЕСПЛАТНО. Запросить ссылку на скачивание можно тут.

Наконец-то, на базе LLaMa-2-Chat можно ствроить свои аналоги ChatGPT и не отсылать никаких данных в OpenAI.

Llama 2-Chat сравнима по качеству с ChatGPT-3.5 по метрикам human eval, а, например, на математических задачах - даже лучше.

Больше подробностей в статье

@ai_newz

Читать полностью…

что-то на DL-ском

история о том, как чуваки, применив наработки deepmind в сфере transfer learning, обучили CodeBert взяв за основу RoBERTa используя только адаптеры

Описанное выше на самом деле находится в этой статье, где авторы делятся опытом transfer learning с помощью адаптеров для создания мультимодальной модели (язык - код). А подводка следующая☕️:

Все наверняка уже слышали по 10050 раз, особенно в последнее время о том, что такое адаптер (2019). Но если вспомнить базовый механизм за счет которого все работает, то можно описать следующим образом: берем доп слой, вставляем где-то между слоями исходной модели, и обучаем, замораживая исходные веса. Это позволяет моделе узнавать новые задачи, при этом тратя меньше ресурсов при обучении.

В какой-то момент, изначально в CV, поняли. что можно обучить много адаптеров (каждый на определенную задачу), а потом использовать знания от всех и решать тем самым мульти-таск. Это конечно очень крутая идея, но имеет недостаток в виде забывчивости из-за разного веса каждого адаптера. Тогда приходят люди из deepmind и говорят о том, что вот есть некий подход AdapterFusion (2021), который направлен на то, чтобы решить эту проблему следующим образом в 2 стадии: сначала помимо параметров, обучаеммых в каждом из адаптеров, обучается и еще отдельный параметр, который учится запоминать, что за адаптер мы используем в данный момент, а на втором шаге мы учим с помощью неожиданно, но факт механизма внимания, комбинировать вместе все адаптеры. Собственно вся эта конструкция располагается между двумя residual connection

Итак, к чему мы вообще заговорили про комбинирование многих адаптеров вместе. Через некоторое непродолжительное время Deepmind пошли дальше и придумали подход MAD-X, способный за счет адаптеров не только реализовать cross-task модели, но и cross-lingual. Так как обычный pipeline тренировки (когда мы обучаем на новом языке модель с MLM, чтобы выучить язык) ведет опять же к забывчивости модели, ребята откапытвают свой подход FusionAdapter и модифицируют его еще и на обучаемость новым языкам. Теперь подход состоит уже из 3 частей. Adapter-L (адаптер языковой), который по расположению берет свою идею из предыдущей стать и располагает также после residual connection; Adapter-T, который идейно похож на Adapter-L, но располагается после нескольких языковых адаптеров и Invertible Adapters, который направлен на захват преобразований, специфичных для языка на уровне токенов. Идея такая: все эти адаптеры обучаются совместо, естл адаптер языка нового и языка, который уже был в модели, это касается и инфертированного адаптера. При инференсе мы можем отключать один из языков и подавать output от него в адаптер задач. Тем самым модель будет способна решать задачи на разных языках

Возвращаясь к тренировки СodeBert с помощью MAD-X. Они обучили Adapter-L на каждый из языков программирования, представленных в модели CodeBert и 2 задачи, используемые в модели на pretrain (Masked Language Modeling (MLM) – идея из оригинальной статьи BERT и Replaced Token Detection (RTD) – идея из оригинальной статьи ELECTRA). В итоге они получили весьма сравнительные результаты используя лишь адаптеры

🖥Репозиторий с библиотекой адаптеров
🖥Код обучения CodeBert аналога

Читать полностью…

что-то на DL-ском

Уже недели 2 как обучила sentence transformer на инструктивных вопросно-ответных данных, но руки дошли оформить карточку модели только сейчас. Итак, сама модель тут: 🤗zjkarina/LaBSE-instructDialogs. Как базовую взяла мультиязычную sentence-transformers/LaBSE

Вдохновлялась 🖥чужим примером дообучения sentence transformer

Замеряла метриками ранжирования: Precision at K и Mean reciprocal rank. Численные результаты замеров перенесла в карточку модели. Можно использовать как retrieval chatbot или придумать интересный другой проект. В любом случае, надеюсь кому-то будет полезно

TODO: Ближайшее время постараюсь сделать похожее на русском ☺️

Читать полностью…

что-то на DL-ском

⚡️⚡️⚡️Kandinsky 2.2 выходит в свет

Вот и наступил долгожданный знаменательный день, когда мы готовы порадовать комьюнити новой версией генеративной модели Kandinsky 2.2.

Не буду долго томить вас лирикой и историями, как мы маленькими шагами двигались к качественному скачку эти 3 месяца с момента релиза 2.1, а просто расскажу о ключевых нововведениях:
📌 разрешение генераций теперь достигло 1024 px
📌 генерировать можно с различным соотношением сторон (ура, конец монополии квадратных генераций!)
📌 изображения стали максимально близки к фотореалистичным
📌 у модели появилась возможность изменения частей изображения за счёт внедрения механики ControlNet (пока только на основе карты глубины)
📌 версии 2.1 и 2.2 встроены в самый большой и известный фреймворк генеративных моделей - Diffusers

⚡️В телеграм боте теперь 6 режимов:
1) генерация картинки по тексту
2) смешивание двух изображений
3) смешивание изображения и текста
4) создание вариаций входной картинки
5) локальные изменения с помощью ControlNet механики 💥
6) создание стикеров и стикерпаков по текстовым запросам 💥

Воспользоваться моделью можно тут:
Telegram bot
fusionbrain.ai
Diffusers
rudalle.ru
Салют

📕Почитать подробнее про Kandinsky 2.2 можно в новой статье на Хабре.

❓По вопросам сотрудничества и развития модели пишите в ЛС - с радостью обсудим все идеи😉

P.S. По неожиданной случайности сегодня еще День Фотографа, с чем всех причастных торжественно поздравляю📸 Такой вот подарок для сообщества от нашей команды🎉

@complete_ai

Читать полностью…

что-то на DL-ском

Я чуть-чуть пропала отсюда по ряду причин, но за это время успела сходить в @msu_ai_channel в качестве приглашенного лектора. Было очень приятно для активной аудитории студентов и преподавателей провести лекцию в формате диалога + семинар по созданию чатботиков с распараллеливанием на несколько карт ❤️

После лекции конечно же были приятные разговоры про любимый ML и вот какой вопрос после лекции натолкнул на написание поста📝. Есть такое понятие, как мультимодальные архитектуры (например использование текста и картинок в задаче). Можно долго обсуждать каждую из них, но мы вспомнили устройство BLIP и особенность за счет которой работает архитектура – добавление cross attention.

Если затронуть часть Multimodal mixture of Encoder-Decoder (MED), сразу же на картинке (тык во вложения🥁) виднеется 3 составляющие – 1️⃣часть кодирования картинки и текста (по сути представляет из себя CLIP от OpenAI, а еще по сути можно сказать, что представляет от из себя sentence-transformer, только один из энкодеров картиночный) 2️⃣часть энкодера, основанная на изображении с помощью которой можно классифицировать негативная пара текст-изображение или позитивная. А вот основывается оно на изображении как раз за счет cross attention (берем матрицы внимания с картинки, используем их на обработке текста) 3️⃣декодеровщик, основанный на картинке для генерации текста

Так вот, обсуждение велось на счет встраивания разных частей архитектуры (эмбендинги, матрицы внимания и тд) в области предназначенные для них, но являющиеся другой архитектурой, подобно механизму cross attention. Конечно же так можно делать не только в мультимодальных архитектурах, но и в классическом NLP. После того, как мы вспомнили эксперименты коллеги из SberDevices по использованию эмбендиннгов от LABSE (мультиязычный sentence трансформер) при генерации текста с GPT, вопрос был задан следующий «а как называется такой подход». И кажется, что сам подход никак не называется, это чистые эксперименты, иногда они приводят к успеху при evaluate, а иногда нет

Главное, что надо помнить – не надо боятся экспериментировать. Многовероятно, что на специфичных данных обычный tf-idf может лучше справиться с представлением эмбедингов, чем слой в трансформере. Берем и заменяем его с помощью нескольких строчек кода.

Предлагаю посмотреть репозиторий автора экспериментов, чтобы понять на примере, как такое делать👼

Читать полностью…

что-то на DL-ском

Прежде чем заводить отношения, узнай 4 важных вопроса:
1) знает ли он/она чем отличается линейная регрессия от логистической
2) чем отличается GRU от LSTM
3) как относится к трансформеру без активаций и круглым тензорам
4) а также самое главное: “ или ‘ ; табы или пробелы

Читать полностью…

что-то на DL-ском

FLAN FRED
Несколько месяцев назад я вел в вышке проектную деетельность у студентов, в рамках нее шли эксперементы по претрейну маленьких русских моделей, а так же важный эксперемент который не успели закончить, а руки добить дошли только сейчас.

FLAN - это один из лучших датасетов для COT, механики позволяющей учить модель рассуждать, да это не улучшает ZS способности для маленьких моделей, но при этом претрейн становиться лучше и модель можно переиспользовать для разных задач.

Так же спасибо ребятам из SiberianSoft(Денис) за опыт дообучения fred и полезные советы!

Модель
датасет(машинный перевод, довольно грязный)
Коллектив причастный к модели:
Den4ikAI, Pavel Ilin, Ксения Золина, Илья Кулешов, Егор Кокуш, админ

Читать полностью…

что-то на DL-ском

ЧЕМ ОТЛИЧАЕТСЯ RoBERT'a ОТ BERT'а?

Ключевые отличия, которые внесла RoBERTa, это:
- убирать next sentence prediction задачу из претрейна (binary-classification задача предсказания является ли предложения парой из одного текста)
- делать динамическое маскирование, а не статическое

🥸 Чем отличается динамическое маскирование от статического?
👩🏻‍💻 В BERT'e мы брали один sequence, брали 10 разных маск, дублировали данные 10 раз, чтобы одна sequence получала 10 разных маск за эпоху. Тем самым при обучении модель видела одну и ту же маску n-epochs times.

Это не оптимально в ситуации, когда у нас гигабайты памяти и длинные предложения. Маскировать нужно по-разному. Поэтому на каждый train step генерится своя рандомная маска.

🥸 В маскинге вот прям все токены маскируются?
👩🏻‍💻 Нет, обычная настройка стоит на 15% из последовательности. Из этих 15% мы 80% меняем на [MASK], 10% не меняем и 10% меняем на рандомный токен из vocab.

🥸 Почему нельзя всегда менять?
👩🏻‍💻 Не то чтобы нельзя. Как пишут авторы BERT, a mismatch between pre-training and fine-tuning, since the [MASK] token does not appear during fine-tuning. The purpose of this is to bias the representation towards the actual observed word. Что означает:
а) в тюнинге у нас не будет токена [MASK]
б) если всегда то слово, которое мы будем предсказывать будет одним и тем же токеном, то его эмбеддинг модель выучится не считать для финального представления

пример подсчета self-attention для одного context вектора
ответ на форуме

🥸 Только 15% можно ставить?
👩🏻‍💻 Нет, есть исследования, что например 40% маскирования даже улучшает общий перформанс. Однако чем больше процент маскирования, тем больше corruption, тем сложнее модели предсказывать токены.

🥸 Какие виды маскинга еще знаете?
👩🏻‍💻 PMI маскинг - маскировать не рандомно, а на основе PMI значения, таким образом будут маскироваться близкие collocations
Span masking - маскировать не один токен, а последовательность токенов

видео про разницу от стэнфорда
материал про masked lm также от стэнфорда

🥸 Что бы вы выбрали для тюнинга?
На самом деле если брать готовые решения, то динамическое маскирование сейчас используется и для берта. Так что вопрос остается лишь к остальным параметрам - токенизации, количества параметров и данных для предобучения.

Читать полностью…

что-то на DL-ском

через неделю после релиза я полезла читать технический репорт по второй ламе 👍 много уже было сказано в первые 10 минут с момента ее публикации, но самое интересное кмк не осветили, а именно, как получилось завести рлхф в чатбот версии. в отличие от папиры OpenAI, где все легко и просто, у команды GenAI было примерно 5 версий RLHF с разными конфигурациями (под конец они как будто уже все, что можно закидывали в пайплайн лишь бы работало). мои заметки:

🥖при сборе данных для reward модели было использовано несколько вариантов лламы с разными параметрами температуры. далее в репорте они также говорят, что на самом деле нет доказательств, что нужно семплить только от текущей модели, потенциально можно брать другие пригодные чекпоинты, а можно и открытые preference датасеты.

🥖дополнительно в разметке preference датасета использовалась шкала, насколько ответ лучше (significantly, better, slightly, negligibly, unsure). из-за ее введения немного модифицировалась функция потерь для ранжирования - из награды за выбранный ответ вычитается награда отклоненного ответа (как обычно) и дополнительная погрешность в зависимости от близости этих ответов по шкале (большая погрешность для значительно разных ответов и маленькая для похожих).

🥖reward модели на самом деле было две - Helpfulness и Safety. обучались они на разных данных, где-то могли быть пересечения (т. к. датасеты миксовались в разных пропорциях). далее результаты этих моделей объединялись

🥖на этапе непосредственного RLHF использовали сразу два алгоритма - сначала Rejection Sampling, затем PPO. с помощью RS выбирали лучшего кандидата из K примеров, затем применяли РРО

🥖как научить модель не забывать промпт (веди себя как …, отвечай только эмодзи и тд)? к уже имеющимся диалогам добавляем системный промпт в виде инструкции, как модель должна себя вести, к каждой реплике. затем с помощью полиси модели (из последнего шага RLHF) генерируем ответы, опять же, к каждой реплике. а теперь убираем системный промпт везде, кроме самого первого запроса пользователя. на всякий случай, дообучая модель в режиме sft, лосс на все предыдущие токены (включая системный промпт), кроме текущей реплики, зануляется. идея одолжена из context distillation и называется ghost attention

🥖ну и самое важное, если не хотите часто упоминать своих конкурентов, ссылайтесь на них как closed-source models

Читать полностью…

что-то на DL-ском

Несколько дней назад был представлен новый усложненный бенчмарковый датасет ARB

Мотивация следующая: модели показывают все лучшие результаты, на старых бенчмарках. Уже порой невозможно понять, действительно ли стала модель хуже/лучше. Ведь их способности превосходят задачи в науках, которые им предоставляют на evaluation

Показатели замеров метрик на новом датасете многообещающие, в контексте того, что есть куда расти. Сами примеры задач из датасета тоже прикреплю

Нашла сайт с API и репой на GitHub 😊

Читать полностью…

что-то на DL-ском

Вот такой забавный твит кину. Но на самом деле, я не понимаю почему весь мой твиттер и телеграмм каналы сейчас в этой новости. Она же такая же около бесполезная, как и то, что в следующем году Apple должны представить GPT 😬

Читать полностью…

что-то на DL-ском

А вы знали, что есть способ улучшить генерализацию любой кодовой модели? Как? Применив до этого модель от Microsoft – CodeExecutor

Сложно-сложно, непонятно. Как я могу улучшить результаты своей модели, применив до этого CodeExecutor? А как именно надо применить?🤨

Итак, модель вышла в мае этого года. Основана она на предыдущей модели Microsoft под названием UnixCoder (2022). Коротко – чуваки взяли и поверх предыдущей модели на претрэйне обучали ее на предсказание трассировки по коду. Что за трассировка можно посмотреть во вложении, но по сути это состояние переменных в течении выполнения кода.

Они кстати выложили, как выглядит их датасет, но я нашла только test. 😠 А собирали они его следующим образом: брали код из датасета CodeNet и прогоняли в песочнице, которая будет комплитить этот код и выдавать трассировку. Вау, как неожиданно. Ладно, на самом деле это не все, они еще зааугали данные различными операциями (вложения, там список). И получив AST дерево (тоже напомню во вложениях как оно выглядит), они получали элементы к которым они могут применить операции «мутаций»

Еще мне понравилось, что авторы вспомнили древний (ну реально, на фоне всех методов NLP) подход curriculum learning. Если коротко – это обучение с постепенным усложнением функции. Ну то есть начинаем с линейной, постепенно продвигаемся к выпуклой. Соответственно они начинали учить с однострочных кодов и увеличивали постепенно количество строк.

Так вот, как же она может то давать прирост величины результатов любой модели. Перед тем, как использовать кодовые модели просто прогоняем трестировку на данных и скарливаем. Все🧠. По метрикам у моделей действительно увеличивается понимание кода.

🤗Модель
🖥Код

Читать полностью…

что-то на DL-ском

Мем появившийся из-за событий последних недель и моей скорби по жизни без частого серча в поисковике((🥲

Читать полностью…

что-то на DL-ском

Теперь LLaMa-2 на 70B параметров доступна бесплатно в Hugging Chat🤗 и все желающие могут опробовать, перейдя по ссылке

Читать полностью…

что-то на DL-ском

#ВывоДня

Даже имея опыт в NLP, кажется многим может быть интересно почитать повнимательнее NLP course от huggingface . Уже не первый раз, нахожу там то, что помогает в задачках.

Например вместо танцев с бубном и добавления новых токенов от обученного заново токенайзера (которые кстати будут как special токены выводится через пробелы), можно дообучить токенайзер в hf методом train_new_from_iterator(): 🙂

Читать полностью…

что-то на DL-ском

на случай, если еще не все админы тг каналов выложили/репостнули

Читать полностью…

что-то на DL-ском

Сначала они все такие, чтобы знать нейронки, надо глубоко понимать математику

Также математические выражения, которые в 90% статей сводятся к одному 🗿

Читать полностью…

что-то на DL-ском

LORA for Kandinsky2.2, которая работает в бесплатном колабе!)

Читать полностью…

что-то на DL-ском

В продолжении ко вчерашнему посту также хочу поделиться обещанной для студентов (и не только получается 🙂) подборкой литературы:

На каждую книгу нашла pdf-ки, так что можно просто тыкнуть на ссылку☺️

1) Грокаем глубокое обучение
Читала эту книжку, когда не понимала от слова совсем, как работает вообще обучение нейронной сети. Пугали даже простые понятия, такие как регрессия. Но за счет этой книги поняла, что по сути все можно свести к перемножению матриц. И даже к концу закодить самостоятельно на питоне простую нейронку

2) Статистика и котики
У меня в универе статистика преподавалась без подкрепления практической ценности применения метода. Благодаря книжке, я поняла где в жизни можно воспользоваться полученными знаниями

3) Голая статистика
Книга похожа по подаче на предыдущую, уже вряд ли в формате «занимательная физика», но более углубленная

4) Некоторое количество познавательной манги
Меня подсадили Я полюбила сильно аниме за последний год, поэтому конечно же я не могу не посоветовать совмещение приятного с полезным для таких, как я)))

5) ПРОГРАММИРОВАНИЕ теоремы и задачи
Скажу честно, эта книжка у меня лежит на полке и ждет своего времени😁. Мне подарили эту книгу несколько месяцев назад, но я уже просмотрела бегло оглавление и чуть пробежалась по задачам, выглядит очень насыщенно. Ставлю себе цель за июль-август прорешать по ~2 подглавы вечерами. Стану ли гуру алгоритмов после этого, ну вопрос))

Читать полностью…

что-то на DL-ском

EXPONENTIAL MOVING AVERAGE

Weight EMA - smoothing техника, которая призвана улучшить generalisation performance модели. Эта техника пришла к нам из times series.

Основная схема: держим копию весов модели, при апдейте делаем апдейт как weighted average между текущими весами и весами до этого степа (post-optimization step).

Что за проблема есть: при каждом training step мы делаем апдейт весов относительно одного батча, но даже при хорошей подготовке данных и хорошем BatchSampler, один батч может быть шумовым и lead to getting stuck in poor local minima or oscillating between different parameter values

Как эта проблема решается?
Формула: decay_factor * new_weights + (1-decay_factor) * old_weights
decay_factor следит за тем, чтобы апдейт был как раз с небольшим влиянием прошлых весов. Из формулы следует:
decay close to 0 - больше влияния на старые веса
decay close to 1 - больше влияния на новые веса

реализация в tensorflow

Реализация Pytorch:
реализация объяснение для лайтнинг подхода через callback:
(там необходимо только поменять функцию on_save_checkpoint и сохранять ema чекпоинты как дикт, как вот тут)

У нас есть веса модели, которые мы изначально инициализируем любым образом, это мб рандом, а может быть распределение. парочка видов инициализации весов модели. Далее в колбэке мы храним веса ema, и апдейтим на каждом степе, в конце сохраняем как чекпойнт key. Заметьте, что когда происходит степ, веса изначальной модели также должны меняться. Подгрузить можно сначала сделав torch.load(checkpoint_path), а потом проиндексировавшись по ema весам. При обучении сильно не расстраивайтесь, вначале метрики будут ниже чем при обычном обучении и обучение при этом будет медленнее, но это плата за stability.

Если вы делаете на чистом pytorch, то можете создать такой же класс и просто делать step и сохранить эти веса в конце тренировки.

первое видео про ema
обзорно про time series, reinforcement
объяснение от умного Lei Mao с матешей

#grokaem_dl

Читать полностью…

что-то на DL-ском

Мем смешной, а ситуация следующая: пока кто-то ноет, что ИИ нас заменит, кто-то может выполнять с ее помощью таски, да и вообще эффективно приобретать новые знания

Читать полностью…
Subscribe to a channel