Инфраструктура для ИИ

Инфраструктура для ИИ

Запуск искусственного интеллекта требует не только вычислительного ускорителя. Для обучения и работы современных моделей нужна целая инфраструктура: серверы, GPU, оперативная память, хранилище, сеть и программное окружение.

При этом универсальной конфигурации для ИИ не существует. Сервер для запуска локальной LLM, инфраструктура для RAG-системы, платформа для дообучения модели и кластер для распределенного обучения предъявляют совершенно разные требования к оборудованию.

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

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

Что такое инфраструктура для ИИ

Инфраструктура для искусственного интеллекта (AI infrastructure) - это совокупность вычислительных, сетевых, дисковых и программных ресурсов, необходимых для разработки, обучения, запуска и масштабирования моделей машинного обучения.

В типичную инфраструктуру входят:

  • GPU для ускорения вычислений;
  • CPU для общих вычислительных задач;
  • оперативная память RAM;
  • видеопамять VRAM;
  • локальные SSD или NVMe-накопители;
  • объектное или другое централизованное хранилище;
  • высокоскоростная сеть;
  • операционная система и драйверы;
  • CUDA или аналогичный программный стек для ускорителей;
  • контейнеры Docker;
  • фреймворки машинного обучения;
  • системы оркестрации, например Kubernetes.

Упрощенно архитектуру можно представить следующим образом:

AI-инфраструктура → Compute → GPU → CPU/RAM → Storage → Network → Software → Orchestration

Каждый компонент отвечает за свою часть нагрузки. Быстрый GPU не компенсирует недостаток VRAM, медленное хранилище или узкую сеть. Аналогично, большой объём оперативной памяти не заменяет память GPU, если модель и вычисления должны выполняться на ускорителе.

Какие задачи решает ИИ-инфраструктура

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

Обучение моделей

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

Здесь особенно важны:

  • производительность GPU;
  • объем VRAM;
  • количество GPU;
  • пропускная способность между ускорителями;
  • объем и скорость хранения;
  • оперативная память;
  • производительность сети.

При распределенном обучении вычисления могут выполняться одновременно на нескольких GPU и серверах. PyTorch поддерживает распределенное обучение через различные механизмы, включая DistributedDataParallel, FSDP и Tensor Parallelism. Для CUDA GPU в распределенных сценариях широко используется NCCL.

Дообучение моделей

Fine-tuning позволяет адаптировать уже существующую модель под конкретную задачу или набор данных.

Требования к инфраструктуре обычно ниже, чем при обучении большой модели с нуля, особенно при использовании методов параметрически эффективного дообучения, например LoRA.

Но GPU все равно остается ключевым ресурсом, а объём необходимой VRAM зависит от размера модели, выбранного метода обучения, precision, batch size и других параметров.

Инференс

Inference (инференс) — выполнение уже обученной модели для получения результата.

Например:

  • генерация ответа LLM;
  • классификация изображения;
  • распознавание речи;
  • генерация текста;
  • обработка документов;
  • работа корпоративного AI-ассистента.

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

Здесь важны не только вычислительная мощность, но и:

  • объем VRAM;
  • задержка ответа;
  • количество одновременных запросов;
  • пропускная способность;
  • batching;
  • эффективность использования GPU.

Работа с LLM

Большие языковые модели предъявляют особые требования к памяти.

При запуске LLM в памяти должны находиться веса модели, а во время генерации дополнительно используется память для промежуточных данных, в том числе KV cache.

Поэтому при выборе GPU для LLM важно смотреть не только на вычислительную производительность, но и на объём доступной VRAM.

RAG

RAG (Retrieval-Augmented Generation) объединяет языковую модель с поиском по внешним данным.

Типичная RAG-система может включать:

Документы → обработка → embeddings → векторная база → поиск → LLM → ответ пользователю

Поэтому для RAG нужна не только GPU.

В зависимости от архитектуры используются:

  • GPU для генерации и embeddings;
  • CPU для обработки данных;
  • RAM для сервисов и кэшей;
  • NVMe для локальных данных;
  • объектное хранилище для документов;
  • база данных или векторное хранилище;
  • сеть между всеми компонентами.

Из чего состоит сервер для ИИ

GPU-сервер это не просто обычный сервер с установленной видеокартой.

При проектировании инфраструктуры необходимо учитывать сразу несколько компонентов.

GPU

GPU является основным вычислительным ускорителем для многих задач глубокого обучения.

Архитектура GPU рассчитана на выполнение большого количества параллельных операций, что хорошо соответствует вычислениям, характерным для нейронных сетей. CUDA, например, предоставляет платформу и модель программирования для выполнения вычислений на GPU и широко используется для глубокого обучения.

CPU

CPU отвечает за задачи, которые не выполняются непосредственно на GPU:

  • подготовку данных;
  • загрузку и обработку файлов;
  • запуск сервисов;
  • работу приложений;
  • управление задачами;
  • сетевые операции;
  • часть операций RAG;
  • работу баз данных;
  • обслуживание GPU-нагрузки.

Поэтому сервер с мощными GPU, но слабой или неправильно подобранной CPU-подсистемой может не раскрывать возможности ускорителей.

RAM

Оперативная память используется для:

  • загрузки данных;
  • подготовки датасетов;
  • работы операционной системы;
  • приложений;
  • баз данных;
  • кэшей;
  • промежуточных вычислений.

RAM и VRAM — разные ресурсы.

RAM находится в системе и используется CPU, а VRAM — непосредственно память GPU.

Если модели или промежуточные данные не помещаются в VRAM, простое наличие большого объёма RAM не означает, что GPU сможет эффективно работать с ними без дополнительных операций обмена данными.

VRAM

VRAM — один из наиболее важных параметров GPU для ИИ.

В ней могут находиться:

  • веса модели;
  • активации;
  • градиенты;
  • состояние оптимизатора при обучении;
  • KV cache при инференсе;
  • промежуточные данные.

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

Если веса модели занимают больше памяти, чем доступно на одном ускорителе, просто запустить ее в обычном режиме не получится. Потребуется другая GPU, квантование или распределение модели между несколькими ускорителями.

Сколько VRAM нужно для LLM

Универсального ответа в формате «для модели определенного размера нужна GPU с X ГБ» нет.

Потребление памяти зависит как минимум от:

  • количества параметров;
  • формата весов;
  • контекстного окна;
  • batch size;
  • количества одновременных запросов;
  • KV cache;
  • используемого фреймворка;
  • режима работы модели;
  • особенностей квантования.

Для инференса основными компонентами потребления VRAM становятся:

веса модели + KV cache + служебная память + промежуточные данные.

Для обучения добавляются:

веса + активации + градиенты + состояние оптимизатора + служебные данные.

Поэтому обучение модели требует значительно больше памяти, чем простой запуск той же модели на инференс.

Что делать, если одна GPU не помещает модель

Варианты зависят от задачи:

  • использовать GPU с большим объёмом VRAM;
  • применить квантование;
  • уменьшить batch size;
  • использовать модель меньшего размера;
  • распределить модель между несколькими GPU;
  • использовать специализированные механизмы parallelism.

В распределенных сценариях несколько ускорителей могут работать совместно. Однако это уже требует правильно спроектированной аппаратной и сетевой инфраструктуры.

CPU и RAM в ИИ-сервере

Сосредоточенность на GPU часто приводит к ошибке: остальные компоненты сервера выбираются по остаточному принципу.

На практике CPU и RAM могут существенно влиять на производительность всей системы.

CPU нужен для подготовки данных

Перед тем как данные попадут на GPU, они могут пройти несколько этапов:

Storage → RAM → CPU → подготовка данных → GPU

Если CPU не успевает подготовить данные, ускоритель может простаивать.

RAM нужна для датасетов и сервисов

Большие наборы данных, индексы, кэши и приложения могут потреблять значительный объем оперативной памяти.

Для RAG CPU и RAM также могут иметь большое значение, поскольку сама генерация текста только часть системы. Поиск документов, обработка запросов, embeddings, базы данных и сервисная логика тоже требуют ресурсов.

PCIe и подключение GPU

Для GPU-сервера важна не только сама видеокарта, но и способ ее подключения.

GPU взаимодействует с CPU и другими устройствами через высокоскоростную шину, в современных серверах обычно PCI Express.

При конфигурации с несколькими ускорителями необходимо учитывать:

  • количество PCIe-линий;
  • поколение PCIe;
  • топологию подключения;
  • распределение линий между устройствами;
  • пропускную способность;
  • наличие дополнительных сетевых адаптеров и накопителей.

Если в сервер устанавливается несколько мощных GPU, конфигурация материнской платы и CPU должна поддерживать такую плотность устройств.

Питание и охлаждение GPU-сервера

Высокопроизводительные GPU потребляют значительно больше энергии, чем обычные компоненты серверной системы.

Поэтому при проектировании необходимо учитывать:

  • суммарное энергопотребление;
  • мощность блоков питания;
  • резервирование PSU;
  • тепловыделение;
  • воздушный поток;
  • плотность размещения;
  • возможности серверной стойки;
  • систему охлаждения дата-центра.

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

Это одна из причин, почему GPU-инфраструктура должна проектироваться как единая система, а не как набор отдельных комплектующих.

Какое хранилище нужно для ИИ

Хранилище в AI-инфраструктуре выполняет сразу несколько функций.

На нем могут находиться:

  • датасеты;
  • веса моделей;
  • checkpoints;
  • результаты обучения;
  • документы;
  • изображения и видео;
  • embeddings;
  • резервные копии.

При этом для разных данных оптимальны разные типы хранения.

NVMe для ИИ

Высокопроизводительные NVMe-накопители подходят для задач, где важны скорость доступа и высокая пропускная способность.

Например:

  • локальный dataset;
  • временные файлы;
  • cache;
  • checkpoints;
  • модели;
  • рабочие данные;
  • scratch storage.

Особенно важна скорость хранения, когда GPU постоянно получает большие объёмы данных.

Если хранилище не успевает отдавать данные, часть вычислительного потенциала ускорителей может простаивать.

Объектное хранилище

Объектное хранилище удобно использовать для больших объемов данных:

  • datasets;
  • архивов;
  • моделей;
  • checkpoints;
  • результатов экспериментов;
  • резервных копий.

S3-совместимые хранилища часто используются как отдельный слой AI-инфраструктуры, отделённый от локального быстрого storage.

Такую архитектуру можно представить следующим образом:

GPU-сервер → быстрый NVMe → рабочие данные

GPU-сервер → Object Storage → datasets / модели / архивы / backup

Это позволяет не хранить весь объем данных непосредственно на локальных дисках каждого GPU-сервера.

HDD все еще нужен

Для AI-инфраструктуры не обязательно хранить абсолютно все данные на NVMe.

HDD может использоваться для:

  • архивов;
  • резервных копий;
  • больших объёмов редко используемых данных;
  • долгосрочного хранения datasets;
  • cold storage.

Поэтому оптимальная архитектура часто состоит из нескольких уровней:

NVMe → быстрые рабочие данные

SSD/HDD → основной объем

Object Storage → централизованные datasets и архивы

Какая сеть нужна для ИИ-инфраструктуры

На одном сервере сеть может казаться второстепенным компонентом.

В GPU-кластере ситуация меняется.

Если несколько серверов одновременно обучают одну модель, им необходимо постоянно обмениваться данными. В результате сеть становится частью вычислительной инфраструктуры.

При распределенном обучении используются коллективные операции, например all-reduce, all-gather и reduce-scatter. PyTorch поддерживает такие операции через torch.distributed, а для CUDA GPU рекомендует NCCL.

Ethernet

Ethernet может использоваться для:

  • доступа пользователей;
  • управления серверами;
  • передачи данных;
  • работы storage;
  • связи между узлами;
  • распределённого обучения.

Скорость сети выбирается исходя из нагрузки.

В небольших конфигурациях может быть достаточно 10 или 25 GbE. В более производительных системах используются 100 GbE и выше.

Но сама цифра скорости не является универсальным требованием. Необходимо учитывать объём передаваемых данных, количество GPU, архитектуру приложения и характер нагрузки.

InfiniBand

InfiniBand применяется в высокопроизводительных вычислительных системах и GPU-кластерах, где требуется очень быстрая связь между узлами.

Для распределённого обучения PyTorch поддерживает работу NCCL с InfiniBand и GPUDirect, что позволяет строить высокопроизводительные коммуникационные схемы между GPU-серверами.

Однако InfiniBand нужен не каждому AI-серверу.

Для одного GPU-сервера или небольшой системы инференса обычного Ethernet может быть вполне достаточно.

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

Программная инфраструктура для ИИ

Аппаратного сервера недостаточно.

Между GPU и приложением находится программный стек.

Упрощенно он выглядит так:

Linux → драйвер GPU → CUDA → библиотеки → Docker → AI framework → модель → приложение

Linux

Большинство серверных AI-систем работают на Linux благодаря поддержке GPU, контейнеров, драйверов и инструментов машинного обучения.

CUDA

CUDA предоставляет программную платформу для разработки и запуска GPU-ускоренных приложений. В экосистему входят библиотеки, инструменты разработки, профилирования и другие компоненты, необходимые для работы GPU-приложений.

Для приложений на базе NVIDIA GPU совместимость версий драйвера, CUDA и используемого фреймворка является важной частью инфраструктуры.

Docker

Контейнеры позволяют упаковать приложение вместе с зависимостями и сделать окружение воспроизводимым.

Для AI это особенно полезно, поскольку конкретное приложение может зависеть от:

  • версии Python;
  • версии CUDA;
  • GPU-драйверов;
  • PyTorch;
  • библиотек машинного обучения;
  • системных пакетов.

PyTorch и другие фреймворки

Фреймворк предоставляет разработчику инструменты для создания и запуска моделей.

В инфраструктуре могут использоваться:

  • PyTorch;
  • TensorFlow;
  • JAX;
  • специализированные библиотеки для LLM;
  • библиотеки инференса;
  • инструменты распределённых вычислений.

При этом конкретный стек зависит от модели и приложения.

Нужен ли Kubernetes для ИИ

Если компании нужно запустить одну LLM на одном GPU-сервере, Kubernetes может быть избыточным.

Но при увеличении инфраструктуры он становится полезнее.

Например, когда появляются:

  • несколько GPU-серверов;
  • несколько моделей;
  • разные команды;
  • очереди задач;
  • автоматическое масштабирование;
  • сервисы inference;
  • требования к отказоустойчивости.

Kubernetes имеет механизм device plugins, который позволяет подключать специализированные ресурсы, включая GPU, высокопроизводительные сетевые устройства и другие аппаратные ускорители. Поддержка GPU в Kubernetes является стабильной функцией.

Таким образом:

один GPU-сервер → Kubernetes обычно не обязателен

GPU-кластер → Kubernetes может существенно упростить управление ресурсами и сервисами

Инфраструктура для обучения ИИ

Обучение модели предъявляет максимальные требования к вычислительной части.

Типовая архитектура может выглядеть так:

              

В небольшой системе все GPU могут находиться в одном сервере.

При увеличении нагрузки используются несколько узлов. PyTorch поддерживает как многокарточное обучение внутри одного узла, так и распределённое обучение между несколькими узлами.

В такой архитектуре критичны:

  • объем VRAM;
  • количество GPU;
  • пропускная способность между GPU;
  • скорость storage;
  • сеть между серверами;
  • CPU и RAM;
  • надежность хранения checkpoints.

Инфраструктура для инференса

Инфраструктура для inference устроена иначе.

Задача здесь не в том, чтобы обучить модель, а в том, чтобы быстро и стабильно обслуживать запросы.

Упрощенная архитектура:

               

Для inference важны:

  • размер модели;
  • VRAM;
  • задержка ответа;
  • количество запросов;
  • throughput;
  • batching;
  • количество GPU;
  • время загрузки модели;
  • отказоустойчивость.

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

Какая инфраструктура нужна для разных задач

Требования лучше всего оценивать не по названию модели, а по сценарию использования.

Задача

Вычисления

Хранилище

Сеть

Запуск небольшой LLM

1 GPU или несколько GPU

NVMe

10/25 GbE

RAG-система

GPU + CPU

NVMe + Object Storage

10/25 GbE

Fine-tuning

1 или несколько GPU

быстрый NVMe

25/100 GbE

Распределенное обучение

GPU-кластер

NVMe + Object Storage

100 GbE и выше / специализированная сеть

Массовый inference

несколько GPU-серверов

NVMe + централизованное storage

25/100 GbE и выше

Это не универсальные требования к оборудованию, а ориентир для первоначального проектирования. Реальная конфигурация зависит от размера модели, precision, batch size, количества пользователей, объема данных и архитектуры приложения.

Можно ли запустить ИИ без GPU

Не каждому AI-проекту нужен GPU-сервер.

GPU может не потребоваться, если:

  • приложение работает через внешний AI API;
  • модель небольшая;
  • используется CPU-инференс;
  • AI является только одной частью приложения;
  • основная нагрузка приходится на API, базы данных или бизнес-логику.

Например, AI-агент может использовать внешний API модели, а на собственном сервере запускать:

  • Python или Node.js;
  • Docker;
  • базу данных;
  • очереди;
  • фоновые задачи;
  • web-приложение.

В таком случае достаточно CPU, RAM и NVMe.

Если же необходимо самостоятельно запускать требовательную локальную модель, стоит рассматривать GPU-сервер.

Один GPU-сервер или GPU-кластер

Выбор зависит от масштаба задачи.

Сценарий Один GPU-сервер GPU-кластер
Разработка AI ✓  
Эксперименты ✓  
Небольшая LLM ✓  
RAG ✓  
Небольшой inference ✓  
Большое количество запросов возможно ✓
Большая модель возможно ✓
Распределённое обучение   ✓
Большие вычислительные задачи   ✓
Высокая отказоустойчивость возможно ✓

Для небольшой команды один хорошо подобранный GPU-сервер часто оказывается проще и рациональнее полноценного кластера.

Как спроектировать инфраструктуру для ИИ

Подбор оборудования удобно выполнять последовательно.

1. Определить задачу

Training, fine-tuning, inference, RAG или другая AI-нагрузка.

2. Определить модель

Нужно знать:

  • размер модели;
  • архитектуру;
  • требования к памяти;
  • поддерживаемую precision;
  • необходимость квантования.

3. Рассчитать VRAM

Учитываются:

веса модели + KV cache + runtime + промежуточные данные

Для обучения дополнительно:

активации + градиенты + состояние оптимизатора

4. Определить количество GPU

После оценки памяти и производительности становится понятно, достаточно ли одной GPU или требуется несколько ускорителей.

5. Подобрать CPU и RAM

CPU должен успевать обрабатывать данные и обслуживать GPU, а RAM — обеспечивать работу приложений, datasets, баз данных и кэшей.

6. Определить storage

Разделить данные на:

  • быстрые рабочие;
  • основные;
  • архивные;
  • резервные.

7. Определить сеть

Для одного сервера достаточно обычной серверной сети.

Для GPU-кластера необходимо отдельно оценить межсерверный трафик, storage traffic и пользовательские подключения.

8. Продумать масштабирование

Необходимо заранее понять:

  • можно ли добавить GPU;
  • можно ли увеличить storage;
  • потребуется ли второй сервер;
  • нужна ли балансировка;
  • потребуется ли Kubernetes.

9. Проверить программную совместимость

Перед развертыванием необходимо проверить связку:

GPU → драйвер → CUDA → framework → библиотеки → модель → приложение

Типовые ошибки при создании AI-инфраструктуры

Одна из распространенных ошибок - выбирать сервер только по GPU.

На практике проблемы могут возникнуть из-за:

  • недостаточного объема VRAM;
  • нехватки RAM;
  • медленного диска;
  • слабой сети;
  • недостаточного количества PCIe-линий;
  • проблем с охлаждением;
  • отсутствия резервирования;
  • неправильной конфигурации программного окружения.

Поэтому AI-инфраструктуру нужно рассматривать как единую систему.

Пример архитектуры корпоративной AI-системы

Для корпоративного AI-сервиса инфраструктура может выглядеть следующим образом:

Для небольшой компании несколько компонентов могут находиться на одном сервере.

По мере роста нагрузки инфраструктуру можно разделить:

  • GPU-серверы — для inference;
  • CPU-серверы — для приложений;
  • NVMe — для быстрых локальных данных;
  • Object Storage — для datasets и документов;
  • отдельная сеть — для межсерверного взаимодействия;
  • Kubernetes — для управления большим количеством сервисов.

Заключение

AI-инфраструктура это не один мощный сервер, а набор взаимосвязанных компонентов.

GPU обеспечивает основную вычислительную мощность, VRAM определяет, какие модели и задачи можно разместить на ускорителе, CPU и RAM обеспечивают работу приложений и подготовку данных, NVMe и объектное хранилище отвечают за данные и модели, а сеть связывает вычислительные узлы и системы хранения.