Design de arquitetura de inteligência artificial (IA)

A inteligência artificial (IA) é a capacidade de um computador imitar o comportamento humano inteligente. Através da IA, as máquinas podem analisar imagens, compreender a fala, interagir de forma natural e fazer previsões usando dados.

Illustration depicting the relationship of artificial intelligence as a parent concept. Within AI is machine learning. Within machine learning is deep learning.

Conceitos de IA

Algoritmo

Um algoritmo é uma sequência de cálculos e regras usadas para resolver um problema ou analisar um conjunto de dados. É como um fluxograma, com instruções passo-a-passo para perguntas a fazer, mas escrito em matemática e código de programação. Um algoritmo pode descrever como determinar se um animal de estimação é um gato, cão, peixe, pássaro ou lagarto. Outro algoritmo muito mais complicado pode descrever como identificar uma língua escrita ou falada, analisar suas palavras, traduzi-las para um idioma diferente e, em seguida, verificar a precisão da tradução.

Machine learning

O aprendizado de máquina é uma técnica de IA que usa algoritmos matemáticos para criar modelos preditivos. Um algoritmo é usado para analisar campos de dados e "aprender" com esses dados usando padrões encontrados dentro dele para gerar modelos. Esses modelos são então usados para fazer previsões informadas ou tomar decisões sobre novos dados.

Os modelos preditivos são validados em relação a dados conhecidos, medidos por métricas de desempenho selecionadas para cenários de negócios específicos e, em seguida, ajustados conforme necessário. A este processo de aprendizagem e validação dá-se o nome de formação. Através da reciclagem periódica, os modelos de ML são melhorados ao longo do tempo.

Aprendizagem profunda

A aprendizagem profunda é um tipo de ML que pode determinar por si só se as suas previsões são precisas. Ele também usa algoritmos para analisar dados, mas o faz em uma escala maior do que o ML.

A aprendizagem profunda usa redes neurais artificiais, que consistem em várias camadas de algoritmos. Cada camada examina os dados recebidos, executa sua própria análise especializada e produz uma saída que outras camadas podem entender. Essa saída é então passada para a próxima camada, onde um algoritmo diferente faz sua própria análise, e assim por diante.

Com muitas camadas em cada rede neural - e às vezes usando várias redes neurais - uma máquina pode aprender através de seu próprio processamento de dados. Isso requer muito mais dados e muito mais poder de computação do que o ML.

Bots

Um bot é um programa de software automatizado projetado para executar uma tarefa específica. Pense nisso como um robô sem corpo. Os primeiros bots eram comparativamente simples, lidando com tarefas repetitivas e volumosas com lógica algorítmica relativamente simples. Um exemplo seriam os rastreadores da Web usados pelos mecanismos de pesquisa para explorar e catalogar automaticamente o conteúdo da Web.

Os bots tornaram-se muito mais sofisticados, usando IA e outras tecnologias para imitar a atividade humana e a tomada de decisões, muitas vezes enquanto interagem diretamente com os humanos através de texto ou mesmo fala. Os exemplos incluem bots que podem fazer uma reserva para jantar, chatbots (ou IA conversacional) que ajudam nas interações de atendimento ao cliente e bots sociais que publicam notícias de última hora ou dados científicos em sites de mídia social.

A Microsoft oferece o Serviço de Bot do Azure, um serviço gerenciado criado especificamente para o desenvolvimento de bots de nível empresarial.

Sistemas autónomos

Os sistemas autônomos fazem parte de uma nova classe em evolução que vai além da automação básica. Em vez de executar uma tarefa específica repetidamente com pouca ou nenhuma variação (como os bots fazem), os sistemas autônomos trazem inteligência às máquinas para que elas possam se adaptar a ambientes em mudança para atingir um objetivo desejado.

Os edifícios inteligentes utilizam sistemas autónomos para controlar automaticamente operações como iluminação, ventilação, ar condicionado e segurança. Um exemplo mais sofisticado seria um robô autodirigido explorando um poço de mina colapsado para mapear completamente seu interior, determinar quais partes são estruturalmente sólidas, analisar o ar quanto à respirabilidade e detetar sinais de mineiros presos que precisam de resgate - tudo sem um monitoramento humano em tempo real na extremidade remota.

Informações gerais sobre a IA da Microsoft

Saiba mais sobre a IA da Microsoft e mantenha-se atualizado com as notícias relacionadas:

Tipos de arquitetura de alto nível

IA pré-construída

A IA pré-construída é exatamente o que parece ser modelos, serviços e APIs de IA prontos para uso. Isso ajuda você a adicionar inteligência a aplicativos, sites e fluxos sem ter que coletar dados e, em seguida, criar, treinar e publicar seus próprios modelos.

Um exemplo de IA pré-construída pode ser um modelo pré-treinado que pode ser incorporado como está ou usado para fornecer uma linha de base para treinamento personalizado adicional. Outro exemplo seria um serviço de API baseado em nuvem que pode ser chamado à vontade para processar linguagem natural da maneira desejada.

Serviços Cognitivos do Azure

Os Serviços Cognitivos oferecem aos desenvolvedores a oportunidade de usar APIs pré-construídas e kits de ferramentas de integração para criar aplicativos que podem ver, ouvir, falar, entender e até mesmo começar a raciocinar. O catálogo de serviços dentro dos Serviços Cognitivos pode ser categorizado em cinco pilares principais: Visão, Fala, Linguagem, Pesquisa na Web e Decisão/Recomendação.

Modelos de IA pré-construídos no AI Builder

O AI Builder é um novo recurso da Microsoft Power Platform que fornece uma interface de apontar e clicar para adicionar IA aos seus aplicativos, mesmo que você não tenha habilidades de codificação ou ciência de dados. (Alguns recursos do AI Builder ainda não foram lançados para disponibilidade geral e permanecem no status de visualização. Para obter mais informações, consulte a página Disponibilidade de recursos por região .)

Você pode construir e treinar seus próprios modelos, mas o AI Builder também fornece modelos de IA pré-construídos selecionados que estão prontos para uso imediatamente. Por exemplo, você pode adicionar um componente no Microsoft Power Apps com base em um modelo pré-criado que reconhece informações de contato de cartões de visita.

IA personalizada

Embora a IA pré-construída seja útil (e cada vez mais flexível), a melhor maneira de obter o que você precisa da IA é provavelmente construir um sistema por conta própria. Este é obviamente um assunto muito profundo e complexo, mas vamos olhar para alguns conceitos básicos além do que acabamos de abordar.

Linguagens de código

O conceito central da IA é o uso de algoritmos para analisar dados e gerar modelos para descrevê-los (ou pontuá-los) de maneiras que sejam úteis. Os algoritmos são escritos por desenvolvedores e cientistas de dados (e às vezes por outros algoritmos) usando código de programação. Duas das linguagens de programação mais populares para desenvolvimento de IA são atualmente Python e R.

Python é uma linguagem de programação de alto nível de uso geral. Tem uma sintaxe simples e fácil de aprender que enfatiza a legibilidade. Não há nenhuma etapa de compilação. Python tem uma grande biblioteca padrão, mas também suporta a capacidade de adicionar módulos e pacotes. Isso incentiva a modularidade e permite expandir os recursos quando necessário. Há um ecossistema grande e crescente de bibliotecas de IA e ML para Python, incluindo muitas que estão prontamente disponíveis no Azure.

R é uma linguagem e ambiente para computação estatística e gráfica. Ele pode ser usado para tudo, desde o mapeamento de grandes tendências sociais e de marketing on-line até o desenvolvimento de modelos financeiros e climáticos.

A Microsoft adotou totalmente a linguagem de programação R e fornece muitas opções diferentes para os desenvolvedores de R executarem seu código no Azure.

Formação

O treinamento é fundamental para o aprendizado de máquina. É o processo iterativo de "ensinar" um algoritmo para criar modelos, que são usados para analisar dados e, em seguida, fazer previsões precisas a partir deles. Na prática, esse processo tem três fases gerais: treinamento, validação e testes.

Durante a fase de treinamento, um conjunto de qualidade de dados conhecidos é marcado para que os campos individuais sejam identificáveis. Os dados marcados são alimentados para um algoritmo configurado para fazer uma previsão específica. Quando concluído, o algoritmo produz um modelo que descreve os padrões encontrados como um conjunto de parâmetros. Durante a validação, dados novos são marcados e usados para testar o modelo. O algoritmo é ajustado conforme necessário e, possivelmente, submetido a mais treinamento. Finalmente, a fase de teste usa dados do mundo real sem tags ou alvos pré-selecionados. Supondo que os resultados do modelo sejam precisos, ele é considerado pronto para uso e pode ser implantado.

Otimização de hiperparâmetros

Os hiperparâmetros são variáveis de dados que regem o próprio processo de treinamento. São variáveis de configuração que controlam como o algoritmo opera. Os hiperparâmetros são, portanto, normalmente definidos antes do início do treinamento do modelo e não são modificados dentro do processo de treinamento da maneira que os parâmetros são. O ajuste de hiperparâmetros envolve a execução de testes dentro da tarefa de treinamento, avaliando o quão bem eles estão fazendo o trabalho e, em seguida, ajustando conforme necessário. Este processo gera vários modelos, cada um treinado usando diferentes famílias de hiperparâmetros.

Seleção de modelos

O processo de treinamento e ajuste de hiperparâmetros produz inúmeros modelos candidatos. Estes podem ter muitas variações diferentes, incluindo o esforço necessário para preparar os dados, a flexibilidade do modelo, a quantidade de tempo de processamento e, claro, o grau de precisão de seus resultados. Escolher o modelo mais bem treinado para suas necessidades e restrições é chamado de seleção de modelo, mas isso é tanto sobre pré-planejamento antes do treinamento quanto sobre escolher o que funciona melhor.

Aprendizado de máquina automatizado (AutoML)

O aprendizado de máquina automatizado, também conhecido como AutoML, é o processo de automatizar as tarefas iterativas e demoradas do desenvolvimento de modelos de aprendizado de máquina. Ele pode reduzir significativamente o tempo necessário para obter modelos de ML prontos para produção. O ML automatizado pode ajudar na seleção de modelos, ajuste de hiperparâmetros, treinamento de modelos e outras tarefas, sem exigir extenso conhecimento de programação ou domínio.

Classificação

A pontuação também é chamada de previsão e é o processo de gerar valores com base em um modelo de aprendizado de máquina treinado, dado alguns novos dados de entrada. Os valores, ou pontuações, que são criados podem representar previsões de valores futuros, mas também podem representar uma categoria ou resultado provável. O processo de pontuação pode gerar muitos tipos diferentes de valores:

  • Uma lista de itens recomendados e uma pontuação de similaridade

  • Valores numéricos, para modelos de séries temporais e modelos de regressão

  • Um valor de probabilidade, indicando a probabilidade de uma nova entrada pertencer a alguma categoria existente

  • O nome de uma categoria ou cluster ao qual um novo item é mais semelhante

  • Uma classe ou resultado previsto, para modelos de classificação

A pontuação em lote é quando os dados são coletados durante algum período de tempo fixo e, em seguida, processados em um lote. Isso pode incluir a geração de relatórios de negócios ou a análise da fidelidade do cliente.

A pontuação em tempo real é exatamente aquela pontuação que está em curso e é executada o mais rápido possível. O exemplo clássico é a deteção de fraudes com cartões de crédito, mas a pontuação em tempo real também pode ser usada em reconhecimento de fala, diagnósticos médicos, análises de mercado e muitas outras aplicações.

Informações gerais sobre IA personalizada no Azure

Ofertas da plataforma Azure AI

A seguir está um detalhamento das tecnologias, plataformas e serviços do Azure que você pode usar para desenvolver soluções de IA para suas necessidades.

Azure Machine Learning

Este é um serviço de aprendizado de máquina de nível empresarial para criar e implantar modelos mais rapidamente. O Azure Machine Learning oferece interfaces Web e SDKs para que possa treinar e implementar rapidamente os seus modelos e pipelines de aprendizagem automática em escala. Utilize estas capacidades com arquiteturas Python de código aberto como o PyTorch, TensorFlow e Scikit-learn.

Arquiteturas de referência de aprendizado de máquina para o Azure

Aprendizagem automática automática do Azure

O Azure fornece suporte extensivo para ML automatizado. Os desenvolvedores podem criar modelos usando uma interface do usuário sem código ou por meio de uma experiência de blocos de anotações code-first.

Serviços Cognitivos do Azure

Esta é uma família abrangente de serviços de IA e APIs cognitivas para ajudá-lo a criar aplicativos inteligentes. Esses modelos de IA pré-treinados e específicos do domínio podem ser personalizados com seus dados.

Este é um serviço de pesquisa na nuvem alimentado por IA para o desenvolvimento de aplicações móveis e web. O serviço pode pesquisar sobre conteúdo privado heterogêneo, com opções de enriquecimento de IA se o seu conteúdo não for estruturado ou não pesquisável na forma bruta.

Azure Bot Service

Este é um ambiente de desenvolvimento de bot criado especificamente com modelos prontos para uso para começar rapidamente.

Apache Spark no Azure

O Apache Spark é um framework de processamento paralelo que suporta o processamento dentro da memória para melhorar o desempenho de aplicações de análise de macrodados. O Spark fornece primitivos para a computação de cluster na memória. Um trabalho do Spark pode carregar e armazenar dados em cache na memória e consultá-los repetidamente, o que é muito mais rápido do que aplicativos baseados em disco, como o Hadoop.

O Apache Spark no Azure HDInsight é a implementação da Microsoft do Apache Spark na nuvem. Os clusters do Spark no HDInsight são compatíveis com o Armazenamento do Azure e o Armazenamento do Azure Data Lake, portanto, você pode usar os clusters do HDInsight Spark para processar seus dados armazenados no Azure.

A biblioteca de aprendizado de máquina da Microsoft para Apache Spark é SynapseML (anteriormente conhecida como MMLSpark). Essa biblioteca de código aberto adiciona muitas ferramentas de aprendizado profundo e ciência de dados, recursos de rede e desempenho de nível de produção ao ecossistema do Spark. Saiba mais sobre os recursos e capacidades do SynapseML.

Azure Databricks Runtime para Aprendizado de Máquina

O Azure Databricks é uma plataforma de análise baseada no Apache Spark com configuração com um clique, fluxos de trabalho simplificados e um espaço de trabalho interativo para colaboração entre cientistas de dados, engenheiros e analistas de negócios.

O Databricks Runtime for Machine Learning (Databricks Runtime ML) permite iniciar um cluster Databricks com todas as bibliotecas necessárias para treinamento distribuído. Ele fornece um ambiente pronto para uso para aprendizado de máquina e ciência de dados. Além disso, ele contém várias bibliotecas populares, incluindo TensorFlow, PyTorch, Keras e XGBoost. Também suporta a preparação distribuída com o Horovod.

Histórias de clientes

Diferentes indústrias estão aplicando a IA de maneiras inovadoras e inspiradoras. Seguem-se vários estudos de caso de clientes e histórias de sucesso:

Navegue por mais histórias de clientes de IA

Próximos passos