Temos o prazer de anunciar o lançamento de código aberto do GraphStorm 0.1, uma estrutura de aprendizado de máquina (ML) de gráficos corporativos de baixo código para construir, treinar e implantar soluções de ML em gráficos complexos de escala empresarial em dias, em vez de meses. Com o GraphStorm, você pode criar soluções que levam em conta diretamente a estrutura de relacionamentos ou interações entre bilhões de entidades, que estão inerentemente incorporadas na maioria dos dados do mundo real, incluindo cenários de detecção de fraude, recomendações, detecção de comunidade e problemas de pesquisa/recuperação.
Até agora, tem sido notoriamente difícil construir, treinar e implantar soluções de ML para gráficos corporativos complexos que facilmente possuem bilhões de nós, centenas de bilhões de arestas e dezenas de atributos. Basta pensar em um gráfico capturando produtos da Amazon.com , atributos do produto, clientes e muito mais. Com o GraphStorm, lançamos as ferramentas que a Amazon usa internamente para trazer soluções de ML gráficas em grande escala para produção. O GraphStorm não exige que você seja um especialista em ML gráfico e está disponível sob a licença Apache v2.0 no GitHub. Para saber mais sobre o GraphStorm, visite o Repositório GitHub.
Nesta postagem, fornecemos uma introdução ao GraphStorm, sua arquitetura e um exemplo de caso de uso de como usá-lo.
Apresentando o GraphStorm
Algoritmos gráficos e ML gráficos estão emergindo como soluções de última geração para muitos problemas de negócios importantes, como previsão de riscos de transações, antecipação de preferências do cliente, detecção de invasões, otimização de cadeias de suprimentos, análise de redes sociais e previsão de tráfego. Por exemplo, Dever de guarda da Amazônia, o serviço nativo de detecção de ameaças da AWS, usa um gráfico com bilhões de arestas para melhorar a cobertura e a precisão de sua inteligência de ameaças. Isso permite que o GuardDuty classifique domínios anteriormente não vistos como altamente prováveis de serem maliciosos ou benignos com base em sua associação a domínios maliciosos conhecidos. Ao usar redes neurais gráficas (GNNs), o GuardDuty é capaz de aprimorar sua capacidade de alertar os clientes.
No entanto, desenvolver, lançar e operar soluções de ML gráfico leva meses e requer experiência em ML gráfico. Como primeira etapa, um cientista de ML gráfico deve construir um modelo de ML gráfico para um determinado caso de uso usando uma estrutura como a Deep Graph Library (DGL). O treinamento de tais modelos é um desafio devido ao tamanho e à complexidade dos gráficos em aplicativos empresariais, que atingem rotineiramente bilhões de nós, centenas de bilhões de arestas, diferentes tipos de nós e arestas e centenas de atributos de nós e arestas. Os gráficos corporativos podem exigir terabytes de armazenamento de memória, exigindo que os cientistas de ML de gráficos construam pipelines de treinamento complexos. Finalmente, depois de um modelo ter sido treinado, ele deve ser implantado para inferência, o que requer pipelines de inferência que são tão difíceis de construir quanto os pipelines de treinamento.
GraphStorm 0.1 é uma estrutura de ML de gráficos corporativos de baixo código que permite aos profissionais de ML escolher facilmente modelos de ML de gráficos predefinidos que provaram ser eficazes, executar treinamento distribuído em gráficos com bilhões de nós e implantar os modelos em produção. GraphStorm oferece uma coleção de modelos de ML de gráficos integrados, como Redes Convolucionais de Gráficos Relacionais (RGCN), Redes de Atenção de Gráficos Relacionais (RGAT) e Transformador de Gráfico Heterogêneo (HGT) para aplicativos empresariais com gráficos heterogêneos, que permitem aos engenheiros de ML com pouco gráfico de experiência em ML para experimentar diferentes soluções de modelo para suas tarefas e selecionar a correta rapidamente. Os pipelines de treinamento e inferência distribuídos de ponta a ponta, que podem ser dimensionados para gráficos corporativos em escala de bilhões, facilitam o treinamento, a implantação e a execução de inferências. Se você é novo no GraphStorm ou no Graph ML em geral, você se beneficiará dos modelos e pipelines predefinidos. Se você for um especialista, terá todas as opções para ajustar o pipeline de treinamento e a arquitetura do modelo para obter o melhor desempenho. GraphStorm é construído sobre DGL, uma estrutura amplamente popular para o desenvolvimento de modelos GNN e disponível como código-fonte aberto sob a licença Apache v2.0.
“O GraphStorm foi projetado para ajudar os clientes a experimentar e operacionalizar métodos de ML de gráficos para aplicativos do setor, a fim de acelerar a adoção de ML de gráficos”, disse George Karypis, cientista principal sênior de pesquisa de IA/ML da Amazon. “Desde seu lançamento na Amazon, o GraphStorm reduziu em até cinco vezes o esforço para construir soluções baseadas em ML gráfico.”
“O GraphStorm permite que nossa equipe treine a incorporação de GNN de maneira autosupervisionada em um gráfico com 288 milhões de nós e 2 bilhões de arestas”, afirma Haining Yu, principal cientista aplicado da Amazon Measurement, Ad Tech e Data Science. “Os embeddings GNN pré-treinados mostram uma melhoria de 24% em uma tarefa de previsão da atividade do comprador em relação a uma linha de base de última geração baseada em BERT; também excede o desempenho de referência em outros aplicativos de anúncios.”
“Antes do GraphStorm, os clientes só podiam escalar verticalmente para lidar com gráficos de 500 milhões de arestas”, diz Brad Bebee, gerente geral do Amazon Neptune e Amazon Timestream. “O GraphStorm permite que os clientes escalem o treinamento do modelo GNN em enormes gráficos do Amazon Neptune com dezenas de bilhões de arestas.”
Arquitetura técnica GraphStorm
A figura a seguir mostra a arquitetura técnica do GraphStorm.
GraphStorm é construído sobre PyTorch e pode ser executado em uma única GPU, em várias GPUs e em várias máquinas GPU. Consiste em três camadas (marcadas nas caixas amarelas da figura anterior):
- Camada inferior (Dist GraphEngine) – A camada inferior fornece os componentes básicos para permitir ML de gráficos distribuídos, incluindo gráficos distribuídos, tensores distribuídos, incorporações distribuídas e amostradores distribuídos. GraphStorm fornece implementações eficientes desses componentes para dimensionar o treinamento de ML de gráficos para gráficos de bilhões de nós.
- Camada intermediária (pipeline de treinamento/inferência GS) – A camada intermediária fornece treinadores, avaliadores e preditores para simplificar o treinamento e a inferência de modelos tanto para modelos integrados quanto para seus modelos personalizados. Basicamente, ao utilizar a API desta camada, você pode focar no desenvolvimento do modelo sem se preocupar em como dimensionar o treinamento do modelo.
- Camada superior (modelo geral GS zoo) – A camada superior é um zoológico modelo com modelos GNN e não GNN populares para diferentes tipos de gráficos. No momento em que este livro foi escrito, ele fornece RGCN, RGAT e HGT para gráficos heterogêneos e BERTGNN para gráficos textuais. No futuro, adicionaremos suporte para modelos de gráficos temporais, como TGAT para gráficos temporais, bem como TransE e DistMult para gráficos de conhecimento.
Como usar o GraphStorm
Depois de instalar o GraphStorm, você só precisa de três etapas para construir e treinar modelos GML para seu aplicativo.
Primeiro, você pré-processa seus dados (potencialmente incluindo sua engenharia de recursos personalizados) e os transforma em um formato de tabela exigido pelo GraphStorm. Para cada tipo de nó, você define uma tabela que lista todos os nós desse tipo e seus recursos, fornecendo um ID exclusivo para cada nó. Para cada tipo de borda, você define de forma semelhante uma tabela na qual cada linha contém os IDs dos nós de origem e de destino para uma borda desse tipo (para obter mais informações, consulte Use seu próprio tutorial de dados). Além disso, você fornece um arquivo JSON que descreve a estrutura geral do gráfico.
Segundo, por meio da interface de linha de comando (CLI), você usa o recurso integrado do GraphStorm construct_graph
componente para algum processamento de dados específico do GraphStorm, que permite treinamento e inferência distribuídos eficientes.
Terceiro, você configura o modelo e o treinamento em um arquivo YAML (exemplo) e, novamente usando a CLI, invoque um dos cinco componentes integrados (gs_node_classification
, gs_node_regression
, gs_edge_classification
, gs_edge_regression
, gs_link_prediction
) como pipelines de treinamento para treinar o modelo. Esta etapa resulta nos artefatos do modelo treinado. Para fazer inferência, você precisa repetir as duas primeiras etapas para transformar os dados de inferência em um gráfico usando o mesmo componente GraphStorm (construct_graph
) como antes.
Finalmente, você pode invocar um dos cinco componentes integrados, o mesmo que foi usado para treinamento de modelo, como um pipeline de inferência para gerar embeddings ou resultados de previsão.
O fluxo geral também é representado na figura a seguir.
Na seção a seguir, fornecemos um exemplo de caso de uso.
Faça previsões sobre dados brutos do OAG
Nesta postagem, demonstramos como o GraphStorm pode facilmente permitir o treinamento e a inferência de ML de gráficos em um grande conjunto de dados brutos. O Gráfico Acadêmico Aberto (OAG) contém cinco entidades (artigos, autores, locais, afiliações e campo de estudo). O conjunto de dados bruto é armazenado em arquivos JSON com mais de 500 GB.
Nossa tarefa é construir um modelo para prever o campo de estudo de um artigo. Para prever o campo de estudo, você pode formulá-lo como uma tarefa de classificação de vários rótulos, mas é difícil usar a codificação one-hot para armazenar os rótulos porque existem centenas de milhares de campos. Portanto, você deve criar nós de campo de estudo e formular esse problema como uma tarefa de previsão de link, prevendo a quais nós de campo de estudo um nó de papel deve se conectar.
Para modelar este conjunto de dados com um método gráfico, a primeira etapa é processar o conjunto de dados e extrair entidades e arestas. Você pode extrair cinco tipos de arestas dos arquivos JSON para definir um gráfico, mostrado na figura a seguir. Você pode usar o notebook Jupyter no GraphStorm código de exemplo para processar o conjunto de dados e gerar cinco tabelas de entidades para cada tipo de entidade e cinco tabelas de arestas para cada tipo de arestas. O notebook Jupyter também gera embeddings BERT nas entidades com dados de texto, como papéis.
Depois de definir as entidades e arestas entre as entidades, você pode criar mag_bert.json
, que define o esquema do gráfico e invoca o pipeline de construção de gráfico integrado construct_graph
no GraphStorm para construir o gráfico (veja o código a seguir). Embora o pipeline de construção de gráficos GraphStorm seja executado em uma única máquina, ele oferece suporte a multiprocessamento para processar nós e recursos de borda em paralelo (--num_processes
) e pode armazenar recursos de entidade e de borda na memória externa (--ext-mem-workspace
) para escalar para grandes conjuntos de dados.
Para processar um gráfico tão grande, você precisa de uma instância de CPU com grande memória para construir o gráfico. Você pode usar um Amazon Elastic Compute Nuvem (Amazon EC2) instância r6id.32xlarge (128 vCPU e 1 TB de RAM) ou instâncias r6a.48xlarge (192 vCPU e 1.5 TB de RAM) para construir o gráfico OAG.
Depois de construir um gráfico, você pode usar gs_link_prediction
para treinar um modelo de previsão de link em quatro instâncias g5.48xlarge. Ao usar os modelos integrados, você invoca apenas uma linha de comando para iniciar o trabalho de treinamento distribuído. Veja o seguinte código:
Após o treinamento do modelo, o artefato do modelo é salvo na pasta /data/mag_lp_model
.
Agora você pode executar a inferência de previsão de link para gerar embeddings GNN e avaliar o desempenho do modelo. GraphStorm fornece várias métricas de avaliação integradas para avaliar o desempenho do modelo. Para problemas de previsão de link, por exemplo, o GraphStorm gera automaticamente a classificação recíproca média métrica (MRR). MRR é uma métrica valiosa para avaliar modelos de previsão de links gráficos porque avalia o quão alto os links reais são classificados entre os links previstos. Isso captura a qualidade das previsões, garantindo que nosso modelo priorize corretamente as conexões verdadeiras, que é o nosso objetivo aqui.
Você pode executar inferência com uma linha de comando, conforme mostrado no código a seguir. Neste caso, o modelo atinge um MRR de 0.31 no conjunto de teste do gráfico construído.
Observe que o pipeline de inferência gera incorporações a partir do modelo de previsão de link. Para resolver o problema de encontrar o campo de estudo para qualquer artigo, basta realizar uma pesquisa de k-vizinhos mais próximos nos embeddings.
Conclusão
GraphStorm é uma nova estrutura de ML gráfico que facilita a construção, o treinamento e a implantação de modelos de ML gráfico em gráficos do setor. Ele aborda alguns desafios importantes no ML gráfico, incluindo escalabilidade e usabilidade. Ele fornece componentes integrados para processar gráficos em escala de bilhões, desde dados de entrada brutos até treinamento e inferência de modelos, e permitiu que várias equipes da Amazon treinassem modelos de ML de gráficos de última geração em vários aplicativos. Confira nosso Repositório GitHub para obter mais informações.
Sobre os autores
Da Zheng é um cientista aplicado sênior na pesquisa de IA/ML da AWS, liderando uma equipe de aprendizado de máquina gráfica para desenvolver técnicas e estruturas para colocar o aprendizado de máquina gráfico em produção. Da obteve seu PhD em ciência da computação pela Universidade Johns Hopkins.
Molho Floriano é gerente técnico principal de produtos na pesquisa de AI/ML da AWS, apoiando equipes científicas avançadas, como o grupo de aprendizado de máquina gráfica, e melhorando produtos como Amazon DataZone com recursos de ML. Antes de ingressar na AWS, Florian liderou o gerenciamento técnico de produtos para direção automatizada na Bosch, foi consultor de estratégia na McKinsey & Company e trabalhou como cientista de sistemas de controle/robótica – área na qual possui doutorado.
- Conteúdo com tecnologia de SEO e distribuição de relações públicas. Seja amplificado hoje.
- EVM Finanças. Interface unificada para finanças descentralizadas. Acesse aqui.
- Grupo de Mídia Quântica. IR/PR Amplificado. Acesse aqui.
- PlatoAiStream. Inteligência de Dados Web3. Conhecimento Amplificado. Acesse aqui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/fast-track-graph-ml-with-graphstorm-a-new-way-to-solve-problems-on-enterprise-scale-graphs/
- :tem
- :é
- $UP
- 1
- 1 TB
- 100
- 16
- 31
- 500
- 7
- 8
- 9
- a
- Capaz
- Sobre
- acadêmico
- acelerar
- Conta
- precisão
- atividade
- real
- Ad
- adicionar
- Adição
- endereços
- Adoção
- anúncios
- avançado
- afiliações
- Depois de
- novamente
- AI / ML
- Alertar
- algoritmos
- Todos os Produtos
- permitir
- permite
- tb
- Amazon
- Amazon EC2
- Amazon Netuno
- Fluxo de tempo da Amazon
- Amazon Web Services
- Amazon.com
- entre
- an
- análise
- e
- Anunciar
- antecipando
- qualquer
- apache
- api
- Aplicação
- aplicações
- aplicado
- arquitetura
- SOMOS
- AS
- Associação
- At
- por WhatsApp.
- atributos
- autores
- Automatizado
- automaticamente
- disponível
- AWS
- baseado
- Linha de Base
- basic
- Basicamente
- BE
- Porque
- sido
- antes
- referência
- beneficiar
- MELHOR
- entre
- bilhão
- bilhões
- ambos
- Inferior
- caixas
- prego
- trazer
- construir
- construído
- construídas em
- negócio
- mas a
- by
- CAN
- capacidades
- capturas
- Capturar
- casas
- correntes
- desafios
- desafiante
- verificar
- classificação
- código
- coleção
- COM
- comunidade
- Empresa
- integrações
- complexidade
- componente
- componentes
- Computar
- computador
- Ciência da Computação
- Contato
- Coneções
- consiste
- construir
- construção
- formação
- consultor
- contém
- ao controle
- poderia
- cobertura
- crio
- personalizadas
- cliente
- Clientes
- da
- dados,
- informática
- ciência de dados
- conjuntos de dados
- dias
- profundo
- Define
- definição
- demonstrar
- implantar
- implantado
- projetado
- destino
- Detecção
- desenvolver
- em desenvolvimento
- Desenvolvimento
- dgl
- diferente
- difícil
- diretamente
- distribuído
- treinamento distribuído
- do
- Não faz
- domínios
- dezenas
- condução
- dois
- cada
- facilmente
- fácil
- borda
- Eficaz
- eficiente
- esforço
- incorporado
- embutindo
- emergente
- permitir
- habilitado
- permite
- end-to-end
- Engenharia
- Engenheiros
- aumentar
- Empreendimento
- entidades
- entidade
- avaliar
- avaliação
- avaliação
- Mesmo
- exemplo
- excede
- animado
- experimentar
- especialista
- experiência
- externo
- extrato
- Característica
- Funcionalidades
- campo
- Campos
- Figura
- Envie o
- Arquivos
- Finalmente
- descoberta
- Primeiro nome
- fluxo
- Foco
- seguinte
- Escolha
- formato
- quatro
- Quadro
- enquadramentos
- fraude
- detecção de fraude
- da
- futuro
- Geral
- gerar
- gera
- George
- ter
- GitHub
- dado
- GM
- GPU
- GPUs
- gráfico
- gráficos
- Grupo
- manipular
- Queijos duros
- Ter
- he
- ajudar
- SUA PARTICIPAÇÃO FAZ A DIFERENÇA
- Alta
- altamente
- sua
- detém
- Como funciona o dobrador de carta de canal
- How High
- Como Negociar
- http
- HTTPS
- Centenas
- ID
- ids
- if
- importante
- melhorar
- melhoria
- melhorar
- in
- Em outra
- Incluindo
- indústria
- INFORMAÇÕES
- inerentemente
- entrada
- instalando
- instância
- em vez disso
- Inteligência
- interações
- Interface
- internamente
- para dentro
- Introdução
- IT
- ESTÁ
- Trabalho
- Johns Hopkins University
- juntando
- jpg
- json
- apenas por
- Chave
- Conhecimento
- conhecido
- Rótulos
- grande
- em grande escala
- lançamento
- de lançamento
- camada
- camadas
- conduzir
- principal
- APRENDER
- aprendizagem
- Biblioteca
- Licença
- como
- Provável
- Line
- LINK
- Links
- listas
- pequeno
- máquina
- aprendizado de máquina
- máquinas
- Maio
- fazer
- FAZ
- Fazendo
- de grupos
- Gerente
- maneira
- muitos
- marcado
- maciço
- McKinsey
- McKinsey & Company
- significar
- medição
- Memória
- método
- métodos
- métrico
- Métrica
- Coração
- milhão
- ML
- modelo
- modelos
- mês
- mais
- a maioria
- múltiplo
- nativo
- você merece...
- Netuno
- rede
- redes
- redes neurais
- Novo
- nó
- nós
- caderno
- agora
- objetivo
- of
- Oferece
- on
- ONE
- só
- open source
- código-fonte aberto
- operando
- otimizando
- Opções
- or
- Outros
- A Nossa
- Fora
- Acima de
- global
- próprio
- Papel
- papéis
- Paralelo
- Realizar
- atuação
- escolher
- oleoduto
- platão
- Inteligência de Dados Platão
- PlatãoData
- Popular
- Publique
- potencialmente
- predizer
- previsto
- prevendo
- predição
- Previsões
- preferências
- anteriormente
- Diretor
- Problema
- problemas
- processo
- em processamento
- Produto
- gestão de produtos
- gerente de produto
- Produção
- Produtos
- comprovado
- fornecer
- fornece
- fornecendo
- colocar
- pytorch
- qualidade
- rapidamente
- RAM
- classificado
- Cru
- alcançar
- Chega
- mundo real
- recomendações
- Reduzido
- Relacionamentos
- liberar
- repetir
- requerer
- requeridos
- exige
- pesquisa
- Resultados
- certo
- riscos
- rotineiramente
- LINHA
- Execute
- mesmo
- diz
- AMPLIAR
- Escala
- cenários
- Ciência
- Cientista
- cientistas
- Pesquisar
- Seção
- Vejo
- senior
- serviço
- Serviços
- conjunto
- rede de apoio social
- mostrar
- mostrando
- Shows
- Similarmente
- simplificar
- simplesmente
- solteiro
- Tamanho
- Redes Sociais
- rede social
- Soluções
- RESOLVER
- alguns
- fonte
- estado-da-arte
- Passo
- Passos
- armazenamento
- loja
- armazenadas
- Estratégia
- estrutura
- Estudo
- tal
- supply
- Redes de fornecimento
- ajuda
- Apoiar
- suportes
- mesa
- Tire
- toma
- Tarefa
- Profissionais
- equipes
- tecnologia
- Dados Técnicos:
- técnicas
- dezenas
- teste
- que
- A
- O Futuro
- The Graph
- A fonte
- deles
- Lá.
- assim sendo
- Este
- deles
- think
- isto
- Apesar?
- milhares
- ameaça
- três
- vezes
- para
- ferramentas
- topo
- tráfego
- Trem
- treinado
- Training
- transação
- Transformar
- transformador
- verdadeiro
- tentar
- dois
- tipo
- tipos
- para
- único
- universidade
- usabilidade
- usar
- caso de uso
- usava
- usos
- utilização
- Valioso
- vário
- locais
- verticalmente
- via
- Visite a
- foi
- Caminho..
- we
- web
- serviços web
- BEM
- quando
- qual
- largamente
- precisarão
- de
- sem
- trabalhou
- escrita
- yaml
- Vocês
- investimentos
- zefirnet
- ZOO