Como o CHATGPT é capaz de dizer qual é a resposta certa numa questão de múltipla escolha?
- Hobbert Evergreen
- 11 de mar. de 2023
- 2 min de leitura
Recentemente me deparei com essa pergunta no Reddit: "Eu entendo como o CHATGPT elabora textos, mas nao entendo como ele é capaz de dizer qual é a resposta certa numa questão de múltipla escolha, nem como ele resolve problemas matemáticos. Alguém poderia explicar ?"
Eu trabalho com IA há muitos anos e não arrisco dizer que entendo 100% do que acontece na forma de compreender e responder do ChatGPT!! Porém andei me fazendo essas perguntas e estou começando a responder com o tempo!
Estou atualmente estudando um código do github da microsoft que se chama "Visual ChatGPT"!! Basicamente é um ChatGPT adaptado para imagens! O mesmo estou fazendo para o PromptCraft também da microsoft, que é ChatGPT aplicado em robótica!

Se tiver curiosidade, os gits seguem a seguir:
Como é a infra por trás desses projetos do Git?
No Visual ChatGPT por exemplo, eles criam um "Agente" que recebe, além de outras coisas, dois grandes parametros. Um dizendo qual a config do modelo de LLM (Large Language Model) será utilizado e quais as "Tools" que ele tem!
Exemplo da criação do agente no arquivo "visual_chatgpt.py"
self.agent = initialize_agent(
self.tools,
self.llm,
agent="conversational-react-description",
verbose=True,
memory=self.memory,
return_intermediate_steps=True, agent_kwargs={'prefix': VISUAL_CHATGPT_PREFIX, 'format_instructions': VISUAL_CHATGPT_FORMAT_INSTRUCTIONS, 'suffix': VISUAL_CHATGPT_SUFFIX}, )
E olha que interessante, o agente em si é um módulo só de agentes que chama "langchain", ou seja, cadeia de linguagem dando a entender que é um agente específico para "encadear" ideias:
from langchain.agents.initialize import initialize_agent
Há um monte de funções programadas para realizar, por exemplo, um Canny, uma Remoção, uma Adição, extrair a descrição em texto de uma imagem (i2t)! Há uma lista explicando qual a função em python chamar e com uma explicação na forma de texto! O ChatGpt é um intermediário entre o texto da pergunta e o texto da descrição da função, para por fim definir qual código rodar!
Exemplo de "Tool" do visual Chat ("i2t" é "image to text") no arquivo "visual_chatgpt.py"
Tool(name="Get Photo Description",
func=self.i2t.inference,
description="useful when you want to know what is inside the photo. receives image_path as input. " "The input to this tool should be a string, representing the image_path. ")
Se fosse pensar na sua pergunta, teríamos duas "tools" que seriam, por exemplo: "Calculos matemáticos" e "Resolver questões de múltipla escolha" e teriam um texto explicando o que elas fazem e qual função em python elas chamam.
Essa intermediação e a execução da função é manual, feita por um código escrito por uma pessoa!! O modelo GPT só sabe prever texto, não sabe resolver "questões de múltipla escolha". Para um texto na entrada ele informa qual o texto da saída.
O mesmo acontece no PromptCraft para robôs! O programa gera uma descrição textual para cada função e o chatGPT "substitui" o texto da pergunta pela função!
O que eu estou vendo é que organizar as alternativas, preparar a resposta organizada é uma programação por cima de outra programação!
Percebo que o ChatGPT aparece em vários níveis, ele pode ser consultado mais de uma vez até fornecer uma resposta final! Mas o chat em si é só texto! Ainda que o texto às vezes seja código!
Organizar em tópicos ou alternativas é algo programado é meu "palpite" baseado na análise destes códigos da própria microsoft!
Espero que tenha ajudado!
Ainda não entendo 100%, mas sigo estudando e pode ter certeza que tem muita participação humana nisso tudo que é automático!
Valeuuuuuuuuuuuuuuuu
Comments