MLOps и инструменты 21 просмотр

Ray

Ray

Ray — фреймворк для распределённых вычислений в Python, предоставляющий инструменты для обучения (Ray Train), тюнинга гиперпараметров (Ray Tune), инференса (Ray Serve) и RL (RLlib).

Что такое Ray

Ray — open-source фреймворк (Anyscale), абстрагирующий распределённые вычисления. Позволяет масштабировать Python-код с одной машины на кластер с минимальными изменениями.

Экосистема Ray

Компонент Назначение
Ray Core Распределённые задачи и акторы
Ray Train Распределённое обучение (PyTorch, TF)
Ray Tune Поиск гиперпараметров
Ray Serve Model serving
RLlib Reinforcement Learning
Ray Data Обработка данных

Ray для ML-инференса

vLLM использует Ray для tensor parallelism на нескольких нодах:

# vLLM с Ray для multi-node
from vllm import LLM

llm = LLM(
    model="meta-llama/Llama-3-70B-Instruct",
    tensor_parallel_size=8,  # Ray автоматически распределяет по GPU
    distributed_executor_backend="ray",
)

Ray Train для обучения

import ray.train.torch

def train_func(config):
    model = build_model()
    model = ray.train.torch.prepare_model(model)

    dataloader = build_dataloader()
    dataloader = ray.train.torch.prepare_data_loader(dataloader)

    for epoch in range(config["epochs"]):
        train_epoch(model, dataloader)

trainer = ray.train.torch.TorchTrainer(
    train_func,
    train_loop_config={"epochs": 10},
    scaling_config=ray.train.ScalingConfig(
        num_workers=8,
        use_gpu=True,
    ),
)
result = trainer.fit()

Когда использовать Ray

  • Multi-node serving — vLLM + Ray для кластерного инференса
  • Hyperparameter tuning — Ray Tune с ASHA/PBT schedulers
  • Обработка данных — параллельный preprocessing на кластере
  • Heterogeneous workloads — GPU + CPU задачи в одном пайплайне

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

Используется в

Попробуйте на практике

Арендуйте GPU и запустите ML-модели в Intelion Cloud

Начать работу