Ideias de soluções
Este artigo descreve uma ideia de solução. Seu arquiteto de nuvem pode usar essa orientação para ajudar a visualizar os principais componentes para uma implementação típica dessa arquitetura. Use este artigo como ponto de partida para projetar uma solução bem arquitetada que se alinhe aos requisitos específicos de sua carga de trabalho.
Essa arquitetura fornece orientação e recomendações para o desenvolvimento de uma solução de direção automatizada.
Arquitetura
Baixe um arquivo do Visio que contém os diagramas de arquitetura neste artigo.
Fluxo de dados
Os dados de medição vêm de fluxos de dados para sensores como câmeras, radar, ultrassom, lidar e telemetria veicular. Os agentes de dados no veículo armazenam os dados de medida em dispositivos de armazenamento do agente. Os dados de armazenamento do agente são então carregados em um data lake de destino. Um serviço como o Azure Data Box ou Azure Stack Edge, ou uma conexão dedicada como o Azure ExpressRoute, ingere os dados no Azure.
Os dados de medição também podem ser dados sintéticos de simulações ou de outras fontes. (MDF4, TDMS e rosbag são formatos de dados comuns para medições). Na etapa DataOps, as medições ingeridas são processadas. Verificações de validação e qualidade de dados, como soma de verificação, são realizadas para remover dados de baixa qualidade. Nesta etapa, metadados de informações brutas que são gravados por um driver de teste durante um test drive são extraídos. Esses dados são armazenados em um catálogo de metadados centralizado. Essas informações ajudam os processos downstream a identificar cenas e sequências específicas.
Os dados são processados por um pipeline de ETL (extração, transformação e carregamento) do Azure Data Factory. A saída é armazenada como dados brutos e binários no Azure Data Lake. Os metadados são armazenados no Azure Cosmos DB. Dependendo do cenário, ele pode ser enviado para o Azure Data Explorer ou a Pesquisa Cognitiva do Azure.
Informações adicionais, insights e contexto são adicionados aos dados para melhorar sua precisão e confiabilidade.
Os dados de medição extraídos são fornecidos a parceiros de rotulagem (human-in-the-loop) por meio do Compartilhamento de Dados do Azure. Parceiros terceirizados realizam a rotulagem automática, o armazenamento e o acesso a dados por meio de uma conta de Data Lake separada.
Os conjuntos de dados rotulados fluem para processos MLOps downstream, principalmente para criar modelos de percepção e fusão de sensores. Esses modelos executam funções que são usadas por veículos autônomos para detectar cenas (ou seja, mudanças de faixa, estradas bloqueadas, pedestres, semáforos e sinais de trânsito).
Na etapa de ValOps, os modelos treinados são validados por meio de testes de loop aberto e loop fechado.
Ferramentas como Foxglove, em execução no Serviço de Kubernetes do Azure ou no Instâncias de Contêineres do Azure, visualizam os dados ingeridos e processados.
Coleta de dados
A coleta de dados é um dos principais desafios das AVOps (Operações de Veículos Autônomos). O diagrama a seguir mostra um exemplo de como os dados do veículo offline e online podem ser coletados e armazenados em um data lake.
DataOps
Operações de dados (DataOps) é um conjunto de práticas, processos e ferramentas para melhorar a qualidade, velocidade e confiabilidade das operações de dados. A meta do fluxo de DataOps para AD (direção autônoma) é garantir que os dados usados para controlar o veículo sejam de alta qualidade, precisos e confiáveis. Usando um fluxo de DataOps consistente, você pode melhorar a velocidade e a precisão de suas operações de dados e tomar melhores decisões para controlar seus veículos autônomos.
Componentes de DataOps
- O Data Box é usado para transferir dados de veículo coletados para o Azure por meio de uma transportadora regional.
- O ExpressRoute estende a rede local para a nuvem da Microsoft por meio de uma conexão privada.
- O Azure Data Lake Storage armazena dados com base em estágios, por exemplo, brutos ou extraídos.
- O Azure Data Factory executa ETL por meio da computação em lote e cria fluxos de trabalho controlados por dados para orquestrar a movimentação de dados e transformar dados.
- O Lote do Azure executa aplicativos em grande escala para tarefas como estruturação de dados, filtragem e preparação de dados e extração de metadados.
- O Azure Cosmos DB armazena resultados de metadados, como medições armazenadas.
- O Data Share é usado para compartilhar dados com organizações parceiras, como empresas de rotulagem, com segurança aprimorada.
- O Azure Databricks fornece um conjunto de ferramentas para manter soluções de dados de nível empresarial em escala. Ele é necessário para operações de longa execução em grandes quantidades de dados do veículo. Os engenheiros de dados usam o Azure Databricks como um workbench de análise.
- O Azure Synapse Analytics reduz o tempo de insights entre data warehouses e sistemas de Big Data.
- O Azure Cognitive Search fornece serviços de pesquisa de catálogo de dados.
MLOps
As MLOps (operações de aprendizado de máquina) incluem:
- Modelos de extração de recursos (como CLIP e YOLO) para classificar cenas (por exemplo, se um pedestre está na cena) durante o pipeline DataOps.
- Modelos de rotulagem automática para rotulagem de imagens ingeridas e dados de lidar e radar.
- Modelos de percepção e visão computacional para detecção de objetos e cenas.
- Um modelo de fusão de sensores que combina fluxos de sensores.
O modelo de percepção é um componente importante dessa arquitetura. Esse modelo do Azure Machine Learning gera um modelo de detecção de objeto usando cenas detectadas e extraídas.
A transferência do modelo de aprendizado de máquina conteinerizado para um formato que pode ser lido pelo sistema em um hardware de chip (SoC) e software de validação/simulação ocorre no pipeline MLOps. Esta etapa requer o suporte do fabricante de SoC.
Componentes de MLOps
- O Azure Machine Learning é usado para desenvolver algoritmos de aprendizado de máquina, como extração de recursos, rotulagem automática, detecção e classificação de objetos e fusão de sensores.
- O Azure DevOps fornece suporte para tarefas de DevOps, como CI/CD, teste e automação.
- O GitHub para empresas é uma opção alternativa para tarefas de DevOps, como CI/CD, testes e automação.
- O Registro de Contêiner do Azure permite criar, armazenar e gerenciar imagens de contêiner e artefatos em um registro privado.
ValOps
ValOps (operações de validação) é o processo de testar modelos desenvolvidos em ambientes simulados por meio de cenários gerenciados antes de executar testes ambientais caros do mundo real. Os testes de ValOps ajudam a garantir que os modelos atendam aos padrões de desempenho, padrões de precisão e requisitos de segurança desejados. A meta do processo de validação na nuvem é identificar e resolver quaisquer problemas potenciais antes de implantar o veículo autônomo em um ambiente ao vivo. ValOps inclui:
- Validação de simulação. Os ambientes de simulação baseados em nuvem (testes de loop aberto e de loop fechado) permitem testes virtuais de modelos de veículos autônomos. Esse teste é executado em escala e é mais barato do que o teste do mundo real.
- Validação de desempenho. A infraestrutura baseada em nuvem pode executar testes em larga escala para avaliar o desempenho de modelos de veículos autônomos. A validação de desempenho pode incluir testes de estresse, testes de carga e benchmarks.
O uso do ValOps para validação pode ajudá-lo a aproveitar a escalabilidade, a flexibilidade e a economia de uma infraestrutura baseada em nuvem e reduzir o tempo de lançamento no mercado de modelos de veículos autônomos.
Teste de loop aberto
Nova simulação, ou processamento de sensores, é um sistema de teste e validação de loop aberto para funções de condução automática. É um processo complexo e pode haver requisitos regulatórios de segurança, privacidade de dados, controle de versão de dados e auditoria. Os processos de nova simulação registraram dados brutos de vários sensores do carro por meio de um gráfico na nuvem. A nova simulação valida algoritmos de processamento de dados ou detecta regressões. Os OEMs combinam sensores em um grafo direcionado acíclico que representa um veículo do mundo real.
A nova simulação é um trabalho de computação paralela em larga escala. Ele processa dezenas ou centenas de PBs de dados usando dezenas de milhares de núcleos. Ele requer taxa de transferência de E/S de mais de 30 GB/s. Os dados de vários sensores são combinados em conjuntos de dados que representam uma visão do que os sistemas de visão computacional do veículo registram quando o veículo navega no mundo real. Um teste de loop aberto valida o desempenho dos algoritmos contra a verdade terrestre usando repetição e pontuação. A saída é usada posteriormente no fluxo de trabalho para treinamento de algoritmo.
- Os conjuntos de dados são provenientes de veículos da frota de teste que coletam dados brutos de sensores (por exemplo, dados de câmera, lidar, radar e ultrassom).
- O volume de dados depende da resolução da câmera e do número de sensores no veículo.
- Os dados brutos são reprocessados em diferentes versões de software dos dispositivos.
- Os dados brutos do sensor são enviados para a interface de entrada do sensor do software do sensor.
- A saída é comparada com a saída de versões anteriores do software e é verificada em relação a correções de bugs ou novos recursos, como a detecção de novos tipos de objetos.
- Uma segunda reinjeção do trabalho é executada após a atualização do modelo e do software.
- Os dados de verdade de base são usados para validar os resultados.
- Os resultados são gravados no armazenamento e descarregados no Azure Data Explorer para visualização.
Teste e simulação em loop fechado
O teste de loop fechado de veículos autônomos é o processo de testar as capacidades do veículo, incluindo comentários em tempo real do ambiente. As ações do veículo são baseadas tanto em seu comportamento pré-programado quanto nas condições dinâmicas que encontra, e ele ajusta suas ações de acordo. Os testes de loop fechado são executados em um ambiente mais complexo e realista. Ele é usado para avaliar a capacidade do veículo de lidar com cenários do mundo real, incluindo como ele reage a situações inesperadas. A meta dos testes em circuito fechado é verificar se o veículo pode operar com segurança e eficácia em várias condições e refinar seus algoritmos de controle e processos de tomada de decisão, conforme necessário.
O pipeline ValOps integra testes de loop fechado, simulações de terceiros e aplicativos ISV.
Gerenciamento de cenários
Durante o estágio ValOps, um catálogo de cenários reais é usado para validar a capacidade da solução de direção autônoma de simular o comportamento de veículos autônomos. O objetivo é acelerar a criação de catálogos de cenários por meio da leitura automática da rede de rotas, que faz parte de um cenário, de mapas digitais acessíveis ao público e disponíveis gratuitamente. Use ferramentas de terceiros para gerenciamento de cenários ou um simulador de código aberto leve como o CARLA, que dá suporte ao formato OpenDRIVE (xodr). Para obter mais informações, consulte ScenarioRunner para CARLA.
Componentes de ValOps
- O Serviço de Kubernetes do Azure executa inferência em lote em grande escala para validação de loop aberto em uma estrutura Resin. Recomendamos que você use BlobFuse2 para acessar os arquivos de medição. Você também pode usar o NFS, mas precisa avaliar o desempenho para o caso de uso.
- O Lote do Azure executa inferência em lote em grande escala para validação de loop aberto em uma estrutura Resin.
- O Azure Data Explorer fornece um serviço de análise para medições e KPIs (ou seja, nova simulação e execuções de trabalho).
Funções do AVOps centralizadas
Uma arquitetura AVOps é complexa e envolve vários terceiros, funções e estágios de desenvolvimento, por isso é importante implementar um bom modelo de governança.
Recomendamos que você crie uma equipe centralizada para lidar com funções como provisionamento de infraestrutura, gerenciamento de custos, catálogo de metadados e de dados, linhagem e orquestração geral e tratamento de eventos. A centralização desses serviços é eficiente e simplifica as operações.
Recomendamos que você use uma equipe centralizada para lidar com essas responsabilidades:
- Fornecimento de modelos ARM/Bicep, incluindo modelos para serviços padrão, como armazenamento e computação, usados por cada área e subárea da arquitetura AVOps
- Implementação de instâncias centrais do Barramento de Serviço do Azure/Hubs de Eventos do Azure para uma orquestração orientada a eventos do loop de dados AVOps
- Propriedade do catálogo de metadados
- Recursos para linhagem de ponta a ponta e rastreabilidade em todos os componentes AVOps
Detalhes do cenário
Você pode usar essa arquitetura para criar uma solução de direção automatizada no Azure.
Possíveis casos de uso
OEMs automotivos, fornecedores de Nível 1 e ISVs que desenvolvem soluções para direção automatizada.
Considerações
Essas considerações implementam os pilares do Azure Well-Architected Framework, um conjunto de princípios orientadores que você pode usar para aprimorar a qualidade de uma carga de trabalho. Para obter mais informações, confira Microsoft Azure Well-Architected Framework.
Segurança
A segurança fornece garantias contra ataques deliberados e o abuso de seus dados e sistemas valiosos. Para obter mais informações, consulte Visão geral do pilar de segurança.
É importante entender a divisão da responsabilidade entre o OEM automotivo e o provedor de nuvem. No veículo, o OEM possui toda a pilha, mas à medida que os dados são movidos para a nuvem, algumas responsabilidades são transferidas para o provedor de nuvem. A PaaS (Plataforma como serviço) do Azure fornece segurança aprimorada interna na pilha física, incluindo o sistema operacional. Você pode aplicar os seguintes aprimoramentos, além dos componentes de segurança da infraestrutura. Essas melhorias permitem uma abordagem de Confiança Zero.
- Pontos de extremidade privados para segurança de rede. Para obter mais informações, consulte Pontos de extremidade privados para o Azure Data Explorer e Permitir acesso a namespaces dos hubs de eventos do Azure por meio de pontos de extremidade privados.
- Criptografia em repouso e em trânsito. Para obter mais informações, consulte Visão geral da criptografia do Azure.
- Gerenciamento de identidade e acesso que usa identidades do Microsoft Entra e políticas de Acesso Condicional do Microsoft Entra.
- RLS (Segurança em nível de linha) para o Azure Data Explorer.
- Governança de infraestrutura que usa o Azure Policy.
- Governança de dados que usa o Microsoft Purview.
- Gerenciamento de certificados para ajudar a proteger a conexão de veículos.
- Acesso de privilégio mínimo. Limite o acesso do usuário com JIT (Just-In-Time) e JEA (Just-Enough-Administration), políticas adaptáveis baseadas em risco e proteção de dados.
Otimização de custo
A otimização de custos consiste em reduzir despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, consulte Visão geral do pilar de otimização de custo.
Você pode usar essas estratégias para reduzir os custos associados ao desenvolvimento de soluções de direção autônoma:
- Otimizar a infraestrutura de nuvem. O planejamento e o gerenciamento cuidadosos da infraestrutura de nuvem podem ajudar você a reduzir custos. Por exemplo, use tipos de instância econômicos e dimensione a infraestrutura para atender às cargas de trabalho em constante mudança. Siga as orientações em Estrutura de Adoção de Nuvem do Azure.
- Use Máquinas Virtuais de Spot. Você pode determinar quais cargas de trabalho em sua implantação do AVOps não exigem processamento dentro de um período de tempo específico e usar Máquinas Virtuais de Spot para essas cargas de trabalho. Com as Máquinas Virtuais de Spot, é possível aproveitar a capacidade do Azure não usada com uma economia de custos significativa. Se o Azure precisar da capacidade de volta, a infraestrutura do Azure removerá as máquinas virtuais de spot.
- Usar o dimensionamento automático. O dimensionamento automático permite ajustar automaticamente sua infraestrutura de nuvem com base na demanda, reduzindo a necessidade de intervenção manual e ajudando a reduzir custos. Para obter mais informações, consulte Design para dimensionamento.
- Considerar o uso das camadas frequente, esporádica e de arquivos para armazenamento. O armazenamento pode ser um custo significativo em uma solução de direção autônoma, portanto, você precisa escolher opções de armazenamento econômicas, como armazenamento frio ou armazenamento de acesso infrequente. Para obter mais informações, consulte o gerenciamento do ciclo de vida de dados.
- Usar ferramentas de gerenciamento e otimização de custos. O Gerenciamento de Custos da Microsoft fornece ferramentas que podem ajudar você a identificar e abordar áreas para redução de custos, como recursos não utilizados ou subutilizados.
- Considerar o uso de serviços do Azure. Por exemplo, você pode usar o Azure Machine Learning para criar e treinar modelos de direção autônoma. O uso desses serviços pode ser mais econômico do que construir e manter uma infraestrutura interna.
- Usar recursos compartilhados. Quando possível, você pode usar recursos compartilhados, como bancos de dados compartilhados ou recursos de computação compartilhados, para reduzir os custos associados ao desenvolvimento de direção autônoma. As funções centralizadas nessa arquitetura, por exemplo, implementam um barramento central, hub de eventos e catálogo de metadados. Serviços como o Compartilhamento de Dados do Azure também podem ajudar você a atingir essa meta.
Colaboradores
Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.
Principais autores:
- Ryan Matsumura | Gerente de Programas Sênior
- Jochen Schroeer | Arquiteto líder (Mobilidade de Linha de Serviço)
Outros colaboradores:
- Mick Alberts | Escritor Técnico
- David Peterson | Arquiteto Chefe
- Gabriel Sallah | Especialista da HPC/AI Global Black Belt
Para ver perfis não públicos do LinkedIn, entre no LinkedIn.
Próximas etapas
- O que é Azure Machine Learning?
- O que é o Lote do Azure?
- Documentação do Azure Data Factory
- O que é o Azure Data Share?
Recursos relacionados
Para obter mais informações sobre como desenvolver DataOps para um sistema de direção automatizada, consulte:
Você também pode se interessar por estes artigos relacionados: