Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

Scalability

Масштабируемость — это способность системы обрабатывать больше данных, пользователей или вычислений за счёт добавления ресурсов. Рассматриваются вертикальное и горизонтальное масштабирование, закон Амдала и ИИ на нескольких GPU.

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

Вертикальное и горизонтальное масштабирование#

Вертикальное масштабирование, или масштабирование вверх, переносит рабочую нагрузку на более мощную машину: с большим количеством ядер CPU, большим объёмом ОЗУ или GPU с большей памятью. Изменения кода не нужны, но масштабирование ограничено самой мощной доступной машиной, а также остаётся единственная точка отказа. Горизонтальное масштабирование, или масштабирование вширь, добавляет машины и распределяет работу между ними; фиксированного предела нет, но программа должна уметь делить работу, балансировать нагрузку и согласовывать результаты. Веб-службы и службы инференса легко масштабировать вширь, если они не хранят состояние: сеансы и данные размещают в общих хранилищах, чтобы любая реплика могла обработать любой запрос. Базы данных масштабируют вширь с помощью шардинга — распределения данных по ключам между машинами.

Облачные платформы автоматизируют горизонтальное масштабирование. В Kubernetes горизонтальный автомасштабировщик подов рассчитывает количество реплик так: текущее число реплик умножает на отношение наблюдаемого значения метрики к целевому и округляет результат вверх. Например, если четыре реплики используют в среднем 90% CPU при целевом значении 60%, их число увеличится до шести. В облачных вычислениях такую автоматизацию называют эластичностью, а бессерверные вычисления позволяют масштабировать количество реплик вплоть до нуля при отсутствии трафика.

Ограничения масштабирования#

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

# Amdahl's law: speedup on n workers when a fraction p of the work runs in parallel
p = 0.95  # parallel fraction; the other 5% runs on one worker

for n in (1, 8, 64, 512):
    speedup = 1 / ((1 - p) + p / n)
    efficiency = speedup / n  # share of the added hardware doing useful work
    print(f"{n:>4} workers: {speedup:5.1f}x speedup, {efficiency:4.0%} efficiency")

print(f"Limit with unlimited workers: {1 / (1 - p):.0f}x")

Если 95% работы выполняется параллельно, восемь рабочих потоков обеспечивают ускорение в 5,9 раза при эффективности 74%, 64 потока — в 15,4 раза при эффективности 24%, 512 потоков — в 19,3 раза при эффективности 4%, и никакое количество потоков не позволит превысить ускорение в 20 раз. В 1988 году Джон Густафсон отметил, что на практике пользователи увеличивают размер задачи вместе с мощностью машины, поэтому параллельная часть растёт, а доля последовательной уменьшается. Измерение ускорения на задаче фиксированного размера называют сильным масштабированием, а увеличение задачи вместе с аппаратными ресурсами — слабым масштабированием; именно в таком режиме выполняются крупные запуски обучения. Дополнительное ограничение создаёт обмен данными: на каждом шаге обучения с параллелизмом по данным каждая добавленная GPU должна передавать градиенты остальным, поэтому предельный масштаб задачи часто зависит от пропускной способности сети.

Масштабирование обучения и инференса#

Распределённое обучение выбирает стратегию параллелизма в зависимости от того, помещается ли модель на одном устройстве. При параллелизме по данным каждая GPU хранит полную копию модели, обрабатывает свою часть каждого батча и усредняет градиенты с другими GPU через операцию all-reduce, как в DistributedDataParallel PyTorch. Модели, которые не помещаются на одну GPU, разделяют с помощью полностью шардированного параллелизма по данным, тензорного параллелизма или конвейерного параллелизма, а накопление градиентов позволяет достичь большого эффективного размера батча на меньшем количестве устройств.

Ultralytics YOLO использует параллелизм по данным для обучения на нескольких GPU: передача device=[0, 1] запускает рабочие процессы DistributedDataParallel через torch.distributed.run и равномерно распределяет батч, поэтому batch=64 на двух GPU даёт каждому GPU по 32 изображения на шаг.

Инференс масштабируется иначе, поскольку каждый запрос невелик и не зависит от других. Группировка запросов в батчи повышает загрузку GPU и пропускную способность за счёт небольшого увеличения задержки; непрерывное пакетирование даёт тот же эффект при генерации токен за токеном с помощью LLM, а системы обслуживания моделей добавляют реплики за балансировщиком нагрузки по мере роста трафика. Квантование моделей и прунинг удешевляют каждую реплику, позволяя той же аппаратуре обрабатывать больше запросов, а периферийный ИИ масштабируется за счёт распределения инференса между тысячами устройств вместо одного центра обработки данных.

  • Производительность: скорость и точность работы системы при заданной нагрузке, измеряемые задержкой, пропускной способностью или точностью. Масштабируемость показывает, как эти показатели меняются при увеличении нагрузки и ресурсов.
  • Эластичность: автоматическое добавление и удаление ресурсов при изменении спроса в течение дня, чаще всего — добавление и удаление реплик горизонтально масштабируемой службы.
  • Законы масштабирования: эмпирические зависимости между потерями модели, её параметрами, обучающими данными и вычислительными ресурсами. Они предсказывают качество модели, а масштабируемость системы определяет, насколько эффективно можно использовать необходимые для этого вычислительные ресурсы.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

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

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

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

Компьютерное зрение в сельском хозяйстве

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

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения