Não foi difícil identificar o tema motriz do Build 2024. Desde o lançamento pré-evento dos PCs Copilot + até as duas grandes palestras de Satya Nadella e Scott Guthrie, foi tudo IA. Até mesmo o tour anual do CTO do Azure, Mark Russinovich, pelas inovações de hardware do Azure se concentrou no suporte à IA.

Nos primeiros anos após Nadella se tornar CEO, ele falou muitas vezes sobre o que chamou de “a nuvem inteligente e a borda inteligente”, misturando o poder do big data, do aprendizado de máquina e do processamento baseado em borda. Era uma visão industrial do mundo nativo da nuvem, mas deu o tom para a abordagem da Microsoft à IA, usando os recursos de supercomputação do Azure para hospedar treinamento e inferência para nossos modelos de IA na nuvem, não importa quão grandes ou pequenos eles sejam. modelos são.

Movendo a IA para o limite

Com as demandas de energia e resfriamento da IA ​​centralizada, não é surpreendente que os principais anúncios da Microsoft no Build tenham se concentrado em mover grande parte de sua funcionalidade de IA de endpoint do Azure para os próprios PCs dos usuários, aproveitando os aceleradores locais de IA para executar inferência em uma seleção de algoritmos diferentes. Em vez de executar Copilots no Azure, ele usaria unidades de processamento neural, ou NPUs, que fazem parte da próxima geração de silício para desktop da Arm, Intel e AMD.

A aceleração de hardware é uma abordagem comprovada que tem funcionado continuamente. No início da década de 1990, eu estava escrevendo código de análise de elementos finitos que usava hardware de processamento vetorial para acelerar operações matriciais. As NPUs de hoje são descendentes diretos desses processadores vetoriais, otimizados para operações semelhantes no complexo espaço vetorial usado pelas redes neurais. Se você estiver usando qualquer um dos dispositivos Arm da geração atual da Microsoft (ou alguns dispositivos Intel ou AMD recentes), você já tem um NPU, embora não tão poderoso quanto os 40 TOPS (tera operações por segundo) necessários para atender Requisitos do Copilot+ PC da Microsoft.

A Microsoft já demonstrou uma variedade de diferentes aplicativos baseados em NPU neste hardware existente, com acesso para desenvolvedores por meio de suas APIs DirectML e suporte para o tempo de execução de inferência ONNX. No entanto, o Build 2024 mostrou um nível diferente de compromisso com seu público de desenvolvedores, com um novo conjunto de serviços de IA hospedados em endpoints agrupados sob uma nova marca: o Windows Copilot Runtime.

O Windows Copilot Runtime é uma combinação de serviços novos e existentes que se destinam a ajudar a fornecer aplicativos de IA no Windows. Sob o capô está um novo conjunto de bibliotecas de desenvolvedores e mais de 40 modelos de aprendizado de máquina, incluindo Phi Silica, uma versão focada em NPU da família Phi de modelos de linguagem pequena da Microsoft.

Os modelos do Windows Copilot Runtime não são todos modelos de linguagem. Muitos são projetados para funcionar com o pipeline de vídeo do Windows, suportando versões aprimoradas dos efeitos existentes do Studio. Se os modelos incluídos não forem suficientes ou não atenderem aos seus casos de uso específicos, existem ferramentas para ajudá-lo a executar seus próprios modelos no Windows, com suporte direto para PyTorch e um novo tempo de execução de modelo hospedado na web, WebNN, que permite modelos para ser executado em um navegador da web (e possivelmente, em uma versão futura, em aplicativos WebAssembly).

Uma pilha de desenvolvimento de IA para Windows

A Microsoft descreve o Windows Copilot Runtime como “novas maneiras de interagir com o sistema operacional” usando ferramentas de IA. No Build, o Windows Copilot Runtime foi mostrado como uma pilha executada com base em novos recursos de silício, com novas bibliotecas e modelos, juntamente com as ferramentas necessárias para ajudá-lo a criar esse código.

Essa pilha simples é uma simplificação exagerada. Por outro lado, mostrar todos os componentes do Windows Copilot Runtime preencheria rapidamente um slide do PowerPoint. Em seu cerne estão dois recursos interessantes: o armazenamento de vetores local DiskANN e o conjunto de APIs que são coletivamente chamados de Biblioteca Copilot do Windows.

Você pode pensar no DiskANN como o banco de dados vetorial equivalente ao SQLite. É um armazenamento local rápido para os dados vetoriais que são essenciais para a construção de aplicativos de geração aumentada de recuperação (RAG). Assim como o SQLite, o DiskANN não possui UI; tudo é feito por meio de uma interface de linha de comando ou de chamadas de API. DiskANN usa uma pesquisa integrada de vizinho mais próximo e pode ser usado para armazenar incorporações e conteúdo. Ele também funciona com a pesquisa integrada do Windows, vinculando-se a estruturas e arquivos NTFS.

A criação de código com base no Windows Copilot Runtime baseia-se em mais de 40 modelos diferentes de IA e aprendizado de máquina incluídos na pilha. Novamente, nem todos esses modelos são generativos, pois muitos se baseiam em modelos usados ​​pelos Serviços Cognitivos do Azure para tarefas de visão computacional, como reconhecimento de texto e pipeline de câmera do Windows Studio Effects.

Existe até a opção de mudar para APIs de nuvem, por exemplo, oferecendo a escolha de um modelo local de linguagem pequena ou um modelo de linguagem grande hospedado na nuvem, como ChatGPT. O código pode alternar automaticamente entre os dois com base na largura de banda disponível ou na complexidade da tarefa atual.

A Microsoft fornece uma lista de verificação básica para ajudá-lo a decidir entre APIs de IA locais e em nuvem. Os principais pontos a serem considerados são os recursos disponíveis, a privacidade e os custos. O uso de recursos locais não custará nada, enquanto os custos do uso de serviços de IA em nuvem podem ser imprevisíveis.

As APIs da Biblioteca Copilot do Windows, como o AI Text Recognition, exigirão um NPU apropriado para aproveitar seus recursos de aceleração de hardware. As imagens precisam ser adicionadas a um buffer de imagem antes de chamar a API. Tal como acontece com a API Azure equivalente, é necessário entregar um bitmap à API antes de recolher o texto reconhecido como uma cadeia. Além disso, você pode obter detalhes da caixa delimitadora, para fornecer uma sobreposição na imagem inicial, juntamente com níveis de confiança para o texto reconhecido.

Phi Silica: um modelo de linguagem no dispositivo para NPUs

Um dos principais componentes do Windows Copilot Runtime é o novo modelo de linguagem pequena Phi Silica otimizado para NPU. Parte da família de modelos Phi, Phi Silica é um modelo de IA generativo simples de usar, projetado para fornecer respostas de texto para entradas imediatas. O código de exemplo mostra que Phi Silica usa um novo namespace C# Microsoft.Windows.AI.Generative e é chamado de forma assíncrona, respondendo a prompts de string com uma resposta de string generativa.

Usar a API básica da Phi Silica é simples. Depois de criar um método para lidar com chamadas, você pode esperar por uma string completa ou obter resultados à medida que são gerados, permitindo escolher a experiência do usuário. Outras chamadas obtêm informações de status do modelo, para que você possa ver se os prompts criaram uma resposta ou se a chamada falhou.

Phi Silica tem limitações. Mesmo usando o NPU de um PC Copilot+, a Phi Silica pode processar apenas 650 tokens por segundo. Isso deve ser suficiente para fornecer uma resposta tranquila a um único prompt, mas gerenciar vários prompts simultaneamente pode mostrar sinais de lentidão.

Phi Silica foi treinado em conteúdo de livro didático, por isso não é tão flexível quanto, digamos, ChatGPT. No entanto, é menos sujeito a erros e pode ser integrado à orquestração de seu próprio agente local usando técnicas RAG e um índice vetorial local armazenado no DiskANN, direcionando os arquivos em uma pasta específica.

A Microsoft falou sobre o Windows Copilot Runtime como um componente separado da pilha de desenvolvedores do Windows. Na verdade, ele está muito mais integrado do que sugerem as palestras do Build, sendo enviado como parte de uma atualização de junho de 2024 para o Windows App SDK. A Microsoft não está simplesmente fazendo uma grande aposta na IA no Windows, ela está apostando que a IA e, mais especificamente, a linguagem natural e a computação semântica são o futuro do Windows.

Ferramentas para construir a IA do Windows

Embora seja provável que a pilha do Windows Copilot Runtime se baseie nas ferramentas existentes do Windows AI Studio, agora renomeadas como AI Toolkit for Visual Studio Code, o quadro completo ainda está faltando. Curiosamente, compilações recentes do AI Toolkit (pós Build 2024) adicionaram suporte para ajuste e desenvolvimento de modelos Linux x64 e Arm64. Isso é um bom presságio para uma rápida implementação de um conjunto completo de ferramentas de desenvolvimento de IA e para um possível futuro kit de ferramentas de IA para Visual Studio.

Um recurso importante do AI Toolkit que é essencial para trabalhar com modelos do Windows Copilot Runtime é seu playground, onde você pode experimentar seus modelos antes de construí-los em seus próprios Copilots. Ele foi projetado para funcionar com modelos de linguagem pequena, como Phi, ou com modelos PyTorch de código aberto da Hugging Face, portanto, deve se beneficiar dos novos recursos do sistema operacional na versão 24H2 do Windows e do hardware NPU nos PCs Copilot +.

Aprenderemos mais detalhes com o lançamento do Windows App SDK em junho e a chegada do primeiro hardware Copilot + PC. No entanto, já está claro que a Microsoft pretende fornecer uma plataforma que incorpore a IA no coração do Windows e, como resultado, facilite a adição de recursos de IA aos seus próprios aplicativos de desktop – de forma segura e privada, sob o controle dos usuários. Como um bônus para a Microsoft, também deve ajudar a manter o orçamento de energia e refrigeração do Azure sob controle.