Распределённые выводы: определение, применение и технические аспекты

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

Distributed inference partitions machine learning models or their input data across a network of devices or servers to perform prediction tasks. This is vital for large-scale AI, real-time processing, and resource-constrained environments. Distributing the computational load reduces inference [latency](/ru/terms/inference-latency), increases throughput, and enhances system robustness and scalability. Techniques include model parallelism (splitting the model across nodes) and data parallelism (distributing input data across nodes running model replicas). Edge computing commonly uses distributed inference, enabling AI on devices like smartphones, IoT sensors, or vehicles, reducing cloud reliance and improving responsiveness.

        graph LR
  Center["Распределённые выводы: определение, применение и технические аспекты"]:::main
  Pre_inference["inference"]:::pre --> Center
  click Pre_inference "/terms/inference"
  Pre_distributed_computing["distributed-computing"]:::pre --> Center
  click Pre_distributed_computing "/terms/distributed-computing"
  Rel_edge_computing["edge-computing"]:::related -.-> Center
  click Rel_edge_computing "/terms/edge-computing"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 Простыми словами

Представьте себе сложную головоломку. Вместо того чтобы один человек медленно её решал, вы даёте разные части многим друзьям. Они решают свои секции, а вы объединяете результаты. Распределённые выводы похожи для ИИ: много компьютеров работают вместе над частями задачи предсказания, чтобы получить ответ быстрее, чем это мог бы сделать один компьютер.

🤓 Expert Deep Dive

Распределённые выводы используют параллельные и распределённые вычисления для выполнения обученных моделей машинного обучения. Ключевые архитектурные шаблоны включают:

  1. Параллелизм данных: Пакеты входных данных разделяются между рабочими узлами, каждый из которых имеет копию модели. Предсказания вычисляются независимо, а результаты агрегируются. Эффективно для увеличения пропускной способности, когда модели умещаются на отдельных узлах.
  2. Параллелизм модели: Сама модель разделяется (например, по слоям) между узлами. Данные последовательно проходят через эти разделы. Важно для моделей, слишком больших для памяти одного устройства.
  3. Гибридный параллелизм: Сочетает параллелизм данных и модели для специфических аппаратных и архитектур моделей.

Фреймворки, такие как TensorFlow (tf.distribute.Strategy), PyTorch (torch.distributed) и серверы выводов (например, NVIDIA Triton Inference Server, TensorFlow Serving) поддерживают эти стратегии. Критические факторы включают накладные расходы на связь между узлами, балансировку нагрузки, отказоустойчивость и синхронизацию. Для приложений реального времени ключевыми являются асинхронное выполнение и эффективная сериализация. Периферийные выводы часто используют сжатие моделей и квантование для устройств с ограниченными ресурсами, а распределённые стратегии управляют выводами между периферийными устройствами или между периферией и облаком.

🔗 Связанные термины

Предварительные знания:

📚 Источники