Pull to refresh
27
0
Send message

Эффективный запуск и инференс LLM на своем сервере с нуля (часть 1)

Level of difficultyMedium
Reading time10 min
Views7.4K

Привет, Хабр! На связи CEO команды Compressa AI. Недавно обнаружил для себя крутой базовый курс по эффективному запуску и инференсу LLM моделей от легенды AI мира — Andrew NG и его платформы DeepLearning. Он полностью на английском языке в формате видео, поэтому я осмелился адаптировать его под формат Хабра на русском языке. Знания должны быть доступны всем и в удобной форме, так ведь?

Многие команды (включая и Compressa AI) начинали LLM проекты с использования облачных API. Но по мере развития все больше разработчиков хотят использовать open-source LLM, чтобы экономить на токенах, снижать latency, запускать fine-tuning на собственных данных и в целом меньше зависеть от внешних моделей.

Из этого курса вы узнаете детали эффективного обслуживания и дообучения open-source LLM, включая методы обработки множества запросов от нескольких пользователей. Используя несколько таких методов одновременно, вы можете улучшить как задержку (latency), так и пропускную способность (throughput). Например, благодаря применению последних open-source технологий в своем продукте, мы добились увеличения пропускной способности до 70x на 1 GPU в сравнении с дефолтными Hugging Face & PyTorch.

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

Читать далее
Total votes 23: ↑23 and ↓0+27
Comments12

Что находится внутри образов distroless-контейнеров

Level of difficultyEasy
Reading time13 min
Views8.3K

Базовые distroless-образы GoogleContainerTools часто упоминаются как один из способов создания (более) маленьких, (более) быстрых и (более) безопасных контейнеров. Но что на самом деле они собой представляют? Зачем они нужны? В чем разница между контейнером, созданным на distroless-базе, и контейнером, созданным с нуля? Давайте разберёмся.

Читать далее
Total votes 44: ↑43 and ↓1+48
Comments2

Работа с YOLOV8. Детекция, сегментация, трекинг объектов, а также подготовка собственного датасета и обучение

Level of difficultyMedium
Reading time26 min
Views13K

Если вам кажется, что начать работу с нейросетями - это сложно, то этот материал для вас!

В статье подробно, с примерами кода, разберем основные функции базовой модели YOLOV8 - детекция, сегментация, трекинг объектов, а также создание собственного датасета и дообучение нейросети для работы с собственными объектами!

Читать далее
Total votes 15: ↑15 and ↓0+19
Comments6

Разбор документа про AGI от Леопольда Ашенбреннера, бывшего сотрудника OpenAI

Level of difficultyMedium
Reading time11 min
Views42K

Леопольд Ашенбреннер, бывший сотрудник OpenAI из команды Superalignment, опубликовал документ под названием «Осведомленность о ситуации: Предстоящее десятилетие», в котором он делится своим видением будущего ИИ. Основываясь на своих знаниях в этой области, Ашенбреннер предсказывает стремительное развитие искусственного интеллекта в ближайшее десятилетие.

Мы прочитали этот документ объемом в 165 страниц за вас. В этой статье расскажем о ключевых идеях Ашенбреннера и о его прогнозах на будущее искусственного интеллекта.

Читать далее
Total votes 54: ↑51 and ↓3+62
Comments216

Пайплайны в GitLab для микросервисов

Reading time10 min
Views17K

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

Начнем с основ на примере монолитного приложения, а потом усложним их микросервисами и постараемся избавиться от однотипного кода. А еще…
Читать дальше →
Total votes 57: ↑57 and ↓0+74
Comments4

Шифруйте контейнеры или Как обойти ограничения на частные репозитории в публичных реестрах контейнеров

Level of difficultyMedium
Reading time6 min
Views5.1K


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

TL;DR: Используйте зашифрованные изображения.

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

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

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

Читать далее
Total votes 19: ↑17 and ↓2+16
Comments3

Battle Realms: прорыв в жанре RTS, не замеченный публикой

Level of difficultyEasy
Reading time7 min
Views15K

Во времена дефицита информации о выходящих проектах пропустить что-то действительно интересное было раз плюнуть. Интернет имели единицы, а прочитать в журнале про все предстоящие проекты было довольно проблематично (да и для многих дорого). Но однажды мне повезло, и при очередном походе в магазин за новой игрой я совершенно случайно наткнулся, если и не на хит, то уж на знаковый проект – точно. Это был Battle Realms!

Будучи стратегией в восточном сеттинге и имея много интересных для жанра нововведений и игровых механик, она так и не стала значимой фигурой в индустрии (во многом из-за релиза незадолго до выхода Warcraft 3). Если вы подумали «О боже, очередной клон популярных стратегий нулевых», то спешу вам сообщить, что это в корне не так! Battle Realms не является пародией на Warcraft, Starcraft, Dune 2 или Red Alert, а пытается идти по своему пути! Это было круто и в 2001, а учитывая, что жанр стратегических игр не сильно развивается в наши дни, это интересно и сегодня. К тому же, недавно вышел её официальный ремастер, позволяющий самостоятельно попробовать этот самобытный проект.

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

Читать далее
Total votes 23: ↑22 and ↓1+24
Comments18

Тиннитус (шум в ушах) для айтишников, геймеров, и не только

Reading time16 min
Views72K

ВНИМАНИЕ! Если у вас нет шума в ушах (тиннитуса) и/или нейросенсорной тугоухости, но есть особенности психики в части психосоматики или подобного – покиньте данный пост не читая.

Самые важные победы в мире – победы над собой

Всем привет. Меня зовут Паша Герасимов, мне 38, я – инженер в ИТ, геймер, и у меня диагноз НСТ (нейросенсорная тугоухость), а также субъективный шум в ухе (тиннитус) и гидропс правого лабиринта. По ощущениям, это комбо – шум/гул/свист в ухе, снижение слуха, чувство заложенности за перепонкой, и гиперакузия (повышенная чувствительность к некоторым звукам). Для тех, кто не в теме – представьте, что у вас ухо заложено ваткой, а внутри уха – звук неработающего канала ТВ (как видео пример, или mp3). И так – регулярно, месяцами, без возможности исправления.  

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

Читать далее
Total votes 80: ↑78 and ↓2+91
Comments155

Возрождение простых сайтов. Статика, 0kB JS, ничего лишнего

Reading time8 min
Views42K

Как мы обсуждали в прошлый раз, удручающее ожирение сайтов и софта вернуло моду на простые, маленькие проекты. И сейчас происходит своеобразный ренессанс веба 90-х, вплоть до стиля Geocities (такой был бесплатный хостинг) и веб-страниц в виде PDF. Таковы примеры самореализации. У каждого человека — уникальный сайт, который отличается от остальных и отражает его личность.

Статический сайт можно выполнить в одном файле HTML, а динамический — в одном бинарнике (под катом). Тенденция видна везде. Современные фреймворки даже хвалятся «0кБ JavaScript» по дефолту, а браузеры внедрили технические усовершенствования, которые во многом аннулируют преимущества использования SPA.
Читать дальше →
Total votes 86: ↑80 and ↓6+95
Comments72

Apache Kafka. Безопасность, мониторинг и управление кластером

Reading time21 min
Views38K

Мы расскажем, как настроить безопасность кластеров Kafka и Zookeeper, какие инструменты можно использовать для мониторинга и управления кластером, а также про особенности продукта, с которыми мы столкнулись.

 Почему Apache Kafka?

 Apache Kafka — это унификация. Десятки поставщиков и потребителей, миллионы сообщений в день и огромные массивы данных — для этого нужна надежная, отказоустойчивая и высокопроизводительная шина данных. Существует множество версий дистрибутивов Apache Kafka, например vanilla kafka, oбразы от confluent, bitnami, wurstmeister и т.д. Мы расскажем про решение на базе сборок от Confluent в виде Docker-образов. Оно самое надежное в плане информационной безопасности. Конфигурирование и запуск контейнеров с Kafka в данном случае происходит с помощью docker-compose.

 За время работы с Kafka мы прошли  путь от «коробочного» решения до тонкой настройки безопасности кластера, применения TLS шифрования и разворачивания по рекомендациям вендора по построению геораспределенного кластера. В конфигурации «из коробки» нет первоначальных настроек безопасности. Для контроля доступов, вносимых изменений и безопасного взаимодействия перед нами встала задача настройки на кластере Apache Kafka TLS шифрования, аутентификации и авторизации средствами встроенного ACL.

 TLS шифрование

Обеспечивает шифрование соединения между брокерами Kafka, серверами Zookeeper, клиентами и брокерами. Вся ключевая информация помещается в хранилища — keystore, которые разделяют на два вида:

keystore, где хранятся ключи и сертификаты стороны, в отношении которой пройдет процедура аутентификации и установления защищенного соединения, например, приватный ключ и ассоциированный с ним и подписанный со стороны центра сертификации (ЦC) сертификат.

Читать далее
Total votes 5: ↑5 and ↓0+5
Comments2

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

Reading time2 min
Views7.2K

Мы уже рассказывали о необычном проекте, который позволяет превратить шуршание пачки чипсов и стук керамической посуды в полноценный трек. Сегодня расскажем о другом ресурсе, где можно познакомиться с драм-машиной Roland TR-808 и с её помощью записать музыку для личного приложения или игры.

Читать далее
Total votes 10: ↑10 and ↓0+10
Comments4

Дефицит есть, а денег не дают. Почему?

Reading time27 min
Views297K

Мы уже выяснили, что у нас есть дефицит рабочих рук во всех отраслях. На примере СССР увидели, что дефицит легко закрывается деньгами и плюшками, что сейчас и происходит в IT. Однако при дефиците рабочих рук в остальных отраслях зарплаты остаются на уровне Румынии и никак не подтягиваются. Почему?

Читать далее
Total votes 512: ↑497 and ↓15+588
Comments1205

Практические рекомендации по работе с Docker для Python-разработчиков

Reading time28 min
Views107K

Прим. Wunder Fund: в этой длииинной статье вы найдете ряд полезных советов по работе с Docker, как общего характера, так и Python-специфичных. Хоть мы и давно используем Docker в работе, про некоторые советы мы подумали "а что, так можно было?". Советуем вначале пролистать статью, и отметить штуки, которые покажутся актуальными для вашей текущей ситуации.

Читать далее
Total votes 53: ↑52 and ↓1+65
Comments8

Самый полный чек-лист для защиты от мошенников

Reading time17 min
Views161K

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

Читать далее
Total votes 117: ↑115 and ↓2+144
Comments169

Dockle — Диагностика безопасности контейнеров

Reading time2 min
Views11K

В этой статье мы рассмотрим Dockle — инструмент для проверки безопасности образов контейнеров, который можно использовать для поиска уязвимостей. Кроме того, с его помощью можно выполнять проверку на соответствие Best Practice, чтобы убедиться, что образ действительно создается на основе сохраненной истории команд.

Читать далее
Total votes 9: ↑8 and ↓1+8
Comments0

Пишем оператор Kubernetes с нуля

Reading time7 min
Views24K

image
Фото: Jukan Tateisi | Unsplash


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


Возьмем самый простой пример — приложение HelloApp. Чтобы задеплоить HelloApp, создадим ресурс Kubernetes.

Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments4

Как найти удаленную работу в зарубежной компании. 10 шагов

Reading time10 min
Views64K


Каждый год Оксфордский словарь английского языка выбирает «Слово года». Но в 2020-м что-то пошло не так. Издательство Оксфордского университета описало 2020-й как «год, который лишил нас дара речи», и сказало, что к нему невозможно подобрать правильное слово.


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


Мы постоянно исследуем рынок. Публикуем сотни вакансий ежедневно. И сейчас 40% выручки получаем от иностранных компаний, которые в основном нанимают программистов для удаленной работы.


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

Читать дальше →
Total votes 26: ↑24 and ↓2+28
Comments16

Как root-права и альтернативные прошивки делают ваш android смартфон уязвимым

Reading time54 min
Views132K

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

Часто для этого рекомендуется получение прав суперпользователя в системе (root-права), удаление системных приложений от Google и от производителя устройства, или даже полная замена стандартной ОС на альтернативные сборки, чаще всего LineageOS (бывший CyanogenMod). При этом первым шагом в этом процессе всегда будет так называемая "разблокировка загрузчика". Во время её выполнения устройство несколько раз покажет нам страшные предупреждения о том, что теперь оно станет более уязвимо для злоумышленников, но мы смело нажимаем "подтвердить" и шьём root или самую свежую сборку кастомной прошивки, не задумываясь о том какие проблемы создаёт нам незаблокированный загрузчик. 

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

Интересующихся приглашаю под кат.

Читать далее
Total votes 98: ↑94 and ↓4+119
Comments210

Пользователи и авторизация RBAC в Kubernetes

Reading time15 min
Views37K
Прим. перев.: Продолжая недавно затронутую нами тему безопасности Kubernetes в целом и RBAC — в частности, публикуем перевод этого материала от французского консультанта из международной компании Big Data-компании Adaltas. Автор в деталях показывает, как создавать пользователей, наделять их правами и в дальнейшем обслуживать.

Настройка и запуск кластера Kubernetes – это только начало: ведь его необходимо еще и эксплуатировать. Чтобы обезопасить доступ к кластеру, нужно задать идентификационные данные пользователей и грамотно управлять настройками аутентификации и авторизации.

(Иллюстрация взята из блога CNCF — прим. перев.)

Эта статья посвящена тому, как создавать пользователей, используя клиентские сертификаты X.509, и как управлять авторизацией с помощью базовых API-объектов RBAC в Kubernetes. Мы также поговорим о некоторых открытых проектах, упрощающих администрирование кластера: rakkess, kubectl-who-can, rbac-lookup и RBAC Manager.
Читать дальше →
Total votes 42: ↑41 and ↓1+40
Comments0
1

Information

Rating
Does not participate
Registered
Activity