Forwarded from Labrats
С развитием технологий машинного обучения становится все труднее отличать текст, написанный машиной, от текста, написанного студентом, обученным на примерах, сгенерированных чатжпт
Коллеги, а все уже в курсе скандала в порно?
Порноактриса Lika Blackberry оказалась тимлидом аналитиков в Lamoda которая с 2022 года занималась очень жесткими дашбордами 🤮🤮🤮. Омерзительно, она и по сей день продолжает брать таски в джире.
Если тут есть кто-то из онлифанса, прокомментируете, какие будут приняты меры? Вам не стыдно, что с вами работает айтишница?
Ребята пожалуйста выкупите юмор, я в вас верю
Порноактриса Lika Blackberry оказалась тимлидом аналитиков в Lamoda которая с 2022 года занималась очень жесткими дашбордами 🤮🤮🤮. Омерзительно, она и по сей день продолжает брать таски в джире.
Если тут есть кто-то из онлифанса, прокомментируете, какие будут приняты меры? Вам не стыдно, что с вами работает айтишница?
Многие говорят, что лид не должен совмещать две работы.
Я скажу так: если у тимлида нет времени сниматься в порно значит он плохой менеджер.
Я скажу так: если у тимлида нет времени сниматься в порно значит он плохой менеджер.
# Test-Driven Development в эпоху LLM
Юнит-тесты в первую очередь помогают писать хороший код. Если ваш код тяжело тестировать значит это плохой код. Скорее всего в нем слишком большая связанность, поэтому не получается изолировать входы и выходы, замокать внешние зависимости.
Раньше умение писать тесты было мощным инструментом. В эпоху LLM это стало одновременно важнее и проще.
Если ваш код хорошо написан, то LLM может моментально выдать вам все нужные тесты. Может парочку кейсов придется попросить добавить. Теперь нужно тратить меньше усилий на тесты, хотя это и раньше не было настоящей проблемой.
Если ваши тесты хорошо написаны, то LLM может внести нужные вам изменения не сломав всё остальное, а вы сможете быстро проверить результат.
Таким образом LLM генерация становится частью TDD цикла. LLM позволяет быстро закрепить стабильное состояние системы в тестах, а тесты позволяют эффективно использовать LLM для ускорения разработки. Не используя тесты вы среди прочего теряете часть потенциала LLM ассистентов.
Ещё до всяких LLM я считал юнит-тесты спецификацией. Они описывают требования к системе: что она делает и чего не делает. В 2025 это стало буквально так: можно считать, что ваши тесты это часть промпта для LLM. Конкретное описание того, что и как должно работать.
На самом деле always has been, просто раньше тесты были промптом для программиста (включая вас).
Юнит-тесты в первую очередь помогают писать хороший код. Если ваш код тяжело тестировать значит это плохой код. Скорее всего в нем слишком большая связанность, поэтому не получается изолировать входы и выходы, замокать внешние зависимости.
Раньше умение писать тесты было мощным инструментом. В эпоху LLM это стало одновременно важнее и проще.
Если ваш код хорошо написан, то LLM может моментально выдать вам все нужные тесты. Может парочку кейсов придется попросить добавить. Теперь нужно тратить меньше усилий на тесты, хотя это и раньше не было настоящей проблемой.
Если ваши тесты хорошо написаны, то LLM может внести нужные вам изменения не сломав всё остальное, а вы сможете быстро проверить результат.
Таким образом LLM генерация становится частью TDD цикла. LLM позволяет быстро закрепить стабильное состояние системы в тестах, а тесты позволяют эффективно использовать LLM для ускорения разработки. Не используя тесты вы среди прочего теряете часть потенциала LLM ассистентов.
Ещё до всяких LLM я считал юнит-тесты спецификацией. Они описывают требования к системе: что она делает и чего не делает. В 2025 это стало буквально так: можно считать, что ваши тесты это часть промпта для LLM. Конкретное описание того, что и как должно работать.
На самом деле always has been, просто раньше тесты были промптом для программиста (включая вас).
Forwarded from Neural Info
Статья про атаки на нейросети. Постарался верхнеуровневого разобрать различные виды атак, коротко их описать и привести примеры статей, которые можно почитать про определенный вид атаки. Также в конце приложил список статей про различные атаки, которые я изучал ранее по данной тематике.
Telegraph
Атаки на нейросети
Введение
На моем канале мало контента для начинающих в ML/DS. Я не планирую это менять, но могу порекомендовать канал от Поступашек: Задачи DS - Собеседования, Соревнования, ШАД.
Ребята делают обзоры различных направлений в компаниях, разбирают тестовые задания и задачи с собеседований.
Что интересного можно у них почитать:
- О направлениях команд в Big Tech, работающих с ML
- О популярных задачах с собеседований по направлениям ML и DS
- Разбор задачи с собеседования в БКС Банк (DS)
Ребята делают обзоры различных направлений в компаниях, разбирают тестовые задания и задачи с собеседований.
Что интересного можно у них почитать:
- О направлениях команд в Big Tech, работающих с ML
- О популярных задачах с собеседований по направлениям ML и DS
- Разбор задачи с собеседования в БКС Банк (DS)
"Здесь довольно часто стулья меняются местами" — услышано про корпоративную реорганизацию.
Как же точно и емко.
Коллеги, два стула поменялись местами, выбирайте
Как же точно и емко.
Админ трогал траву как не в себя, но наконец добрался рассказать вам про самую поразительную работу за 2024.
Я считаю, что про неё недостаточно говорят, а про решателей шокльной математики (o1/o3) и агентов слишком много. Ваша любимая 400b VLM плохо рисует bounding boxes, а эта 770m шутка делает их отлично хоть на CPU. При этом VLM обучалась на немыслимом количестве данных, а у этой штуки было меньше примеров, чем у CLIP. Да что далеко ходить: у меня друг делает стартап по CV, мы с ним обсуждали эту модель, он её попробовал и перестал обучать свои YOLO детекторы: потому что эта штука просто работает. Причем несмотря на необходимость обнаруживать строительные машины на фотографиях с плохих камер в родной атмосфере слякоти и грязи.
#обзор_статьи
# Florence-2: Advancing a Unified Representation for a Variety of Vision Tasks
Скачивайте и играйтесь на HF.
Что если я скажу, что есть модель, которая умеет хорошо делать Zero-Shot детекцию, сегментацию, captioning и OCR? Что при этом её можно промптить, например требуя найти на картинке всех собак или сделать сегментацию объекта внутри ббокса? Вы наверное подумаете, что это новая огромная VLM. Но нет, эта модель размером всего 770M, то есть как большой ViT. Можно запускать хоть на CPU. Более того, её можно дообучать, в том числе легко сделать из неё supervised детектор прикрутив ей свою любимую голову, скажем от DETR.
В Computer Vision у всех комплексы по поводу foundational models. Мы завидуем ребятам из NLP. Стало модно выпускать большие модели и говорить: "теперь у нас тоже фаундейшнл!" Однако что такого foundational, скажем, в Segment Anything? Это просто сегментатор обученный на большом количестве качественной синтетики. В моем понимании foundational это когда ты в свободной форме даешь модели любую задачу и она её решает, как GPT-4o, а не когда тебе нужно определенным образом зампромптить модель, чтобы получить решение задачи сегментации.
Florence-2 это первая модель в CV которую я действительно готов назвать foundational. С одной стороны из-за её широкой полезности, так как она позволяет решать все популярные задачи в CV. Но так же из-за того, каким образом она сделала. Минимум костылей, как вы сейчас увидите.
Перейдем к сути, благо статья простая и благодаря этому очень красивая. Авторы рассуждают последовательно.
Чего мы хотим от универсальной CV модели?
1. Image-level understanding: понимание высокоуровневой семантики. Например, на картинке кошка или собака? Можно так же сказать, что это способность связать изображение и текстовое описание. Эту задачу отлично решает CLIP.
2. Region/pixel-level recognition: обнаружение объектов на изображениях и понимание их расположения. С этим отлично справляются supervised классификаторы, детекторы и сегментаторы.
3. Fine-grained visual-semantic alignment: связь между областями изображения, в том числе совсем маленькими, и текстом. Обнаружение частей изображений которые относятся к фразам, объектам, атрибутам и отношениям. Это способность обнаружить и отличить "нос собаки", "нос собаки слева", "нос рыжей собаки", "коричневый нос собаки" и так далее.
Когда желания определены дело за малым: выбрать данные, функцию ошибки и архитектуру. Через эти компоненты мы по факту формируем оптимизационную задачу.
Авторы решили, что для получения трех компонент понимания изображений нужно много разных аннотаций, которые можно распределить по двум осям:
1. Spatial hierarchy: аннотации должны включать разные масштабы изображений, чтобы модели требовалось понимание и на уровне изображения, и на уровне пикселей.
2. Semantic granularity: в текстах (описаниях, промптах, лейблах) должны встречаться разные уровни абстракции, требующие от модели как понимания общих концептов, так и небольших деталей и нюансов.
Я считаю, что про неё недостаточно говорят, а про решателей шокльной математики (o1/o3) и агентов слишком много. Ваша любимая 400b VLM плохо рисует bounding boxes, а эта 770m шутка делает их отлично хоть на CPU. При этом VLM обучалась на немыслимом количестве данных, а у этой штуки было меньше примеров, чем у CLIP. Да что далеко ходить: у меня друг делает стартап по CV, мы с ним обсуждали эту модель, он её попробовал и перестал обучать свои YOLO детекторы: потому что эта штука просто работает. Причем несмотря на необходимость обнаруживать строительные машины на фотографиях с плохих камер в родной атмосфере слякоти и грязи.
#обзор_статьи
# Florence-2: Advancing a Unified Representation for a Variety of Vision Tasks
Скачивайте и играйтесь на HF.
Что если я скажу, что есть модель, которая умеет хорошо делать Zero-Shot детекцию, сегментацию, captioning и OCR? Что при этом её можно промптить, например требуя найти на картинке всех собак или сделать сегментацию объекта внутри ббокса? Вы наверное подумаете, что это новая огромная VLM. Но нет, эта модель размером всего 770M, то есть как большой ViT. Можно запускать хоть на CPU. Более того, её можно дообучать, в том числе легко сделать из неё supervised детектор прикрутив ей свою любимую голову, скажем от DETR.
В Computer Vision у всех комплексы по поводу foundational models. Мы завидуем ребятам из NLP. Стало модно выпускать большие модели и говорить: "теперь у нас тоже фаундейшнл!" Однако что такого foundational, скажем, в Segment Anything? Это просто сегментатор обученный на большом количестве качественной синтетики. В моем понимании foundational это когда ты в свободной форме даешь модели любую задачу и она её решает, как GPT-4o, а не когда тебе нужно определенным образом зампромптить модель, чтобы получить решение задачи сегментации.
Florence-2 это первая модель в CV которую я действительно готов назвать foundational. С одной стороны из-за её широкой полезности, так как она позволяет решать все популярные задачи в CV. Но так же из-за того, каким образом она сделала. Минимум костылей, как вы сейчас увидите.
Перейдем к сути, благо статья простая и благодаря этому очень красивая. Авторы рассуждают последовательно.
Чего мы хотим от универсальной CV модели?
1. Image-level understanding: понимание высокоуровневой семантики. Например, на картинке кошка или собака? Можно так же сказать, что это способность связать изображение и текстовое описание. Эту задачу отлично решает CLIP.
2. Region/pixel-level recognition: обнаружение объектов на изображениях и понимание их расположения. С этим отлично справляются supervised классификаторы, детекторы и сегментаторы.
3. Fine-grained visual-semantic alignment: связь между областями изображения, в том числе совсем маленькими, и текстом. Обнаружение частей изображений которые относятся к фразам, объектам, атрибутам и отношениям. Это способность обнаружить и отличить "нос собаки", "нос собаки слева", "нос рыжей собаки", "коричневый нос собаки" и так далее.
Когда желания определены дело за малым: выбрать данные, функцию ошибки и архитектуру. Через эти компоненты мы по факту формируем оптимизационную задачу.
Авторы решили, что для получения трех компонент понимания изображений нужно много разных аннотаций, которые можно распределить по двум осям:
1. Spatial hierarchy: аннотации должны включать разные масштабы изображений, чтобы модели требовалось понимание и на уровне изображения, и на уровне пикселей.
2. Semantic granularity: в текстах (описаниях, промптах, лейблах) должны встречаться разные уровни абстракции, требующие от модели как понимания общих концептов, так и небольших деталей и нюансов.
arXiv.org
Florence-2: Advancing a Unified Representation for a Variety of...
We introduce Florence-2, a novel vision foundation model with a unified, prompt-based representation for a variety of computer vision and vision-language tasks. While existing large vision models...
В итоге они собирали такие типы обучающих примеров:
1. Captioning трех видов: brief, detailed, more detailed. Задачи связанные с описанием изображения.
2. Region-text: phrase, brief. Это, например, детекция: найди всех кошек. Phrase будет при этом вариацией когда в качестве промпта подается сложная фраза, а brief когда, условно, "кошка." Сюда относится и обратная задача: опиши объект в данном регионе, коротко или объемно. Это и сегментация, и OCR, и так далее.
3. Text-Phrase-Region: brief, detailed, more detailed. Это в основном про grounding: такая задача, где модели требуется выделить часть из длинного текста и сопоставить эту часть с чем-то на изображении. Например, это может быть параграф текста, в котором модели нужно выделить все сущности и выделить их на изображении.
По части данных CLIP когда-то изменил парадигму в CV: 400 миллионов собранных из интернета пар изображение-подпись оказались гораздо лучше чем 328к качественной разметки MS COCO. Масштаб победил: лучше куча мусора, но зато большая!
Florence-2 кладет всех на лопатки используя всего 126m изображений. Что меньше чем у CLIP (400m), Flamingo (185m) и даже обычного ViT (300m). Но есть важная деталь: в датасете Florence-2 на 128m изображений приходится 5 миллиардов аннотаций. Авторы называют эту парадигму multi-task learning. Вместо того, чтобы собирать огромное количество примеров (задача,изобрадеине), давайте заставим модель решать много разных задач для каждого изображения. Одно и то же изображение получает много лейблов: короткое описание, длинное описание, bbox для сущностей, сегментационные маски, и так далее. Если подумать, это разумно: я ведь не хочу модель, которая для каких-то изображений умеет делать подписи, а для других умеет делать детекцию. Я хочу модель, которая сможет сделать с любым изображением всё, что мне нужно.
Таким образом эффективное количество полезной разметки в этом датасете очень большое. Переобучения под изображения не наступает несмотря на то, что модель видит их много раз. Ведь задачи разные, а решать разные задачи с помощью запоминания сложнее, чем действительно выучить некий алгоритм "понимания" изображений.
В парадигме multi-task learning так же удобно собирать разметку. Как и во многих современных работах, авторы сделали data engine итеративно улучшающий разметку. Процесс простой: берем изображения, делаем для них разметку с помощью специализированных моделей. Возьмем наш любимый OCR, Segment Anything для сегментации, OWL ViT 2 для детекции, и так далее. Таким образом мы получаем шумную синтетику. Далее мы фильтруем её как можно лучше. Обучаем на этой версии датасета Florence-2. С помощью этой версии модели и специалистов генерируем шумную разметку снова, снова фильтруем, обучаем модель и так далее пока не надоест. Всё это возможно благодаря тому, что набор изображений небольшой и фиксированный.
1. Captioning трех видов: brief, detailed, more detailed. Задачи связанные с описанием изображения.
2. Region-text: phrase, brief. Это, например, детекция: найди всех кошек. Phrase будет при этом вариацией когда в качестве промпта подается сложная фраза, а brief когда, условно, "кошка." Сюда относится и обратная задача: опиши объект в данном регионе, коротко или объемно. Это и сегментация, и OCR, и так далее.
3. Text-Phrase-Region: brief, detailed, more detailed. Это в основном про grounding: такая задача, где модели требуется выделить часть из длинного текста и сопоставить эту часть с чем-то на изображении. Например, это может быть параграф текста, в котором модели нужно выделить все сущности и выделить их на изображении.
По части данных CLIP когда-то изменил парадигму в CV: 400 миллионов собранных из интернета пар изображение-подпись оказались гораздо лучше чем 328к качественной разметки MS COCO. Масштаб победил: лучше куча мусора, но зато большая!
Florence-2 кладет всех на лопатки используя всего 126m изображений. Что меньше чем у CLIP (400m), Flamingo (185m) и даже обычного ViT (300m). Но есть важная деталь: в датасете Florence-2 на 128m изображений приходится 5 миллиардов аннотаций. Авторы называют эту парадигму multi-task learning. Вместо того, чтобы собирать огромное количество примеров (задача,изобрадеине), давайте заставим модель решать много разных задач для каждого изображения. Одно и то же изображение получает много лейблов: короткое описание, длинное описание, bbox для сущностей, сегментационные маски, и так далее. Если подумать, это разумно: я ведь не хочу модель, которая для каких-то изображений умеет делать подписи, а для других умеет делать детекцию. Я хочу модель, которая сможет сделать с любым изображением всё, что мне нужно.
Таким образом эффективное количество полезной разметки в этом датасете очень большое. Переобучения под изображения не наступает несмотря на то, что модель видит их много раз. Ведь задачи разные, а решать разные задачи с помощью запоминания сложнее, чем действительно выучить некий алгоритм "понимания" изображений.
В парадигме multi-task learning так же удобно собирать разметку. Как и во многих современных работах, авторы сделали data engine итеративно улучшающий разметку. Процесс простой: берем изображения, делаем для них разметку с помощью специализированных моделей. Возьмем наш любимый OCR, Segment Anything для сегментации, OWL ViT 2 для детекции, и так далее. Таким образом мы получаем шумную синтетику. Далее мы фильтруем её как можно лучше. Обучаем на этой версии датасета Florence-2. С помощью этой версии модели и специалистов генерируем шумную разметку снова, снова фильтруем, обучаем модель и так далее пока не надоест. Всё это возможно благодаря тому, что набор изображений небольшой и фиксированный.