A Microsoft apresenta o Semantic Kernel SDK , facilitando muito a integração de modelos de linguagem grandes (LLMs), como GPT-4, no código. As complexidades de gerenciamento de prompts, entradas e saídas focadas são simplificadas com este SDK, preenchendo a lacuna entre os modelos de linguagem e os desenvolvedores.
O processo de integração de um modelo de IA em seu código pode ser bastante desafiador, pois envolve cruzar uma fronteira entre duas formas diferentes de computação. Os métodos de programação tradicionais não são suficientes para interagir com os LLMs. O que é necessário é uma abstração de alto nível que traduza entre os diferentes domínios, fornecendo uma maneira de gerenciar o contexto e manter as saídas fundamentadas nos dados de origem.
Algumas semanas atrás, a Microsoft lançou seu primeiro wrapper LLM chamado Prompt Engine . Com base nisso, a gigante do software agora revelou sua ferramenta C# mais poderosa, o Semantic Kernel , para trabalhar com o Azure OpenAI e as APIs do OpenAI. Essa ferramenta de código aberto está disponível no GitHub, juntamente com vários aplicativos de exemplo.
A escolha do nome significa uma compreensão do objetivo principal de um LLM. O Kernel Semântico concentra-se nas entradas e saídas de linguagem natural, direcionando o modelo usando a solicitação inicial do usuário (o ask) para orquestrar passagens por meio de recursos associados, atendendo à solicitação e retornando uma resposta (o get).
O Kernel Semântico funciona como um sistema operacional para APIs LLM, recebendo entradas, processando-as trabalhando com o modelo de linguagem e retornando saídas. A função de orquestração do kernel é essencial para gerenciar não apenas prompts e seus tokens associados, mas também memórias, conectores para outros serviços de informação e habilidades predefinidas que combinam prompts e código convencional.
O Kernel Semântico gerencia o contexto por meio do conceito de memórias, trabalhando com arquivos e armazenamento de valor-chave. Uma terceira opção, memória semântica , trata o conteúdo como vetores ou incorporações, que são matrizes de números que o LLM usa para representar os significados dos textos. Esses vetores incorporados ajudam o modelo subjacente a manter a relevância, a coerência e a reduzir a probabilidade de gerar resultados aleatórios.
Usando incorporações, os desenvolvedores podem dividir prompts grandes em blocos de texto para criar prompts mais focados sem esgotar os tokens disponíveis para uma solicitação (por exemplo, GPT-4 tem um limite de 8.192 tokens por entrada).
Os conectores desempenham um papel importante no Kernel Semântico, permitindo a integração de APIs existentes com LLMs. Por exemplo, um conector do Microsoft Graph pode enviar a saída de uma solicitação em um email ou criar uma descrição de relacionamentos no organograma. Os conectores também fornecem uma forma de controle de acesso baseado em função para garantir que as saídas sejam adaptadas ao usuário, com base em seus dados.
O terceiro componente principal do Semantic Kernel são as habilidades , que são contêineres de funções que misturam prompts LLM e código convencional, semelhante ao Azure Functions. Eles podem ser usados para encadear prompts especializados e criar aplicativos baseados em LLM.
As saídas de uma função podem ser encadeadas a outra, permitindo a construção de um pipeline de funções que mistura processamento nativo e operações LLM. Dessa forma, os desenvolvedores podem desenvolver habilidades flexíveis que podem ser selecionadas e utilizadas conforme necessário.
Embora o Kernel Semântico seja uma ferramenta poderosa, ele requer reflexão e planejamento cuidadosos para criar aplicativos eficazes. Ao usar o SDK estrategicamente junto com o código nativo, os desenvolvedores podem aproveitar o potencial dos LLMs, tornando o processo de desenvolvimento mais eficiente e produtivo. Para ajudar na introdução, a Microsoft fornece uma lista de diretrizes de práticas recomendadas aprendidas na criação de aplicativos LLM em seus próprios negócios.
No contexto do desenvolvimento de software moderno, o Semantic Kernel SDK da Microsoft se posiciona como um facilitador chave para a integração de grandes modelos de linguagem em vários aplicativos. Sua implementação pode beneficiar muito ferramentas como a plataforma no-code da AppMaster e os criadores de sites , oferecendo soluções mais flexíveis e eficientes para uma ampla gama de usuários.