Как стать автором
Обновить
15
0
Иван Ганев @IvanGanev

Фронтенд разработчик

Отправить сообщение

OmniFusion: выходим за границы текста

Уровень сложностиСложный
Время на прочтение5 мин
Количество просмотров6.5K

Кто-то ещё сомневается, что в мире машинного обучения происходит революция? Уверен, мы являемся свидетелями преобразования привычного взаимодействия с данными, поиска информации, да и вообще работы как таковой. Ведь умные ассистенты (ChatGPT, GigaChat, Bard) готовы взять на себя даже самые сложные задачи.

Но не всегда возможно сформулировать проблему в виде текстового запроса, иногда требуется информация из других “модальностей” — картинка, звук, 3D и тд. Ниже я разберу какие именно есть способы соединения больших языковых моделей (LLM) с дополнительными форматами данных, а также опишу как устроена наша новая модель OmniFusion.

Читать далее

Нормально разбираемся в Нормальном распределении

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров48K

Интуитивное понимание Нормального распределения

Читать далее

Размываем границы времени и учимся создавать видео — Kandinsky шагает дальше

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров13K

В последние несколько лет активно развиваются генеративные модели, причём синтезировать с хорошим качеством уже сейчас получается и тексты, и аудио, и изображения, и видео, и 3D, и другие модальности. Если говорить про генерацию изображений, то стремительность прогресса в этом направлении обусловлена развитием диффузионного подхода и успехами при обучении больших диффузионных моделей (таких как DALL•E 2/3, Imagen, StableDiffusion, Kandinsky 2.X). Этот тип моделей показывает также отличное качество синтеза видео (ImagenVideo, Make-a-Video, Video LDM, GEN-1, GEN-2, Pika Labs, ZeroScope) и 3D-объектов (DreamFusion, Magic3D). При этом каждый месяц мы можем наблюдать за появлением новых open source (и не только) решений и сервисов, которые обеспечивают очень высокое визуальное качество генераций. 

Несмотря на стремление исследователей в области машинного обучения создать единую модель для синтеза видео, есть не менее элегантные подходы к генерации видеороликов. В этой статье речь пойдёт как раз о таком способе создания анимированных видео на основе модели генерации изображений по тексту — в нашем случае, это, как вы уже успели догадаться, модель Kandinsky 2.2. В деталях изучив направление моделирования различных визуальных эффектов вокруг генеративной модели, которая обладает способностью преобразования изображений (image-to-image) и механизмами дорисовки (inpainting/outpainting), мы разработали решение, которое расширяет границы статичных генераций и даёт возможность синтеза так называемых анимационных видео. В качестве такого фреймворка имплементации различных вариантов анимаций мы взяли широко известный deforum, который хорошо зарекомендовал себя в связке с моделью StableDiffusion. И поверьте, задача скрещивания deforum с Kandinsky была отнюдь не простой. Об этом и поговорим далее!

Читать далее

Kornia — библиотека компьютерного зрения

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров13K

Kornia это open source библиотека для решения задач компьютерного зрения. Она использует PyTorch в качестве основного бэкенда и состоит из набора дифференцируемых процедур и модулей. Создатели библиотеки вдохновлялись OpenCV, и поэтому Kornia является его аналогом, но при этом в некоторых моментах превосходит. Главным преимуществом Kornia по сравнению с тем же OpenCV, scikit-image или с Albumentations является возможность обрабатывать изображения батчами, а не по одному изображению и возможность обрабатывать данные на GPU.

Читать далее

Почему для MLOps лучше выбирать Open Source, а не проприетарное ПО

Время на прочтение3 мин
Количество просмотров2.1K


Самому обеспечивать гибкость и контроль собственного ML-пайплайна — это важно. Команды по машинному обучению могут использовать проприетарные платформы или создавать собственные решения с помощью Open-Source-инструментов. Компании часто представляют проприетарные платформы как более мощные, эффективные и простые в использовании. Но в действительности они часто оказываются более сложными и менее мощными, чем их Open-Source-конкуренты.
Читать дальше →

Мое Знакомство с УИИ или Путешествие в Параллельную Реальность

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров18K

Эта статья представляет собой рассказ о том, как я узнала о существовании параллельной реальности под названием Университет Искусственного Интеллекта (УИИ), плавно переходящий в мини-расследование того, что же на самом деле скрывает за собой это название. В основном рассказ cкомпонован из серии постов в моем телеграм-канале, которые я написала в конце прошлого года под впечатлениями от данного интеллектуального путешествия, с небольшими дополнениями на основании новой полученной с тех пор информации.
Я надеюсь, что рассказ будет полезен новичкам в изучении искусственного интеллекта, чтобы они не потратили сотни тысяч рублей зря, а тем людям, которые занимаются темой давно, доставит удивление и... просто доставит.

Для начала скажу пару слов о себе.
Я работаю в области машинного обучения уже несколько лет, успев потрудиться за это время в нескольких компаниях на разных ролях, связанных с исследованиями и разработкой. Сейчас я работаю в R'n'D команде, где занимаюсь исследованиями в области NLP (Natural Language Processing) и подготовкой публикаций на конференции А*. Думаю, этой информации достаточно в качестве контекста, который поможет читателям лучше прочувствовать глубину моего культурного шока от контакта с феноменом под названием УИИ.

Читать далее

Bag of tricks для разметки текстовых данных: Часть 1. Четыре способа размечать меньше

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров4.2K

Привет! Меня зовут Ирина Кротова, я NLP-исследователь из компании MTS AI. Мы не понаслышке знаем, что сбор и разметка данных часто становятся “бутылочным горлышком" в проектах, связанных с машинным обучением. У нас в компании есть постоянная необходимость в разных видах разметки аудио, текста и изображений.

В этой статье я хочу поделиться лайфхаками по подготовке и разметке текстовых датасетов и возможными "граблями", на которые можно наступить, если вы создаете датасет впервые. Многие из этих советов универсальны, но основной фокус сделан на обработке естественного языка, поскольку я опираюсь в первую очередь на собственный опыт: в разное время я работала с юридическими документами, доменными чат-ботами и участвовала в подготовке и проведении соревнования по автоматической детоксификации текстов.

Читать далее

Измеряй и властвуй: как мы покрытие автоматическими тестами измеряли

Время на прочтение9 мин
Количество просмотров7.9K

Привет, Хабр! Меня зовут Марина Петрова, я QA Lead в Cloud. В нашей QA-команде уже более 35 человек, а количество тестируемых продуктов превышает десяток. Мы пишем автоматические тесты для повышения качества продуктов и сокращения времени ручного тестирования. Для эффективной организации этого процесса требуются числовые индикаторы — метрики. Нам хотелось иметь инструмент, в котором аккумулируются данные о метриках в простом и понятном всем виде. Тогда мы предложили инициативу по созданию приложения для автоматического сбора и визуализации метрик покрытия автоматическими тестами.

В этой статье расскажу, какой путь мы прошли, чтобы измерить покрытие функциональности проектов автотестами.

Читать далее

Заклинания для Героев машинного обучения

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров5.1K

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

Читать далее

Обработка естественного языка (NLP). Личный опыт — мой первый запуск BERT

Время на прочтение4 мин
Количество просмотров4.2K

BERT — Bidirectional Encoder Representations from Transformers

Здесь не будет рассказываться о том, что такое BERT, как это работает и для чего применяется — в сети об этом достаточно информации.

Это статья про личный опыт — как конкретно у меня получилось запустить BERT с чистого Colab по конкретным описаниям.

Читать далее

А вы давно заглядывали внутрь ваших зависимостей?

Уровень сложностиСложный
Время на прочтение8 мин
Количество просмотров18K

Задумывались ли вы о том, что находится внутри зависимостей, которые так или иначе подтягиваются в ваш код? Взять чужую библиотеку сейчас — норма жизни, но чем это обернется с точки зрения безопасности?

Последние истории с node‑ipc и CTX заставили задуматься о том, что лежит внутри этих репозиториев. Оказалось, не только легитимный код. Там есть и попытки заработать без особых усилий, просто собирая информацию, и даже полноценные стиллеры. Причем негативных изменений стало больше после известных событий.

За подробностями о сканировании пакетов npm и PyPI добро пожаловать под кат.

Читать далее

Как тестировать в Databricks: Nutter Framework

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров1.3K

Если с тестированием привычных программных продуктов более-менее ясно, то вот с BigData возникает множество вопросов. Если у вас Java - у вас есть как минимум JUnit, а абсолютное большинство фреймворков заботятся о простоте тестирования. Например Spring посвящает этому очень много документации. Тестирование фронтенда тоже хорошо проработано: от Selenium до JestJs. Тестировать блокчейн и смарт-контракты одно удовольствие (хотя бы на Ethereum сети благодаря Truffle Suite)

Что делать, если вы используете Databricks? Обычные библиотеки для тестирования туда плохо заходят, и даже несколько официальных руководств по тестированию не отвечают на все вопросы. Ответ, который нашла наша команда, - Nutter Framework.

Как же его использовать?

Нельзя просто так взять и распарсить этот JSON на JavaScript

Время на прочтение7 мин
Количество просмотров29K

JSON является одним из очень простых, но в то же время эффективных языков для хранения и передачи данных. Он настолько популярен, что, пожалуй, может считаться самым совместимым форматом представления данных в мире.

Одновременно с этим, JavaScript является одним из наиболее популярных языков программирования и применяется практически везде. Также, нужно понимать, что JSON появился напрямую из JavaScript и эти два языка просто созданы друг для друга.

Но что же может пойти не так, спросите Вы? Просто попробуйте распарсить этот JSON-документ…

Давайте парсить

Представляем Deep Lake, озеро данных для глубокого обучения

Время на прочтение8 мин
Количество просмотров4.5K

В рамках нашего крупнейшего проекта мы представляем Deep Lake - озеро данных для глубокого обучения. Deep Lake более чем в 2 раза производительнее по сравнению с предыдущим поколением и превосходит все другие загрузчики данных. Давайте ознакомимся с более подробной информацией о возможностях Deep Lake.

Читать далее

Building a GPT-like Model from Scratch with Detailed Theory and Code Implementation

Время на прочтение14 мин
Количество просмотров38K

Unlock the power of Transformer Neural Networks and learn how to build your own GPT-like model from scratch. In this in-depth guide, we will delve into the theory and provide a step-by-step code implementation to help you create your own miniGPT model. The final code is only 400 lines and works on both CPUs as well as on the GPUs. If you want to jump straight to the implementation here is the GitHub repo.

Transformers are revolutionizing the world of artificial intelligence. This simple, but very powerful neural network architecture, introduced in 2017, has quickly become the go-to choice for natural language processing, generative AI, and more. With the help of transformers, we've seen the creation of cutting-edge AI products like BERT, GPT-x, DALL-E, and AlphaFold, which are changing the way we interact with language and solve complex problems like protein folding. And the exciting possibilities don't stop there - transformers are also making waves in the field of computer vision with the advent of Vision Transformers.

Read more

Проверяем Архитектурные стили на движке Factorio (часть 1)

Время на прочтение28 мин
Количество просмотров50K

Добрый день всем, дорогие читатели!

На начало написания статьи я только успел обдумать общие подходы и немного опробовать эту идею и понятия не знаю, чем это закончится. Она может оказаться полностью бесполезной тратой времени, может вообще не иметь возможности реализоваться, может получиться хорошим обучающим материалом для опытных программистов, а может и привнести новые идеи в запутанную профессию Архитектора ПО. Посмотрим, что получится: я не буду кардинально править уже написанные части статьи, чтобы сохранить эту атмосферу неизведанного.

Если вы хотя бы чуть-чуть имели неудачу пообщаться с Архитекторами, то знаете, что в их понимании не существует идеальной архитектуры ПО и вся их работа состоит во взвешивании плюсов и минусов того или иного Архитектурного стиля. И поскольку Архитектурных стилей много и каждый имеет свои преимущества (даже Монолит) и недостатки (даже Микросервисы) - работа архитектора состоит в попытках применения данных стилей на конкретный продукт и попыток предугадать, что из этого получит в итоге для бизнес-части.

Как сказал мой добрый друг-программист про Factorio: "Эту игру создали программисты для программистов" и эти слова плотно въелись в мою память. И реально игра в эту игру очень сильно напоминает процесс разработки ПО: можно просто строить как попало и прийти к полностью запутанной и сложнообслуживаемой системе, а можно подойти к вопросу с умом изначально и в итоге получить производительную и легкую в обслуживании систему (Прям как в жизни!)

Читать далее...

США объявили войну крипто-анонимности: как санкции на Tornado Cash меняют будущее блокчейна

Время на прочтение21 мин
Количество просмотров40K

Прямо сейчас происходят события, которые могут стать поворотной точкой для всей криптоиндустрии (а заодно и для всех open-source программистов). Тем более странно, что пока эти события вызывают ажиотаж только в узком кругу настоящих криптанов… В этой статье я попытаюсь объяснить, почему вам тоже должно быть дико интересно следить за санкционной драмой вокруг Tornado Cash.

Читать далее

Как развернуть стенд для разработки с помощью сервисов облачной платформы SberCloud.Advanced

Время на прочтение12 мин
Количество просмотров11K

Хабр, привет! Меня зовут Георгий Липатов. Я — DevOps-инженер, работаю в Сбере, также сопровождаю мониторинг и бэкапы в Sber Tax Free.

Мы начали строить этот сервис в конце прошлого года — тогда наша ИТ-команда состояла из двух backend-разработчиков, DevOps-инженера и пары специалистов по frontend’у. Чтобы не терять время и проверить первые гипотезы, мы решили развернуть стенды для разработки и тестирования в облаке. Помимо решений в области информационной безопасности нам, конечно же, были необходимы удобные инструменты для развертывания, мониторинга и бэкапов. Плюс — масштабируемые ресурсы в зависимости от потребностей проекта.

Как только мы подготовили чуть более развернутое описание наших запросов и рассказали о проекте коллегам из SberCloud, они предоставили нам тестовый доступ и документацию для SberCloud.Advanced. В итоге мы развернули стенды за несколько минут, а еще — сняли с себя необходимость отслеживания обновлений, патчинга и оплаты отдельных инструментов. Последний момент заключается в том, что вместо запуска дополнительной «виртуалки» можно воспользоваться бесплатным сервисом, который предоставляет платформа.

Далее я расскажу о настройке стенда для тестового приложения в формате пошагового туториала. Всех заинтересовавшихся приглашаю под кат.

Читать далее

Структурирование React-приложений

Время на прочтение16 мин
Количество просмотров75K
Материал, перевод которого мы сегодня публикуем, раскрывает подходы, применяемые его автором при структурировании React-приложений. В частности, речь здесь пойдёт об используемой структуре папок, об именовании сущностей, о местах, где располагаются файлы тестов, и о других подобных вещах.

Одна из наиболее приятных возможностей React заключается в том, что эта библиотека не принуждает разработчика к строгому соблюдению неких соглашений, касающихся структуры проекта. Многое в этом плане остаётся на усмотрение программиста. Этот подход отличается от того, который, скажем, принят во фреймворках Ember.js или Angular. Они дают разработчикам больше стандартных возможностей. В этих фреймворках предусмотрены и соглашения, касающиеся структуры проектов, и правила именования файлов и компонентов.



Лично мне нравится подход, принятый в React. Дело в том, что я предпочитаю контролировать что-либо сам, не полагаясь на некие «соглашения». Однако много плюсов есть и у того подхода к структурированию проектов, который предлагает тот же Angular. Выбор между свободой и более или менее жёсткими правилами сводится к тому, что именно ближе вам и вашей команде.

За годы работы с React я испробовал множество различных способов структурирования приложений. Некоторые из применённых мной идей оказались более удачными, чем другие. Поэтому здесь я собираюсь рассказать обо всём том, что хорошо показало себя на практике. Я надеюсь, что вы найдёте здесь что-то такое, что пригодится и вам.
Читать дальше →

Функциональный JavaScript: что такое функции высшего порядка и зачем они нужны?

Время на прочтение9 мин
Количество просмотров16K

«Функции высшего порядка» — это одна из тех фраз, которыми часто разбрасываются. Но редко кто может остановиться и объяснить, что это такое. Возможно, вы уже знаете, что называют функциями высшего порядка. Но как мы используем их в реальных проектах? Когда и почему они бывают полезны? Можем ли мы с их помощью манипулировать DOM? Или люди, которые используют эти функции, просто хвастаются? Быть может, они бессмысленно усложняют код?

Раньше я считал, что функции высшего порядка полезны. Теперь я считаю их самым важным свойством JavaScript как языка. Но прежде чем мы это обсудим, давайте сначала разберёмся, что же такое функции высшего порядка. И начнём мы с функций в качестве переменных.
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Фронтенд разработчик
Старший
JavaScript
React
TypeScript
Next.js
Веб-разработка