Connect with us

Inteligência artificial

AutoGen: Energizando Aplicativos de Modelo de Linguagem Grande de Próxima Geração

mm
The AutoGen Framework

Modelos de Linguagem Grande (LLMs) são atualmente um dos tópicos mais discutidos na inteligência artificial mainstream. Desenvolvedores em todo o mundo estão explorando os potenciais aplicativos dos LLMs. Esses modelos são algoritmos de IA que utilizam técnicas de aprendizado profundo e vastas quantidades de dados de treinamento para entender, resumir, prever e gerar uma ampla gama de conteúdo, incluindo texto, áudio, imagens, vídeos e muito mais.

Modelos de linguagem grande são algoritmos de IA intricados. Desenvolver tal modelo é uma tarefa exaustiva, e construir um aplicativo que aproveite as capacidades de um LLM é igualmente desafiador. Exige significativo conhecimento, esforço e recursos para projetar, implementar e, finalmente, otimizar um fluxo de trabalho capaz de aproveitar todo o potencial de um modelo de linguagem grande para produzir os melhores resultados. Dada a extensa quantidade de tempo e recursos necessários para estabelecer fluxos de trabalho para aplicativos que utilizam o poder dos LLMs, automatizar esses processos tem um valor imenso. Isso é particularmente verdadeiro, pois os fluxos de trabalho são anticipados para se tornarem ainda mais complexos no futuro próximo, com desenvolvedores criando aplicativos cada vez mais sofisticados baseados em LLM. Além disso, o espaço de design necessário para esses fluxos de trabalho é tanto intricado quanto amplo, elevando ainda mais os desafios de criar um fluxo de trabalho ótimo e robusto que atenda às expectativas de desempenho.

AutoGen é um framework desenvolvido pela equipe da Microsoft que visa simplificar a orquestração e otimização dos fluxos de trabalho de LLM, introduzindo automação na pipeline de fluxo de trabalho. O framework AutoGen oferece agentes conversáveis e personalizáveis que aproveitam o poder de LLMs avançados, como GPT-3 e GPT-4, e, ao mesmo tempo, abordam suas limitações atuais integrando os LLMs com ferramentas e entradas humanas, usando chats automatizados para iniciar conversas entre vários agentes.

Ao usar o framework AutoGen, são necessários apenas dois passos ao desenvolver um sistema de conversa de multi-agente complexo.

Passo 1: Definir um conjunto de agentes, cada um com seus papéis e capacidades.

Passo 2: Definir o comportamento de interação entre os agentes, ou seja, um agente deve saber o que responder quando recebe uma mensagem de outro agente.

Ambos os passos acima são modulares e intuitivos, o que torna esses agentes compostos e reutilizáveis. A figura abaixo demonstra um fluxo de trabalho de exemplo que aborda a resposta a perguntas baseadas em código na otimização da cadeia de suprimentos. Como pode ser visto, o escritor primeiro escreve o código e a interpretação, o Safeguard garante a privacidade e segurança do código, e o código é então executado pelo Commander após receber a devida autorização. Se o sistema encontrar algum problema durante a execução, o processo é repetido até que seja completamente resolvido. Implantar o framework abaixo resulta na redução da quantidade de interação manual de 3x a 10x quando implantado em aplicativos como otimização da cadeia de suprimentos. Além disso, o uso do AutoGen também reduz a quantidade de esforço de codificação em até quatro vezes.

AutoGen pode ser um jogo-changer, pois visa transformar o processo de desenvolvimento de aplicativos complexos que aproveitam o poder dos LLMs. O uso do AutoGen não apenas pode reduzir a quantidade de interações manuais necessárias para alcançar os resultados desejados, mas também pode reduzir a quantidade de esforço de codificação necessário para criar tais aplicativos complexos. O uso do AutoGen para criar aplicativos baseados em LLM não apenas pode acelerar significativamente o processo, mas também ajudará a reduzir a quantidade de tempo, esforço e recursos necessários para desenvolver esses aplicativos complexos.

Neste artigo, vamos mergulhar mais profundamente no framework AutoGen e explorar os componentes essenciais e a arquitetura do framework AutoGen, juntamente com suas aplicações potenciais. Então, vamos começar.

Uma Introdução ao AutoGen: Energizando Aplicativos de Modelo de Linguagem Grande de Próxima Geração

AutoGen é um framework de código aberto desenvolvido pela equipe da Microsoft que equipa os desenvolvedores com o poder de criar aplicativos que aproveitam o poder dos LLMs, usando vários agentes que podem ter conversas entre si para executar com sucesso as tarefas desejadas. Os agentes no AutoGen são conversáveis, personalizáveis e podem operar em diferentes modos que empregam a combinação de ferramentas, entrada humana e LLMs. Os desenvolvedores também podem usar o framework AutoGen para definir o comportamento de interação dos agentes, e os desenvolvedores podem usar tanto código de computador quanto linguagem natural para programar padrões de conversa flexíveis implantados em vários aplicativos. Como um framework de código aberto, AutoGen pode ser considerado um framework genérico que os desenvolvedores podem usar para construir aplicativos e frameworks de várias complexidades que aproveitam o poder dos LLMs.

Modelos de linguagem grande estão desempenhando um papel crucial no desenvolvimento de agentes que utilizam os frameworks de LLM para se adaptar a novas observações, uso de ferramentas e raciocínio em numerosos aplicativos do mundo real. No entanto, desenvolver esses aplicativos que podem aproveitar todo o potencial dos LLMs é um assunto complexo, e, dado o aumento contínuo da demanda e aplicações dos LLMs, juntamente com o aumento da complexidade das tarefas, é vital escalar o poder desses agentes, usando vários agentes que trabalham em sincronia entre si. Mas como uma abordagem de multi-agente pode ser usada para desenvolver aplicativos baseados em LLM que podem ser aplicados a uma ampla gama de domínios com complexidades variadas? O framework AutoGen tenta responder à pergunta acima, utilizando conversas de multi-agente.

AutoGen: Componentes e Framework

Em uma tentativa de reduzir a quantidade de esforço que os desenvolvedores precisam colocar para criar aplicativos complexos que utilizam as capacidades dos LLMs em uma ampla gama de domínios, o princípio fundamental do AutoGen é consolidar e simplificar os fluxos de trabalho de multi-agente, utilizando conversas de multi-agente, maximizando assim a reutilização desses agentes implementados. O AutoGen usa vários agentes que podem ter conversas entre si para executar com sucesso as tarefas desejadas, e o framework é construído sobre dois conceitos fundamentais: Agentes Conversáveis e Programação Conversacional.

Agentes Conversáveis

Um agente conversável no AutoGen é uma entidade com um papel pré-definido que pode passar mensagens para enviar e receber informações para e de outros agentes conversáveis. Um agente conversável mantém seu contexto interno com base em mensagens recebidas ou enviadas, e os desenvolvedores podem configurar esses agentes para ter um conjunto único de capacidades, como ser habilitado por ferramentas de LLM ou tomar entradas humanas.

Capacidades do Agente Aumentadas por Humanos, Ferramentas e LLMs

As capacidades de um agente estão diretamente relacionadas à forma como ele processa e responde a mensagens, o que é a principal razão pela qual os agentes no framework AutoGen permitem que os desenvolvedores tenham a flexibilidade de dotar os agentes de várias capacidades. O AutoGen suporta várias capacidades compostas para agentes que incluem

  1. LLMs: Agentes apoiados por LLM exploram as capacidades de frameworks de LLM avançados, como interferência de estado implícito, interpretação de papéis, fornecimento de feedback e até codificação. Os desenvolvedores podem usar técnicas de promptagem novas para combinar essas capacidades, tentando aumentar a autonomia ou habilidade de um agente.
  2. Humanos: Vários aplicativos desejam ou exigem algum grau de envolvimento humano, e o framework AutoGen permite que aplicativos baseados em LLM facilitem a participação humana na conversa do agente, utilizando agentes apoiados por humanos que podem solicitar entradas humanas durante certas rodadas de conversa, com base na configuração do agente.
  3. Ferramentas: Agentes apoiados por ferramentas geralmente têm as capacidades de usar execução de código ou execução de função para executar ferramentas.

Cooperação e Personalização do Agente

Com base nas necessidades específicas e requisitos de um aplicativo, os desenvolvedores podem configurar agentes individuais para ter uma combinação de tipos de backend essenciais para exibir o comportamento complexo envolvido em conversas de multi-agente. O framework AutoGen permite que os desenvolvedores criem facilmente agentes com papéis e capacidades especializados, estendendo ou reutilizando os agentes incorporados. A figura anexada abaixo demonstra a estrutura básica dos agentes incorporados no framework AutoGen. A classe ConversableAgent pode usar humanos, ferramentas e LLMs por padrão, pois é a abstração de agente de mais alto nível. O UserProxyAgent e o AssistantAgent são classes pré-configuradas de ConversableAgent, e cada um deles representa um modo de uso comum, ou seja, cada um desses dois agentes age como um assistente de IA (quando apoiado por LLMs) e solicita entrada humana ou executa chamadas de função ou códigos (quando apoiado por ferramentas e/ou humanos), agindo como um proxy de humano.

A figura abaixo demonstra como os desenvolvedores podem usar o framework AutoGen para desenvolver um sistema de dois agentes que tem uma função de resposta personalizada, juntamente com uma ilustração da conversa de agente automatizada resultante que usa o sistema de dois agentes durante a execução do programa.

Ao permitir o uso de agentes personalizados que podem ter conversas entre si, esses agentes conversáveis servem como um bloco de construção fundamental no framework AutoGen. No entanto, os desenvolvedores precisam especificar e moldar essas conversas de multi-agente para desenvolver aplicativos nos quais esses agentes possam fazer progressos significativos nas tarefas especificadas.

Programação de Conversa

Para resolver o problema acima, o framework AutoGen usa a programação de conversa, um paradigma de computação construído sobre dois conceitos essenciais: cômputo, as ações tomadas pelos agentes em uma conversa de multi-agente para computar sua resposta, e fluxo de controle, as condições ou sequência sob as quais essas computações ocorrem. A capacidade de programar essas permite que os desenvolvedores implementem numerosos padrões de conversa de multi-agente flexíveis. Além disso, no framework AutoGen, as computações são centradas na conversa. As ações tomadas por um agente são relevantes para as conversas nas quais o agente está envolvido, e as ações tomadas pelos agentes resultam no envio de mensagens para conversas subsequentes, até que uma condição de término seja atendida. Além disso, o fluxo de controle no framework AutoGen é impulsionado por conversas, pois é a decisão dos agentes participantes sobre quais agentes enviarão mensagens para e da procedimento de computação.

A figura acima demonstra uma ilustração simples de como os agentes individuais realizam suas operações específicas de papel e computações centradas na conversa para gerar as respostas desejadas, como execução de código e chamadas de interferência de LLM. A tarefa avança com a ajuda das conversas que são exibidas na caixa de diálogo.

Para facilitar a programação de conversa, o framework AutoGen apresenta os seguintes padrões de design.

  • Mecanismos de Resposta Automática e Interface Unificada para Chats de Agente Automatizados

O framework AutoGen tem uma interface unificada para realizar a computação correspondente que é de natureza centrada na conversa, incluindo uma “função de receber ou enviar” para receber ou enviar mensagens, juntamente com uma “gerar_resposta” que gera uma resposta com base na mensagem recebida e toma a ação necessária. O framework AutoGen também introduz e implanta o mecanismo de resposta automática do agente por padrão para realizar o controle impulsionado pela conversa.

  • Controle por Amalgamação de Linguagem Natural e Programação

O framework AutoGen facilita o uso de linguagem natural e programação em vários padrões de gerenciamento de fluxo de controle que incluem: controles de linguagem natural que usam LLMs, controle de linguagem de programação e transição de controle entre programação e linguagem natural.

Avançando, além das conversas estáticas que geralmente são acompanhadas por um fluxo pré-definido, o framework AutoGen também suporta fluxos de conversa dinâmicos, usando vários agentes, e o framework fornece aos desenvolvedores duas opções para alcançar isso

  1. Usando chamadas de função.
  2. Usando uma função de resposta personalizada.

Aplicações do AutoGen

Para ilustrar o potencial do framework AutoGen no desenvolvimento de aplicativos de multi-agente complexos, aqui estão seis aplicações potenciais do AutoGen, selecionadas com base em sua relevância no mundo real, capacidades de resolução de problemas aprimoradas pelo framework AutoGen e seu potencial inovador.

Essas seis aplicações do framework AutoGen são

  1. Resolução de problemas matemáticos.
  2. Chats de recuperação aumentada.
  3. Chats ALF.
  4. Codificação de multi-agente.
  5. Chat de grupo dinâmico.
  6. Xadrez conversacional.

Aplicações do Framework AutoGen

Aplicação 1: Resolução de Problemas Matemáticos

A matemática é uma das disciplinas fundamentais para aproveitar os modelos de LLM para ajudar a resolver problemas matemáticos complexos, o que abre um novo mundo de aplicações potenciais, incluindo assistência de pesquisa de IA e tutoria personalizada de IA.

A figura anexada acima demonstra a aplicação do framework AutoGen para alcançar um desempenho competitivo na resolução de problemas matemáticos.

Aplicação 2: Resposta a Perguntas e Geração de Código Aumentada por Recuperação

Nos últimos meses, a Geração de Código Aumentada por Recuperação emergiu como uma abordagem eficaz e prática para superar as limitações dos LLMs na incorporação de documentos externos. A figura abaixo demonstra a aplicação do framework AutoGen para recuperação eficaz e melhoria do desempenho em tarefas de P&R.

Aplicação 3: Tomada de Decisão em Ambientes de Mundo de Texto

O framework AutoGen pode ser usado para criar aplicativos que trabalham com tomada de decisão online ou interativa. A figura abaixo demonstra como os desenvolvedores podem usar o framework AutoGen para projetar um sistema de conversa de três agentes com um agente de aterrisagem para aumentar significativamente o desempenho.

Aplicação 4: Codificação de Multi-Agente

Os desenvolvedores que trabalham no framework AutoGen podem usar o framework OptiGuide para construir um sistema de codificação de multi-agente que é capaz de escrever código para implementar soluções otimizadas e responder a perguntas do usuário. A figura abaixo demonstra que o uso do framework AutoGen para criar um design de multi-agente ajuda a aumentar o desempenho geral significativamente, especialmente em realizar tarefas de codificação que exigem uma salvaguarda.

Aplicação 5: Chat de Grupo Dinâmico

O framework AutoGen fornece suporte a um padrão de comunicação que gira em torno de chats de grupo dinâmicos, nos quais os agentes de multi-agente compartilham o contexto e, em vez de seguir um conjunto de ordens pré-definidas, conversam entre si de maneira dinâmica. Esses chats de grupo dinâmicos dependem de conversas contínuas para guiar o fluxo de interação dentro dos agentes.

A figura acima ilustra como o framework AutoGen suporta chats de grupo dinâmicos entre agentes, usando um “Gerenciador de Chat de Grupo”, um agente especial.

Aplicação 6: Xadrez Conversacional

Os desenvolvedores do framework AutoGen usaram-no para desenvolver um aplicativo de Xadrez Conversacional, que é um jogo de interferência natural que apresenta agentes incorporados para jogadores que podem ser um LLM ou humano, e há também um agente de terceiros que fornece informações relevantes e valida as movimentações no tabuleiro com base em um conjunto de regras padrão pré-definidas. A figura anexada abaixo demonstra o Xadrez Conversacional, um jogo de interferência natural construído usando o framework AutoGen, que permite que os jogadores usem piadas, interpretação de personagens ou até referências a memes para expressar suas movimentações de forma criativa, o que torna o jogo de xadrez mais interessante, não apenas para os jogadores, mas também para a audiência e observadores.

Conclusão

Neste artigo, falamos sobre o AutoGen, um framework de código aberto que usa os conceitos de programação de conversa e agentes conversáveis, que visa simplificar a orquestração e otimização dos fluxos de trabalho de LLM, introduzindo automação na pipeline de fluxo de trabalho. O framework AutoGen oferece agentes conversáveis e personalizáveis que aproveitam o poder de LLMs avançados, como GPT-3 e GPT-4, e, ao mesmo tempo, abordam suas limitações atuais, integrando os LLMs com ferramentas e entradas humanas, usando chats automatizados para iniciar conversas entre vários agentes.

Embora o framework AutoGen ainda esteja em estágios experimentais iniciais, ele abre caminho para futuras explorações e oportunidades de pesquisa no campo, e o AutoGen pode ser a ferramenta que ajuda a melhorar a velocidade, funcionalidades e facilidade de desenvolvimento de aplicativos que aproveitam as capacidades dos LLMs.

Um engenheiro por profissão, um escritor por coração. Kunal é um escritor técnico com um amor e compreensão profundos de AI e ML, dedicado a simplificar conceitos complexos nestes campos por meio de sua documentação envolvente e informativa.