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 com os requisitos específicos da sua carga de trabalho.
Esta arquitetura fornece orientações e recomendações para o desenvolvimento de uma solução de conduçã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 de veículos. Os registadores de dados no veículo armazenam dados de medição em dispositivos de armazenamento do registador. Os dados de armazenamento do registrador são então carregados para o lago de dados de pouso. Um serviço como o Azure Data Box ou o Azure Stack Edge, ou uma conexão dedicada como o Azure ExpressRoute, ingere 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.) No estágio DataOps, as medições ingeridas são processadas. Verificações de validação e qualidade de dados, como checksum, são realizadas para remover dados de baixa qualidade. Nesta etapa, os 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 a jusante a identificar cenas e sequências específicas.
Os dados são processados por um pipeline de extração, transformação e carregamento (ETL) 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 para 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 aos parceiros de rotulagem (human-in-the-loop) por meio do Compartilhamento de Dados do Azure. Parceiros terceirizados realizam a etiquetagem automática, armazenando e acessando dados por meio de uma conta Data Lake separada.
Conjuntos de dados rotulados fluem para processos MLOps downstream, principalmente para criar modelos de perceção e fusão de sensores. Esses modelos executam funções que são usadas por veículos autônomos para detetar cenas (ou seja, mudanças de faixa, estradas bloqueadas, pedestres, semáforos e sinais de trânsito).
No estágio ValOps, os modelos treinados são validados por meio de testes de circuito aberto e fechado.
Ferramentas como o Foxglove, em execução no Serviço Kubernetes do Azure ou nas Instâncias de Contêiner do Azure, visualizam dados ingeridos e processados.
Recolha de dados
A recolha de dados é um dos principais desafios das Operações de Veículos Autónomos (AVOps). O diagrama a seguir mostra um exemplo de como os dados offline e online do veículo podem ser coletados e armazenados em um data lake.
DataOps
As operações de dados (DataOps) são um conjunto de práticas, processos e ferramentas para melhorar a qualidade, a velocidade e a confiabilidade das operações de dados. O objetivo do fluxo DataOps para condução autônoma (AD) é garantir que os dados usados para controlar o veículo sejam de alta qualidade, precisos e confiáveis. Usando um fluxo consistente de DataOps, 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 DataOps
- O Data Box é utilizado para transferir os dados recolhidos do veículo para o Azure através de uma transportadora regional.
- O ExpressRoute estende a rede local para a nuvem da Microsoft através de uma conexão privada.
- O Armazenamento Azure Data Lake armazena dados com base em estágios, por exemplo, brutos ou extraídos.
- O Azure Data Factory executa ETL por meio de computação em lote e cria fluxos de trabalho orientados por dados para orquestrar a movimentação e a transformação de dados.
- O Azure Batch executa aplicativos de grande escala para tarefas como disputa 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 Compartilhamento de Dados é 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. É necessário para operações de longa duração em grandes quantidades de dados do veículo. Os engenheiros de dados usam o Azure Databricks como uma bancada de análise.
- O Azure Synapse Analytics reduz o tempo de obtenção de informações em armazéns de dados e sistemas de big data.
- A Pesquisa Cognitiva do Azure fornece serviços de pesquisa de catálogo de dados.
MLOps
As operações de aprendizado de máquina (MLOps) 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 de DataOps .
- Modelos de etiquetagem automática para etiquetagem de imagens ingeridas e dados lidar e radar.
- Modelos de perceção e visão computacional para deteção de objetos e cenas.
- Um modelo de fusão de sensores que combina fluxos de sensores.
O modelo de perceção é um componente importante dessa arquitetura. Este modelo do Azure Machine Learning gera um modelo de deteção de objetos utilizando cenas detetadas 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 do SoC.
Componentes MLOps
- O Aprendizado de Máquina do Azure é usado para desenvolver algoritmos de aprendizado de máquina, como extração de recursos, rotulagem automática, deteção e classificação de objetos e fusão de sensores.
- O Azure DevOps fornece suporte para tarefas de DevOps como CI/CD, testes 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 que você crie, armazene e gerencie imagens e artefatos de contêiner em um registro privado.
ValOps
As operações de validação (ValOps) são o processo de testar modelos desenvolvidos em ambientes simulados por meio de cenários gerenciados antes de executar testes ambientais dispendiosos no mundo real. Os testes ValOps ajudam a garantir que os modelos atendam aos padrões de desempenho, precisão e requisitos de segurança desejados. O objetivo 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. O ValOps inclui:
- Validação de simulação. Os ambientes de simulação baseados na nuvem (testes em circuito aberto e em circuito fechado) permitem testes virtuais de modelos de veículos autónomos. Este teste é executado em escala e é menos dispendioso do que os testes 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 esforço, testes de carga e benchmarks.
O uso do ValOps para validação pode ajudá-lo a aproveitar a escalabilidade, a flexibilidade e a relação custo-benefício de uma infraestrutura baseada em nuvem e reduzir o tempo de comercialização de modelos de veículos autônomos.
Teste de loop aberto
A resimulação, ou processamento de sensores, é um sistema de teste e validação em circuito aberto para funções de condução automática. É um processo complexo, e pode haver requisitos regulatórios para segurança, privacidade de dados, controle de versão de dados e auditoria. Os processos de resimulação registaram dados brutos de vários sensores de automóveis através de um gráfico na nuvem. A resimulação valida algoritmos de processamento de dados ou deteta regressões. Os OEMs combinam sensores em um gráfico acíclico direcionado que representa um veículo do mundo real.
A resimulação é um trabalho de computação paralela em grande escala. Ele processa dezenas ou centenas de PBs de dados usando dezenas de milhares de núcleos. Requer uma taxa de transferência de E/S superior a 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 em relação à verdade do solo usando replay e pontuação. A saída é usada posteriormente no fluxo de trabalho para treinamento de algoritmos.
- Os conjuntos de dados são provenientes de veículos da frota de teste que coletam dados brutos do sensor (por exemplo, câmera, lidar, radar e dados ultrassônicos).
- O volume de dados depende da resolução da câmara e do número de sensores no veículo.
- Os dados brutos são reprocessados em relação a 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 deteção de novos tipos de objetos.
- Uma segunda reinjeção do trabalho é realizada após a atualização do modelo e do software.
- Os dados de verdade do solo são usados para validar os resultados.
- Os resultados são gravados no armazenamento e descarregados no Azure Data Explorer para visualização.
Testes e simulação em circuito fechado
O teste em circuito fechado de veículos autônomos é o processo de testar as capacidades do veículo, incluindo feedback em tempo real do ambiente. As ações do veículo baseiam-se tanto no seu comportamento pré-programado como nas condições dinâmicas que encontra, e ajusta as suas ações em conformidade. Os testes em circuito fechado são executados em um ambiente mais complexo e realista. É utilizado para avaliar a capacidade do veículo para lidar com cenários do mundo real, incluindo a forma como reage a situações inesperadas. O objetivo dos ensaios em circuito fechado é verificar se o veículo pode funcionar de forma segura e eficaz em várias condições e aperfeiçoar os seus algoritmos de controlo e processos de tomada de decisão, conforme necessário.
O pipeline do ValOps integra testes de loop fechado, simulações de terceiros e aplicativos ISV.
Gestão de cenários
Durante a etapa 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 através da leitura automática da rede de rotas, que faz parte de um cenário, a partir 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 suporta o formato OpenDRIVE (xodr). Para obter mais informações, consulte ScenarioRunner para CARLA.
Componentes ValOps
- O Serviço Kubernetes do Azure executa inferência em lote em grande escala para validação de loop aberto dentro de uma estrutura de resina. Recomendamos que você use BlobFuse2 para acessar os arquivos de medição. Você também pode usar 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 de Resina .
- O Azure Data Explorer fornece um serviço de análise para medições e KPIs (ou seja, resimulação e execução de tarefas).
Funções 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, metadados e catálogo de dados, linhagem e orquestração geral e manipulação de eventos. Centralizar esses 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 Azure Service Bus / Azure Event Hubs 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 condução automatizada no Azure.
Potenciais casos de utilização
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, que é um conjunto de princípios orientadores que você pode usar para melhorar a qualidade de uma carga de trabalho. Para obter mais informações, consulte Microsoft Azure Well-Architected Framework.
Segurança
A segurança oferece garantias contra ataques deliberados e o abuso de seus valiosos dados e sistemas. Para obter mais informações, consulte Visão geral do pilar de segurança.
É importante entender a divisão de responsabilidade entre o OEM automotivo e o provedor de nuvem. No veículo, o OEM possui toda a pilha, mas à medida que os dados se movem para a nuvem, algumas responsabilidades são transferidas para o provedor de nuvem. A plataforma Azure como serviço (PaaS) fornece segurança melhorada incorporada na pilha física, incluindo o sistema operativo. Você pode aplicar as seguintes melhorias além dos componentes de segurança de infraestrutura. Essas melhorias permitem uma abordagem Zero-Trust.
- Pontos finais 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 de Hubs de Eventos do Azure por meio de pontos de extremidade privados.
- Encriptação 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.
- Segurança em Nível de Linha (RLS) para o Azure Data Explorer.
- Governança de infraestrutura que usa a Política do Azure.
- Governança de dados que usa o Microsoft Purview.
- Gestão de certificados para ajudar a proteger a ligação dos veículos.
- Acesso com privilégios mínimos. Limite o acesso do usuário com Just-In-Time (JIT) e Just-Enough-Administration (JEA), políticas adaptáveis baseadas em risco e proteção de dados.
Otimização de custos
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 custos.
Pode utilizar estas estratégias para reduzir os custos associados ao desenvolvimento de soluções de condução autónoma:
- Otimize a infraestrutura de nuvem. O planejamento e o gerenciamento cuidadosos da infraestrutura de nuvem podem ajudá-lo 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 no Azure Cloud Adoption Framework.
- Use máquinas virtuais spot. Você pode determinar quais cargas de trabalho em sua implantação de AVOps não exigem processamento dentro de um período de tempo específico e usar máquinas virtuais spot para essas cargas de trabalho. As Máquinas Virtuais Spot permitem-lhe tirar partido da capacidade não utilizada do Azure para poupanças de custos significativas. Se o Azure precisar da capacidade de volta, a infraestrutura do Azure expulsará máquinas virtuais spot.
- Use 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.
- Considere o uso de níveis quentes, frios e de arquivamento para armazenamento. O armazenamento pode ser um custo significativo numa solução de condução autónoma, pelo que precisa de escolher opções de armazenamento económicas, como armazenamento a frio ou armazenamento de acesso pouco frequente. Para obter mais informações, consulte Gerenciamento do ciclo de vida dos dados.
- Utilize ferramentas de gestão e otimização de custos. O Microsoft Cost Management fornece ferramentas que podem ajudá-lo a identificar e abordar áreas para redução de custos, como recursos não utilizados ou subutilizados.
- Considere usar os serviços do Azure. Por exemplo, pode utilizar o Azure Machine Learning para criar e treinar modelos de condução autónoma. A utilização destes serviços pode ser mais rentável do que a construção e manutenção de infraestruturas internas.
- Use recursos compartilhados. Sempre que possível, pode utilizar recursos partilhados, como bases de dados partilhadas ou recursos computacionais partilhados, para reduzir os custos associados ao desenvolvimento da conduçã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 ajudá-lo a atingir essa meta.
Contribuidores
Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.
Principais autores:
- Ryan Matsumura - Brasil | Gerente de Programa Sênior
- Jochen Schroeer - Brasil | Arquiteto Líder (Service Line Mobility)
Outros contribuidores:
- Mick Alberts - Brasil | Redator Técnico
- David Peterson - Brasil | Arquiteto Chefe
- Gabriel Sallah - Brasil | Especialista Global Black Belt HPC/AI
Para ver perfis não públicos do LinkedIn, inicie sessão no LinkedIn.
Próximos passos
- O que é o Azure Machine Learning?
- O que é o Azure Batch?
- Documentação do Azure Data Factory
- O que é o Compartilhamento de Dados do Azure?
Recursos relacionados
Para obter mais informações sobre o desenvolvimento de DataOps para um sistema de condução automatizada, consulte:
Você também pode estar interessado nestes artigos relacionados: