Как стать автором
Обновить
5
0
Ян Будакян @astromid

Machine Learning Engineer

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

Надежный обход блокировок в 2024: протоколы, клиенты и настройка сервера от простого к сложному

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

Поскольку блокировки интернета в РФ в последние недели и месяцы многократно активизировались, а маразм все крепчает и крепчает, стоит еще раз поднять тему обхода этих самых блокировок (и делаем ставки, через сколько дней на эту статью доброжелатели напишут донос в РКН чтобы ограничить к ней доступ на территории страны).

Вы, наверняка, помните отличный цикл статей на Хабре в прошлом году от пользователя MiraclePtr, который рассказывал о разных методах блокировок, о разных методах обхода блокировок, о разных клиентах и серверах для обходов блокировок, и о разных способах их настройки (раз, два, три, четыре, пять, шесть, семь, восемь, десять, десять, и вроде были еще другие), и можете спросить, а зачем еще одна? Есть две основные причины для этого.

Читать далее
Всего голосов 506: ↑498 и ↓8+490
Комментарии351

Личный прокси для чайников: универсальный обход цензуры с помощью VPS, 3X-UI, Reality/CDN и Warp

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

> С 10 апреля 2024, 3 месяца спустя,
> данная статья заблокирована РКН на территории РФ,
> но доступна с IP других стран, а также через веб-архив.

На фоне прошлогоднего обострения цензуры в РФ, статьи автора MiraclePTR стали глотком свободы для многих русскоязычных айтишников. Я же хочу приоткрыть дверь к свободной информации чуть шире и пригласить «не‑технарей» («чайников»), желающих поднять личный прокси‑сервер для обхода цензуры, но дезориентированных обилием информации или остановленных непонятной технической ошибкой.

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

Статья рассчитана на «чайников», не знакомых с предметной областью. Однако и люди «в теме» могут найти нечто полезное (например, чуть более простую настройку проксирования через CloudFlare без необходимости поднимать nginx на VPS).

Если у вас ещё нет личного прокси для обхода цензуры — это знак.

Читать далее
Всего голосов 113: ↑111 и ↓2+109
Комментарии284

Локальные нейросети. Аналог 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

Разбираем особенности алгоритмов CatBoost и LightGBM: какой от них профит

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

Всем привет. Меня зовут Артур. Готовясь к выступлению на внутреннем митапе по теме особенности алгоритмов у CatBoost и LightGBM, я понял, что не смог найти единого места, где были бы понятным языком рассказаны основные особенности того, что алгоритмически работает под капотом у CatBoost и LightGBM. Причём не формальные записи алгоритмов на псевдокоде, а понятные пошаговые инструкции. Так появилась эта статья.

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

Дизайн А/В-теста: пошаговая инструкция с теоретическими основами

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

АВ-тест (или A/B-тест) - это метод экспериментального исследования, используемый в маркетинге и продуктовом менеджменте для сравнения двух или более вариантов одного элемента или стратегии с целью определения наиболее эффективного решения. В А/В-тесте обычно сравниваются две версии (варианта A и варианта B) одного и того же элемента, такого как веб-страница, рекламный баннер, электронное письмо и т.д., чтобы определить, какой из них приводит к лучшим результатам или большей конверсии.

Принцип А/В-теста заключается в том, что случайно выбранная аудитория делится на две группы: одна группа видит вариант A, а другая группа - вариант B. Затем собираются данные о поведении и реакции пользователей на каждый вариант. Сравнивая результаты двух групп, можно определить, какой вариант более успешный или эффективный.

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

Данному типу тестирования уже много лет. Инструмент еще в начале 20 века применял математик Вильям Госсет на производстве пива Guinness. Он использовал в производстве продукции разные виды ячменя, чтобы определить наиболее лучшее сочетание, которое понравится потребителю больше всего.

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

3X-UI: Shadowsocks-2022 & XRay (XTLS) сервер с простой настройкой и приятным интерфейсом

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

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

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

Поэтому сегодня мы поговорим об установке и использовании графической панели 3X-UI для сервера X-Ray с поддержкой всего того, что умеет X-Ray: Shadowsocks-2022, VLESS с XTLS и т.д.

Читать далее
Всего голосов 38: ↑37 и ↓1+36
Комментарии198

Как работает Stable Diffusion: объяснение в картинках

Время на прочтение9 мин
Количество просмотров90K
Генерация изображений при помощи ИИ — одна из самых новых возможностей искусственного интеллекта, поражающая людей (в том числе и меня). Способность создания потрясающих изображений на основании текстовых описаний похожа на магию; компьютер стал ближе к тому, как творит искусство человек. Выпуск Stable Diffusion стал важной вехой в этом развитии, поскольку высокопроизводительная модель оказалась доступной широкой публике (производительная с точки зрения качества изображения, скорости и относительно низких требований к ресурсам и памяти).

Поэкспериментировав в генерацией изображений, вы можете задаться вопросом, как же она работает.

В этой статье я вкратце расскажу, как функционирует Stable Diffusion.

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

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

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

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

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

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

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

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

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

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

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

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

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

Что происходит в «Пиковой даме» Пушкина и во что они играют?

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


Если коротко — Пушкин открыл жанр «киберспортивной фантастики». Только до появления фантастики и киберспорта. Его одно из самых известных произведений — «Пиковая дама» — это рассказ про мегапопулярную в свете игру в карты с элементами философских вопросов. Попадание в тогдашнюю аудиторию стопроцентное благодаря невероятно простому порогу входа (31 страница текста итого), очень узнаваемым персонажам, невероятной куче пасхалок, сарказму и актуальной теме.

А предыстория такая. Пока мы со школьными группами осенью ездили по Пскову, зарулили в театр. Он во Пскове неожиданно крутой. Ставили как раз Пушкина. Проблема в том, что дети не поняли сюжет и ещё минут 15 обсуждали после спектакля, что же это такое было и кто выиграл или проиграл. Вроде, очевидно, что Германна где-то прокатили, но вот где и как?

Поэтому мы сейчас поговорим про пасхалки «Пиковой дамы», как Пушкин вьехал сапогом в зубы понтёру и немного про математику. Кстати, Александр Сергеевич был тем ещё кутилой, что не совсем вяжется с образом, который дают на литературе в школе. И поскольку вы сейчас, скорее всего, дома, предлагаю прикоснуться к прекрасному.
Читать дальше →
Всего голосов 219: ↑215 и ↓4+211
Комментарии69

Алгоритм Forward-Forward: альтернатива backpropagation

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

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

В конце прошлого года Джеффри Хинтон, пионер Deep Learning, на конференции NeurIPS 2022 предложил новый алгоритм обучения нейронных сетей — Forward‑Forward — как альтернативу методу обратного распространения ошибки. FF более гибок и использует меньше памяти, чем backpropagation в архитектурах с множеством скрытых слоев, а его основная отличительная черта в том, что он основывается на современном понимании устройства человеческого мозга.

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

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

Как работает ControlNet. Контролируемая генерация изображений

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

Нейронные сети прошли долгий путь от генерации странных ЧБ-изображений до фантастических фотореалистичных сцен, которые не поддаются воображению. С помощью всего лишь короткой текстовой подсказки диффузионные нейросети могут создавать потрясающие изображения, неотличимые от обычных. Однако, какими бы впечатляющими ни были эти модели, в них отсутствует важнейший элемент — пользовательский контроль. Представьте, что вы можете указать точную форму, положение и позу объекта на изображении, которое вы хотите создать. Что ж, теперь это возможно благодаря новаторской технологии под названием ControlNet!
Читать дальше →
Всего голосов 65: ↑61 и ↓4+57
Комментарии8

Создаем библиотеку теории игр на питоне: структура классов и их взаимодействие

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

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

Продолжаем разрабатывать библиотеку для решения задач методами теории игр. Сегодня мы сформулируем описания классов библиотеки, взаимосвязи между ними, а также напишем код для создания экземпляров еще пары классов.

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

Создаем библиотеку по теории игр на питоне для максимально широкого спектра разнообразных игр

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

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

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

Это пет-проект автора статьи.

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

Разбираем Теорию Игр с python-библиотеками nashpy и axelrod

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

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

Это перевод сразу двух статей Mythili Krishnan , аналитика с medium.com

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

+ поучаствуйте в опросе, что вы вообще думаете о теории игр?

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

Как Яндекс научился распознавать, что написано в рукописных архивах

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

Привет, Хабр. Меня зовут Саша, в прошлый раз я рассказывал сообществу про поиск организаций в Яндексе. В этот раз мы вновь поговорим про поиск, но уже совершенно другого рода. Сегодня расскажем про «Поиск по архивам». Этот проект вырос из моего личного интереса к истокам семьи, но в итоге (хочется верить!) поможет тысячам других таких же пользователей чуть больше узнать о своих корнях.

Генеалогическое исследование — очень трудоёмкий процесс. Информация о родственниках разбросана по разным архивам, запросы на получение данных могут обрабатываться долго, а доступ даже в открытые архивы ограничен. Несмотря на то что оцифровка архивных документов ведётся уже более десяти лет, по ним не так-то просто искать — придётся отсматривать вручную множество сканов в надежде найти фамилию предка. 

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

Решению этой задачи мы и посвятим историю. А поможет мне с ней Таня @miryable из команды, которая уже много лет развивает в Яндексе технологию оптического распознавания символов (OCR).

Читать далее
Всего голосов 145: ↑144 и ↓1+143
Комментарии103

Простейшая нейросеть: еще раз и подробнее

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

Машинное обучение это незаменимый инструмент для решения задач, которые легко решаются людьми, но не классическими программами. Ребенок легко поймет, что перед ним буква А, а не Д, однако программы без помощи машинного обучения справляются с этим весьма средне. И едва ли вообще справляются при минимальных помехах. Нейросети же уже сейчас решают многие задачи (включая эту) намного лучше людей. Их способность обучаться на примерах и выдавать верный результат поистине очаровывает, однако за ней лежит простая математика. Рассмотрим это на примере простого перцептрона.
Данная статья представляет собой пересказ-конспект первой части книги Тарика Рашида "Создай свою нейросеть" для тех, кто начал изучать тему, не понял отдельные детали или с трудом охватывает общую картину.

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

Пишем GPT в 60 строк NumPy (часть 1 из 2)

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

В этом посте мы начнём реализацию с нуля GPT всего в 60 строках numpy. Во второй части статьи мы загрузим в нашу реализацию опубликованные OpenAI веса обученной модели GPT-2 и сгенерируем текст.
Читать дальше →
Всего голосов 96: ↑94 и ↓2+92
Комментарии33

Цикл статей: построение защищённого NAS, либо домашнего мини-сервера

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


Статьи цикла:


  1. Обзор материалов и литературы по NAS. По предложениям пользователей ссылки на материалы будут сведены в отдельную статью.
  2. Выбор железа. Описан один из вариантов выбора железа и дан краткий обзор рынка домашних и офисных NAS систем.
  3. Установка ОС, на которой будет строиться NAS. В отдельной статье описано дополнение, позволяющее отказаться ото всех файловых систем, кроме ZFS.
  4. Проектирование поддерживающей инфраструктуры, которая будет лежать в основе всех сервисов NAS.
  5. Реализация поддерживающей инфраструктуры.
  6. Механизм аварийной удалённой разблокировки. Требуется для того, чтобы разблокировать систему, не имея к ней физического доступа.
  7. Повышение защищённости NAS. Исправление ошибок, допущенных в предыдущих статьях и описание Hardening процесса.
  8. Система контроля версий на базе Git. Установка Gitlab в контейнере.
  9. Система резервного копирования. От регламента до установки ПО, где в качестве примера используется UrBackup.
  10. Персональное облако. Обеспечивает хранение персональных файлов пользователя, обмен файлами между пользователями, а также интеграцию различных сервисов между собой.
  11. Сквозная аутентификация контейнеров.
  12. Управление файлами.
  13. Библиотека.
  14. Мультимедийная система 1: музыка.
  15. Мультимедийная система 2: медиа сервер.
  16. Фронтенд. Интерфейс, позволяющий быстро обращаться к сервисам.
  17. Заметки про управление контейнерами.
Читать дальше →
Всего голосов 37: ↑33 и ↓4+29
Комментарии141

Правила разработки документации ML-проекта

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

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

При обсуждении какого-то явления, полезно сначала посмотреть на его определение. Тут нам поможет старая добрая Википедия:

“Письменный текст или иллюстрация, которая сопровождает программное обеспечение или интегрирована прямо в исходный код. Документация объясняет, как работает ПО или как его использовать. Может иметь разное значение для людей с разными ролями в команде”

Определение действительно неплохое, в нём содержится несколько важных свойств документации.

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

Информация

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

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

Data Scientist
Git
Linux
Python