O que você deve saber sobre o modelo em larga escala (3): Como construir um aplicativo LLM multitarefa

Nota do editor: Desde este ano, grandes modelos de linguagem (LLMs) têm sido amplamente utilizados em diversas tarefas de processamento de linguagem natural e são cada vez mais utilizados para construir aplicações de linguagem complexas. No entanto, a construção de aplicações LLM multitarefa ainda enfrenta alguns desafios, e problemas como combinação e regulação de tarefas precisam ser resolvidos.

Este artigo apresenta todos os aspectos que podem estar envolvidos na construção de um aplicativo LLM multitarefa, incluindo como projetar e usar o fluxo de controle, como testar agentes, etc. aplicativo LLM poderoso Materiais de aprendizagem valiosos, os leitores podem ter uma compreensão preliminar do campo por meio deste artigo.

A seguir está a tradução, Aproveite!

Autor | Chip Huyen

Compilar | Yue Yang

Este artigo se concentra em como usar o fluxo de controle (por exemplo, instrução if, loop for) para combinar várias tarefas e combinar ferramentas (por exemplo, executor SQL, bash, navegador da web, API de terceiros) para criar aplicativos LLM mais complexos e poderosos.

01 Aplicativo composto por multitarefa

A maioria das aplicações LLM são mais complexas, por exemplo, no cenário de aplicação de “diálogo com dados”, precisaremos conectar e consultar o banco de dados por meio de linguagem natural. Se precisar manipular uma tabela de transações de cartão de crédito, você pode perguntar: "Quantos comerciantes diferentes existem em Phoenix e quais são seus nomes?" O banco de dados retornará: "Existem 9 comerciantes diferentes em Phoenix. Comerciantes, eles são...".

Os aplicativos que implementam esse cenário de "conversação com dados" normalmente executam a seguinte sequência de tarefas:

Tarefa 1: Converter linguagem natural da entrada do usuário em consultas SQL [LLM]

Tarefa 2: Execute instruções de consulta SQL no banco de dados [SQL Executor]

Tarefa 3: Converter os resultados da consulta de instruções SQL em linguagem natural e exibi-los aos usuários [LLM]

02 Agentes, ferramentas e fluxos de controle Agentes, ferramentas e fluxos de controle

Fiz uma pequena pesquisa online e parece não haver consenso sobre as definições destes poucos termos técnicos.

O termo Agente tem sido usado extensivamente para se referir a uma aplicação que pode executar múltiplas tarefas de acordo com um determinado fluxo de controle (ver seção 2.2 Fluxo de Controle). Cada tarefa pode utilizar uma ou mais ferramentas. No exemplo acima, o SQL Executor é uma ferramenta.

Nota: Tem havido alguma resistência em usar o termo agente no contexto deste artigo porque ele tem sido usado em demasia em outros domínios (por exemplo, usar agente para se referir à política de aprendizagem por reforço [1])).

2.1 Ferramentas e plug-ins

Além do executor SQL, existem diversas ferramentas para a realização de tarefas, como:

  • Ferramentas de pesquisa (por exemplo, pesquisa usando API de pesquisa do Google ou API do Bing)
  • Navegador da Internet (por exemplo, dado um URL, a capacidade de buscar seu conteúdo)
  • executor bash
  • calculadora

Ferramentas e plugins são basicamente duas maneiras de dizer a mesma coisa. Podemos pensar em plugins como ferramentas contribuídas para a loja de plugins OpenAI. A partir de agora (Nota do tradutor: o artigo foi publicado em 11 de abril de 2023), o plugin OpenAI não está aberto ao público, mas qualquer pessoa pode criar e usar ferramentas.

2.2 Fluxo de controle: instrução sequencial, paralela, condicional, loop (sequencial, paralelo, if, for loop)

No exemplo acima, o fluxo de controle utilizado é sequencial, em que uma tarefa é executada após a outra. Existem outros tipos de fluxo de controle, como paralelismo, instruções condicionais, loops.

  • Sequencial : executa a tarefa B após a conclusão da tarefa A, provavelmente porque a tarefa B depende da tarefa A. Por exemplo, uma instrução de consulta SQL só pode ser executada após ser convertida da entrada do usuário em uma instrução de consulta SQL.
  • Paralelo : executa a tarefa A e a tarefa B ao mesmo tempo.
  • Instrução condicional : selecione para executar a tarefa A ou a tarefa B de acordo com a entrada do usuário.
  • Loop : A tarefa A é executada repetidamente até que uma determinada condição seja atendida. Por exemplo, use o navegador para obter o conteúdo de uma determinada página web e continue a usar o navegador para obter o conteúdo de outros links na página web até que o agente acredite que obteve informações suficientes para responder à pergunta do usuário.

Observação: embora o paralelismo seja certamente útil, não vi muitos aplicativos que usam esse tipo de fluxo de controle.

foto

foto

2.3 Fluxo de controle usando agentes LLM

Na engenharia de software tradicional, as condições dos fluxos de controle são precisas. E em aplicações LLM (também conhecidas como agentes), as condições também podem ser determinadas por meio de prompts. (Nota do tradutor: O texto original de "condições" nesta frase é condições, que aqui se referem a situações ou regras específicas que precisam ser satisfeitas ao determinar qual ramificação ou operação no fluxo de controle é executada.)

Por exemplo, se você deseja que os agentes LLM escolham entre as três operações de ferramenta de pesquisa (pesquisa), executor SQL (executor SQL) e ferramenta de bate-papo (Chat) , você pode explicá-lo como a entrada a seguir e dizer como escolher um dos essas operações, é mostrado abaixo (de forma muito aproximada). Em outras palavras, você pode usar o LLM para decidir as condições que controlam o fluxo!

Você tem acesso a três ferramentas: Pesquisa, executor SQL e Chat.

A pesquisa é útil quando os usuários desejam informações sobre eventos ou produtos atuais.

O executor SQL é útil quando os usuários desejam informações que possam ser consultadas em um banco de dados.

O bate-papo é útil quando os usuários desejam informações gerais.

Forneça sua resposta no seguinte formato:

Entrada: {entrada}

Pensamento pensado }

Ação: {ação}

Entrada de ação: { action_input }

Observação: {action_output}

Pensamento pensado }

Você pode usar três ferramentas: ferramenta de pesquisa (search), executor SQL (executor SQL) e ferramenta de chat (Chat).

As ferramentas de pesquisa são úteis em cenários em que os usuários desejam obter informações sobre eventos ou produtos atuais.

O executor SQL deve ser utilizado quando os usuários desejam consultar informações do banco de dados.

Quando os usuários desejam obter informações básicas, é recomendável utilizar ferramentas de chat.

Por favor responda no seguinte formato:

Entrada: {entrada}

Pensamento pensado }

Ação: {ação}

Entrada de ação: { action_input }

Observação: {action_output}

Pensamento pensado }

2.4 Testando um agente testando agente

Para que um agente seja confiável, precisamos construir e testar todas as tarefas individualmente antes de combiná-las. Existem dois modos de falha principais:

1) Um ou mais testes de tarefa falharam. As possíveis causas incluem:

  • Erro de fluxo de controle: ação não opcional selecionada
  • Uma ou mais tarefas produziram resultados incorretos

2) Todas as tarefas produziram resultados corretos, mas a solução geral estava incorreta. Press et al.(2022) referem-se a esta situação como a "lacuna de composibilidade [2]": a proporção de questões de composição respondidas incorretamente pelo modelo, visto que o modelo respondeu corretamente todas as subquestões.

Como na engenharia de software, podemos e devemos testar cada componente e controlar o fluxo. Pares de exemplos de avaliação podem ser definidos para cada componente, que podem ser usados ​​para avaliar a aplicação sempre que um prompt ou fluxo de controle for atualizado. Também é possível realizar testes de integração em toda a aplicação. Os exemplos de avaliação em pares são formatados da seguinte forma: (entrada, saída esperada).

FIM

Referências

1.https://en.wikipedia.org/wiki/Reinforcement_learning

2.https://ofir.io/self-ask.pdf

Este artigo foi autorizado pelo autor original e compilado por Baihai IDP. Caso necessite reimprimir a tradução, entre em contato conosco para autorização.

Links originais :

https://huyenchip.com/2023/04/11/llm-engineering.html

Leitura recomendada:

LLM | Dos princípios técnicos à prática (modelo de linguagem grande IDP relacionado à coleção de produtos secos-202308)

Acho que você gosta

Origin blog.csdn.net/Baihai_IDP/article/details/132270944
Recomendado
Clasificación