Geral
Como posso integrar a IA ao meu aplicativo cliente do Windows?
A integração da IA em seu aplicativo do Windows pode ser realizada por meio de dois métodos principais: um modelo local ou um modelo baseado em nuvem. Para a opção de modelo local, você pode utilizar um modelo pré-existente ou treinar o seu próprio modelo usando plataformas como TensorFlow ou PyTorch e, em seguida, incorporá-lo ao seu aplicativo por meio do OnnxRuntime. O Windows Copilot Runtime oferece APIs para várias funções, incluindo OCR ou a utilização do modelo Phi Silica. Por outro lado, hospedar seu modelo na nuvem e acessá-lo por meio de uma API REST permite que seu aplicativo permaneça otimizado, delegando tarefas com uso intensivo de recursos à nuvem. Consulte Usar modelos de aprendizado de máquina em seu aplicativo do Windows para obter mais informações.
Quais linguagens de programação são melhores para desenvolver IA em aplicativos clientes do Windows?
Você pode usar qualquer linguagem de programação de sua preferência. Por exemplo, o C# é amplamente usado para criar aplicativos clientes do Windows. Se você precisar de mais controle sobre os detalhes de nível baixo, o C++ é uma excelente opção. Como alternativa, você pode considerar o uso do Python. Você também pode usar o WSL (Subsistema do Windows para Linux) para executar ferramentas de IA baseadas em Linux no Windows.
Quais são as melhores estruturas de IA para aplicativos clientes do Windows?
Recomendamos usar o OnnxRuntime.
Como devo lidar com a privacidade e a segurança de dados ao usar IA em aplicativos clientes do Windows?
Respeitar a privacidade e a segurança dos dados do usuário é essencial ao desenvolver aplicativos alimentados por IA. Você deve seguir as práticas recomendadas para o tratamento de dados, como criptografar dados confidenciais, usar conexões seguras e obter o consentimento do usuário antes de coletar dados. Você também deve ser transparente quanto ao uso dos dados e dar aos usuários o controle sobre eles. Certifique-se de ler também Desenvolvendo aplicativos e recursos de IA generativa responsável no Windows.
Quais são os requisitos de sistema para executar a IA em aplicativos clientes do Windows?
Os requisitos de sistema para aplicativos do Windows que usam IA dependem da complexidade do modelo de IA e da aceleração de hardware usada. Para modelos simples, uma CPU moderna pode ser suficiente, mas para modelos mais complexos, pode ser necessária uma GPU ou NPU. Você também deve considerar os requisitos de memória e armazenamento do seu aplicativo, bem como a largura de banda da rede necessária para os serviços de IA baseados em nuvem.
Como otimizar o desempenho da IA em aplicativos clientes do Windows?
Para otimizar o desempenho da IA em aplicativos Windows, considere usar a aceleração de hardware, como GPUs ou NPUs, para agilizar a inferência do modelo. Os laptops Windows Copilot+ são otimizados para cargas de trabalho de IA e podem proporcionar um aumento significativo de desempenho para tarefas de IA. Consulte também a Visão geral do Kit de Ferramentas de IA para Código do Visual Studio.
Posso usar modelos de IA pré-treinados em meu aplicativo cliente Windows?
Sim, você pode usar modelos de IA pré-treinados em seu aplicativo do Windows. Você pode baixar modelos pré-treinados da Internet ou usar um serviço de IA baseado em nuvem para acessar modelos pré-treinados. Em seguida, você pode integrar esses modelos ao seu aplicativo usando uma estrutura como o OnnxRuntime.
O que é DirectML?
O DirectML é uma API de baixo nível para aprendizado de máquina que fornece aceleração de GPU para tarefas comuns de aprendizado de máquina em uma ampla gama de hardware e drivers compatíveis, incluindo todas as GPUs compatíveis com DirectX 12 de fornecedores como AMD, Intel, NVIDIA e Qualcomm.
O que é o ONNX?
Open Neural Network Exchange, ou ONNX, é um padrão aberto para representar modelos de ML. Estruturas de modelos de ML populares, incluindo PyTorch, TensorFlow, SciKit-Learn, Keras, Chainer e MATLAB, podem ser exportadas ou convertidas para o formato ONNX padrão. Uma vez no formato ONNX, o modelo pode ser executado em vários serviços e plataformas. O ONNX é útil para usar um modelo de ML em um formato diferente do que foi treinado.
O que é ORT?
O OnnxRuntime, ou ORT, é uma ferramenta de runtime unificada para a execução de modelos em diferentes estruturas (PyTorch, TensorFlow etc.) que oferece suporte a aceleradores de hardware (CPUs de dispositivos, GPUs ou NPUs).
Qual é a diferença entre o ONNX e outras estruturas de ML, como PyTorch ou TensorFlow?
O PyTorch e o TensorFlow são usados para desenvolver, treinar e executar modelos de aprendizado profundo usados em aplicativos de IA. O PyTorch é frequentemente usado para pesquisa, o TensorFlow é frequentemente usado para implantação na indústria e o ONNX é um formato de intercâmbio de modelos padronizado que preenche a lacuna, permitindo que você alterne entre estruturas conforme necessário e de forma compatível entre plataformas.
O que é uma NPU? Qual é a diferença para uma CPU ou GPU?
Uma unidade de processamento neural, ou NPU, é um chip de IA dedicado projetado especificamente para executar tarefas de IA. O foco de uma NPU difere daquele de uma CPU ou GPU. Uma unidade de processamento central, ou CPU, é o processador primário em um computador, sendo o responsável por executar instruções e cálculos de uso geral. Uma unidade de processamento gráfico, ou GPU, é um processador especializado projetado para renderizar gráficos e otimizado para processamento paralelo. Ela é capaz de renderizar imagens complexas para tarefas de edição de vídeo e jogos.
As NPUs são projetadas para acelerar algoritmos de aprendizado profundo e podem remover parte do trabalho da CPU ou GPU de um computador, permitindo que o dispositivo funcione com mais eficiência. As NPUs são criadas especificamente para acelerar tarefas de redes neurais. Elas se destacam no processamento de grandes quantidades de dados em paralelo, o que as torna ideais para tarefas comuns de IA, como reconhecimento de imagem ou processamento de linguagem natural. Por exemplo, durante uma tarefa de reconhecimento de imagem, a NPU pode ser responsável pela detecção de objetos ou aceleração de imagem, enquanto a GPU se responsabiliza pela renderização de imagens.
Como posso descobrir que tipo de CPU, GPU ou NPU há no meu dispositivo?
Para verificar o tipo de CPU, GPU ou NPU em um dispositivo Windows e o seu desempenho, abra o Gerenciador de Tarefas (Ctrl + Alt + Delete) e selecione a guia Desempenho. Nela você poderá ver a CPU, Memória, Wi-Fi, GPU e/ou NPU da sua máquina listadas, bem como informações sobre velocidade, taxa de utilização e outros dados.
O que é WinML?
O WinML, ou Windows Mahcine Learning, é uma API de alto nível para implantar modelos de aprendizado de máquina (ML) acelerados por hardware em dispositivos Windows que permite que os desenvolvedores utilizem os recursos do dispositivo para executar inferência de modelos. O foco está no carregamento, vinculação e avaliação de modelos. O WinML utiliza o formato de modelo ONNX.
Conceitos úteis de IA
O que é um grande modelo de linguagem (LLM)?
Um LLM é um tipo de modelo de aprendizado de máquina (ML) conhecido pela capacidade de alcançar a geração e compreensão de linguagem de uso geral. Os LLMs são redes neurais artificiais que adquirem capacidades aprendendo relações estatísticas a partir de grandes quantidades de documentos de texto durante um processo de treinamento computacionalmente intensivo autossupervisionado e semi-supervisionado. Os LLMs são frequentemente usados na geração de texto, uma forma de IA generativa que, ao receber algum texto de entrada, gera palavras (ou "tokens") que são mais propensas a criar frases coerentes e contextualmente relevantes em troca. Existem também os pequenos modelos de linguagem (SLMs), com menos parâmetros e capacidade mais limitada, mas que podem ser mais eficientes (exigindo menos recursos computacionais), econômicos e ideais para domínios específicos.
O que é o treinamento do modelo de ML?
Em aprendizado de máquina, treinar um modelo envolve a alimentação de um conjunto de dados em um modelo (LLM ou SLM) para que ele possa aprender com os dados e fazer previsões ou tomar decisões com base nesses dados por meio do reconhecimento de padrões. O processo também pode envolver o ajuste iterativo dos parâmetros do modelo para otimizar seu desempenho.
O que é inferência?
O processo de usar um modelo de aprendizado de máquina treinado para fazer previsões ou classificações em dados novos e invisíveis é chamado de "Inferência". Após um modelo de linguagem ser treinado em um conjunto de dados, aprendendo seus padrões e relacionamentos subjacentes, ele estará pronto para aplicar esse conhecimento a cenários do mundo real. A inferência é o momento da verdade de um modelo de IA, um teste do quanto bem ele pode aplicar as informações aprendidas durante o treinamento para fazer uma previsão ou resolver uma tarefa. O processo de utilização de um modelo existente para inferência é diferente da fase de treinamento, que requer o uso de dados de treinamento e validação para desenvolver o modelo e ajustar seus parâmetros.
O que é o ajuste fino do modelo de ML?
O ajuste fino é uma etapa crucial no aprendizado de máquina em que um modelo pré-treinado é adaptado para executar uma tarefa específica. Em vez de treinar um modelo do zero, o ajuste fino começa com um modelo existente (geralmente treinado em um grande conjunto de dados) e ajusta seus parâmetros usando um conjunto de dados menor e específico da tarefa. Durante o ajuste fino, o modelo aprende recursos específicos da tarefa, mantendo o conhecimento geral adquirido durante o pré-treinamento, o que resulta em um melhor desempenho para aplicações específicas.
O que é engenharia de Prompts?
A engenharia de prompts é uma abordagem estratégica usada com IA generativa para moldar o comportamento e as respostas de um modelo de linguagem. Ela envolve a elaboração cuidadosa de prompts de entrada ou consultas para obter o resultado desejado de um modelo de linguagem (como GPT-3 ou GPT-4). Ao criar um prompt eficaz, você pode orientar um modelo de ML para produzir o tipo de resposta desejado. As técnicas incluem ajustar a redação, especificar o contexto ou usar códigos de controle para influenciar a saída do modelo.
O que é aceleração de hardware (em relação ao treinamento do modelo de ML)?
A aceleração de hardware refere-se ao uso de hardware de computador especializado projetado para acelerar aplicativos de IA além do que é alcançável com CPUs de uso geral. A aceleração de hardware melhora a velocidade, a eficiência energética e o desempenho geral de tarefas de aprendizado de máquina, como modelos de treinamento, previsões ou transferência de computação para componentes de hardware dedicados que se destacam no processamento paralelo para cargas de trabalho de aprendizado profundo. GPUs e NPUs são exemplos de aceleradores de hardware.
Quais são as diferenças entre um cientista de dados, engenheiro de ML e desenvolvedor de aplicativos que deseja aplicar recursos de IA em seus aplicativos?
O processo de criação e uso de modelos de ML envolve três funções principais: Cientistas de dados: responsáveis por definir o problema, coletar e analisar os dados, escolher e treinar o algoritmo de ML e avaliar e interpretar os resultados. Eles usam ferramentas como Python, R, Jupyter Notebook, TensorFlow, PyTorch e scikit-learn para executar essas tarefas. Engenheiros de ML: responsáveis pela implantação, pelo monitoramento e pela manutenção dos modelos de ML em ambientes de produção. Eles usam ferramentas como Docker, Kubernetes, Azure ML, AWS SageMaker e Google Cloud AI Platform para garantir a escalabilidade, a confiabilidade e a segurança dos modelos de ML. Desenvolvedores de aplicativos: responsáveis por integrar os modelos de ML na lógica do aplicativo, interface do usuário e UX. Eles usam ferramentas como o Windows Copilot Runtime, OnnxRuntime ou APIs REST, e processam a entrada do usuário e a saída do modelo. Cada função envolve responsabilidades e habilidades diferentes, mas a colaboração e a comunicação entre essas funções são necessárias para produzir os melhores resultados. Dependendo do tamanho e da complexidade do projeto, essas funções podem ser desempenhadas pela mesma pessoa ou por equipes diferentes.