Ray (Framework / Conceito)

Compartilhado por um usuário do Flashcards.gg · gerado com IA · Denunciar este conjunto

Estudo sobre o framework Ray para computação distribuída e escalabilidade de IA em Python.

52 cartões Português Nível: Ensino superior Programação Publicado
Toque no cartão para virar

Cartões · 52

O que é o Ray?
Framework de código aberto para computação distribuída em Python, projetado para escalar cargas de IA e machine learning.
Qual é o principal objetivo do Ray?
Simplificar a transição de código Python local para execução paralela e distribuída em clusters, sem complexidade de infraestrutura.
Ray Core
Camada base que fornece primitivas simples (tasks, actors, objetos) para paralelização e orquestração de código arbitrário.
Ray Task
Função Python assíncrona e sem estado (stateless) executada em um processo de worker independente no cluster.
Como definir uma Ray Task?
Decorando uma função Python padrão com @ray.remote e chamando-a com .remote().
Ray Actor
Instância de classe com estado (stateful) executada em seu próprio worker dedicado, mantendo variáveis internas.
Como definir um Ray Actor?
Decorando uma classe Python com @ray.remote e instanciando-a com MinhaClasse.remote().
Object Store (Plasma)
Armazém de objetos em memória compartilhada por nós, permitindo leitura rápida e cópia zero (zero-copy) entre processos locais.
ObjectRef
Identificador de referência ou ponteiro para um valor futuro mantido no Object Store após a invocação de uma task.
ray.get()
Função bloqueante usada para recuperar o valor real por trás de um ou mais ObjectRefs.
ray.put()
Função que armazena explicitamente um objeto Python no Object Store compartilhado e retorna seu ObjectRef.
ray.wait()
Função que aguarda a conclusão de um subconjunto de ObjectRefs, permitindo processar resultados à medida que ficam prontos.
ray.init()
Inicializa o runtime do Ray, criando um cluster local de nós se nenhum endereço de cluster existente for fornecido.
ray.shutdown()
Encerra a conexão com o cluster Ray e finaliza os processos de background gerenciados pelo runtime.
Head Node (Nó Mestre)
Nó principal do cluster que gerencia o estado global, o agendamento de recursos e o painel de monitoramento (dashboard).
Worker Node (Nó Trabalhador)
Nó que executa tasks e actors atribuídos pelo scheduler, contendo instâncias do Raylet e Object Store.
Raylet
Processo de infraestrutura local em cada nó, responsável pelo agendamento de tarefas e gerenciamento de memória compartilhada.
Global Control Store (GCS)
Serviço central de metadados no head node que armazena linhagem de objetos, localização de atores e status do cluster.
Zero-Copy Deserialization
Capacidade de múltiplos workers lerem estruturas de dados do Apache Arrow no Object Store sem alocar memória duplicada.
Ray Dashboard
Interface web integrada para monitoramento de nós, recursos de hardware, logs, atores ativos e erros em tempo real.
Ray Data
Biblioteca escalável para carregamento e pré-processamento de dados distribuídos para pipelines de treinamento de IA.
Dataset (Ray Data)
Coleção particionada e distribuída de registros em streaming com suporte para operações funcionais como map, filter e batch.
Ray Train
Módulo do ecossistema Ray projetado para treinamento distribuído com PyTorch, TensorFlow e outras bibliotecas de deep learning.
Ray Tune
Biblioteca de otimização de hiperparâmetros que implementa algoritmos de busca e parada antecipada com alta escalabilidade.
Ray Serve
Framework escalável para servir modelos de machine learning e pipelines de inferência por APIs HTTP ou gRPC.
RLlib
Biblioteca do Ray voltada para aprendizado por reforço (Reinforcement Learning), oferecendo algoritmos escaláveis de ponta.
Placement Groups
Mecanismo para reservar e agrupar recursos físicos para tasks ou actors seguindo estratégias de afinidade ou anti-afinidade.
Estratégia STRICT_SPREAD
Regra de placement group que força cada task ou actor a ser alocado em um nó físico completamente diferente.
Estratégia STRICT_PACK
Regra de placement group que exige que todos os recursos e processos sejam alocados rigorosamente no mesmo nó físico.
Estratégia PACK
Estratégia que tenta empacotar os recursos no mesmo nó, mas permite outros nós se o primeiro estiver cheio.
Estratégia SPREAD
Estratégia que tenta espalhar a carga entre múltiplos nós físicos para balanceamento de carga ou tolerância a falhas.
Autoscaler do Ray
Componente que provisiona dinamicamente novas instâncias em nuvem quando a demanda por recursos cresce, e encerra nós ociosos.
num_cpus em @ray.remote
Parâmetro que define a quantidade de núcleos de CPU lógicos que o escalonador deve alocar para a task ou actor.
num_gpus em @ray.remote
Parâmetro que reserva explicitamente GPUs físicas ou fracionárias para execução exclusiva do processo.
Fractional GPUs
Capacidade do Ray de compartilhar uma única GPU física entre múltiplos actors definindo frações como num_gpus=0.5.
Custom Resources
Recursos definidos pelo usuário (ex: licenças de software, memórias especiais) controlados pelo escalonador do Ray.
Dynamic Task Graphs
Capacidade do Ray de gerar tarefas secundárias a partir de tarefas em execução, sem necessidade de um grafo estático prévio.
Fault Tolerance em Tasks
Capacidade de reexecutar automaticamente tasks idênticas caso um nó falhe, recorrendo à linhagem dos dados.
max_retries
Parâmetro em tasks remotas que determina quantas tentativas automáticas de repetição ocorrem em caso de falha de execução.
Actor Checkpointing
Mecanismo para salvar o estado de um ator periodicamente, permitindo recuperação rápida se o processo for interrompido.
KubeRay
Operador oficial de Kubernetes projetado para implantar, gerenciar e escalar clusters Ray de maneira declarativa nativa.
Ray Client
Mecanismo que permite a um script local conectar-se transparentemente a um cluster Ray remoto via rede.
Spilling de Objetos
Recurso que move objetos da memória compartilhada para armazenamento externo (disco/S3) quando a RAM está cheia.
Nested Tasks
Chamada de tasks remotas a partir de dentro de outra task remota, viabilizada pelo grafo dinâmico do Ray.
Deployment (Ray Serve)
Unidade autônoma de código em Ray Serve que encapsula um modelo ou lógica de serviço com regras próprias de réplicas e recursos.
Pipeline Parallelism com Ray Train
Divisão de camadas de grandes redes neurais entre múltiplos dispositivos e workers sequenciados no cluster.
Data Parallelism com Ray Train
Distribuição de batches de dados distintos para múltiplas cópias do modelo computando gradientes paralelamente.
Search Algorithms (Ray Tune)
Algoritmos como Bayesian Optimization, Optuna ou HyperOpt integrados para explorar eficientemente espaços de hiperparâmetros.
Schedulers de Parada (Ray Tune)
Mecanismos como ASHA e HyperBand que interrompem antecipadamente experimentos com baixo desempenho, economizando GPU.
Ray AIR (AI Runtime)
Conjunto unificado de bibliotecas de aplicação de alto nível do Ray integrando dados, treino, sintonia e inferência.
Diferença entre Task e Actor no Ray
Tasks são efêmeras e sem estado para chamadas pontuais; Actors persistem na memória e preservam estado interno contínuo.
Vantagem do Ray sobre o Spark
O Ray suporta cargas de trabalho de baixa latência, grafos dinâmicos e estado persistente (actors), ideais para deep learning e RL.

Conjuntos relacionados

Mais em Programação →