top of page

Como o CHATGPT é capaz de dizer qual é a resposta certa numa questão de múltipla escolha?

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


bottom of page