Как стать автором
Обновить
74
0
Anton Karakulov @brutto

Conceptmeister

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

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

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

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

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

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

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

Метрики в задачах машинного обучения

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

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



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


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


Читать дальше →
Всего голосов 40: ↑39 и ↓1+38
Комментарии9

Наивный байесовский классификатор. Основная идея, модификации и реализация с нуля на Python

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

Наивный байесовский классификатор (Naive Bayes classifier) — вероятностный классификатор на основе формулы Байеса со строгим (наивным) предположением о независимости признаков между собой при заданном классе, что сильно упрощает задачу классификации из-за оценки одномерных вероятностных плотностей вместо одной многомерной.

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

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

Зачем мне пылесос с ананасом или как оценить корректность рекомендательной системы

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

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

На связи участница профессионального сообщества NTA Ульянова Дарья.

Каждый день, выполняя рутинные действия, мы сталкиваемся с рекомендательными системами. Их предложения часто попадают прямо в цель, и иногда создается впечатление, что кто‑то читает твои мысли.

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

К метрикам recsys
Всего голосов 3: ↑3 и ↓0+3
Комментарии14

Векторные базы данных: простым языком про устройство и принцип работы

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

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

Читать далее
Всего голосов 30: ↑29 и ↓1+35
Комментарии16

Семантическая сегментация на основе архитектуры U-Net и определение расстояния между объектами

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

Всем привет!

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

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

Модель на базе U-Net архитектуры сегментирует различные объекты (кот, стул, стол, тарелка с котлетами итд) и при сближении двух объектов сегментации (кот - тарелка) модель сигнализирует об этом с помощью телеграмм бота.

Отлично, задача поставлена, теперь реализация!

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

Архитектура RAG: полный гайд

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

Если, открывая холодильник вы еще не слышали из него про RAG, то наверняка скоро услышите. Однако, в сети на удивление мало полных гайдов, учитывающих все тонкости (оценка релевантности, борьба с галлюцинациями и т.д.) а не обрывочных кусков. Базируясь на опыте нашей работы, я составил гайд который покрывает эту тему наиболее полно.

Итак зачем нужен RAG?

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

Покрытие архитектуры as Code тестами

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

💬 На самом деле, моя идея написания тестов на архитектуру настолько проста, легко реализуема и при этом полезна, что я до сих пор толком не понимаю, почему я не встречал материалов на эту тему, и сама тема всё ещё не используется повсеместно 🙂
Статья написана по следам моих докладов на трёх крупных ИТ-конференциях, на каждой из которых ко мне подходили архитекторы и разработчики российских бигтехов, говорили, что я очень точно попал в их боли и предложил суперпрактику, которую они теперь будут внедрять. На всех трёх конференциях я получил высшие оценки от аудитории, а на двух из них доклад был признан лучшим в своей секции. В конце статьи приведена ссылка на видео доклада с одной из конференций.
В статье я поделюсь своей идеей и OpenSource-реализацией решения для написания тестов, разберу примеры тестов на небольшой учебной микросервисной архитектуре, а также расскажу про личный опыт и профит от применения этой практики.
Для разработчиков монолита тоже есть небольшой бонус: в OpenSource-репозитории появилась реализация и примеры тестов на архитектуру модульного монолита.

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

Извлечение признаков из текстовых данных с использованием TF-IDF

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

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

Term Frequency-Inverse Document Frequency (TF-IDF) — это один из наиболее распространенных и мощных методов для извлечения признаков из текстовых данных. TF-IDF вычисляет важность каждого слова в документе относительно количества его употреблений в данном документе и во всей коллекции текстов. Этот метод позволяет выделить ключевые слова и понять, какие слова имеют больший вес для определенного документа в контексте всей коллекции.

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

Векторные представления товаров, или еще одно применение модели Word2Vec

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

Каждый день полтора миллиона людей ищут на Ozon самые разные товары, и к каждому из них сервис должен подбирать похожие (если пылесос все-таки нужен помощней) или сопутствующие (если к поющему динозавру нужны батарейки). Когда видов товаров тоже много, решить задачу помогает модель Word2Vec. Разбираемся, как она работает и как создавать векторные представления для произвольных объектов.

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

Теория вероятностей в машинном обучении. Часть 1: модель регрессии

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

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

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

Данная серия статей не является введением в машинное обучение и предполагает знакомство читателя с основными понятиями. Задача статей - рассмотреть машинное обучение с точки зрения теории вероятностей, что позволит по новому взглянуть на проблему, понять связь машинного обучения со статистикой и лучше понимать формулы из научных статей. Также на описанном материале строятся более сложные темы, такие как вариационные автокодировщики (Kingma and Welling, 2013), нейробайесовские методы (Müller et al., 2021) и даже некоторые теории сознания (Friston et al., 2022).

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

Gemini ➜ OpenAI API прокси. Serverless

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

API Gemini бесплатен, но существует множество инструментов, которые работают исключительно с API OpenAI.

Проект openai-gemini даёт позволяет с лёгкостью создать персональный Gemini API-endpoint, совместимый с OpenAI, бесплатно.

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

Cross-Encoder для улучшения RAG на русском

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

Одно из самых прикладных применений языковых моделей (LLM) - это ответы на вопросы по документу/тексту/договорам. Языковая модель имеет сильную общую логику, а релевантные знания получаются из word, pdf, txt и других источников.

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

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

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

Главное - мы натренируем свой кросс-энкодер на русском языке, что служит важным шагом на пути улучшения качества Retrieval Augmented Generation (RAG). Тренировка будет проходит новейшим передовым способом. Схематично он изображен на меме справа)

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

Вкатываемся в Machine Learning с нуля за ноль рублей: что, где, в какой последовательности изучить

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

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

Читать далее
Всего голосов 129: ↑127 и ↓2+155
Комментарии52

Подключаем умный поиск (GPT) к своей базе документов

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

Есть отечественный файрвол (NGFW) и есть документация для пользователей powered by GitBook. В этой документации работает простой поиск — только по словам и словосочетаниям. И это плохо, потому что нет ответов на вопросы: "Какие алгоритмы шифрования ipsec поддерживаются у вас?", "Как заблокировать ютуб?", "Как настроить DMZ?".

Хочется, чтобы поиск был “умным” и чтобы пользователи могли обращаться с подобными вопросами именно к поиску, а не к инженерам тех. поддержки. AI или ML внутри — не важно, как это называть. Но на простые вопросы из списка выше поиск должен отвечать.

Я решил эту задачу (Retrieval Question Answering), используя OpenAI API. Казалось бы, уже опубликованы сотни похожих инструкций, как это сделать. Но под катом будет не инструкция, а рассказ про сложности, которые пришлось решить на пути от идеи до запуска поиска.

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

ChatGPT для разработчиков: API, лимиты, как втягивать в него базу знаний, что нельзя сделать, что лучше делать осторожно

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

Мы с командой вернулись тут с Хайлоада, и там даже CTO крупных компаний задают много вопросов про разработку с LLM. Наша компания занимается прикладной разработкой всего того, что касается GPT/LLM.

Расскажу про очевидные вещи, о которых у меня там спрашивали CTO и разработчики.

Самый частый вопрос: можно ли подключать свою базу документов и можно ли по ней нормально работать?

Можно. Для этого нужно две вещи:

  1. OpenAI может работать с вашей базой, например, вики техподдержки, но её надо векторизовать. Получится, что модель только ищет по ней и может отвечать фрагментом исходника, но может его обрабатывать как текст (то есть сравнивать, анализировать и тому подобное).
  2. Дальше можно использовать подход QA Retrieval Chain для работы с векторной базой. Работает это так: задаём вопрос, LLM формируют запрос к векторной базе, мы вынимаем из неё данные, подкладываем их в вопрос как контекст и передаём в LLM, а они формируют ответ.

Но давайте начнём сначала. Основное:

  1. Какого размера промпты могут быть, сколько, какие лимиты, как их частично обходить.
  2. Как подключается база, как закидывать реально большие документы, как эмбеддится вектор, на каких языках это происходит и тому подобное.
  3. Разные API.
  4. Агентная модель GPT Engineer и АutoGPT.
  5. Фреймворк лангчейн (построение цепочек запросов и разбиение макрозапроса на сотни).

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

Генерация ответов с расширенным поиском в техподдержке на основе YandexGPT, ChatGPT

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

Статья посвящена рассмотрению процесса создания системы генерации ответов службы технической поддержки. Для этого используется методика с расширенным поиском, известная как Retrieval-Augmented Generation (RAG). Процесс основан на использовании шаблонов и реальных вопросов-ответов техподдержки. В качестве основных инструментов применяются YandexGPT / ChatGPT и ChromaDB.

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

Как сделать чат-бота лучше, нужен всего лишь простой советский… RAGAS

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

В вводной части обзора мы познакомились с концепцией Retrieval Augmented Generation (RAG) и её расширением через методологию RAGAS (Retrieval Augmented Generation Automated Scoring). Мы разобрались, как RAGAS подходит к процессу оценки эффективности и точности RAG-систем.

В этой части мы более подробно рассмотрим техническую сторону RAGAS. Как обычно, начнем с более простых и интуитивно понятных примеров, потом перейдем к более сложным сценариям.

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

Когда TCP-сокеты отказываются умирать

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

Когда TCP-сокеты отказываются умирать

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

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

Discovery-процесс в продукте: из подземелья незнания — к лучшим решениям

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

Привет! Я Аля — продакт-менеджер в Selectel. Сегодня расскажу про наш Discovery-процесс в команде выделенных серверов. Он описывает, как мы подходим к вопросам, что нам нужно реализовать в продукте и действительно ли это нужно.

Недавно исполнился год, как мы перешли на Discovery- и Delivery-спринты. В тексте пройдемся по лабиринтам именно Discovery-процесса: расскажу, с какими «монстрами» мы столкнулись, пока выстраивали работу, и как с ними боролись. Спойлер: суммой цифр на игральных костях с ними не справиться.

Текст будет полезен всем, кто выстраивает подобные процессы в компании и хочет больше узнать о чужих «граблях».
Читать дальше →
Всего голосов 29: ↑27 и ↓2+34
Комментарии0
1
23 ...

Информация

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

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

Backend Developer, Software Architect
Lead
PHP
OOP
High-loaded systems