Um dos modelos mais populares disponíveis hoje é o XGBoost. Com a capacidade de resolver vários problemas, como classificação e regressão, o XGBoost tornou-se uma opção popular que também se enquadra na categoria de modelos baseados em árvore. Neste post, mergulhamos fundo para ver como Amazon Sage Maker pode atender a esses modelos usando Servidor de inferência NVIDIA Triton. Cargas de trabalho de inferência em tempo real podem ter níveis variados de requisitos e acordos de nível de serviço (SLAs) em termos de latência e taxa de transferência, e podem ser atendidas usando terminais em tempo real do SageMaker.
SageMaker fornece endpoints de modelo único, que permitem implantar um único modelo de aprendizado de máquina (ML) em um ponto de extremidade lógico. Para outros casos de uso, você pode optar por gerenciar custo e desempenho usando endpoints multi-modelo, que permitem especificar vários modelos para hospedar atrás de um endpoint lógico. Independentemente da opção que você escolher, os terminais SageMaker permitem um mecanismo escalável até mesmo para os clientes corporativos mais exigentes, ao mesmo tempo em que fornecem valor em uma infinidade de recursos, incluindo variantes de sombra, dimensionamento automáticoe integração nativa com Amazon CloudWatch (para mais informações, consulte Métricas do CloudWatch para implantações de endpoint de vários modelos).
O Triton oferece suporte a vários back-ends como mecanismos para dar suporte à execução e à exibição de vários modelos de ML para inferência. Para qualquer implantação do Triton, é crucial saber como o comportamento do back-end afeta suas cargas de trabalho e o que esperar para que você seja bem-sucedido. Neste post, ajudamos você a entender o Biblioteca de inferência florestal (FIL) back-end, que é suportado pelo Triton no SageMaker, para que você possa tomar uma decisão informada para suas cargas de trabalho e obter o melhor desempenho e otimização de custo possível.
Mergulhe profundamente no back-end do FIL
Tritão apoia o FIL back-end para servir modelos de árvore, como XGBoostName, LuzGBM, scikit-learn Floresta Aleatória, Floresta Aleatória RAPIDS cuML, e qualquer outro modelo suportado por Treelite. Esses modelos há muito são usados para resolver problemas como classificação ou regressão. Embora esses tipos de modelos sejam tradicionalmente executados em CPUs, a popularidade desses modelos e as demandas de inferência levaram a várias técnicas para aumentar o desempenho da inferência. O back-end FIL utiliza muitas dessas técnicas usando construções cuML e é construído em C++ e na biblioteca principal CUDA para otimizar o desempenho de inferência em aceleradores de GPU.
O back-end FIL usa bibliotecas cuML para usar núcleos de CPU ou GPU para acelerar o aprendizado. Para usar esses processadores, os dados são referenciados da memória do host (por exemplo, arrays NumPy) ou arrays GPU (uDF, Numba, cuPY ou qualquer biblioteca que suporte o __cuda_array_interface__
) API. Depois que os dados são preparados na memória, o back-end FIL pode executar o processamento em todos os núcleos de CPU ou GPU disponíveis.
Os threads de back-end do FIL podem se comunicar entre si sem utilizar a memória compartilhada do host, mas em cargas de trabalho de conjunto, a memória do host deve ser considerada. O diagrama a seguir mostra uma arquitetura de tempo de execução do agendador de conjunto onde você tem a capacidade de ajustar as áreas de memória, incluindo a memória compartilhada endereçável da CPU que é usada para comunicação entre processos entre Triton (C++) e o processo Python (back-end Python) para troca tensores (entrada/saída) com o back-end FIL.
O Triton Inference Server fornece opções configuráveis para que os desenvolvedores ajustem suas cargas de trabalho e otimizem o desempenho do modelo. a configuração dynamic_batching
permite que o Triton mantenha as solicitações do lado do cliente e as agrupe no lado do servidor para usar com eficiência a computação paralela do FIL para inferir todo o lote. A opção max_queue_delay_microseconds
oferece um controle à prova de falhas de quanto tempo o Triton espera para formar um lote.
Há uma série de outras aplicações específicas de FIL opções disponíveis que afetam o desempenho e o comportamento. Sugerimos começar com storage_type
. Ao executar o back-end na GPU, o FIL cria uma nova estrutura de memória/dados que é uma representação da árvore para a qual o FIL pode afetar o desempenho e a pegada. Isso é configurável por meio do parâmetro de ambiente storage_type
, que tem as opções densa, esparsa e automática. Escolher a opção densa consumirá mais memória da GPU e nem sempre resulta em melhor desempenho, então é melhor verificar. Por outro lado, a opção esparsa consumirá menos memória da GPU e possivelmente terá um desempenho tão bom ou melhor que o denso. Escolher auto fará com que o modelo seja padronizado como denso, a menos que isso consuma significativamente mais memória da GPU do que esparsa.
Quando se trata de desempenho do modelo, você pode considerar enfatizar o threads_per_tree
opção. Uma coisa que você pode exagerar em cenários do mundo real é que threads_per_tree
pode ter um impacto maior na taxa de transferência do que qualquer outro parâmetro. Defini-lo para qualquer potência de 2 de 1 a 32 é legítimo. O valor ideal é difícil de prever para esse parâmetro, mas quando se espera que o servidor lide com uma carga maior ou processe tamanhos de lote maiores, ele tende a se beneficiar de um valor maior do que quando está processando algumas linhas por vez.
Outro parâmetro a ter em atenção é algo
, que também está disponível se você estiver executando em GPU. Esse parâmetro determina o algoritmo usado para processar as solicitações de inferência. As opções suportadas para isso são ALGO_AUTO
, NAIVE
, TREE_REORG
e BATCH_TREE_REORG
. Essas opções determinam como os nós dentro de uma árvore são organizados e também podem resultar em ganhos de desempenho. O ALGO_AUTO
opção padrão para NAIVE
para armazenamento esparso e BATCH_TREE_REORG
para armazenamento denso.
Por fim, o FIL vem com o explicador Shapley, que pode ser ativado usando o treeshap_output
parâmetro. No entanto, você deve ter em mente que as saídas Shapley prejudicam o desempenho devido ao seu tamanho de saída.
Formato do modelo
Atualmente, não há um formato de arquivo padrão para armazenar modelos baseados em floresta; cada framework tende a definir seu próprio formato. Para suportar vários formatos de arquivo de entrada, o FIL importa dados usando o código aberto Treelite biblioteca. Isso permite que o FIL suporte modelos treinados em estruturas populares, como XGBoostName e Light GBM. Observe que o formato do modelo que você está fornecendo deve ser definido no model_type
valor de configuração especificado no config.pbtxt
arquivo.
config.pbtxt
Cada modelo em um repositório modelo deve incluir uma configuração de modelo que forneça as informações necessárias e opcionais sobre o modelo. Normalmente, essa configuração é fornecida em um config.pbtxt
arquivo especificado como Protocolo ModelConfig. Para saber mais sobre as definições de configuração, consulte Configuração do modelo. A seguir estão alguns dos parâmetros de configuração do modelo:
- max_batch_size – Isso determina o tamanho máximo do lote que pode ser passado para esse modelo. Em geral, o único limite no tamanho dos lotes passados para um back-end FIL é a memória disponível para processá-los. Para execuções de GPU, a memória disponível é determinada pelo tamanho do pool de memória CUDA do Triton, que pode ser definido por meio de um argumento de linha de comando ao iniciar o servidor.
- entrada – As opções nesta seção informam ao Triton o número de recursos a serem esperados para cada amostra de entrada.
- saída – As opções nesta seção informam ao Triton quantos valores de saída haverá para cada amostra. Se o
predict_proba
opção for definida como verdadeira, um valor de probabilidade será retornado para cada classe. Caso contrário, um único valor será retornado, indicando a classe prevista para a amostra dada. - grupo_de_instância – Isso determina quantas instâncias deste modelo serão criadas e se elas usarão GPU ou CPU.
- tipo de modelo – Esta string indica em qual formato o modelo está (
xgboost_json
neste exemplo, masxgboost
,lightgbm
etl_checkpoint
também são formatos válidos). - previsão_proba – Se definido como true, os valores de probabilidade serão retornados para cada classe em vez de apenas uma previsão de classe.
- classe_saída – Isso é definido como verdadeiro para modelos de classificação e falso para modelos de regressão.
- limiar – Este é um limite de pontuação para determinar a classificação. Quando
output_class
for definido como verdadeiro, isso deve ser fornecido, embora não seja usado sepredict_proba
também é definido como verdadeiro. - Tipo de armazenamento – Em geral, usar AUTO para esta configuração deve atender à maioria dos casos de uso. Se o armazenamento AUTO for selecionado, o FIL carregará o modelo usando uma representação esparsa ou densa com base no tamanho aproximado do modelo. Em alguns casos, você pode querer definir isso explicitamente como SPARSE para reduzir o consumo de memória de modelos grandes.
Servidor de inferência Triton no SageMaker
SageMaker permite você implemente endpoints de modelo único e multimodelo com o NVIDIA Triton Inference Server. A figura a seguir mostra a arquitetura de alto nível do Triton Inference Server. O repositório modelo é um repositório baseado em sistema de arquivos dos modelos que o Triton disponibilizará para inferência. As solicitações de inferência chegam ao servidor e são roteadas para o planejador apropriado por modelo. implementos Triton vários algoritmos de agendamento e lotes que podem ser configurados modelo a modelo. O escalonador de cada modelo opcionalmente realiza lotes de solicitações de inferência e, em seguida, passa as solicitações para o backend correspondente ao tipo de modelo. O back-end realiza inferência usando as entradas fornecidas nas solicitações em lote para produzir as saídas solicitadas. As saídas são então retornadas.
Ao configurar seus grupos de dimensionamento automático para endpoints SageMaker, você pode querer considerar SageMakerVariantInvocationsPerInstance
como o critério principal para determinar as características de escalabilidade do seu grupo de escalabilidade automática. Além disso, dependendo se seus modelos estão sendo executados em GPU ou CPU, você também pode considerar o uso de CPUUtilization ou GPUUtilization como critérios adicionais. Observe que, para endpoints de modelo único, como os modelos implantados são todos iguais, é bastante simples definir as políticas adequadas para atender aos seus SLAs. Para endpoints de vários modelos, recomendamos implantar modelos semelhantes atrás de um determinado endpoint para ter um desempenho previsível mais estável. Em casos de uso em que modelos de tamanhos e requisitos variados são usados, convém separar essas cargas de trabalho em vários endpoints de vários modelos ou passar algum tempo ajustando sua política de grupo de dimensionamento automático para obter o melhor equilíbrio de custo e desempenho.
Para obter uma lista de NVIDIA Triton Deep Learning Containers (DLCs) compatíveis com a inferência do SageMaker, consulte Imagens de recipientes de aprendizagem profunda disponíveis.
Passo a passo do notebook SageMaker
Os aplicativos de ML são complexos e geralmente podem exigir pré-processamento de dados. Neste notebook, nos aprofundamos em como implantar um modelo de ML baseado em árvore como XGBoost usando o back-end FIL em Triton em um endpoint multimodelo SageMaker. Também abordamos como implementar um pipeline de inferência de pré-processamento de dados baseado em Python para seu modelo usando o recurso de conjunto no Triton. Isso nos permitirá enviar os dados brutos do lado do cliente e fazer com que o pré-processamento de dados e a inferência de modelo ocorram em um ponto de extremidade Triton SageMaker para desempenho de inferência ideal.
Recurso de conjunto de modelos Triton
O Triton Inference Server simplifica muito a implantação de modelos de IA em escala na produção. O Triton Inference Server vem com uma solução conveniente que simplifica a criação de pipelines de pré-processamento e pós-processamento. A plataforma Triton Inference Server fornece o agendador de conjunto, que é responsável por modelar os modelos que participam do processo de inferência, garantindo eficiência e otimizando a taxa de transferência. O uso de modelos de conjunto pode evitar a sobrecarga de transferência de tensores intermediários e minimizar o número de solicitações que devem ser enviadas ao Triton.
Neste notebook, mostramos como usar o recurso de conjunto para criar um pipeline de pré-processamento de dados com inferência de modelo XGBoost, e você pode extrapolar a partir dele para adicionar pós-processamento personalizado ao pipeline.
Configure o ambiente
Começamos configurando o ambiente necessário. Instalamos as dependências necessárias para empacotar nosso pipeline de modelo e executamos inferências usando o Triton Inference Server. Também definimos o Gerenciamento de acesso e identidade da AWS (IAM) que dará ao SageMaker acesso aos artefatos do modelo e ao NVIDIA Triton Registro do Amazon Elastic Container (Amazon ECR). Veja o seguinte código:
Crie um ambiente Conda para dependências de pré-processamento
O back-end do Python no Triton exige que usemos um Conda ambiente para quaisquer dependências adicionais. Nesse caso, usamos o back-end do Python para pré-processar os dados brutos antes de alimentá-los no modelo XGBoost que está sendo executado no back-end do FIL. Embora originalmente tenhamos usado RAPIDS cuDF e cuML para fazer o pré-processamento de dados, aqui usamos Pandas e scikit-learn como dependências de pré-processamento durante a inferência. Fazemos isso por três motivos:
- Mostramos como criar um ambiente Conda para suas dependências e como empacotá-lo no formato esperado pelo backend Python da Triton.
- Ao mostrar o modelo de pré-processamento em execução no back-end do Python na CPU enquanto o XGBoost é executado na GPU no back-end do FIL, ilustramos como cada modelo no pipeline do Triton pode ser executado em um back-end de estrutura diferente, bem como em diferentes configurações de hardware.
- Ele destaca como as bibliotecas RAPIDS (cuDF, cuML) são compatíveis com suas contrapartes de CPU (Pandas, scikit-learn). Por exemplo, podemos mostrar como
LabelEncoders
criado em cuML pode ser usado em scikit-learn e vice-versa.
Seguimos as instruções do Documentação do Triton para empacotar dependências de pré-processamento (scikit-learn e Pandas) a serem usadas no back-end do Python como um arquivo TAR do ambiente Conda. o script bash create_prep_env.sh cria o arquivo TAR do ambiente Conda e, em seguida, o movemos para o diretório do modelo de pré-processamento. Veja o seguinte código:
Depois de executarmos o script anterior, ele gera preprocessing_env.tar.gz
, que copiamos para o diretório de pré-processamento:
Configure o pré-processamento com o back-end Triton Python
Para o pré-processamento, usamos o Triton's back-end Python para executar o pré-processamento de dados tabulares (codificação categórica) durante a inferência para solicitações de dados brutos que chegam ao servidor. Para obter mais informações sobre o pré-processamento feito durante o treinamento, consulte o caderno de treinamento.
O back-end do Python permite que o pré-processamento, o pós-processamento e qualquer outra lógica personalizada sejam implementados no Python e servidos com o Triton. O uso do Triton no SageMaker requer que primeiro configuremos uma pasta de repositório de modelo contendo os modelos que queremos servir. Já configuramos um modelo para pré-processamento de dados Python chamado pré-processamento em cpu_model_repository
e gpu_model_repository
.
O Triton possui requisitos específicos para o layout do repositório de modelos. Dentro do diretório de repositório de modelo de nível superior, cada modelo possui seu próprio subdiretório contendo as informações para o modelo correspondente. Cada diretório de modelo no Triton deve ter pelo menos um subdiretório numérico representando uma versão do modelo. O valor 1 representa a versão 1 do nosso modelo de pré-processamento do Python. Cada modelo é executado por um backend específico, portanto, dentro de cada subdiretório de versão deve haver o artefato de modelo exigido por esse backend. Para este exemplo, usamos o back-end Python, que requer que o arquivo Python que você está servindo seja chamado model.py, e o arquivo precisa implementar certas funções. Se estivéssemos usando um back-end PyTorch, um arquivo model.pt seria necessário e assim por diante. Para obter mais detalhes sobre convenções de nomenclatura para arquivos de modelo, consulte Arquivos de modelo.
A modelo.py O arquivo Python que usamos aqui implementa toda a lógica de pré-processamento de dados tabulares para converter dados brutos em recursos que podem ser alimentados em nosso modelo XGBoost.
Cada modelo Triton também deve fornecer um config.pbtxt
arquivo que descreve a configuração do modelo. Para saber mais sobre as definições de configuração, consulte Configuração do modelo. Nossos agentes de config.pbtxt file especifica o back-end como python e todas as colunas de entrada para dados brutos junto com a saída pré-processada, que consiste em 15 recursos. Também especificamos que queremos executar esse modelo de pré-processamento do Python na CPU. Veja o seguinte código:
Configure um modelo de ML baseado em árvore para o back-end FIL
Em seguida, configuramos o diretório do modelo para um modelo de ML baseado em árvore como o XGBoost, que usará o back-end FIL.
O layout esperado para cpu_memory_repository
e gpu_memory_repository
são semelhantes ao que mostramos anteriormente.
Aqui, FIL
é o nome do modelo. Podemos dar um nome diferente como xgboost
se quisermos. 1
é o subdiretório da versão, que contém o artefato de modelo. Neste caso, é o xgboost.json
modelo que salvamos. Vamos criar este layout esperado:
Precisamos ter o arquivo de configuração config.pbtxt
descrevendo a configuração do modelo para o modelo de ML baseado em árvore, para que o back-end FIL no Triton possa entender como atendê-lo. Para obter mais informações, consulte a versão genérica mais recente Opções de configuração do Triton e as opções de configuração específicas para o FIL back-end. Nós nos concentramos em apenas algumas das opções mais comuns e relevantes neste exemplo.
Crie config.pbtxt
para model_cpu_repository
:
Da mesma forma, configure config.pbtxt
para model_gpu_repository
(note que a diferença é USE_GPU = True
):
Configure um pipeline de inferência do back-end Python de pré-processamento de dados e do back-end FIL usando conjuntos
Agora estamos prontos para configurar o pipeline de inferência para pré-processamento de dados e inferência de modelo baseado em árvore usando um modelo de conjunto. Um modelo de conjunto representa um pipeline de um ou mais modelos e a conexão de tensores de entrada e saída entre esses modelos. Aqui, usamos o modelo de conjunto para criar um pipeline de pré-processamento de dados no back-end do Python, seguido por XGBoost no back-end do FIL.
O layout esperado para o ensemble
O diretório do modelo é semelhante aos que mostramos anteriormente:
Criamos o modelo de conjunto config.pbtxt seguindo as orientações de Modelos de conjunto. Importante, precisamos configurar o agendador de conjunto em config.pbtxt
, que especifica o fluxo de dados entre os modelos dentro do conjunto. O escalonador de conjunto coleta os tensores de saída em cada etapa e os fornece como tensores de entrada para outras etapas de acordo com a especificação.
Empacote o repositório do modelo e carregue no Amazon S3
Por fim, terminamos com a seguinte estrutura de diretório de repositório de modelo, contendo um modelo de pré-processamento Python e suas dependências junto com o modelo XGBoost FIL e o conjunto de modelos.
Empacotamos o diretório e seu conteúdo como model.tar.gz
para carregar para Serviço de armazenamento simples da Amazon (Amazônia S3). Temos duas opções neste exemplo: usar uma instância baseada em CPU ou uma instância baseada em GPU. Uma instância baseada em GPU é mais adequada quando você precisa de maior capacidade de processamento e deseja usar núcleos CUDA.
Crie e faça upload do pacote de modelo para uma instância baseada em CPU (otimizada para CPU) com o seguinte código:
Crie e carregue o pacote de modelo para uma instância baseada em GPU (otimizada para GPU) com o seguinte código:
Crie um endpoint SageMaker
Agora temos os artefatos do modelo armazenados em um bucket do S3. Nesta etapa, também podemos fornecer a variável de ambiente adicional SAGEMAKER_TRITON_DEFAULT_MODEL_NAME
, que especifica o nome do modelo a ser carregado pelo Triton. O valor dessa chave deve corresponder ao nome da pasta no pacote de modelo carregado no Amazon S3. Esta variável é opcional no caso de um único modelo. No caso de modelos ensemble, esta chave deve ser especificada para que o Triton inicie no SageMaker.
Além disso, você pode definir SAGEMAKER_TRITON_BUFFER_MANAGER_THREAD_COUNT
e SAGEMAKER_TRITON_THREAD_COUNT
para otimizar a contagem de threads.
Usamos o modelo anterior para criar uma configuração de endpoint onde podemos especificar o tipo e o número de instâncias que queremos no endpoint
Usamos essa configuração de endpoint para criar um endpoint SageMaker e aguardar a conclusão da implantação. Com os MMEs do SageMaker, temos a opção de hospedar vários modelos de conjunto repetindo esse processo, mas mantemos uma implantação para este exemplo:
O estado mudará para InService
quando a implantação for bem-sucedida.
Invoque seu modelo hospedado no terminal SageMaker
Depois que o endpoint estiver em execução, podemos usar alguns dados brutos de amostra para realizar a inferência usando JSON como formato de carga útil. Para o formato de solicitação de inferência, o Triton usa o KFServing
padrão da comunidade protocolos de inferência. Veja o seguinte código:
O caderno referido no blog pode ser encontrado no Repositório GitHub.
Melhores práticas
Além das opções para ajustar as configurações do back-end do FIL mencionadas anteriormente, os cientistas de dados também podem garantir que os dados de entrada do back-end sejam otimizados para processamento pelo mecanismo. Sempre que possível, insira dados no formato de linha principal na matriz da GPU. Outros formatos exigirão conversão interna e ciclos de ocupação, diminuindo o desempenho.
Devido à forma como as estruturas de dados do FIL são mantidas na memória da GPU, fique atento à profundidade da árvore. Quanto mais profunda a profundidade da árvore, maior será o consumo de memória da GPU.
Use o instance_group_count
parâmetro para adicionar processos de trabalho e aumentar a taxa de transferência do back-end FIL, o que resultará em maior consumo de memória de CPU e GPU. Além disso, considere as variáveis específicas do SageMaker que estão disponíveis para aumentar a taxa de transferência, como encadeamentos HTTP, tamanho do buffer HTTP, tamanho do lote e atraso máximo.
Conclusão
Nesta postagem, nos aprofundamos no back-end FIL compatível com o Triton Inference Server no SageMaker. Esse back-end fornece aceleração de CPU e GPU de seus modelos baseados em árvore, como o popular algoritmo XGBoost. Há muitas opções a serem consideradas para obter o melhor desempenho para inferência, como tamanhos de lote, formatos de entrada de dados e outros fatores que podem ser ajustados para atender às suas necessidades. O SageMaker permite que você use esse recurso com endpoints de modelo único e multimodelo para equilibrar desempenho e economia de custos.
Incentivamos você a pegar as informações deste post e ver se o SageMaker pode atender às suas necessidades de hospedagem para atender a modelos baseados em árvore, atendendo aos seus requisitos de redução de custos e desempenho da carga de trabalho.
O notebook referenciado nesta postagem pode ser encontrado nos exemplos do SageMaker Repositório GitHub. Além disso, você pode encontrar a documentação mais recente sobre o back-end FIL em GitHub.
Sobre os autores
Raghu Ramesha é arquiteto sênior de soluções de ML da equipe do Amazon SageMaker Service. Ele se concentra em ajudar os clientes a criar, implantar e migrar cargas de trabalho de produção de ML para o SageMaker em escala. Ele é especialista em domínios de aprendizado de máquina, IA e visão computacional e possui mestrado em Ciência da Computação pela UT Dallas. Nas horas vagas gosta de viajar e fotografar.
James Park é Arquiteto de Soluções na Amazon Web Services. Ele trabalha com a Amazon.com para projetar, criar e implantar soluções de tecnologia na AWS e tem um interesse particular em IA e aprendizado de máquina. Em seu tempo livre, gosta de buscar novas culturas, novas experiências e manter-se atualizado com as últimas tendências tecnológicas.
Dhawal Patel é Arquiteto Principal de Machine Learning na AWS. Ele trabalhou com organizações que vão de grandes empresas a startups de médio porte em problemas relacionados à computação distribuída e inteligência artificial. Ele se concentra em aprendizado profundo, incluindo domínios de PNL e visão computacional. Ele ajuda os clientes a obter inferência de modelo de alto desempenho no Amazon SageMaker.
Jiahong Liu é arquiteto de soluções na equipe de provedores de serviços de nuvem da NVIDIA. Ele auxilia os clientes na adoção de soluções de aprendizado de máquina e IA que aproveitam a computação acelerada da NVIDIA para enfrentar seus desafios de treinamento e inferência. Em seu tempo de lazer, ele gosta de origami, projetos de bricolage e jogar basquete.
Kshitiz Gupta é arquiteto de soluções da NVIDIA. Ele gosta de educar os clientes de nuvem sobre as tecnologias de IA de GPU que a NVIDIA tem a oferecer e ajudá-los a acelerar seus aplicativos de aprendizado de máquina e aprendizado profundo. Fora do trabalho, ele gosta de correr, fazer caminhadas e observar a vida selvagem.
- Conteúdo com tecnologia de SEO e distribuição de relações públicas. Seja amplificado hoje.
- PlatoAiStream. Inteligência de Dados Web3. Conhecimento Amplificado. Acesse aqui.
- Cunhando o Futuro com Adryenn Ashley. Acesse aqui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/hosting-ml-models-on-amazon-sagemaker-using-triton-xgboost-lightgbm-and-treelite-models/
- :tem
- :é
- :não
- :onde
- $UP
- 1
- 100
- 11
- 13
- 200
- 23
- 24
- 7
- 8
- 9
- a
- habilidade
- Sobre
- acelerar
- acelerado
- acelerando
- aceleradores
- Acesso
- Segundo
- conformemente
- Conta
- Alcançar
- em
- adicionar
- Adição
- Adicional
- endereço
- endereçável
- Adotando
- Depois de
- contra
- acordos
- AI
- algoritmo
- Todos os Produtos
- alocações
- permitir
- permite
- juntamente
- já
- tb
- Apesar
- sempre
- Amazon
- Amazon Sage Maker
- Amazon Web Services
- Amazon.com
- quantidade
- an
- e
- qualquer
- api
- aplicações
- apropriado
- arquitetura
- SOMOS
- áreas
- argumento
- Ordem
- artificial
- inteligência artificial
- AS
- ajuda
- At
- auto
- disponível
- evitar
- AWS
- Backend
- Equilíbrio
- baseado
- bater
- base
- Basquetebol
- BE
- Porque
- tornam-se
- sido
- antes
- começar
- atrás
- abaixo
- beneficiar
- MELHOR
- Melhor
- entre
- maior
- Blog
- corpo
- ambos
- amortecer
- construir
- Prédio
- construído
- mas a
- by
- C + +
- chamado
- CAN
- cartão
- casas
- casos
- Categoria
- Causar
- desafios
- alterar
- características
- verificar
- lasca
- Escolha
- escolha
- Cidades
- classe
- classificação
- cliente
- clientes
- Na nuvem
- código
- colunas
- COM
- vem
- vinda
- comum
- comunicar
- Comunicação
- comunidade
- compatível
- integrações
- computação
- computador
- Ciência da Computação
- Visão de Computador
- computação
- Configuração
- da conexão
- Considerar
- considerado
- consumir
- consumo
- Recipiente
- Containers
- contém
- conteúdo
- contraste
- ao controle
- Conveniente
- Conversão
- converter
- núcleo
- Correspondente
- Custo
- redução de custos
- economia de custos
- cobrir
- crio
- criado
- cria
- critérios
- crucial
- Atualmente
- personalizadas
- Clientes
- ciclos
- Dallas
- dados,
- Data
- dia
- acordo
- decisão
- profundo
- deep learning
- mais profunda
- Padrão
- defaults
- Grau
- atraso
- exigente
- demandas
- Dependendo
- implantar
- implantado
- Implantação
- desenvolvimento
- profundidade
- Design
- detalhes
- Determinar
- determinado
- determina
- determinando
- desenvolvedores
- diferença
- diferente
- distribuído
- computação distribuída
- Diy
- do
- documentação
- Não faz
- fazer
- domínios
- feito
- pomba
- dois
- durante
- cada
- Mais cedo
- educar
- eficiência
- eficientemente
- ou
- enfatizando
- permite
- encorajar
- final
- Ponto final
- Motor
- Motores
- garantir
- assegurando
- Empreendimento
- empresas
- Todo
- Meio Ambiente
- erros
- Mesmo
- Cada
- exemplo
- exemplos
- trocando
- esperar
- esperado
- Experiências
- exportar
- fatores
- bastante
- Quedas
- falso
- Característica
- Funcionalidades
- Alimentado
- alimentação
- poucos
- Figura
- Envie o
- Arquivos
- Encontre
- acabamento
- Primeiro nome
- fluxo
- Foco
- concentra-se
- seguir
- seguido
- seguinte
- Pegada
- Escolha
- formulário
- formato
- encontrado
- Quadro
- enquadramentos
- fraude
- Gratuito
- da
- Além disso
- Ganhos
- Geral
- gera
- ter
- OFERTE
- dado
- GPU
- grandemente
- Grupo
- Do grupo
- orientações
- acontecer
- Queijos duros
- Hardware
- Ter
- he
- ajudar
- ajuda
- ajuda
- SUA PARTICIPAÇÃO FAZ A DIFERENÇA
- de alto nível
- alta performance
- superior
- destaques
- sua
- segurar
- detém
- hospedeiro
- hospedado
- hospedagem
- Como funciona o dobrador de carta de canal
- Como Negociar
- Contudo
- HTML
- http
- HTTPS
- Machucar
- Identidade
- ids
- IDX
- if
- imagem
- Impacto
- Impacto
- executar
- implementado
- implementa
- importações
- in
- incluir
- Incluindo
- Crescimento
- indicam
- INFORMAÇÕES
- informado
- entrada
- instalar
- instância
- instruções
- integração
- Inteligência
- interesse
- interno
- para dentro
- IT
- ESTÁ
- jpg
- json
- apenas por
- Guarda
- Chave
- Tipo
- Saber
- grande
- Grandes empresas
- Maior
- Latência
- mais recente
- traçado
- APRENDER
- aprendizagem
- mínimo
- levou
- legítimo
- menos
- Nível
- níveis
- Alavancagem
- bibliotecas
- Biblioteca
- como
- LIMITE
- Line
- Lista
- carregar
- lógica
- lógico
- longo
- máquina
- aprendizado de máquina
- fazer
- gerencia
- muitos
- mestre
- Match
- max
- máximo
- Posso..
- mecanismo
- Conheça
- reunião
- Memória
- mencionado
- Comerciante
- Métrica
- poder
- migrado
- mente
- ML
- Moda
- modelo
- modelos
- Mês
- mais
- a maioria
- Mais populares
- mover
- Ponto de extremidade multimodelo
- múltiplo
- devo
- nome
- nomeando
- nativo
- você merece...
- Cria
- Novo
- PNL
- não
- nós
- caderno
- agora
- número
- numpy
- Nvidia
- obter
- of
- oferecer
- Oferece
- frequentemente
- on
- ONE
- queridos
- só
- open source
- ideal
- otimização
- Otimize
- otimizado
- otimizando
- Opção
- Opções
- or
- ordem
- organizações
- Organizado
- originalmente
- OS
- Outros
- de outra forma
- A Nossa
- Fora
- saída
- lado de fora
- próprio
- pacote
- acondicionamento
- pandas
- Paralelo
- parâmetro
- parâmetros
- participando
- particular
- passou
- passes
- caminho
- Realizar
- atuação
- executa
- permissão
- fotografia
- oleoduto
- plataforma
- platão
- Inteligência de Dados Platão
- PlatãoData
- jogar
- por favor
- abundância
- políticas
- Privacidade
- piscina
- Popular
- popularidade
- possível
- possivelmente
- Publique
- poder
- predizer
- Previsível
- previsto
- predição
- Previsões
- anteriormente
- primário
- Diretor
- problemas
- processo
- processos
- em processamento
- Poder de processamento
- processadores
- produzir
- Produção
- projetos
- adequado
- proto
- fornecer
- fornecido
- provedor
- fornece
- fornecendo
- Python
- pytorch
- acaso
- variando
- em vez
- Cru
- pronto
- mundo real
- em tempo real
- razões
- recomendar
- reduzir
- a que se refere
- Independentemente
- região
- relacionado
- relevante
- substituir
- repositório
- representação
- representando
- representa
- solicitar
- pedidos
- requerer
- requeridos
- Requisitos
- exige
- resposta
- responsável
- resultar
- Resultados
- Tipo
- Execute
- corrida
- s
- sábio
- Inferência do SageMaker
- mesmo
- Poupança
- escalável
- Escala
- dimensionamento
- cenários
- agendamento
- Ciência
- cientistas
- scikit-learn
- Ponto
- Seção
- Vejo
- busca
- selecionado
- enviar
- senior
- separado
- servir
- serviço
- Provedor de Serviço
- Serviços
- de servir
- conjunto
- contexto
- Configurações
- Shape
- compartilhado
- rede de apoio social
- mostrar
- Shows
- lado
- de forma considerável
- semelhante
- simples
- solteiro
- Tamanho
- tamanhos
- So
- solução
- Soluções
- RESOLVER
- Resolvendo
- alguns
- fonte
- especializada
- específico
- especificação
- especificada
- gastar
- padrão
- começo
- Comece
- Startups
- Estado
- Status
- estável
- Passo
- Passos
- armazenamento
- loja
- armazenadas
- franco
- Tanga
- estrutura
- bem sucedido
- tal
- sugerir
- adequado
- ajuda
- Suportado
- suportes
- Tire
- Profissionais
- técnicas
- Tecnologias
- Tecnologia
- dizer
- condições
- do que
- que
- A
- as informações
- deles
- Eles
- então
- Lá.
- Este
- deles
- coisa
- isto
- aqueles
- Apesar?
- três
- limiar
- Taxa de transferência
- tempo
- para
- hoje
- juntos
- nível superior
- tradicionalmente
- treinado
- Training
- Transferir
- Viagens
- árvore
- Tendências
- Tritão
- verdadeiro
- dois
- tipo
- tipos
- tipicamente
- compreender
- carregado
- Upload
- us
- usar
- usava
- Utilizador
- utilização
- utiliza
- Utilizando
- valor
- Valores
- vário
- versão
- via
- visão
- W
- esperar
- queremos
- foi
- assistindo
- Caminho..
- we
- web
- serviços web
- BEM
- foram
- O Quê
- quando
- sempre que
- se
- qual
- enquanto
- precisarão
- de
- dentro
- sem
- Atividades:
- trabalhou
- trabalhador
- trabalho
- seria
- XGBoostName
- ano
- Vocês
- investimentos
- zefirnet
- Zip