Техническо РЪКОВОДСТВО

Kubernetes за работни натоварвания на ML

Kubernetes е система с отворен код, която автоматично планира, мащабира и рестартира контейнеризирани програми в клъстер от машини.

2 min readПоследна актуализация

Преглед

For machine learning, it lets teams pack GPU-hungry training jobs and latency-sensitive model servers onto shared hardware without babysitting individual servers.

Дълбоко гмуркане

Първоначално създаден в Google за изпълнение на уеб услуги, Kubernetes третира вашия клъстер като един голям набор от CPU, памет и GPU, след което решава коя машина изпълнява всеки контейнер. Екипите за ML разчитат на него, защото работните натоварвания са големи и скъпи: едно обучение може да изисква осем графични процесора за шест часа, след това нищо. Kubernetes планира този модул към възел с безплатни графични процесори и когато работата приключи, освобождава хардуера. Той също така поддържа живи сървърите за изводи, като рестартира повредени контейнери и разпространява реплики между машини за устойчивост. Инструменти, изградени отгоре, като Kubeflow, Ray и KServe, добавят специфични за ML части като оператори за разпределено обучение, настройка на хиперпараметри и крайни точки на модела за автоматично мащабиране, така че специалистите по данни работят с абстракции от по-високо ниво вместо необработен YAML.

Техническа информация

Kubernetes присвоява GPU чрез добавки за устройства, които рекламират ресурси като nvidia.com/gpu, които планировчикът съпоставя със заявките на pod. Замърсяванията и толерантностите предпазват евтините CPU задачи от скъпите GPU възли, докато селекторите на възли и правилата за афинитет прикрепят обучението към конкретен хардуер. За обучение с няколко GPU операторите създават група от модули, които се откриват взаимно и изпълняват рамки като PyTorch DDP или Horovod, обменяйки градиенти през клъстерната мрежа, използвайки NCCL.

Стратегическо въздействие

Cost and budget

Архитектурните решения стимулират производителността и оперативните разходи в продължение на години.

Clearer decisions

Техническото образование помага на екипите да изберат правилния стек, а не само най-новия.

Quality control

По-добрият инженерен избор намалява инцидентите, свързани с надеждността в производството.

Бъдещето на Kubernetes за натоварвания на ML

Очаквайте по-тясна ML интеграция: групово планиране, което стартира всички модули за разпределено обучение наведнъж или нито един, споделяне на частичен и разделен във времето GPU, така че няколко леки задания споделят една карта, и топологично ориентирано разположение, което зачита бързите NVLink връзки. Безсървърното заключение на Kubernetes, мащабиране на крайните точки до нула между заявките, узрява. С разрастването на моделите планировчиците все повече се координират между множество клъстери и облаци, а базираните на опашка системи за справедливо споделяне като Kueue и Volcano стават стандарт за управление на ограничен капацитет на GPU.

Внедряване в реалния свят

Изследователска лаборатория използва Kubeflow Training Operator, за да стартира задача за разпределено обучение на PyTorch с 32 GPU в четири възела, след което автоматично освобождава GPU, когато конвергира.

Компания за електронна търговия обслужва своя препоръчителен модел с KServe, който автоматично мащабира репликите нагоре по време на флаш разпродажба и обратно за една нощ.

Една банка изпълнява нощни задания за партидно оценяване като Kubernetes CronJobs, като ги подрежда на опашка на резервни процесорни възли, така че да не се конкурират с обслужващия трафик през деня.

Стартъп използва Ray на Kubernetes, за да изпълнява паралелни проверки на хиперпараметри, завъртайки десетки краткотрайни пробни подове на спот инстанции, за да намали разходите.

Рискове и предпазни огради

Оптимизирането на един бенчмарк може да скрие по-широки системни слабости.

Разходите за инфраструктура и поддръжка често се подценяват.

Пропуските в сигурността и видимостта могат да нарастват, когато системите стават по-сложни.

Пътна карта за изпълнение

1

Определете целите за латентност, качество и разходи преди внедряването.

2

Бенчмарк при реалистични условия на натоварване и данни.

3

Мониторинг на инструмента за грешки, отклонение и въздействие върху потребителя.

4

Подгответе пътеките за връщане назад и реакция на инцидент преди мащабиране.

Продължете да изследвате

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Kubernetes for ML Workloads quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

Start quiz

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

Next guide

A/B тестване за ML модели

Frequently asked questions

What is Kubernetes for ML Workloads?

Kubernetes е система с отворен код, която автоматично планира, мащабира и рестартира контейнеризирани програми в клъстер от машини. За машинно обучение, той позволява на екипите да опаковат изискващи GPU обучителни задания и чувствителни към латентност моделни сървъри върху споделен хардуер, без да се грижат за отделни сървъри.

Каква е основната задача на Kubernetes Scheduler за работни натоварвания на ML?

Планировчикът съпоставя заявките за ресурси на под (CPU, памет, GPU) спрямо наличните възли и поставя пода там, където пасва. Не засяга кода или данните на модела.

Как Kubernetes обикновено прави графичните процесори достъпни за под?

Плъгините за устройства разкриват графичните процесори като планируем ресурс (напр. nvidia.com/gpu), позволявайки на подовете да ги изискват и планировчикът да проследява наличността.

За какво обикновено се използват дефекти и допустими стойности в ML клъстер?

Омразата отблъсква шушулките от възел; само шушулки със съвпадаща толерантност могат да кацнат там. Това запазва оскъдни GPU възли за задачи, които действително се нуждаят от GPU.

Кой инструмент добавя специфични за ML възможности като оператори за разпределено обучение върху Kubernetes?

Kubeflow наслоява работните потоци на ML върху Kubernetes, включително обучение на оператори, тръбопроводи и настройка, така че екипите избягват ръчно писане на клъстерна конфигурация на ниско ниво.

Защо Kubernetes е много подходящ за бурни натоварвания на ML?

Обучението е пикантно: много графични процесори за кратко, след това никакви. Kubernetes поставя заданието, когато ресурсите са свободни, и ги освобождава при завършване, подобрявайки използването.