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.
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.
Aprendizagem automática
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 de IA 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 de IA do Azure 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.
Azure for Python developers (Azure para programadores Python)
Introdução ao aprendizado de máquina com Python e Azure Notebooks
scikit-learn
. Uma biblioteca de ML de código aberto para PythonPyTorch. Uma biblioteca Python de código aberto com um ecossistema rico que pode ser usado para aprendizagem profunda, visão computacional, processamento de linguagem natural e muito mais
TensorFlow. Uma biblioteca de matemática simbólica de código aberto também usada para aplicações de ML e redes neurais
Tutorial: Aplicar modelos de aprendizado de máquina no Azure Functions com Python e TensorFlow
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
Microsoft AI no GitHub: exemplos, arquiteturas de referência e práticas recomendadas
Blocos de anotações do SDK Python do Azure Machine Learning. Um repositório GitHub de blocos de anotações de exemplo demonstrando o SDK Python do Azure Machine Learning.
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.
Quais são os produtos de aprendizado de máquina da Microsoft?
O que é o Azure Machine Learning? Orientação geral com links para muitos recursos de aprendizagem, SDKs, documentação e muito mais
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.
Página inicial do produto de aprendizado de máquina automatizado do Azure
Tutorial: Criar um modelo de classificação com ML automatizado no Azure Machine Learning
Automatize atividades de aprendizado de máquina com a CLI do Azure Machine Learning
Serviços de IA 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.
Azure Cognitive Search
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 heterogêneo privado, com opções de enriquecimento de IA se o seu conteúdo não for estruturado ou não pesquisável em 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.
Visão geral do Azure HDInsight. Informações básicas sobre recursos, arquitetura de cluster e casos de uso, com ponteiros para inícios rápidos e tutoriais.
Tutorial: Criar um aplicativo de aprendizado de máquina Apache Spark no Azure HDInsight
Criar um pipeline de aprendizado de máquina do Apache Spark no HDInsight
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:
ASOS: Retalhista online resolve desafios com o serviço Azure Machine Learning
Volkswagen: A tradução automática fala Volkswagen – em 40 línguas
Buncee: a escola de Nova York capacita leitores de todas as idades e habilidades com a IA do Azure
Asklepios Klinik Altona: Cirurgias de precisão com Microsoft HoloLens 2 e visualização 3D
Navegue por mais histórias de clientes de IA
Próximos passos
Para saber mais sobre os produtos de desenvolvimento de inteligência artificial disponíveis na Microsoft, consulte a página da plataforma de IA da Microsoft.
Para obter treinamento sobre como desenvolver soluções de IA, consulte Microsoft AI School.
Microsoft AI on GitHub: Samples, reference architectures, and best practices organiza os repositórios baseados em IA de código aberto da Microsoft, fornecendo tutoriais e materiais de aprendizagem.