Как стать автором
Обновить
3
0
Hellbot @Hellbot

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

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

Векторизация изображений. Как создать алгоритм поиска похожих изображений на Python

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

Многочисленные исследования ученых доказывают, что около 90% информации человек воспринимает через зрение. Изображения являются одним из самых богатых источников информации, которую можно использовать для разнообразных задач, включая классификацию, детекцию объектов, ранжирование изображений, поиск по изображениям и генерацию текстовых описаний. 

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

В мире есть много вещей, которые интуитивно понятны и очевидны для нас. Например, если перед нами два похожих цветка, мы можем определить их принадлежность одному виду, даже не зная названий этих растений. Этот навык позволяет нам распознавать объекты и определять их в группы. Разумеется, подобные алгоритмы уже давно существуют в современных поисковиках Google, Яндекс и прочих. Но что, если вы проектируете обособленную систему с собственной базой изображений одной или нескольких конкретных тематик и вам необходим функционал поиска похожих изображений?

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

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

Эмбеддинги для начинающих

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

Привет, Хабр!

В широком смысле, эмбеддинг - это процесс преобразования каких-либо данных (чаще всего текста, но могут быть и изображения, звуки и т.д.) в набор чисел, векторы, которые машина может не только хранить, но и с которыми она может работать. Звучит очень интересно. Казалось бы, наша речь - это так просто, все связано и понятно. Но как это объяснить машине?

В этой статье мы рассмотрим, что такое эмбеддинги и какие они бывают.

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

В NLP, например, эмбеддинги слов используются для того, чтобы компьютер мог понять, что слова «кошка» и «котенок» связаны между собой ближе, чем, скажем, «кошка» и «окошко». Это достигается путем присвоения словам векторов, которые отражают их значение и контекстное использование в языке.

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

Читать далее
Всего голосов 23: ↑19 и ↓4+15
Комментарии3

Прокачиваем навыки в сфере ML — что изучать в 2024-м

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

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

Ритейл, банки, технологические предприятия, компании-разработчики и все те, кто собирает большие массивы неструктурированных данных, для запуска сложных моделей могут использовать вычислительные ресурсы облака. Например, строить нейросети с помощью ML-платформы или использовать объектное хранилище для обработки Big Data.

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

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

Go — 100 вопросов/заданий с собеседований

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

Приветствую тебя, хаброжитель!

В этой статье разберём 100 вопросов, они покрывают львиную долю того, что могут спросить на собеседовании джуниор Go-разработчика с практически любой специализацией. Конечно же, в реальной работе на Go требуются немного другие скиллы, чем умение быстро ответить на любой вопрос. Однако сложилась добрая традиция делать из собеседования викторину с главным призом в виде трудоустройства — к этому нужно быть готовым.

Читать далее
Всего голосов 51: ↑42 и ↓9+33
Комментарии14

Настройка связки Nginx / LetsEncrypt в Docker Swarm

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

Про то, как поднять контейнер Nginx и настроить для него автообновление сертификатов LetsEncrypt, есть довольно много статей. В этой будет описана довольно нестандартная схема. Основные моменты:


  1. Nginx разворачивается как сервис в Docker Swarm, а не как standalone-контейнер;
  2. Для проверки используется схема DNS-01, а не гораздо более популярная HTTP-01;
  3. Для DNS-провайдера GoDaddy в настоящий момент нет DNS-plugin'а для certbot'а, но есть API по управлению доменными записями.
Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Комментарии7

Локальные нейросети. Аналог ChatGPT-3.5 на домашнем ПК: OpenChat 7B превосходящая 70B, DeepSeek для кода уровня ChatGPT

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

Есть много локальных аналогов ChatGPT, но им не хватает качества, даже 65B модели не могут конкурировать хотя бы с ChatGPT-3.5. И здесь я хочу рассказать про 2 открытые модели, которые всё-таки могут составить такую конкуренцию.

Речь пойдет о OpenChat 7B и DeepSeek Coder. Обе модели за счет размера быстры, можно запускать на CPU, можно запускать локально, можно частично ускорять на GPU (перенося часть слоев на GPU, на сколько хватит видеопамяти) и для такого типа моделей есть графический удобный интерфейс.

И бонусом затронем новую модель для качественного подробного описания фото.

UPD: Добавлена информация для запуска на Windows с ускорением на AMD.

Читать далее
Всего голосов 107: ↑105 и ↓2+103
Комментарии87

Современные технологии обхода блокировок: V2Ray, XRay, XTLS, Hysteria, Cloak и все-все-все

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

Три месяца назад здесь на Хабре была опубликована статья “Интернет-цензура и обход блокировок: не время расслабляться”, в которой простыми примерами показывалось, что практически все популярные у нас для обхода блокировок VPN- и прокси-протоколы, такие как Wireguard, L2TP/IPSec, и даже SoftEther VPN, SSTP и туннель-через-SSH, могут быть довольно легко детектированы цензорами и заблокированы при должном желании. На фоне слухов о том, что Роскомнадзор активно обменивается опытом блокировок с коллегами из Китая и блокировках популярных VPN-сервисов, у многих людей стали возникать вопросы, что же делать и какие технологии использовать для получения надежного нефильтрованного доступа в глобальный интернет.

Мировым лидером в области интернет-цензуры является Китай, поэтому имеет смысл обратить на технологии, которые разработали энтузиасты из Китая и других стран для борьбы с GFW (“великим китайским файрволом”). Правда, для неподготовленного пользователя это может оказаться нетривиальной задачей: существует огромное количество программ и протоколов с похожими названиями и с разными не всегда совместимыми между собой версиями, огромное количество опций, плагинов, серверов и клиентов для них, хоть какая-то нормальная документация существует нередко только на китайском языке, на английском - куцая и устаревшая, а на русском ее нет вообще.

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

Читать далее
Всего голосов 157: ↑155 и ↓2+153
Комментарии136

Что в голове у змейки? Обучение нейросети играть в «Snake» генетическим алгоритмом

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

В 2020, когда случился локдаун, и к большому сожалению, появилось очень много свободного времени, мне захотелось познакомиться с Python. Начальный опыт c Pascal был еще со школы и универа, поэтому оставалось лишь придумать задачу и пойти её самоотверженно решать на питоне. Интересной задачей показалось смастерить игру змейку, прикрутить к ней мозги в виде перцептрона с парой скрытых слоёв, и путем кнута и яблока обучить цифровое животное выживать в жестоких реалиях двумерного мира :)                               

«У самурая нет цели, есть только путь»

Первый блин на производстве не отличается красотой, но опыт был получен. Наиболее привлекательным мне пришелся генетический алгоритм: отбор успешных змеек, скрещивание, частичная мутация генов и так тысячи раз до результата. Змейки, без указания им правил выживания, в тысячном поколении «понимали», что нужно стремиться съесть яблоко и никуда не врезаться, это вызывало ощущение прикосновения к чуду "It's Alive!!!"

Спустя пару лет, закончив курс по аналитике данных, появилось желание переписать проект, попрактиковаться в более серьезных разделах python и сделать тренажёр со сбором статистики.

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

Мониторинг с Grafana. Best practices

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

Сборная солянка из существующих best practices по работе с Grafana и немного с Prometheus, проверенных мной лично. Можно просто положить в закладки — когда-нибудь да пригодится.

Будет полезно
Всего голосов 17: ↑17 и ↓0+17
Комментарии12

Как я добился чистой архитектуры на фронтенде

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

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

Читать далее
Всего голосов 16: ↑3 и ↓13-10
Комментарии29

Мои первые шаги в создании браузерных 2D игр на чистом JavaScript + Canvas. Часть 1. Прототип

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

Всем привет!

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

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

Keycloak ― построение отказоустойчивого кластера

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

Разворачивая у нас в Туту Keycloak мы столкнулись с необходимостью создания отказоустойчивого кластера. И если с БД всё более менее понятно, то вот реализовать корректный обмен кэшами между Keycloak оказалось довольно непростой для настройки задачей.

Мы упёрлись в то, что в документации Keycloak описано как создать кластер используя UDP мультикаст. И это работает, если у вас все ноды будут находиться в пределах одного сегмента сети (например ЦОДа). Если с этим сегментом что‑то случится, то мы лишимся Keycloak. Нас это не устраивало.

Необходимо сделать так, чтобы ноды приложения были географически распределены между ЦОД, находясь в разных сегментах сети.

В этом случае в документации Keycloak довольно неочевидно предлагается создать свой собственный кастомный JGroups транспортный стэк, чтобы указать все необходимые вам параметры.

Бонусом приложу shell скрипт, написанный для Consul, который предназначен для снятия анонсов путём выключения bird и попытки восстановления приложения.

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

Как добавить кастомный аутентификатор в KeyCloak и подружить его со сторонней системой

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

Всем привет.

Сегодня мы покажем вам простой пример, как в Keycloak можно добавить кастомный аутентификатор.

Как вы все знаете, Keycloak – это система адаптивной аутентификации, позволяющая реализовать фактические любой процесс аутентификации (ограниченный только навыками разработки на Java) и выступать в качестве Identity Provider для клиентов по протоколам OIDC и SAML.

В стандартном наборе представлено много типовых аутентификаторов. Но что делать, когда стандартных аутентификаторов недостаточно и необходимо реализовать свою логику? Официальная документация дает ответ: разработать аутентификатор самому.

Что мы вместе с нашим системным инженером направления кибербезопасности К2Тех Егором Туркиным в итоге и сделали.

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

Xray на Keenetic / Xkeen

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

Утилиту для поддержки Xray на роутерах Keenetic — Xkeen.
Весь код написан на чистом shell и открыт на GitHub.

Собирает Xray под Ваш Keenetic на Entware.
Доступны GeoIP и GeoSite от AntiFilter, AntiZapret и v2fly.

Автоматически обновляет в указанное время Xray, GeoIP и GeoSite.

Ознакомиться с Xkeen
Всего голосов 32: ↑31 и ↓1+30
Комментарии31

Готовим микрофронтенды на чистом JS без фреймворков

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

Привет, Хабр! Меня зовут Евгений Лабутин, я разработчик в МТС Digital. Сегодня я расскажу вам о своем рецепте приготовления микрофронтендов без использования каких либо фреймворков. Ведь такие фреймворки как Webpack Module Federation, Single-SPA, SystemJS и подобные вам просто не нужны для написания микрофронтендов, ровно так же как вам не нужен jQuery для написания современных фронтендов. Ведь все необходимое для разработки и работы Микрофронтендов уже встроено во все современные браузеры. Интересно? Добро пожаловать в статью.

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

Как мы внедряли пуш-уведомления в мессенджер — от базовой отправки до проработки условий

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

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

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

Основные принципы маскирования в CSS

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

В мире дизайна маскирование является популярной техникой реализации уникальных эффектов. Будучи дизайнером, я сам использовал эту технику много раз, но не очень часто в веб-среде. Думаю, что от её применения на сайтах меня удерживала недостаточная поддержка браузерами. Полноценно этот функционал поддерживается в Safari и Firefox, а вот в браузерах на движке Blink (Chrome и Edge) — лишь частично.

Радует то, что тема CSS маскирования будет частью Interop 2023, а значит, вскоре можно ожидать кросс-браузерную поддержку этой возможности (Вау!).

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

Поехали!
Читать дальше →
Всего голосов 44: ↑44 и ↓0+44
Комментарии1

Dolly 2 — открытый аналог ChatGPT со свободной лицензией

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

В конце марта 2023г., компания Databricks выпустила Dolly, большую языковую модель, подобную ChatGPT, дообученную на платформе Databricks Machine Learning Platform. Результат оценки работы модели Dolly показывает, что модель с открытым исходным кодом двухлетней давности (GPT-J) при дообучении на публичном датасете, собранном в Стэнфорде (Stanford Alpaca), на небольшом наборе данных из 50 000 диалогов (вопросов и ответов), может демонстрировать удивительно высокое качество обучения, не характерное для родительской модели (GPT-J), на которой она основана.

Но с первой версией модели Dolly существует одна проблема - датасет от Stanford Alpaca был собран с помощью автоматизированных скриптов от ChatGPT, что нарушает лицензию и правила использования моделей OpenAI.

Чтобы исправить эту проблему, в апреле 2023г. Databricks выпустила
Dolly 2 - большую языковую модель с открытым исходным кодом и открытой лицензией для научных и коммерческих целей.

Dolly 2 - это языковая модель с 12 млрд. параметров, основанная на семействе моделей EleutherAI pythia и дообученная исключительно на новом датасете высокого качества, созданном сотрудниками Databricks с использованием RL from Human Feedback (RLHF).

Databricks открыли исходный код Dolly 2, включая код обучения, сам датасет и веса модели, подходящие для коммерческого использования. Это означает, что любая организация может создавать, владеть и настраивать комплексные модели, не платя за доступ к API или передавая данные третьим сторонам.

Читать далее
Всего голосов 34: ↑32 и ↓2+30
Комментарии9

Цикл постов про Keycloak. Часть первая: Внедрение

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

Цикл постов про Keycloak (часть 1): Внедрение.

О чем речь?

Это первая часть серии статей о переходе на Keycloak в качестве SSO в условиях кровавого enterprise.

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

Памятка/шпаргалка по SQL

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

Доброго времени суток, друзья!


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

Читать дальше →
Всего голосов 50: ↑46 и ↓4+42
Комментарии18
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность