Encadeamento de prompt
Há um surgimento de ferramentas de programação visual que facilitam o encadeamento de prompts de modelo de linguagem grande em um aplicativo; que é principalmente uma interface do usuário de conversação.
Alguns antecedentes
Várias estruturas de desenvolvimento de chatbots incluíram LLMs em sua funcionalidade. Essa funcionalidade deve complementar os recursos de desenvolvimento de chatbot existentes. No entanto, essas implementações de estrutura de desenvolvimento de chatbot do LLM têm sido muito semelhantes por natureza .
Essa implementação inicial foi seguida por uma segunda onda de geração de fluxo de conversação e assistentes de design de conversação; que foi liderado pela Cognigy . E posteriormente seguido por Yellow AI e Kore AI.
L LMs são altamente versáteis com recursos abertos.
O Voiceflow e o Botpress introduziram uma funcionalidade semelhante ao encadeamento de prompts, na medida em que um prompt pode ser enviado a um LLM e os valores podem ser extraídos da resposta gerada.
Neste artigo, quero considerar os princípios subjacentes ao projetar e construir uma interface de programação visual de encadeamento de prompt nativo.
Interface de usuário de encadeamento de prompt nativo
Ao encadear prompts de modelo de linguagem grande por meio de uma UI de programação visual, a maior parte da funcionalidade será a GUI que facilita o processo de autoria.
Abaixo está uma imagem da aparência de uma GUI para engenharia de prompt e autoria de cadeia de prompt. Este design originou-se de uma pesquisa realizada pela Universidade de Washington e pelo Google.
A interface precisa oferecer granularidade em vários níveis do processo de autoria. Considerando o processo de encadeamento, fica evidente que entre as cadeias existem conexões.
Qualquer encadeamento de prompts ou ferramenta de encadeamento LLM deve suportar a transformação de dados entre as etapas da cadeia. Considerando que na maioria dos casos o LLM retornará dados não estruturados, haverá um nível de estruturação e transformação de dados necessários.
Um segundo elemento é a natureza levemente imprevisível dos LLMs. Um LLM pode gerar várias respostas para o mesmo prompt. Isso dá origem a um desafio de respostas indesejadas em cascata em cadeias de prompt. Onde dados inesperados são propagados pelas cadeias.
Como não há compilação de código, os prompts podem ser personalizados em tempo de execução sem a necessidade de nenhum treinamento de modelo específico.
Novas tarefas podem ser facilmente absorvidas pelo aplicativo LLM Chained, simplesmente recebendo instruções em linguagem natural chamadas prompts.
Concedido, muitos aplicativos do mundo real envolvem tarefas complexas e muitas vezes paralelas de várias etapas que representam um desafio para uma única instância de cadeias.
Considerando a pilha de funcionalidades abaixo, um aplicativo de encadeamento de prompts baseado em Large Language Models (LLMs) e Generative AI deve ter três componentes principais:
⏺ LLMs
⏺ Ajudantes
⏺ Comunicação
LLMs
Para muitas cadeias/nós, a saída do LLM pode ser usada sem edição conforme fornecida pelo LLM. Na maioria dos casos, essa exibição será apresentada ao usuário ou a transformação de dados pode ser necessária para uma próxima cadeia no aplicativo LLM (também conhecido como Gen App).
A saída do LLM determinará para qual cadeia se ramificar, portanto, essas bordas da cadeia/nó precisam conter regras e condições.
Uma última consideração é usar o LLM como um classificador . Os LLMs podem ser implementados em uma capacidade generativa ou preditiva . A IA generativa é o lado mais popular e acessível dos LLMs. O preditivo é mais complicado e requer mais ajustes ou, pelo menos, prompts precisos.
Alavancar um LLM como um classificador (portanto, preditivo) dentro de uma cadeia, torna os nós de tomada de decisão do aplicativo de encadeamento inteligentes e flexíveis.
Sempre haverá a tentação de codificar/escrever rapidamente a tomada de decisão nas bordas; também chamados de pontos de transição da cadeia. Esta é uma solução rápida; mas novamente introduz rigidez no aplicativo LLM Chaining.
ajudantes
Os ajudantes auxiliam na avaliação do resultado do LLM, considerando aspectos como polidez, empatia, etc. Os ajudantes também podem reclassificar ou reenviar solicitações.
Como a granularidade é um requisito para qualquer implementação de produção, será importante ajustar o aplicativo encadeado de prompts. Uma forma de script será necessária para processamento e transformação de dados.
O script encapsula os recursos de desenvolvimento fornecidos ao autor da cadeia para implementar medidas de controle, transformação de dados e muito mais.
Comunicação
A comunicação ocorre em alguns níveis, há entrada de dados do usuário na forma de dados de conversação não estruturados.
Outras ações do usuário, como pedir ao usuário para selecionar a melhor resposta ou eliminar a ambiguidade com base em algumas possibilidades.
E, claro, os sistemas de terceiros (APIs) serão interrogados para qualquer implementação corporativa ou de produção.
Considerando o design do PromptChainer
A interface PromptChainer possui um visualizador de exibição de cadeia onde a estrutura da cadeia com arestas de nós ou “entre cadeias” pode ser criada, editada, lida e excluída [A].
O visualizador de nodos suporta a implementação, melhoria e teste de cada nodo individual ou cadeia [B]. A edição de prompts para cada nó pode ser realizada aqui.
O PromptChainer também suporta a execução da cadeia de ponta a ponta [C] com opções para limpar o cache, visualizar logs de execução, etc.
Com base na pesquisa quantitativa realizada pela Universidade de Washington e pelo Google Research, foram feitas descobertas sobre como os usuários constroem e depuram cadeias:
[1] Os usuários desejam criar cadeias não apenas para mitigar as limitações do LLM, mas também para tornar seus aplicativos extensíveis e escalonáveis.
[2] Alguns usuários construíram uma etapa de uma cadeia por vez, enquanto outros esboçaram espaços reservados abstratos para todas as etapas antes de preenchê-las.
[3] As interações entre vários prompts e cadeias do LLM podem ser complexas, exigindo depuração local e global de prompts.
Considerando a imagem abaixo, segue a descrição de cada nó ou cadeia:
[1] Defina a entrada para uma cadeia
[2,3] Use a saída LLM para filtrar e ramificar as entradas.
[4] Use a saída do LLM diretamente como a saída do nó.
[5] Funções JavaScript pré-implementadas para transformação de dados típica.
[6] Use a saída do LLM diretamente como a saída do nó.
[7] Chame funções externas para conectar serviços profissionais com LLMs.
[8] Funções JS definidas pelo usuário, caso os auxiliares predefinidos sejam insuficientes.
[9] Use a saída do LLM diretamente como a saída do nó.
[10] Filtre ou reclassifique as saídas do LLM por critérios projetados por humanos, por exemplo, polidez. Permite edição externa (usuário final) em pontos de dados intermediários.
Para concluir
Existem alguns termos usados atualmente para aplicativos construídos em Modelos de Fundação e Modelos de Linguagem Grande. Esses termos são Gen Apps, Generative Apps, LLM Apps, Prompt Chaining, LLM Chaining e muito mais.
Basta dizer que é necessário construir modelos grandes e, de alguma forma, aproveitar o poder dos LLMs.
Essa necessidade será sustentada pelos seguintes princípios:
- Comandos
- Aproveitando os recursos preditivos e generativos do LLM.
- Encadeamento de Prompts; tanto em paralelo quanto em série.
- Um editor visual para programar cadeias/nós e arestas, entre nós/cadeias.
- Transformação de dados de resposta LLM.
- Os aplicativos encadeados do LLM serão conversacionais para entrada e saída, ou a saída também pode encapsular um componente RPA.
Atualmente sou o Evangelista Chefe @ HumanFirst . Eu exploro e escrevo sobre todas as coisas na interseção de IA e linguagem; variando de LLMs , Chatbots , Voicebots , estruturas de desenvolvimento, espaços latentes centrados em dados e muito mais.
PromptChainer: encadeando prompts de modelo de linguagem grande por meio de programação visual.





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)