Design de arquitetura de IA (inteligência artificial)

A IA (inteligência artificial) é a capacidade de um computador imitar o comportamento humano inteligente. Por meio da IA, os computadores podem analisar imagens, compreender a fala, interagir de maneiras naturais 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 usada para resolver um problema ou analisar um conjunto de dados. É como um fluxograma, com instruções passo a passo para perguntas a fazer, mas escritas em código matemáticos e de programação. Um algoritmo pode descrever como determinar se um animal de estimação é um gato, cachorro, peixe, pássaro ou lagarto. Outro algoritmo muito mais complicado pode descrever como identificar um idioma escrito ou falado, analisar as palavras, traduzi-las em um idioma diferente e verificar a precisão da tradução.

Aprendizado de máquina

O machine learning (ML) é 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 nele para gerar modelos. Esses modelos são usados para fazer previsões baseadas em informações ou 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 empresariais específicos e ajustados conforme necessário. Esse processo de aprendizado e validação é chamado de treinamento. Por meio do retreinamento periódico, os modelos de ML são aprimorados ao longo do tempo.

Aprendizado

O aprendizado profundo é um tipo de ML que pode determinar se as previsões dele são precisas. Ele também usa algoritmos para analisar dados, mas faz isso em uma escala maior que o ML.

O aprendizado profundo usa redes neurais artificiais, que consistem em várias camadas de algoritmos. Cada camada analisa os dados de entrada, executa análises especializadas próprias e produz uma saída que outras camadas podem entender. Essa saída é passada para a próxima camada, em que um algoritmo diferente faz a própria análise e assim por diante.

Com muitas camadas em cada rede neural e, às vezes, usando várias redes neurais, um computador pode aprender por meio do 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 nele como um robô sem um corpo. Em comparação com os atuais, os primeiros bots eram simples, manipulando tarefas repetitivas e volumosas com lógica algorítmica relativamente simples. Um exemplo seria rastreadores da Web usados pelos mecanismos de pesquisa para explorar e catalogar automaticamente o conteúdo da Web.

Os bots se tornaram muito mais sofisticados. Agora usam IA e outras tecnologias para imitar a atividade humana e a tomada de decisões, muitas vezes interagindo diretamente com humanos por meio de texto ou até mesmo de fala. Exemplos incluem bots que podem fazer uma reserva de jantar, chatbots (ou IA de conversa) que ajudam com interações de atendimento ao cliente e bots sociais que postam notícias recentes 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 para o desenvolvimento de bot 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 fornecem inteligência a máquinas para que possam se adaptar a ambientes em mudança e atingir uma meta desejada.

Edifícios inteligentes usam sistemas autônomos para controlar automaticamente operações como iluminação, ventilador, ar-condicionado e segurança. Um exemplo mais sofisticado seria um robô autodirigido explorando uma mina que sofreu desmoronamento para mapear por completo o interior do local, determinar quais partes estão estruturalmente sólidas, analisar se o ar é respirável e detectar sinais de mineradores presos que precisam de resgate, tudo sem monitoramento humano e em tempo real no lado remoto.

Informações gerais sobre a IA da Microsoft

Saiba mais sobre a IA da Microsoft e fique por dentro das notícias relacionadas:

Tipos de arquitetura de alto nível

IA predefinida

A IA predefinida é exatamente o que parece: modelos, serviços e APIs de IA prontos para uso. Isso ajuda você a adicionar inteligência a aplicativos, sites e fluxos sem precisar coletar dados, para depois criar, treinar e publicar modelos próprios.

Um exemplo de IA predefinida pode ser um modelo pré-treinado que pode ser incorporado como está ou usado para fornecer uma linha de base para treinamento personalizado posterior. Outro exemplo seria um serviço de API baseado em nuvem que pode ser chamado a qualquer momento para processar idioma natural conforme desejado.

Serviços Cognitivos do Azure

Os Serviços Cognitivos oferecem aos desenvolvedores a oportunidade de usar APIs predefinidas 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 incluído nos Serviços Cognitivos pode ser categorizado em cinco pilares principais: Visão, Fala, Idioma, Pesquisa na Web e Decisão/Recomendação.

Modelos de IA predefinidos no AI Builder

AI Builder é uma nova funcionalidade no Microsoft Power Platform que fornece uma interface de ponto e clique para adicionar IA aos seus aplicativos, mesmo que você não tenha habilidades de codificação ou de ciência de dados. (Alguns recursos no AI Builder ainda não foram lançados em disponibilidade geral e permanecem no status de versão prévia. Para obter mais informações, confira a página Disponibilidade de recursos por região.)

Você pode criar e treinar seus modelos, mas o AI Builder também fornece modelos de IA predefinidos selecionados prontos para uso imediato. Por exemplo, você pode adicionar um componente no Microsoft Power Apps com base em um modelo predefinido que reconhece informações de contato de cartões de visita.

IA personalizada

Embora a IA predefinida seja útil (e cada vez mais flexível), a melhor maneira de obter o que você precisa da IA provavelmente é criar um sistema por conta própria. Obviamente, esse é um assunto muito profundo e complexo, mas vamos ver alguns conceitos básicos além do que já abordamos.

Linguagens de código

O conceito principal da IA é o uso de algoritmos para analisar dados e gerar modelos para descrevê-los (ou pontuá-los) de maneiras ú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 atualmente são Python e R.

O Python é uma linguagem de programação de alto nível de uso geral. Ele tem uma sintaxe simples e fácil de aprender que enfatiza a capacidade de leitura. Não há etapa de compilação. O Python tem uma biblioteca padrão grande, mas também dá suporte à 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 prontamente disponíveis no Azure.

O R é uma linguagem e um ambiente para gráficos e computação estatística. Ele pode ser usado para tudo, desde o mapeamento de tendências sociais e de marketing online amplas 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 os próprios códigos no Azure.

Treinamento

O treinamento é fundamental para o machine learning. É o processo iterativo de "ensinar" um algoritmo a criar modelos, que são usados para analisar dados e fazer previsões precisas com base neles. Na prática, esse processo consiste em três fases gerais: treinamento, validação e teste.

Durante a fase de treinamento, um conjunto de dados conhecidos de qualidade é marcado para que campos individuais sejam identificáveis. Os dados marcados são alimentados a um algoritmo configurado para fazer uma previsão específica. Depois disso, o algoritmo gera um modelo que descreve os padrões encontrados como um conjunto de parâmetros. Durante a validação, os dados atualizados são marcados e usados para testar o modelo. O algoritmo é ajustado conforme necessário e possivelmente passa por mais treinamento. Por fim, a fase de teste usa dados de mundo real sem marcas nem destinos pré-selecionados. Supondo que os resultados do modelo sejam precisos, ele é considerado pronto para uso e pode ser implantado.

Ajuste de hiperparâmetro

Os hiperparâmetros são variáveis de dados que regem o processo de treinamento em si. Eles são variáveis de configuração que controlam como o algoritmo deve funcionar. Dessa forma, os hiperparâmetros normalmente são definidos antes do início do treinamento do modelo e não são modificados durante o processo de treinamento como ocorre com os parâmetros. O ajuste de hiperparâmetros envolve a execução de avaliações na tarefa de treinamento, a avaliação de como eles estão fazendo o trabalho e, se necessário, o ajuste. Esse 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 vários modelos candidatos. Eles podem ter várias variâncias diferentes, incluindo o esforço necessário para preparar os dados, a flexibilidade do modelo, a quantidade de tempo de processamento e, obviamente, o grau de precisão dos resultados. A escolha do modelo mais bem treinado para suas necessidades e restrições é chamado de seleção de modelo, mas isso se refere mais à preparação antes do treinamento do que da escolha do que funciona melhor.

AutoML (machine learning automatizado)

O machine learning automatizado, também conhecido como AutoML, é o processo de automatizar tarefas demoradas e iterativas do desenvolvimento de modelo de machine learning. Ele pode reduzir significativamente o tempo necessário para fazer com que os modelos de ML fiquem prontos para a produção. O ML automatizado podem ajudar na seleção de modelo, no ajuste de hiperparâmetros, no treinamento de modelo e em outras tarefas, sem a necessidade de programação extensiva ou conhecimento de domínio.

Pontuação

A pontuação também é chamada de previsão e é o processo de geração de valores com base em um modelo de machine learning treinado, considerando alguns novos dados de entrada. Os valores (ou pontuações) criados podem representar previsões de valores futuros, mas também uma categoria ou um resultado provável. O processo de pontuação pode gerar diversos 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 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 de um cluster ao qual um novo item tem mais semelhança

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

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

A pontuação em tempo real é exatamente essa pontuação que está em andamento e sendo executada o mais rápido possível. O exemplo clássico é a detecção de fraudes de cartão 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 muitos outras aplicações.

Informações gerais sobre IA personalizada no Azure

Ofertas da plataforma de IA do Azure

Confira abaixo um detalhamento das tecnologias, das plataformas e dos serviços do Azure que você pode usar para desenvolver soluções de IA para suas necessidades.

Azure Machine Learning

Esse é um serviço de machine learning de nível empresarial para criar e implantar modelos mais rapidamente. O Azure Machine Learning oferece interfaces da Web e SDKs para você treinar e implantar rapidamente seus modelos e pipelines de machine learning em escala. Use essas funcionalidades com estruturas do Python de software livre, como a PyTorch, a TensorFlow e a Scikit-learn.

Arquiteturas de referência de machine learning para o Azure

Machine learning automatizado 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 uma experiência de notebooks que prioriza código.

Serviços Cognitivos do Azure

Essa é uma família abrangente de serviços de IA e APIs cognitivas para ajudar você a criar aplicativos inteligentes. Esses modelos de IA específicos ao domínio pré-treinados podem ser personalizados com seus dados.

Esse é um serviço de pesquisa de nuvem da plataforma AI para desenvolvimento de aplicativos Web e móveis. O serviço poderá pesquisar conteúdo heterogêneo privado, com opções de enriquecimento de IA se o conteúdo não for estruturado ou não pesquisável em formato bruto.

Serviço de Bot do Azure

Esse é um ambiente de desenvolvimento de bot criado para fins específicos com modelos pronto para uso para começar rapidamente.

Apache Spark no Azure

O Apache Spark é uma estrutura de processamento paralelo que dá suporte ao processamento na memória para aumentar o desempenho de aplicativos de análise de Big Data. O Spark oferece primitivos para computação de cluster na memória. Um trabalho do Spark pode carregar e armazenar em cache dados na memória e consultá-los repetidamente, o que é muito mais rápido do que os aplicativos baseados em disco, como o Hadoop.

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

A Biblioteca do Microsoft Machine Learning para Apache Spark é a SynapseML (anteriormente conhecida como MMLSpark). É uma biblioteca de código aberto que adiciona muitas ferramentas de aprendizado profundo e ciência de dados, funcionalidades de rede e desempenho de nível de produção ao ecossistema do Spark. Saiba mais sobre os recursos e as funcionalidades do SynapseML.

Azure Databricks Runtime para Machine Learning

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

O Databricks Runtime para ML (Machine Learning) permite iniciar um cluster do Databricks com todas as bibliotecas necessárias para treinamento distribuído. Ele fornece um ambiente pronto para uso para machine learning e ciência de dados. Além disso, ele contém várias bibliotecas populares, incluindo TensorFlow, PyTorch, Keras e XGBoost. Ele também suporta treinamento distribuído usando Horovod.

Histórias do cliente

Diferentes setores estão aplicando IA de maneiras inovadoras e inspiradoras. Confira abaixo vários estudos de caso de clientes e histórias de sucesso:

Procurar mais histórias de clientes de IA

Próximas etapas