Глоссарий

JSON

Узнай, как JSON упрощает рабочие процессы AI и ML благодаря бесшовному обмену данными, настройке моделей и работе приложений в реальном времени.

Обучай модели YOLO просто
с помощью Ultralytics HUB.

Узнай больше

JSON, или JavaScript Object Notation, - это легкий и человекочитаемый формат данных, широко используемый для обмена данными, особенно в веб-приложениях и системах, управляемых данными. Его простота и легкость разбора машинами сделали его краеугольным камнем в современном программировании, в том числе в сфере искусственного интеллекта (AI) и машинного обучения (ML). JSON способствует бесшовному обмену данными, настройке моделей и созданию эффективных приложений в реальном времени, что делает его незаменимым инструментом для разработчиков и исследователей. Он обеспечивает стандартизированный способ структурирования данных, который легко понимают и люди, и компьютеры, что определено официальным стандартом обмена данными ECMA-404 JSON. Больше информации также можно найти на сайте JSON.org.

Основные характеристики

Структура JSON построена на двух фундаментальных элементах:

  1. Пары ключ-значение: Коллекции пар имя/значение, которые в разных языках программирования часто называют объектами, словарями или ассоциативными массивами. Ключ - это всегда строка, а значение может быть строкой, числом, булевой функцией, массивом или другим JSON-объектом.
  2. Упорядоченные списки: Упорядоченные последовательности значений, известные как массивы или списки. Значения в массиве могут быть любого допустимого типа данных JSON.

Благодаря такой простой структуре файлы JSON легко создавать, читать и изменять. Он не зависит от языка, то есть может использоваться в различных языках программирования, таких как Python и платформах без проблем с совместимостью, что делает его очень универсальным для распределенных систем и микросервисов.

Приложения в искусственном интеллекте и ML

JSON играет важнейшую роль в различных аспектах рабочих процессов AI и ML:

  • Конфигурация модели: Хотя YAML часто предпочитают для сложных конфигураций из-за его повышенной читаемости, JSON часто используется в вызовах API для указания параметров конфигурации или внутри более простых конфигурационных файлов.
  • Аннотация данных и наборы данных: В компьютерном зрении (КВ) JSON - это распространенный формат для хранения аннотаций для таких задач, как обнаружение объектов и сегментация изображений. Файлы аннотаций часто содержат списки объектов, каждый из которых имеет метки классов, координаты ограничительной рамки или полигоны сегментации, представленные в формате JSON. Многие стандартные наборы данных, такие как COCO, используют JSON для структуры аннотаций.
  • Общение через API: JSON - это стандарт де-факто для обмена данными в веб-интерфейсах API, в том числе в сервисах AI и ML. При взаимодействии с моделями ИИ, размещенными на облачных вычислительных платформах или специальных конечных точках, использующих такие протоколы, как REST, входные данные (например, URL-адреса изображений, текст) часто отправляются в виде полезной нагрузки JSON, а предсказания модели (например, обнаруженные объекты, вероятности классов, баллы доверия) возвращаются в формате JSON. Ultralytics Inference API использует JSON для форматирования запросов и ответов.
  • Хранение результатов моделирования: Результаты умозаключений или оценки модели, такие как предсказанные классы, граничные поля или метрики производительности, например средняя точность (mAP), можно удобно хранить в файлах JSON. Такой структурированный формат позволяет легко разбирать результаты, анализировать их или интегрировать в более крупные конвейеры MLOps.

Примеры из реальной жизни

Вот несколько примеров, иллюстрирующих практическое применение JSON в AI и ML:

  1. Автономные транспортные средства: Сенсорные данные с камер, лидаров и радаров в самоуправляемых автомобилях часто нуждаются в обработке и передаче между различными компонентами системы. JSON можно использовать для структурирования этих данных, представляя обнаруженные объекты с их типами, позициями, скоростями и уровнями достоверности, прежде чем передать их в алгоритмы принятия решений, часто основанные на моделях глубокого обучения. Такие компании, как Waymo, полагаются на надежные форматы данных для своих сложных систем.
  2. Ultralytics HUB: При программном взаимодействии с Ultralytics HUB через его API запросы на инициирование заданий на обучение, загрузку наборов данных или получение показателей эффективности модели часто включают отправку и получение данных в формате JSON. Это позволяет легко интегрировать возможности HUB в пользовательские рабочие процессы и приложения.

JSON по сравнению с другими форматами данных

Полезно сравнить JSON с другими распространенными форматами сериализации данных:

  • YAML (YAML Ain't Markup Language): В YAML приоритет отдается читабельности, поэтому его часто предпочитают использовать для конфигурационных файлов (например, для определения архитектуры модели или параметров обучения). Хотя JSON тоже можно использовать для конфигурации, синтаксис YAML (с использованием отступов) обычно считается более чистым и легко читаемым для сложных вложенных структур. JSON обычно предпочитают использовать для обмена данными через API благодаря более простым правилам разбора и широкой поддержке.
  • XML (eXtensible Markup Language): XML - это еще один язык разметки, используемый для кодирования документов в формате, который является как человекочитаемым, так и машиночитаемым. По сравнению с JSON, XML более многословен из-за использования закрывающих тегов и, как правило, более сложен для разбора. Хотя JSON все еще используется в корпоративных системах и специальных стандартах вроде SOAP, он в значительной степени заменил XML в веб-приложениях и современных API благодаря своей простоте и меньшим накладным расходам.

В общем, легковесность JSON, читаемость человеком и простота разбора делают его весьма эффективным и широко распространенным форматом для структурирования и обмена данными в системах искусственного интеллекта и ML, особенно для взаимодействия с API и хранения структурированных результатов. Его совместимость с различными языками программирования обеспечивает плавную интеграцию в различные технологические стеки, начиная с аннотации данных и этапов их предварительной обработки и заканчивая конечным развертыванием модели с помощью таких инструментов, как Ultralytics YOLO.

Читать полностью