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

Big Data

Большие данные — это данные, слишком объёмные, быстрые или разнообразные для обработки инструментами одной машины. Три V, MapReduce и Spark, а также наборы данных, лежащие в основе современного ИИ.

Большие данные — это данные, объем, скорость поступления или разнообразие форматов которых превышают возможности одного компьютера и обычных инструментов для работы с базами данных по хранению и обработке. Поэтому данные распределяют по кластерам машин, которые обрабатывают их параллельно. В 2001 году аналитик Doug Laney из META Group описал эту задачу через три V: volume — объем данных; velocity — скорость их поступления и необходимой обработки; variety — разнообразие данных, включая структурированные таблицы, журналы, текст, изображения, аудио и видео. В более поздних определениях добавились veracity — достоверность данных — и value — их ценность. Для машинного обучения большие данные служат и исходным материалом, и инженерной задачей: модели улучшаются при увеличении объема обучающих данных, а сбор, очистка и предоставление этих данных требуют значительных усилий при создании моделей.

Большие данные в ИИ и компьютерном зрении#

Глубокое обучение развивалось вместе с наборами данных, которые не помещались на один диск. Представленный в 2009 году ImageNet вырос до более чем 14 миллионов размеченных изображений, а 1,28 миллиона обучающих изображений из соревнования по 1 000 классов использовались для обучения сверточной нейронной сети AlexNet, победившей в соревновании 2012 года. Выпущенный Meta в 2023 году вместе с Segment Anything Model набор данных SA-1B содержит 11 миллионов изображений и 1,1 миллиарда масок сегментации, а Meta предварительно обучила Llama 3 на более чем 15 триллионах текстовых токенов. Законы масштабирования объясняют пользу таких коллекций: функция потерь предсказуемо уменьшается при совместном увеличении объема данных, числа параметров и вычислительных ресурсов.

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

Как хранят и обрабатывают большие данные#

Системы для работы с большими данными масштабируются горизонтально: данные и вычисления распределяются по множеству недорогих машин вместо одного мощного сервера. В статье Google о MapReduce за 2004 год описана модель, которую популяризировал проект с открытым исходным кодом Apache Hadoop: входные данные делятся на фрагменты, функция map параллельно выполняется для каждого фрагмента на машине, где он хранится, а функция reduce объединяет частичные результаты в один ответ. Apache Spark, созданный в Калифорнийском университете в Беркли в 2009 году, хранит промежуточные результаты в памяти, поэтому итерационные задачи, например обучение моделей, выполняются гораздо быстрее, чем в MapReduce с дисковым хранением. Необработанные файлы обычно хранятся в облачном объектном хранилище, организованном как озеро данных; колоночные форматы, например Apache Parquet, позволяют запросу считывать только нужные столбцы, а потоковые платформы, например Apache Kafka, обрабатывают события с высокой скоростью поступления.

В этом примере шаги map и reduce выполняются для трех фрагментов меток изображений с помощью стандартной библиотеки Python:

from collections import Counter
from multiprocessing import Pool

# Три фрагмента меток изображений; кластер хранит каждый фрагмент на отдельной машине
shards = [
    ["car", "person", "car", "bus"],
    ["person", "person", "bicycle"],
    ["car", "person", "dog", "car"],
]


def count_labels(shard):
    """Map step: count the labels in one shard."""
    return Counter(shard)


if __name__ == "__main__":
    with Pool(processes=3) as pool:
        partial_counts = pool.map(count_labels, shards)  # один рабочий процесс на фрагмент

    # Шаг reduce: объединить частичные количества в общую сумму
    totals = sum(partial_counts, Counter())
    print(totals.most_common())

Каждый фрагмент подсчитывается в отдельном процессе, а шаг reduce объединяет частичные количества в [('car', 4), ('person', 4), ('bus', 1), ('bicycle', 1), ('dog', 1)]. Spark и Hadoop выполняют те же два шага на тысячах машин, отправляя код map на машины, где хранятся соответствующие фрагменты.

Обучение моделей на больших данных#

Во время обучения большие данные считываются пакетами. Загрузчики данных декодируют по несколько десятков или сотен изображений за раз с локального диска или из объектного хранилища с помощью нескольких рабочих процессов, поэтому весь набор данных не нужно загружать в память; при этом распределенное обучение делит каждый пакет между несколькими GPU. Для детекции объектов набор изображений для детекции Open Images V7 от Google занимает 561 ГБ и содержит 1,74 миллиона обучающих изображений 601 класса — гораздо больше, чем может поместиться в оперативной памяти большинства компьютеров. Если нужно кэшировать набор данных в памяти с помощью cache="ram", обучение Ultralytics YOLO оценивает размер декодированных данных по 30 случайным изображениям и создает кэш, только если удвоенная оценка помещается в доступную оперативную память; более крупные наборы данных считываются и декодируются с диска в каждой эпохе.

  • Интеллектуальный анализ данных: поиск закономерностей, аномалий и связей в данных любого объема, часто выполняемый на платформах для больших данных.
  • Аналитика данных: обработка запросов, обобщение и визуализация данных для поддержки принятия решений; аналитика больших данных — ее часть, требующая распределенных вычислительных платформ.
  • ИИ с фокусом на данные: улучшение моделей за счет повышения качества и полноты данных, что особенно важно, когда набор данных слишком велик для ручной проверки.

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

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

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

Узнай, как 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. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

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

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