bugs ans letters – Telegram
bugs ans letters
18 subscribers
34 photos
3 videos
3 files
135 links
Мой канал для себя про NLP. В основном – помойка из ссылок.
Download Telegram
Forwarded from Voice stuff
Test Driven LLM Development

Я в какой-то момент пришёл к тому что LLM не имеют нормальной обратной связи при написании кода, поэтому разработка через тестирование - это хороший способ организации кода.

Мой опыт такой:

Я как-то искал ошибки в том, что ЛЛМка написала и нашёл что чаще всего проблема в недопонимании задачи. Если просить модель писать docstring, для каждого класса и функции и сверять что она там задумала, то получается отловить много ошибок.

Разработка через тестирование даже с ЛЛМ под рукой - это довольно большая избыточность. Но когда проект растёт - будто бы без этого тяжело становится двигаться. Настолько тяжело, что я сам добровольно прочитал книгу по тестированию, когда в кодбазе всё начало трещать по швам, а поиск ошибок стал занимать дни вместо минут.

Какие у вас есть трюки при разработке в 2025? Используете курсор? Пишете тесты? Пишете что “You are an experienced Python Engineer who makes no mistakes in code” в промпте? Рассказывайте ваши секреты.

https://blog.yfzhou.fyi/posts/tdd-llm/ - для вдохновения.
Forwarded from Ivan Kotov
Если тебе выключить создание .DS_Store то это можно настройками поправить
defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true
В рамках консолидации знаний про трансформеры – длинное, но отличное видео от Карпатого про построение и обучение трансформера с нуля (детали архитектуры прилагаются, умение читать документацию по torch.nn предполагается, но там действительно не сложно). К нему прилагается репа с кодом. Для ленивых – архитектура в двух видео.
#transformers #school #ml #llm
Forwarded from Igor Prokofyev
внезапно понадобилось однократно но массово конвертнуть фотки из heic в jpg, решил что скрипт это проще и быстрее чем качать мутный софт, вот код кому тоже вдруг пригодится

from pathlib import Path
from PIL import Image
import pillow_heif

input_folder = Path("")
output_folder = Path("")

output_folder.mkdir(parents=True, exist_ok=True)

for file in input_folder.iterdir():
if file.suffix.lower() == ".heic":
heif_image = pillow_heif.open_heif(file)
img = Image.frombytes(heif_image.mode, heif_image.size, heif_image.data)
output_path = output_folder / file.with_suffix(".jpg").name
img.save(output_path, "JPEG")
print(f"Converted: {file.name} → {output_path}")

print(" Conversion completed!")
Kravchenko ML System Design.epub
14.3 MB
#ml #systemdesign В прошлой редакции эта книга собрала неплохие отзывы, повод сравнить, что изменилось за два года.
Forwarded from Модель для сборки
👾 Я одним из последних прочитал книгу @partially_unsupervised и @cryptovalerii по ML System Design и решил прикрепить все свои заметки, которые я за это время накопил. Их дохера, поэтому не уверен что это сильно надо, но я уже несколько раз натыкался на просьбы рассказать чё там да как. Кстати, после каждой главы есть её summary, что прикольно.

Постарался сделать подробный обзор первых 8ми глав (всего 16). Когда-нибудь я допишу обзор, особенно учитывая что мне дичайше зашла 9я глава.
https://telegra.ph/Zametochki-po-knige-ML-System-Design--ch1-02-17

Имейте в виду, что автор — не повар, и готовить не умеет.


💅🏼 Спаразитирую ещё больше и замучу подробный список промптов для claude по книжке, если наберёте 3000 реакций 💅🏼
Forwarded from k8s (in)security (Дмитрий Евдокимов)
Если вам не хватает хардкора в теме безопасности контейнеров и Kubernetes, то специально для вас у нас в блоге вышла статья "Ломаем ваши видеокарты: распаковка эксплойта для CVE-2024-0132 под NVIDIA Container Toolkit"!

Тема острая, горячая приправленная ML-кластерами, драйверами видеокарт, атакой TOCTOU, проблемой разыменования symlinks ;)

При этом тема очень актуальная ввиду все большего количества систем, работающих с видеокартами.

P.S. Раньше всех о таких материал можно узнать на нашем официальном канале.
Внезапное #сисадминское. И да, #macos.
Сменить имя компьютера в Preferences -> General -> Sharing или через hostname --set работает не очень последовательно. Хочется один и тот же хостнейм видеть сразу в приглашении командной строки, в том, как компьютер объявляет себя через mDNS в сети, ну и в целом не ощущать доменную шизофрению.
В статье описана старая давняя утилита scutil, которая позволяет выставлять параметры (HostName|ComputerName|LocalHostName) для системы. Однако найти/вспомнить этот подход потребовало более одной минуты, посему запись остаётся в заметках здесь.
Forwarded from AI для Всех (Kirill)
Как обучить диффузионную модель с нуля за $1890?


Законы масштабирования в генеративном ИИ повышают производительность, но есть ньюанс: разработка моделей концентрируется среди игроков с большими вычислительными ресурсами.

Поскольку стоимость обучения text-to-image трансформера растет с количеством участков в каждом изображении, исследователи из Sony AI предложили случайным образом маскировать до 75% участков изображения во время обучения.

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

В исследование также включили последние
улучшения в архитектуре трансформеров, такие как использование слоев с mixture of experts (MoE),чтобы улучшить производительность и убедиться в важности использования синтетических изображений для уменьшения затрат на обучение.

Какие результаты?

Используя только 37 млн изображений (22 млн реальных + 15 млн синтетических), была обучена модель типа "sparse transformer" с 1,16 млрд параметров.

На обучение было потрачено всего 1890$ !

Была достигнута производительность 12,7 FID при zero shot learning на наборе данных COCO.

Примечательно, что модель достигает конкурентоспособного FID и высококачественных генераций, при этом требуя в 118 раз меньших затрат, чем стабильные диффузионные модели, и в 14 раз меньших затрат, чем текущий современный подход, который стоит 28400$


🔍 Технические детали:
• Архитектура: sparse DiT-XL/2 трансформер
• Вычисления: 8×H100 GPU на 2,6 дня тренировки
• VAE: использование как SDXL-VAE (4 канала), так и Ostris-VAE (16 каналов)
• Патч-миксер перед трансформером + маскирование 75% патчей
• Обучение: 280K шагов на 256×256, затем 55K шагов на 512×512
• Размер батча: 2048, с применением центрального кропа

📊 Доступные предобученные модели:
1. MicroDiT_XL_2 на 22 млн реальных изображениях (FID 12.72)
2. MicroDiT_XL_2 на 37 млн изображениях (FID 12.66) с SDXL-VAE
3. MicroDiT_XL_2 на 37 млн изображениях (FID 13.04) с Ostris-VAE
4. MicroDiT_XL_2 на 490 млн синтетических изображениях (FID 13.26)

💻 Репозиторий содержит полный код, включая обработку датасетов и тренировочные конфиги для каждого этапа

🔗 Статья

4️⃣ GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Data Secrets
Итак, выпустили полноценную o3 и o4-mini

o3 выбивает даже лучшие метрики, чем были, когда ее анонсили. На AIME 2025 это рекордные 98.4%. При этом o4-mini еще круче: ее результат 99.5. А на Humanity Last Exam результаты сопоставимы с Deep Research. Кодинг тоже не отстает.

Обе модели мультимодальные, и не просто мультимодальные, а с ризонингом поверх изображений. Плюс модели специально натаскивали на использование инструментов (поиск, интерпретатор и все такое), так что агентные способности на высоте.

При этом o3 даже немного дешевле o1. Цены: инпут $10.00 / 1M и аутпут $40.00 / 1M (для o1 это 15 и 60). o4-mini: $1.1 / 1M и $4.4 / 1M.

Еще приятно, что масштабирование на ризонинге теперь дешевле. То есть с ростом метрик за счет увеличения ризонинга цена теперь растет медленнее, чем это было с o1.

Обе модели будут доступны Plus, Pro и Team, их уже раскатывают. Позже o4-mini будет также доступна фри юзерам.

https://openai.com/index/introducing-o3-and-o4-mini/
👍1
Forwarded from AbstractDL
ignore-topk: новая регуляризация для борьбы с деградацией LLM во время файнтюнинга (by DeepMind)

При дообучении языковые модели частенько портятся. Рисёрчеры из DeepMind показали, что проблема связана с тем, что LLM, пытаясь запомнить новый факт, начинает использовать лёгкие shortcut-ы вместо аккуратного внедрения новых знаний в веса. Она просто «раскладывает» новую информацию по уже знакомым ей понятиям (казалось бы это хорошо, но нет). Такое явление они назвали "праймингом" (aka разложение числа на простые множители), и из-за него LLM начинает путаться в фактах, выдавая новую информацию где не просили.

Авторы этой статьи предлагают потенциальное решение — регуляризацию ignore-topk. Идея до гениальности простая:
- Делаем обычный шаг файнтюнинга и смотрим на обновления весов (Δω).
- Отбираем top-k% самых больших обновлений и… просто удаляем их (умножаем на 0).
- Используем только небольшие изменения весов, которые не содержат шорткатов для быстрой меморизации.

Зачем так странно?
Оказывается, самые большие градиенты как раз и отвечают за «грязное» быстрое запоминание через прайминг. Игнорируя их, мы заставляем модель учиться медленнее и аккуратнее. При этом прайминг уменьшается на 90-95%, а способность запоминать новые факты не страдает.

Но авторы конечно молодцы, сами придумали бенчмарк, сами свой подход измерили, а на другие "learning without forgetting" методы вообще забили. Поэтому не могу сказать, что ignore-topk лучше чем, например, Child-Tuning или EWC, но выглядит прикольно, я его точно попробую 🤷‍♂️

Статья
👍1
Forwarded from FSCP
📚 Вышла самая понятная книга про LLM — вместо того, чтобы сразу объяснять работу Transformers, автор начинает с простых методов, проводит через эволюцию нейронок и заканчивает современными архитектурами.

Это 200 страниц настоящей годноты:

• Сперва — база машинного обучения и математики.
• Эволюция языковых моделей от начала до нынешнего момента.
• Устройство Transformers и LLM.
• Что читать дальше: список лучших ресурсов.
• Каждая глава — теория, иллюстрация + пример рабочего кода на Python, который можно запустить.

Читаем тут, а репо с кодом лежит тут.

@notboring_tech

_______
Источник | #notboring_tech
@F_S_C_P

Узнай судьбу картами Таро:
Anna Taro bot
Давайте поговорим сегодня про историю отрицания во французском языке?

Для начала скажу, что оно состоит из двух частей, классическая его форма — это две частицы, ne и pas, которые окружают глагол. При этом в современном языке ne может не использоваться — обязательной стала частица pas. Например:

Полная фраза: je ne veux pas (я не хочу)

Можно сказать: je veux pas
Нельзя сказать: je ne veux

Что же такое эти ne и pas? Ne — это собственно отрицательная частица, схожая во многих языках мира. А вот pas — это, вообще-то, «шаг».

Как так вышло, что «шаг» начал использоваться в качестве части отрицательной конструкции, а теперь и вообще вытесняет ne? По одной из версий, произошло это так.

Когда-то во французском действительно была только одна отрицательная частица ne, которая ставилась перед глаголом. Но это ne — фонетически слабое, в речи гласный звук может «съедаться», на слух воспринимается не очень четко. Для более внятных формулировок после глагола стала использоваться дополнительная, вторая часть отрицания. Например:

🟣Со словом «шаг»: je ne vais pas — я не пойду («я не сделаю даже шага»)
🟣Со словом mie (miette, «крошка»): je ne mange mie — я не ем («я не съем даже крошки»)

Продолжать можно долго, и остатки этого явления в современном языке тоже прекрасно живут. Частица pas может меняться на другие отрицательные слова, например: personne (никто), rien (ничего), jamais (никогда), plus (больше не), nulle part (нигде, никуда) и так далее.

А дальше стоящая перед глаголом частица ne начинает отмирать за ненадобностью, и обязательной становится отрицание, занимающее пост-глагольную позицию.

Это явление характерно не только для французского, но и для кучи других языков. Называется оно, кстати, цикл Есперсена — в честь лингвиста Отто Есперсена, который его описал.

Во французском цикл еще не завершился, потому что ne исчезло не полностью. В качестве примера завершенного цикла можно посмотреть на английский язык:

🟣В староанглийском была отрицательная частица ne, стоявшая перед глаголом (первая стадия цикла)
🟣Для усиления стали использовать слово nought («ничего»), стоявшее после глагола, которое превратилось в современное not (вторая стадия цикла)
🟣Сегодня not (в форме do not) — единственная часть отрицания в английской фразе, которая опять переехала на позицию перед глаголом (третья стадия цикла)

Такая история!

А про отрицания в других языках можно почитать здесь.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Vikhr models
This media is not supported in your browser
VIEW IN TELEGRAM
ToneSpeak - первый русскоязычный датасет с описанием акецента и настроения.

Сгенерили через openai api, получилось очень приятно, пользуйтесь!

Huggingface
#processes #agile
Абсолютно нерелевантно, но... Это очень удобные часы для звонков!
#dataart #visualization
Внезапно найденная подборка по визуализации данных как искусству, даже больше про датаарт.
Статья и материалы к воркшопу по #ansible
В них, правда, не отметили главное – не стоит с помощью этого инструмента реализовывать задачи, для которых есть более целостные инструменты или паттерны – примерно как не стоит, наверное, делать инсталлятор на Powershell. Хотя можно, да.
#devops
Forwarded from Egor
вообще вижу следующее
(1) модульный курс по питону -- могут поебать мозг с форматтированием и ревью, в остальном должно быть изи вне зависимости от шизы преподов
(2) матстат, по темам -- золотой стандарт + 1 прикладной блок про А/Б. все проходили этот курс, его сложно испортить.
(3) классический мль -- золотой стандарт, то же самое про сложно испортить.
(4) бдшки -- туда же. есть только небольшая специфика, что они ориентируются скорее на аналитику данных.
(5) продуктовая студия -- похоже на авторский курс, на котором препод будет толкать какую-то Суть и Философию про Продакт. ehhh это всё узнаешь за полгода работы на нормальном месте без всей этой помпы
(6) софт скилл лаб -- судя по описанию вы будете ходить на пару и играть в какие-то кринж конкрусы в исполнении препода-тамады
(7) математика для ДС -- повтор самых важных для ДС-приложений тем из вышмата первого курса + начала второго. звучит крайне эклектично, может быть из-за эклектики неприятно для тех, кто видит этот материал в первый раз. но если видеть его не в первый раз, то всё будет ок. КСТАТИ, ведет ТОВАРИЩ ТРУШИН. Я его знаю, он у нас на потоке вел. Чел норм, но достаточно требовательный. Надо будет успевать за ним.
(8) алгосы -- судя по программе вас чуть погоняют по самой базе задачек для решения контестов на собесах. больше ничего интересного не будет, кажется
(9) DL -- золотой стандарт по темам. даже я бы сказал "золотой стандард плюс, с парой допглав для любителей генеративных моделек"
(10) Advanced DL -- допглавы DL в приложениях. должно быть норм, но сильно зависит от преподов...
(11) Рек. системы -- прикладной курс по тому как генерить рекомендации и оценивать их качество. полезно, если преподы не долбичи
(12) NLP -- золотой стандарт плюс. Рннки, трансформеры, приложения для кода. В целом интересно под конец. Я брал такое элективом на ФКНе. Обозреваются основные задачи и методы решения.
(13) гляделки (CV) -- золотой стандарт плюс. так же как на НЛП обозреваются основные задачи и методы их решения.
(14) AI beyond Fit Predict. Авторский курс про какое-то линейное программирование, ожидается много кринжа.
(15) Временные ряды. Золотой стандарт. Этот курс есть у всех году так на 3-4, у кого профиль датасаенс/мль. Хорошо, что по выбору, он не оч нужен в рельной жизни.
(16) Ml in Production. Мль инжениринг. Нормальных курсов по нему не очень бывает, всё авторский рандом. Адекватность сильно зависит от форм и стендов, на которых вы будете собирать пайплайны.
(17) ML System Design. Тоже мль инжиниринг, только чуть больше уклон в продакт. Тоже авторский курс, будет оверлап 100% с ML in Production и курсом по продакту на этой же специальности. Адекватность на совести преподов 100%.
(18) Избранные темы исследований в AI -- партнерский курс с Omut AI. К вам пригонят чуваков из лабы и они будут пытаться что-то рассказывать. Прикольность курса зависит от чуваков из лабы. Если к ним поприлизываться, то могут взять к себе на стажу, но хз зачем это.


+ есть какой-то ФЛЕКС компонент, то есть там можно набрать курсов ещё. И наверное даже нужно (?) не понятно. Но там есть смешные курсы по джава программированию хДДД
Однако очень красивая визуализация.
Контекст – организация памяти при аллокации под экземпляры классов не предполагает какого-либо выравнивания или компактификации (в случае со словарями это работает иначе).
#python #python101
🔥1