Роскомнадзор будет выявлять запрещенный контент в соцсетях с помощью “Окулуса”
13 февраля 2023
Роскомнадзор будет выявлять запрещенный контент в соцсетях с помощью “Окулуса”
Первые тестирования системы автоматического поиска провели еще в декабре 2022 года
Фото: vk.com
Как сообщили в Главном радиочастотном центре (ФГУП ГРЧЦ) “Окулус” уже выполняет возложенные на нее задачи, в частности, выявляет нарушения российского законодательства в изображениях и видеоматериалах, пишет “Коммерсантъ”.
Уточняется, что система автоматически обнаруживает экстремистскую тематику, призывы к незаконным мероприятиям, суициду, пропаганду ЛГБТ и пронаркотический контент.
До 2025 года планируется усовершенствовать “Окулус”. По словам специалистов ГРЧЦ внедрение такой системы поиска было необходимо из-за постоянно растущего в интернете количества запрещенных материалов.
news безопасность Интернет общество роскомнадзор
Перспективы сотрудничества обсудили между собой губернатор Кубани Вениамин Кондратьев и чрезвычайный и полномочный посол республики Желько Самарджия
Фото: admkrai.krasnodar.ru
Как отметил Вениамин Кондратьев Краснодарский край является ведущим аграрным и промышленным регионом на юге России, и власти заинтересованы в поиске новых рынков сбыта производимой продукции, а также готовы к расширению связей в области культуры, туризма, образования и др.
В свою очередь Желько Самарджия сообщил, что Босния и Герцеговина рада развивать отношения с Краснодарским краем, и выразил уверенность, что между государством и регионом будет налажено плодотворное сотрудничество.
Читать далее
Редакция
В Октябрьском сельском поселении на расчистку общественных территорий вышли и жители, и дорожные службы
«Наша главная задача – обеспечить безопасный проезд и проход к социально значимым объектам – школам, детским садам, а также продуктовым магазинам, – рассказала глава Октябрьского сельского поселения Татьяна Свечкарева. – Активно включились в расчистку от снега внутри поселковых дорог и местные жители. Несмотря на достаточно обильный снег, коммуникации теплоснабжения, электроснабжения работают в штатном режиме».
Синоптики на ближайшие дни дают прогноз ухудшения погоды на территории Туапсинского района: уже сегодня к вечеру ветер будет усиливаться, возможны обильные осадки, на северных территориях — снег. Все коммунальные и спасательные подразделения находятся в полной готовности.
Читать далее
Ваш e-mail (обязательно)
Сообщение
ML Рабочий процесс: работа с удаленными машинами
Содержание- SSH: Secure Shell
- Сетевое окружение (ошибаюсь… Жаргон)
- Переадресация портов
- Локальная и удаленная переадресация портов
- Когда что использовать?
- Динамическая переадресация портов
- Сквозной пример: экземпляр ноутбука Jupyter
- Локальная переадресация портов
- Динамическая переадресация портов
- Общие советы
- Ссылки
04
С современными рабочими процессами машинного обучения (ML) и обработки данных обычной практикой является использование мощных серверов, которые могут обеспечить необходимую мощность для тяжелых вычислений, вместо вашей локальной машины. Эти удаленные серверы (также называемые безголовыми машинами ) работают без монитора, клавиатуры или мыши. Вы управляете ими исключительно через сеть.
В своих исследованиях я использую свой ноутбук как ворота для доступа к серверам моей лаборатории. Все мои ресурсоемкие рабочие нагрузки для обучения моделей глубокого обучения выполняются на удаленных серверах. Я даже размещаю свой блог-сервер Jekyll на своем рабочем столе, используя его как безголовую машину, доступ к которой осуществляется через мой ноутбук. Я настроил его таким образом, что все мои сценарии Python, ноутбуки Jupyter, код Jekyll выполняются на серверах (либо безголовых лабораторных серверах, либо на моем настольном сервере), но их соответствующий графический интерфейс (графический пользовательский интерфейс) отображается на моем ноутбуке.
Это возможно благодаря использованию SSH Tunneling или SSH Port Forwarding . В этом посте я расскажу вам о различных способах, которыми вы можете добиться этого для своей работы. Вы можете сразу перейти к вариантам использования, если вы просто хотите знать, как это использовать на практике. Чтобы понять, как это работает в деталях, читайте дальше!
SSH: Secure Shell
Протокол SSH (Secure Shell) обеспечивает безопасное (зашифрованное) соединение в не обязательно безопасных сетях. Это ваш хлеб с маслом, если вы работаете с любой удаленной системой: выделенными серверами, облаком или даже центром обработки данных.
SSH-соединение включает: (1) SSH-клиент , который инициирует подключения к удаленным машинам, и (2) SSH-сервер , который прослушивает и принимает входящие запросы на подключение от разных клиентских машин.
Рис. 1. Протокол SSH
Прежде чем мы углубимся в детали туннелирования, давайте разберемся в терминологии.
Общие сведения о сети (ошибка… жаргон)
Компьютер или машина часто называют хост . Хост может иметь несколько сетевых интерфейсов, каждый со своим собственным IP-адресом . Для целей этого поста я использую «хост» как синоним сетевого интерфейса компьютера, имеющего выделенный IP-адрес.
Хоть хост и является единым объектом, он может предлагать несколько сервисов (например, веб-сервер, сервер Jekyll, почтовый сервер и т. д.). Каждой службе разрешено выбирать порт в соответствии с протоколом TCP, число от 0 до 65535, чтобы отличить ее от других служб 1 .
Службы прослушивают свой конкретный порт, ожидая, когда клиенты инициируют подключение к ним. После того, как запросы приняты, клиенты подключаются к целевому порту , соответствующему порту службы. Комбинация IP-адреса и номера порта составляет сокет 3 .
\(\dagger\) Клиент тоже использует порт (исходный порт) — он не стандартный и назначается случайным образом 9\dagger\) и целевой сокет. Таким образом, несколько клиентов могут одновременно подключаться к одной и той же цели , но соединения будут уникальными. \dagger\) через SSH. Обычно он используется для обхода стандартных брандмауэров, добавления шифрования в службы и открытия лазеек в сетях. 9\dagger\) — назовем их Host A и Host B . Предположим, что сервер приложений работает на узле B и прослушивает входящие клиентские запросы на порт W (рис. 3, слева). Чтобы установить безопасное соединение с клиентом приложения, работающим на хосте A, нам нужно настроить сеанс SSH между двумя хостами.
Рисунок 3: (слева) Пример сценария: сервер приложений на узле B (порт W) и клиент на узле A (справа) Незащищенное прямое соединение между клиентом и сервером
Поскольку нам нужен туннель SSH вместо прямого соединения (рис. 3, справа) между клиентом приложения и сервером приложения, нам сначала нужно выбрать неиспользуемый порт на стороне клиента приложения, т. е. порт Z (скажем) на хосте A. Затем мы запрашиваем переадресацию порта SSH из сокета (A, Z) в сокет сервера (B, W). Как только мы укажем клиенту приложения на сокет (A, Z) вместо исходной цели (B, W), все готово! Всю схему намного легче понять, используя схему (рис. 4). 9Рисунок 4. Переадресация портов SSH сервер
Обычно предполагается, что приложения работают на тех же хостах, что и процессы SSH. Это, безусловно, относится к большинству сценариев. Однако, в принципе, либо клиент приложения, либо сервер (или оба) могут находиться на разных машинах, что потенциально может включать до четыре хоста в одной пересылке 3 . Хотя такая ситуация возможна, обычно это не рекомендуется из соображений безопасности.
В оставшейся части этого поста предполагается, что у вас есть SSH-доступ к удаленным серверам и вы уже знакомы с SSH-подключением к ним с помощью SSH-клиента вашего ноутбука (OpenSSH для Linux и WSL, PuTTY для Windows и т. д.).
Локальная и удаленная переадресация портов
На практике существует два варианта переадресации портов — локальная и удаленная, обозначаемые цифрой 9.0165 -L и -R
соответственно. Оба варианта требуют, чтобы мы указали порт клиента приложения, IP-адрес сервера приложений, порт сервера приложений и назначение сервера SSH. Команда имеет следующую архитектуру:
ssh -L (или -R) [bindAddress:]applnClientPort:applnServerIP:applnServerPort sshServerHost
Так что же делает эта опция -L
или -R
? Разница между ними может быть очень тонкой: когда клиент приложения находится на стороне клиента SSH, это локальный сценарий переадресации портов . Принимая во внимание, что если сервер приложений находится на стороне клиента SSH, это сценарий переадресации удаленного порта (рис. 5).
Рисунок 5: Переадресация локального и удаленного портов
В нашем примерном сценарии (рис. 5) команда переадресации локального порта будет выглядеть так:
А команда переадресации удаленного порта будет выглядеть так:
Обратите внимание на несколько моментов:
sshServerHost
: Вы (машина, на которой вы выполняете эти команды) ВСЕГДА являетесь клиентом SSH. Таким образом, в первом случае вы подключаетесь по SSH к хосту B, тогда как во втором случае вы подключаетесь по SSH к хосту A.applnServerIP
: Когда сервер приложений находится на хосте SSH, достаточно указать localhost в качестве IP-адреса. Когда он находится на машине, отличной от процесса SSH, мы должны указать фактический IP-адрес сервера приложений.Порт клиента приложения (выбранный порт) будет на вашем компьютере (клиент SSH) в случае переадресации локального порта и на удаленном компьютере (сервер SSH) при переадресации удаленного порта.
bindAddress
: указывает IP-адрес локального компьютера во время переадресации локального порта. Если его не указать, он считается локальным. В случае переадресации удаленного порта bindAddress указывает IP-адрес удаленного компьютера, который может получить доступ к локальному серверу приложений. Если он не указан, он разрешает доступ со всех удаленных машин с правильным портом.
Когда что использовать?
Вот несколько простых рекомендаций, которые помогут вам узнать, когда и какой тип переадресации портов использовать:
Если вам нужен доступ к серверу, работающему на другом компьютере (например, к экземпляру лаборатории jupyter, серверу базы данных в облаке, серверу jekyll, работающему на удаленном компьютере) с использованием клиентов на вашем локальном компьютере (например, браузера), вы используете локальную переадресацию портов.
В определенных случаях, когда вы запускаете сервер на своем локальном компьютере (например, веб-приложение, обслуживаемое с вашего компьютера, конфигурация маршрутизатора с вашего локального хоста) и хотите предоставить доступ другим хостам (например, соавтору, системному администратору). ), вы используете переадресацию удаленных портов.
Переадресация локальных портов предлагает удобное решение для доступа к приложениям, работающим на удаленных серверах. Однако, если вам нужен доступ к нескольким приложениям с одного и того же удаленного хоста (например, tensorboard, jupyter lab, jupyter ноутбук), вам потребуется выделить разные порты для каждой службы и перенаправить их соответствующим образом. Это становится довольно утомительным в использовании и через некоторое время становится непрактичным.
Что нам тогда делать?
Динамическая переадресация портов
Существует еще один тип переадресации портов, решающий вышеуказанную проблему: динамическая переадресация портов . Команда для динамического перенаправления портов:
ssh -D [bindAddress:]localPort sshServerHost
Это выглядит совсем не так, как выше! Как видите, требуется только порт на локальной машине. Он автоматически определяет правильный порт назначения на основе сетевого трафика. Таким образом, динамическая переадресация портов позволяет переадресовывать не только один порт, но и ряд портов.
Параметр
позволяет использовать SSH в качестве прокси-сервера SOCKS5. Прокси-сервер SOCKS5 — это, по сути, туннель SSH, который перенаправляет сетевой трафик в Интернет. bindAddress
выполняет ту же роль, что и для переадресации локального порта.
Наконец, все, что вам нужно, это клиент (ваш браузер) для подключения к прокси-серверу SOCKS5! Прочтите этот пост, чтобы настроить браузер для использования прокси-сервера SOCKS5. Я даю некоторые особенности для Firefox в разделе ниже.
Сквозной пример: экземпляр блокнота Jupyter
Переадресация локального порта
- Запустите экземпляр Jupyter Notebook на удаленном компьютере
user@sshServerHost: jupyter Notebook --no-browser --port=XXXX # Замените XXXX на номер порта по вашему выбору # По умолчанию 8888, если не указано Чтобы получить доступ к записной книжке, скопируйте и вставьте один из этих URL-адресов.http://локальный:XXXX/?токен=8be5a53de9220287cb8e61179e7edca0a7b0efa3bcea603b # скопируйте этот URL
- Выберите порт на вашем локальном компьютере, скажем, порт YYYY, для переадресации.
- Запустите команду переадресации на вашем локальном компьютере
user@localMachine: ssh -L YYYY:localhost:XXXX user@sshServerHost
- Доступ к графическому интерфейсу через локальный браузер. Откройте браузер и введите
localhost:YYYY
вместе с токеном или скопируйте и вставьте указанный выше URL-адрес, заменив XXXX на YYYY . Виола!
Динамическая переадресация портов
- Запустите экземпляр ноутбука jupyter на удаленном компьютере
# Замените XXXX на номер порта по вашему выбору
# По умолчанию 8888, если не указано
- Запустить экземпляр tensorboard на удаленном компьютере
user@sshServerHost: tensorboard --logdir log --port YYYY --host sshServerHost # По умолчанию используется порт 6006
На локальном компьютере откройте браузер и настройте его сетевые настройки для подключения к прокси-серверу SOCKS5 с выбранным вами номером порта.
Введите
sshServerHost:XXXX
иsshServerHost:YYYY
каждый на вкладке и наслаждайтесь!
Общие советы
Примечание. Динамическая переадресация портов требует, чтобы IP-адрес сервера приложений был установлен на имя SSH-сервера. Это легко сделать либо с помощью флага
--ip
, либо с помощью флага--host
.Вы можете использовать флаг
-N
, чтобы не открывать новое окно ssh и продолжать работу в том же окне. Флаг-f
переводит сеанс ssh в фоновый режим.ssh -N -f -L 8888:localhost:8888 пользователь@sshServerHost
Firefox идеально подходит для настройки прокси-сервера SOCKS5 и динамической переадресации портов. Вы можете настроить несколько профилей, привязанных к разным портам, и легко переключаться между ними. Просто введите
about:profiles
на вкладке браузера, чтобы перейти к интерфейсу.Каталожные номера
- [1] Блокнот Rufflewind. https://rufflewind.com/2014-03-02/ssh-port-forwarding
- [2] Академия SSH. https://www.ssh.com/academy/ssh/tunneling/пример
- [3] Баррет и Сильверман. SSH, безопасная оболочка Полное руководство. O’Reilly 2001
Если вы хотите использовать части текста, какие-либо рисунки или поделиться статьей, укажите это как:
Разработка на Azure ML | Машинное обучение Azure
В этом руководстве приведены некоторые советы по разработке кода в Azure ML. Типичный сценарий может тестировать ваш распределенный обучающий код или какой-либо другой аспект вашего кода, который плохо представлен в вашем локальном devbox.
Общей проблемой в этих сценариях является то, что итерация в Azure ML может ощущаться медленный — особенно по сравнению с разработкой на виртуальной машине.
Цель обучения. Чтобы улучшить процесс разработки в Azure ML чтобы соответствовать или даже превосходить «голую» виртуальную машину.
🚧 Препятствия#
Две основные причины, по которым разработка в Azure ML может показаться медленной по сравнению с виртуальной машиной:
занять > 5 минут.
Вычислительные ресурсы высвобождаются между итерациями, заставляя меня ждать новые вычисления для разогрева (например, получение образов Docker).
Ниже мы приводим некоторые методы решения этих проблем, а также некоторые преимущества для работы с вычислениями Azure ML напрямую. Мы также приводим пример применения этих методы.
🕰️ Подготовьте вычислительные ресурсы для разработки#
При создании вычислительного экземпляра /кластера есть несколько вещей, которые вы можете сделать. сделать для подготовки к разработке:
Включить SSH на вычислениях.
Поддерживается как на вычислительном экземпляре
Удаленное расширение кода VS.
Удаленное расширение кода VS позволяет подключаться к вычислительным ресурсам Azure ML через SSH. Таким образом, вы можете разрабатывать прямо в облаке.
Увеличить «Секунды простоя перед уменьшением масштаба».
Для целей вычислений вы можете увеличить этот параметр, например. до 30 минут. Это означает кластер не будет освобожден между запусками во время итерации.
предупреждение
Не забудьте выполнить откат, когда закончите итерацию.
🏃♀️ Commands#
Обычно вы отправляете свой код в Azure ML с помощью
ScriptRunConfig
примерно так:Используя аргумент команды
Другим примером может быть включение сценария установки:
setup.sh
, а затем вызов его в вашей команде
Таким образом Azure ML не нужно перестраивать образ докера с добавочными изменениями.
Преимущества#
В дополнение к опыту разработки на виртуальной машине есть определенные преимущества для разработка непосредственно на вычислениях Azure ML.
- Готов к производству. Разрабатывая непосредственно в Azure ML, вы избегаете дополнительного шага переноса вашего Код, разработанный на виртуальной машине, в Azure ML позже. Это особенно актуально, если вы собираетесь запустите свой производственный код в Azure ML.
- Доступ к данным. Если ваш сценарий обучения использует данные в Azure, вы можете использовать Azure ML Python SDK для его чтения (примеры см. в разделе Данные). Альтернативой является то, что вам, возможно, придется найдите какой-нибудь способ перенести ваши данные на виртуальную машину, на которой вы разрабатываете.
- Блокноты. Вычислительные экземпляры Azure ML поставляются с блокнотами Jupyter, которые помогают быстро
отладка. Кроме того, эти ноутбуки можно легко использовать в различных вычислительных инфраструктурах.