Как стать автором
Обновить
0
0
Штясек Матей @matthew_shtyasek

Пользователь

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

Генетический алгоритм, нейросеть играет в догонялки

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

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

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии15

Моделирование движения космических объектов (симулятор гравитации)

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

Моделирование планетарного ускорения, солнечной системы и взаимодействия любого количества объектов на космической карте в замкнутой системе!

Читать далее
Всего голосов 5: ↑4 и ↓1+4
Комментарии31

Оптимизация генеративной модели на основе дистилляции

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

Одним из важнейших направлений работы над моделями машинного обучения является их оптимизация. Оптимизированная модель работает быстрее, требует меньше вычислительных ресурсов, и как следствие — снижает себестоимость работы ПО, использующего модель. Для задач, когда существует ограничение по типам изображений при использование генеративных моделей, возможный путь оптимизации — дистилляция существующих "больших" универсальных моделей. Например Stable Diffusion (далее — SD).Также для некоторых задач, связанных с демонстрацией пользователям изображений, необходимо как можно скорее выводить результат генерации.

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

Читать далее
Всего голосов 12: ↑12 и ↓0+12
Комментарии0

Целостность, точность, согласованность: три фактора, обеспечивающие качество машинного обучения

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

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

Но как выявлять высококачественные данные и обеспечивать их уровень уже в процессе работы над проектом? И что означает «качество данных» в контексте машинного обучения?

Можно упростить ответ на этот вопрос, сведя качество данных к трём основным характеристикам: целостности (integrity), точности (accuracy) и согласованности (consistency).

  • Целостность: надёжность используемого датасета
  • Точность: степень валидности и корректности присвоенных аннотаций
  • Согласованность: степень согласованности присвоенных аннотаций во всём датасете

Можно воспринимать каждый из этих факторов как часть высокоуровневой дорожной карты для обеспечения качества данных на всех этапах конвейера аннотирования.
Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

Как правильно дифференцировать дискретные функции (Часть 1. Тестируем и улучшаем Numpy)

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

После того как я реально «подсел» на чтение Хабра, захотелось «освежить» что‑то из своего богатого математического прошлого. Воскресить, так сказать, старые наработки, зайдя, естественно, через дверь с табличкой Python. Предлагаемая публикация посвящена простейшим методам численного дифференцирования дискретных функций (они же решетчатые функции, они же табличные функции, они же функции, заданные набором данных и т. п.). Очень странно, что в библиотеках Python с такой простой темой не все так просто и безоблачно, есть кое‑какие вопросы и проблемы. SciPy, как оказалось, вообще не об этом, а в NumPy «тема не раскрыта». На простейших примерах рассмотрим то, что предлагает NumPy, что там не так и как можно сделать лучше.

Читать далее
Всего голосов 12: ↑12 и ↓0+12
Комментарии23

Сбор данных для машинного обучения: этапы, методики и рекомендации

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

Все успешные компании постоянно собирают данные. Они отслеживают поведение людей в Интернете, организуют опросы, мониторят отзывы, слушают сигналы от умных устройств, извлекают значимые слова из электронных писем и предпринимают другие шаги для накопления фактов и чисел, помогающих им принимать бизнес-решения. Хотя современный мир изобилует данными, сбор ценной информации включает в себя множество организационных и технических трудностей, которые мы и рассмотрим в этой статье. Особое внимание мы уделим методикам сбора данных и инструментам для аналитики и проектов машинного обучения.
Читать дальше →
Рейтинг0
Комментарии1

Принципы SOLID: как писать хорошо масштабируемый и поддерживаемый код

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

Вам когда-нибудь говорили, что вы пишете плохой код? 

Здесь стыдиться нечего. Мы все пишем несовершенный код, когда только учимся. Хорошая новость в том, что улучшить его — довольно просто, главное — желание. 

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

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

Читать далее
Всего голосов 9: ↑6 и ↓3+4
Комментарии11

Менеджеры контекста в Python

Время на прочтение4 мин
Количество просмотров5.3K
Почти десять лет назад я показал краткое введение в менеджеры контекста (пункт 2 здесь) и думал, что стану активнее пользоваться такими менеджерами. Но вспомнил я о них только недавно, на фоне того, как много мне приходилось перенастраивать и очищать тестируемый код при опытах по параллелизму (код получался одновременно неприятным и некрасивым).

Посмотрите спецификацию PEP 343: там описано, что суть менеджеров контекста в следующем: «позволить вычленять в отдельные блоки стандартные варианты использования инструкций try/finally». Мне всегда казалось, что finally тяготеет к обработке исключений. Но это не столько обработка ошибок, сколько очистка. Конечно, вы должны быть в состоянии обеспечить качественную очистку в случае, если выброшено исключение, но её к тому же необходимо обеспечить, несмотря на то, что вы покидаете область видимости. Думаю, здесь мы слишком полагались на вызовы функций как на основную рабочую единицу, что отвлекало нас от области видимости как от более общей концепции. Эта тема особенно интересна в сравнении с временами жизни в Rust.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии0

Бережем время, деньги, нервы: наш опыт улучшения справочника факторов для ML-моделей оценки риска. Часть 2

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

Всем привет! С вами дата-сайентисты банка «Открытие» Иван Кондраков, Константин Грушин, Станислав Арешин и Алексей Дьяков. Часто даже самые хорошие произведения, будь то фильмы, книги или компьютерные игры, остаются без сиквела. А еще чаще сиквел просто не дотягивает до оригинала… К счастью, это не наш случай! Мы возвращаемся с прямым продолжением нашей статьи о программной генерации длинного списка факторов. И, поверьте, мы следовали всем правилам хорошего сиквела: наш сиквел держит планку качества, продолжает идеи оригинала, при этом полезной информации в нем еще больше!

Гоу скорее к тексту!
Рейтинг0
Комментарии0

Что нужно знать нашим ML-сотрудникам

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

Недавно в комментариях к одному из постов в Варим ML меня спросили, какие навыки и знания нужны, чтобы у нас работать. Вопрос на самом деле очень важный - без правильного ответа невозможно нормально выстроить процессы найма и развития сотрудников. Можно быстро набросать дефолтный список - питончик, ML/DL, докер, и на этом закончить, но я решил зарыться в вопрос пообстоятельнее. Конечно, существуют самые разные родмапы, но лично мне они кажутся излишне общими, а я захотел поразмышлять именно про те скиллы, которые необходимы для работы в Цельсе, а главное про их необходимый уровень.

Читать далее
Всего голосов 5: ↑3 и ↓2+2
Комментарии6

ChatGPT — лучший помощник программиста. Примеры реальных задач. Плагины и инструменты

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

Языковая модель ChatGPT никогда не заменит программиста, потому что непосредственно редактирование кода — это крохотная часть разработки (5% по времени). Зато ChatGPT великолепно помогает. И чем выше ваш скилл — тем больше пользы от «подмастерья», выполняющего мелкие задания и черновой кодинг. Он пишет простые функции, генерирует документацию, находит и объясняет ошибки, выполняет кучу других задач (полный список под катом).

Сегодня не использовать ChatGPT просто глупо… Это действительно универсальный помощник, который сильно облегчает жизнь и выводит программирование на принципиально новый уровень. Одно из величайших изобретений в IT за десятилетия, после GUI и интернета.

Пожалуй, никогда программирование не было настолько приятным и эффективным, как сейчас.
Читать дальше →
Всего голосов 72: ↑57 и ↓15+60
Комментарии88

Как сделать торгового робота для Binance

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

Программирование для меня это хобби и любимое дело. А так я сертифицированный системный архитектор. Поэтому прошу не особо ругать за код :-)

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

Обычно я писал торговых роботов для работы с Брокерами и делал авто-торговлю Акциями или Фьючерсами, но вдруг возникла мысль:

- А что, если уже готовый код можно применять и на других активах??? Например на крипто активах для Биткоина или Эфира или других?

Уже изучив много библиотек и примеров за долгое время написания своих торговых роботов, решил сделать небольшую библиотеку backtrader_binance для интеграции API Binance и библиотеки тестирования торговых стратегий Backtrader.

Вот с помощью backtrader_binance, сейчас и создадим алго-робота для торговли BTC и ETH.

Читать далее
Всего голосов 12: ↑6 и ↓6+3
Комментарии21

Регрессионный анализ в DataScience. Часть 3. Аппроксимация

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

В предыдущих обзорах (https://habr.com/ru/articles/690414/, https://habr.com/ru/articles/695556/) мы рассматривали линейную регрессию. Пришло время переходить к нелинейным моделями. Однако, прежде чем рассматривать полноценный нелинейный регрессионный анализ, остановимся на аппроксимации зависимостей.

Про аппроксимацию написано так много, что, кажется, и добавить уже нечего. Однако, кое-что добавить попытаемся.

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

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии17

BlackMamba или как ChatGPT пишет вредоносы

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

Скорее всего не для кого уже не новость, что ChatGPT от OpenAI способен не только генерировать статьи, идеи, писать код вместо разработчика, но также писать всякого рода вирусы и прочие вредоносные программы. Специалисты кибербезопасности из компании Hyas решили продемонстрировать, на что способно вредоносное программное обеспечении на основе ChatGPT.

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

Я решил сам убедиться, возможно ли такое, и вот что вышло.

Читать далее
Всего голосов 11: ↑7 и ↓4+6
Комментарии19

SQL-инъекции для самых маленьких. Часть 3

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

И это заключительная часть цикла статей про SQL-инъекции. В ней мы с вами узнаем, как можно собирать информацию о БД путем применения инъекций и затронем тему слепых SQL-инъекций.

Читать далее
Всего голосов 8: ↑7 и ↓1+10
Комментарии17

Локальные нейросети (генерация картинок, локальный chatGPT). Запуск Stable Diffusion на AMD видеокартах

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

Многие слышали про Midjourney, но про то, что есть локальная Stable Diffusion, которая может даже больше, знает уже куда меньше людей, или они не знают, что она локальная. И если они пробовали её онлайн, то быстро приходили к выводу, что она сильно хуже чем Midjourney и не стоит обращать на неё более внимания. И да, SD появился раньше Midjourney. Для запуска хватит и cpu или 4гб видеопамяти.

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

Читать далее
Всего голосов 57: ↑57 и ↓0+57
Комментарии22

Интеграция и кастомизация OpenAPI в Django/Django Rest Framework

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

Рассмотрим способы интеграции OpenAPI схемы в экосистему Django/DRF с помощью библиотеки drf-spectacular, а также некоторые проблемы, возникающие при кастомизации API и, соответственно, их решения.

Читать далее
Всего голосов 6: ↑5 и ↓1+7
Комментарии5

Оценка качества кластеризации: свойства, метрики, код на GitHub

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

Кластеризация — это такая магическая штука: она превращает большой объём неструктурированных данных в потенциально обозримый набор кластеров, анализ которых позволяет делать выводы о содержании этих данных.


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


В далёком 2013 году мне повезло поучаствовать в разработке очень сложного алгоритма кластеризации. Требовалось с очень высоким качеством кластеризовать сотни тысяч объектов и делать это быстро: за десятки секунд на одной машине. Первым делом нужно было построить систему оценки качества, и в этой статье я расскажу именно о ней.



Читать дальше →
Всего голосов 27: ↑27 и ↓0+27
Комментарии10

GPT-апокалипсис отменяется

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

Читая с утра новостную ленту – я обнаружил в ней очередное апокалипсическое предсказание. На этот раз от Элиезера Юдковского – известного рационального блогера, сооснователя Института Исследования Искусственного Интеллекта, более известного на Хабре как автор научно-популярного фанфика «Гарри Поттер и методы рационализма».

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

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

Прочитанное заставило меня отложить на время написание своей статьи про взаимоотношения полов. Я уважаю Элиезера, но этот прогноз, по-моему, полная ерунда. По моему скромному мнению, клоны GPT не являются угрозой для человечества.

Читать далее
Всего голосов 75: ↑52 и ↓23+46
Комментарии582

Рейтинг русскоязычных энкодеров предложений

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

Энкодер предложений (sentence encoder) – это модель, которая сопоставляет коротким текстам векторы в многомерном пространстве, причём так, что у текстов, похожих по смыслу, и векторы тоже похожи. Обычно для этой цели используются нейросети, а полученные векторы называются эмбеддингами. Они полезны для кучи задач, например, few-shot классификации текстов, семантического поиска, или оценки качества перефразирования.

Но некоторые из таких полезных моделей занимают очень много памяти или работают медленно, особенно на обычных CPU. Можно ли выбрать наилучший энкодер предложений с учётом качества, быстродействия, и памяти? Я сравнил 25 энкодеров на 10 задачах и составил их рейтинг. Самой качественной моделью оказался mUSE, самой быстрой из предобученных – FastText, а по балансу скорости и качества победил rubert-tiny2. Код бенчмарка выложен в репозитории encodechka, а подробности – под катом.

Читать далее
Всего голосов 26: ↑26 и ↓0+26
Комментарии19
1

Информация

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

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

Data Analyst, Data Scientist
Intern
Python
Django
PostgreSQL
SQL
OOP