Ray
return self.value
Результат: паралельний запуск trials і вибір найкращої конфігурації.; * Ray Data documentation.;
</syntaxhighlight>
Ray має обмеження.;
== Ray Train ==
Задача: підібрати learning rate, batch size і model parameters.;<div style="background:#eef2ff; border-left:6px solid #4f46e5; padding:12px; margin:12px 0;">
* `@ray.remote` робить функцію distributed task;
* `square.remote(i)` запускає task;
* `ray.get(refs)` отримує результати;
* Ray сам планує виконання tasks на доступних ресурсах.; Рекомендовано:
Ray Serve має змогу використовуватися для:
</div>
== Для чого застосовується Ray ==
== Batch inference ==
'''Ray Data''' — це бібліотека Ray для distributed data processing.; '''істотно:''' надмірне використання `ray.get` у неправильному місці має змогу зменшити паралельність, бо код почне чекати результатів занадто рано.; RLlib сприяє масштабувати RL workloads, але не скасовує потреби в правильній постановці environment, reward function і evaluation.;
істотно: autoscaling потрібно налаштовувати обережно, інакше можна отримати надмірні cloud-витрати або нестабільну продуктивність.; :contentReference [oaicite:6]{index=6}
* персональні інформаційні дані;
* фінансові інформаційні дані;
* медичні інформаційні дані;
* секретні ключі;
* customer data;
* приватні документи;
* production database dumps;
* комерційні таємниці;
* неанонімізовані datasets.; * Ray Core documentation.; * distributed systems складні самі по собі;
* debugging важчий, ніж у локальному Python;
* network overhead має змогу зменшити виграш;
* object store має змогу стати bottleneck;
* потрібне планування ресурсів;
* GPU scheduling потребує уваги;
* неправильний `ray.get` має змогу зламати parallelism;
* autoscaling має змогу створити cost risks;
* production deployment потребує observability;
* не кожну задачу варто масштабувати через Ray;
* потрібне розуміння fault tolerance.; :contentReference [oaicite:0]{index=0}
== KubeRay ==
Не варто без потреби обробляти або логувати:
Правило: distributed pipeline має ті самі privacy-вимоги, що й локальний pipeline, але з більшим ризиком через більше машин, логів, cache і мережевих шляхів.;
Ray є собою open-source фреймворком, а Anyscale надає комерційні інструменти й platform experience для розгортання Ray у production.; Ray Core надає три основні примітиви:
self.value = 0
- container orchestration;
- pod scheduling;
- resource isolation;
- cluster management;
- integration with cloud-native tooling;
- observability;
- autoscaling;
- GitOps workflows;
- infrastructure consistency.; result = ray.get(ref)
Просте пояснення: Ray cluster — це середовище, де Ray розподіляє tasks, actors і objects між різними ресурсами.;
- model worker;
- cache;
- service object;
- simulator;
- environment у reinforcement learning;
- long-running process;
- stateful pipeline component.;== Загальний характеристика ==
ray.init()
* serving ML models;
* LLM serving;
* online inference;
* microservices with Python;
* autoscaling deployments;
* model composition;
* A/B testing;
* multi-model serving;
* batch або streaming inference endpoint;
* integration with FastAPI-style workflows.; import ray
</div>
* parallel hyperparameter tuning;
* distributed cross-validation;
* batch inference;
* preprocessing великого dataset;
* запуск багатьох експериментів;
* scalable classical ML workflows.;<syntaxhighlight lang="python">
'''Практична роль:''' KubeRay потрібен командам, які вже використовують Kubernetes і хочуть запускати Ray workloads у cloud-native середовищі.; '''KubeRay''' — це інструментарій для запуску Ray на Kubernetes.; Ray додатково можна порівняти з Dask.;<div style="background:#fef2f2; border-left:6px solid #ef4444; padding:12px; margin:12px 0;">
== Objects ==
Ray часто застосовується для batch inference, коли потрібно:
'''Критично:''' fault tolerance не з’являється автономно для будь-якої логіки.; Ray Data має змогу використовуватися для:
!; Можливі сценарії:
Autoscaling сприяє:
Model serving
Ray Tune має змогу використовуватися для:
- grid search;
- random search;
- Bayesian optimization;
- early stopping;
- distributed trials;
- experiment tracking;
- tuning ML models;
- tuning deep learning training;
- пошуку learning rate, batch size, model size, regularization;
- оптимізації costly experiments.; Ray кешує remote objects у distributed shared-memory object store.; !; Apache Spark
Типові задачі:
- ETL;
- batch inference;
- preprocessing;
- reading datasets;
- transformation pipelines;
- distributed map operations;
- streaming data pipelines;
- feeding data into training;
- large-scale data workloads.; У повідомленні Ray описано як open-source distributed computing framework for AI workloads, включно з data processing, model training і inference at scale.; істотно: Kubernetes додає потужність, але й складність.;
Практична користь: без observability distributed system оперативно стає “чорною скринькою”, з цієї причини dashboard і logs критично важливі.; * починати локально;
- вимірювати baseline без Ray;
- робити tasks достатньо великими;
- уникати зайвого `ray.get`;
- використовувати actors для stateful workloads;
- контролювати object store memory;
- задавати CPU/GPU resources;
- використовувати checkpointing;
- налаштовувати logs і metrics;
- тестувати failure cases;
- використовувати dashboard;
- контролювати cloud costs;
- захищати cluster access;
- документувати pipeline.; Якщо йдеться про ML pipeline, варто дивитися Ray Data, Train, Tune або Serve.; * RLlib documentation.;== Ray і Anyscale ==
Actors
Objects у Ray — це інформаційні дані, які створюються tasks або actors і зберігаються в distributed object store.; * занадто дрібні tasks;
- занадто частий `ray.get`;
- передача великих objects без потреби;
- відсутність resource annotations;
- неправильне планування GPU;
- відсутність retry logic;
- відсутність checkpointing;
- ігнорування object store memory;
- запуск cluster без observability;
- відкритий dashboard;
- неконтрольовані cloud costs;
- відсутність тестів перед масштабуванням;
- відсутність cleanup після jobs.;
- Ray Core — базовий distributed runtime;
- Ray Data — distributed data processing;
- Ray Train — distributed model training і fine-tuning;
- Ray Tune — hyperparameter tuning;
- Ray Serve — model serving і scalable inference;
- RLlib — reinforcement learning;
- Ray Clusters — запуск Ray на локальних машинах, VM, Kubernetes або cloud;
- KubeRay — запуск і керування Ray у Kubernetes.; * локально на одній машині;
- на кількох VM;
- у cloud;
- у Kubernetes;
- через KubeRay;
- у managed платформі;
- у hybrid environments.; * додавати worker nodes при зростанні навантаження;
- зменшувати ресурси, коли workload завершується;
- оптимізувати cost;
- обробляти burst workloads;
- запускати distributed jobs у cloud;
- масштабувати training, inference або data workloads.; results = ray.get(refs)
Суть Ray Core: це фундамент Ray, який надає можливість перетворювати Python-функції та класи на distributed tasks і actors.; Приклади:
Професійний підхід: Ray має масштабувати добре спроєктований pipeline, а не приховувати проблеми архітектури, даних або коду.; * Ray Serve documentation.; Висновок: Spark сильний у big data ETL і SQL-аналітиці, а Ray часто краще підходить для гнучких Python/AI workloads, training, inference і model serving.; Під час роботи з Ray потрібно уважно ставитися до даних, які передаються між tasks, actors, object store і cluster nodes.;== Ray і Spark ==
Ray можна розглядати як distributed runtime і набір AI-бібліотек для масштабування Python та ML-застосунків.; Ray потрібен тоді, коли звичайного локального Python-коду вже недостатньо.; Інструмент: Ray Data + Ray actors або Ray Serve.;
Типові сценарії:
Суть Ray Train: він сприяє масштабувати навчання моделей без ручного керування всією distributed training інфраструктурою.; Ray має змогу доповнювати Scikit-learn у задачах, де потрібно масштабування.; * тестувати локально до запуску на cluster;
- починати з малого workload;
- вимірювати performance;
- контролювати cost;
- додавати logging;
- використовувати metrics;
- налаштовувати retries;
- робити checkpointing;
- перевіряти security;
- обмежувати permissions;
- документувати cluster setup;
- перевіряти data governance;
- тестувати failure scenarios.; Якщо задача маленька або має багато дрібних залежних кроків, Ray має змогу не дати виграшу.;
</syntaxhighlight> Ray Tune — це бібліотека для hyperparameter tuning.; Результат: scalable endpoint для prediction-запитів.; :contentReference [oaicite:3]{index=3} ray.init() !; Підказка: якщо задача має незалежні шматки роботи, Ray Core має змогу бути достатнім.;=== Parallel Python tasks ===
Ray Data
Результат: паралельний запуск Python-функцій на доступних CPU.; :contentReference [oaicite:4]{index=4}
офіційно затверджений сайт Ray by Anyscale описує Ray як open source framework для managing, executing and optimizing compute needs, з фокусом на AI workloads: data processing, training і serving.;<div style="background:#f0eaff; border-left:6px solid #8e44ad; padding:12px; margin:12px 0;">
== Типові сценарії використання ==
* batch inference для великого dataset;
* distributed training PyTorch-моделі;
* fine-tuning LLM;
* hyperparameter tuning;
* scalable embeddings pipeline;
* reinforcement learning experiment;
* model serving API;
* distributed simulation;
* parallel web data processing;
* large-scale feature engineering;
* multi-GPU inference;
* GenAI document processing pipeline;
* Kubernetes-based AI platform.; масштабування Python-застосунків забезпечується через '''Ray''' — це open-source фреймворк; додатково реалізовано AI workloads і машинного навчання від локального комп’ютера до кластерів із багатьма CPU, GPU або TPU.; Ray має змогу працювати поверх Kubernetes через KubeRay.; Можливі складнощі:
Ray часто застосовують, коли потрібно разом із PyTorch.;</div>
print(ray.get(counter.increment.remote()))
<div style="background:#ecfdf5; border-left:6px solid #10b981; padding:12px; margin:12px 0;">
<div style="background:#e8f8f5; border-left:6px solid #16a085; padding:12px; margin:12px 0;">
* parallel Python execution;
* distributed data processing;
* batch inference;
* distributed training;
* fine-tuning моделей;
* hyperparameter search;
* reinforcement learning;
* model serving;
* multi-GPU workloads;
* LLM inference;
* GenAI pipelines;
* scalable ETL;
* distributed simulation;
* cloud-native AI workloads.; :contentReference [oaicite:2]{index=2}
<div style="background:#eafaf1; border-left:6px solid #2ecc71; padding:12px; margin:12px 0;">
Це надає можливість:
<div style="background:#eef2ff; border-left:6px solid #4f46e5; padding:12px; margin:12px 0;">
<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">
<div style="background:#e8f8f5; border-left:6px solid #16a085; padding:12px; margin:12px 0;">
* '''tasks''' — розподілені функції;
* '''actors''' — stateful distributed objects;
* '''objects''' — distributed objects у shared-memory object store.;<div style="background:#e8f8f5; border-left:6px solid #16a085; padding:12px; margin:12px 0;">
* запускати обчислення асинхронно;
* будувати dependency graph;
* передавати результати між tasks;
* не блокувати виконання без потреби;
* масштабувати parallel workflows.; return x * x
RLlib має змогу використовуватися для:
'''Практична роль:''' foundation-hosted статус підкреслює значення Ray у ширшій open-source AI infrastructure екосистемі.; '''істотно:''' reinforcement learning складний сам по собі.; Інструмент: Ray Train.; '''Ray''' — це open-source фреймворк для масштабування Python і AI workloads.; '''Головне правило:''' Ray найкраще функціонує тоді, коли задача має реальну паралельність, достатньо великі одиниці роботи і зрозумілу стратегію керування ресурсами.;</div>
<div style="background:#eafaf1; border-left:6px solid #2ecc71; padding:12px; margin:12px 0;">
== переважні аспекти Ray ==
Dashboard сприяє бачити:
<div style="background:#fef2f2; border-left:6px solid #ef4444; padding:12px; margin:12px 0;">
</div>
</div>
counter = Counter.remote()
Під час роботи з Ray часто виникають типові помилки.; Він надає Ray Core для distributed tasks, actors і objects, а додатково AI-бібліотеки для data processing, training, tuning, serving і reinforcement learning.;</div>
* результатами функцій;
* batch data;
* model weights;
* intermediate results;
* large arrays;
* references між tasks;
* даними для downstream processing.; Інструмент: Ray Core tasks.;<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">
Actors корисні, коли потрібно зберігати стан між викликами:
Ray складається з:
Приклад:
</div>
Ray потрібно використовувати як infrastructure tool, а не як гарантію правильності ML-рішення.; class Counter:
def increment(self):
== Приватність даних ==
Задача: обробити великий dataset моделлю.; Інструмент: Ray Serve.; '''Ray Serve''' — це бібліотека для scalable model serving.;<div style="background:#ecfdf5; border-left:6px solid #10b981; padding:12px; margin:12px 0;">
'''Ray Core''' — це базовий distributed computing framework у Ray.; '''Ray Dashboard''' — це інтерфейс для спостереження за Ray cluster.; * head node;
* worker nodes;
* scheduler;
* object stores;
* workers;
* dashboard;
* autoscaling mechanism залежно від setup.; Ray
Інструмент: Ray Tune.; Distributed workloads мають ризики збоїв.; Доступи, firewall, authentication, network policies і secrets management потрібно налаштовувати окремо.; Ray додатково має змогу використовуватися з TensorFlow.;<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">
Офіційна документація описує RLlib як open source library for reinforcement learning, що підтримує роботу production-level, highly scalable і fault-tolerant RL workloads через unified APIs.;== Ray і PyTorch ==
Ray workloads можуть працювати з кодом, даними, моделями, ключами, cloud resources і мережевими сервісами, з цієї причини безпека є собою критичною.;== Див.; додатково ==
== Object refs ==
'''істотно:''' Ray не робить повільний або погано спроєктований код автономно швидким.;</div>
У 2025 році PyTorch Foundation повідомила, що Ray став foundation-hosted project.; * Ray Train documentation.; :contentReference [oaicite:1]{index=1}
=== Hyperparameter tuning ===
Objects можуть бути:
Ray застосовується для розподілених обчислень, data processing, model training, fine-tuning, batch inference, model serving, hyperparameter tuning, reinforcement learning, LLM applications, GenAI pipelines і high-performance Python workloads.; Ray особливо корисний для ML-команд, AI platform teams, Python-розробників і data/ML engineers, яким потрібно масштабувати код від локального ноутбука до cluster або cloud.; '''Висновок:''' Ray не замінює TensorFlow, а має змогу допомагати масштабувати TensorFlow workloads у distributed environment.; Ray cluster має змогу працювати:
Задача: розгорнути модель як online inference service.; Офіційна документація описує Ray Train як scalable machine learning library for distributed training and fine-tuning, яка надає можливість масштабувати training code з однієї машини до cluster of machines і абстрагує складність distributed computing.; Коли remote task запускається, вона часто повертає не сам результат одразу, а reference:
</div>
== Обмеження Ray ==
Ray Train — це бібліотека для distributed training і fine-tuning.; * Офіційна документація Ray.; * task retry;
- actor restart;
- node failure handling;
- checkpointing;
- object reconstruction;
- job recovery;
- training checkpoints;
- serving resilience.;== Fault tolerance ==
Anyscale — це організація, пов’язана з розвитком Ray і managed-платформами для Ray workloads.; KubeRay має змогу допомагати:
Ray Dashboard
ObjectRef — це посилання на object у Ray.; Водночас Ray вимагає розуміння distributed systems: resource scheduling, memory, object store, retries, checkpointing, observability, security і cost control.; Перевага: Ray об’єднує кілька частин AI pipeline — data processing, training, tuning, serving і reinforcement learning — навколо одного distributed runtime.; Висновок: Dask зручний для parallel data workflows у стилі pandas/NumPy, а Ray — для ширших distributed AI і Python applications.;== Ray і Python ==
- open-source;
- масштабування Python-коду;
- прості primitives: tasks, actors, objects;
- супровід AI workloads;
- Ray Data;
- Ray Train;
- Ray Tune;
- Ray Serve;
- RLlib;
- супровід CPU і GPU workloads;
- локальний і cluster запуск;
- Kubernetes через KubeRay;
- Python-friendly API;
- корисність для ML, LLM і GenAI pipeline;
- можливість масштабувати від laptop до cloud cluster.; Критерій
- масштабувати Python-функції;
- масштабувати Python-класи;
- запускати distributed ML code;
- використовувати familiar Python APIs;
- поєднувати NumPy, pandas, PyTorch, TensorFlow та інші бібліотеки;
- запускати jobs локально або на cluster.; Ray має змогу підтримувати механізми fault tolerance залежно від типу workload і налаштувань:
print(results)
Небезпека: distributed workload має змогу працювати повільніше й дорожче за локальний, якщо розбити задачу неправильно або не контролювати overhead.;Ray Serve
- distributed training;
- hyperparameter tuning;
- serving моделей;
- batch inference;
- data preprocessing;
- experiment orchestration.; Потрібно правильно розбивати задачу, контролювати інформаційні дані, ресурси, пам’ять, fault tolerance і network overhead.; Офіційна документація описує Ray як open-source framework to build and scale ML and Python applications, а GitHub-репозиторій — як unified framework for scaling AI and Python applications із core distributed runtime і AI libraries.;
Офіційна документація Ray Core описує його як distributed computing framework із tasks, actors і objects для побудови та масштабування distributed applications.; * distributed PyTorch training;
- TensorFlow training;
- multi-GPU training;
- fine-tuning LLM;
- training на великих datasets;
- fault-tolerant training;
- cloud training jobs;
- integration with Ray Data.;== Приклади задач ==
Потрібно контролювати:
Практична порада: перед впровадженням Ray варто чітко визначити bottleneck: CPU, GPU, IO, memory, network або model latency.;
Ray можна використовувати у різних сценаріях.; :contentReference [oaicite:5]{index=5}
'''Суть:''' Ray — open-source проєкт, Anyscale — комерційна програмний пакет й платформа навколо Ray.; def square(x):
== Autoscaling ==
</div>
@ray.remote
Критично: Ray cluster не можна бездумно відкривати в публічну мережу.; * PyTorch Foundation announcement щодо Ray.; * Ray Tune documentation.;
- офіційно затверджений сайт Ray.;
'''Головна думка:''' Ray — це практичний distributed runtime для Python і AI, який сприяє масштабувати data processing, training, inference і serving, але ефективність залежить від правильної архітектури workload і контролю ресурсів.; '''Головна перевага:''' Ray надає можливість масштабувати AI і Python workloads без переходу на в цілому іншу мову або зовсім іншу програмну модель.;== Джерела == Приклад: Ray cluster зазвичай містить: </div> == Ray Tune == * створювати RayCluster; * керувати Ray workloads у Kubernetes; * запускати Ray jobs; * масштабувати workers; * інтегрувати Ray із cloud-native infrastructure; * запускати AI workloads у Kubernetes; * використовувати Kubernetes scheduling, networking і observability.; def __init__(self): '''RLlib''' — це бібліотека Ray для reinforcement learning.; До них належать: '''Практична роль:''' object store надає можливість різним tasks і actors обмінюватися даними без ручного керування файлами, sockets або message queues.;
!; Batch inference — це запуск моделі на великому наборі даних.; ref = square.remote(10) refs = [square.remote(i) for i in range(5)]
Результат: scalable inference pipeline з контрольованим використанням CPU/GPU.;Ray і Dask
Ray і PyTorch Foundation
- доступ до Ray dashboard;
- доступ до Ray cluster;
- network exposure;
- credentials;
- environment variables;
- secrets;
- object store data;
- model artifacts;
- datasets;
- logs;
- permissions у cloud;
- container images;
- supply chain dependencies.; * Ray GitHub repository.; !;
- running tasks;
- actors;
- nodes;
- resources;
- CPU/GPU usage;
- memory usage;
- object store usage;
- logs;
- errors;
- job status;
- performance bottlenecks.; Приклади:
Тематичні мітки
Хороші практики роботи з Ray
Ray Core
Задача: навчити модель на кількох GPU або машинах.; Помилка: додавати Ray до будь-якого Python-коду лише “для швидкості”.; Просте пояснення: task — це Python-функція, яку Ray має змогу виконати не лише в поточному процесі, а паралельно в distributed environment.; Ray
Перевага: Ray надає можливість розподіляти inference workload між багатьма worker processes або GPU, що особливо корисно для AI pipeline.; Ray особливо тісно пов’язаний із Python.; Для невеликого prototype Ray можна запускати локально, а Kubernetes залишити для production або platform engineering.; завдяки наявності Практична роль: Ray Data користувачі можуть обробляти великі datasets і передавати їх у training або inference pipeline.;Ray Cluster — це набір машин або worker nodes, на яких запускається Ray.; Документація Ray пояснює, що tasks і actors створюють objects та працюють з objects; remote objects можуть зберігатися будь-де в Ray cluster, а object refs використовуються для посилання на них.;<syntaxhighlight lang="text">
Ray має змогу використовувати autoscaling у відповідних cluster setups.; Для важливих workload потрібно проєктувати checkpointing, retry, idempotency і recovery.; print(ray.get(counter.increment.remote()))| ключовий фокус | Distributed Python і AI workloads | Parallel і distributed computing для Python data ecosystem |
| Типові інформаційні дані | AI pipelines, ML, inference, actors, training | DataFrames, arrays, delayed computations |
| Сильна сторона | Tasks, actors, AI libraries, model serving | Масштабування pandas/NumPy-like workflows |
| Типові користувачі | ML engineers, AI platform teams, Python backend teams | Data scientists, data engineers, scientific Python users |
Суть Ray Serve: Ray Serve сприяє перетворити модель або Python-функцію на scalable online service.; Задача: виконати багато незалежних обчислень.; Основна ідея: Ray надає можливість взяти Python-функції, класи або ML-процеси й масштабувати їх на багато ядер, машин або GPU без повного переписування застосунку під складну distributed infrastructure.; @ray.remote
!; Dask
- distributed PyTorch training через Ray Train;
- hyperparameter tuning PyTorch моделей через Ray Tune;
- batch inference;
- serving PyTorch моделей через Ray Serve;
- multi-GPU experiments;
- LLM fine-tuning;
- reinforcement learning з PyTorch policies.;
Типові помилки користувачів
Batch inference
Task у Ray — це remote function, яка має змогу виконуватися паралельно на worker процесі.; Рекомендовано: Практична роль: PyTorch відповідає за модель і tensor operations, а Ray — за масштабування training, inference, tuning або serving.; Ray Train має змогу використовуватися для:
{{SEO
Відповідальне використання
Ray часто порівнюють з Apache Spark.;== Висновок ==
Суть actor: це distributed class instance, який живе в Ray cluster і має змогу зберігати стан між remote method calls.; Критерій
Ray Cluster
Ray і Kubernetes
- обробити мільйони документів;
- зробити embeddings;
- класифікувати великий dataset;
- запускати LLM або vision model на batch;
- використовувати GPU ефективніше;
- паралелити inference між worker nodes;
- поєднати data loading і model prediction.;
Tasks
У цьому прикладі:
Це дає:
Ray і Scikit-learn
Практична роль: Ray Tune надає можливість паралельно запускати багато training trials і швидше знаходити вдалі гіперпараметри.; * KubeRay documentation.; Основні переважні аспекти Ray:
- Штучний інтелект
- Machine Learning
- Deep Learning
- Python
- PyTorch
- TensorFlow
- Scikit-learn
- JAX
- Distributed computing
- Apache Spark
- Dask
- Kubernetes
- KubeRay
- MLOps
- Model serving
- Batch inference
- Hyperparameter tuning
- Reinforcement learning
- Ray Serve
- Ray Train
- Ray Tune
- RLlib
- Ray
- Distributed Python
- AI
- Machine Learning
- MLOps
- Ray Core
- Ray Data
- Ray Train
- Ray Tune
- Ray Serve
- RLlib
- Kubernetes
- Документація