Busca por IA para encontrar correspondências não exatas

Usamos nosso site como uma base de conhecimento e fórum de discussão para um departamento universitário. Assim, por exemplo, posso imaginar pessoas querendo perguntar coisas como:

  • quando as notas do mestrado estarão disponíveis?
  • qual é a nota de aprovação para alunos de MPsych?
  • quantas semanas de licença posso reservar de uma vez?
  • o que acontece se meu tutor reprovar em um módulo do estágio 1?
  • o que a universidade exige que eu faça se meu tutor estiver se automutilando?
  • quanto pagamos aos participantes de pesquisa?
  • como consigo uma promoção?
  • quais fontes de financiamento de doutorado estão disponíveis? ou quando os doutorados da escola são lançados?
  • onde no programa os alunos aprendem sobre anova de medidas repetidas?

Em cada um desses casos, temos informações muito boas, mas a busca tradicional não encontra os resultados corretos para resumir. Às vezes, não encontra nada, mas outras vezes encontra discussões antigas que não são a resposta “correta”.

5 curtidas

Obrigado pelo feedback Ben

Veja a fila de PR em que @falco está trabalhando na pesquisa semântica baseada em Hyde, assim que estiver pronta, tentarei adicionar um comando para isso

2 curtidas

FYI

Sei que muitos aqui não são programadores e, portanto, as diferenças entre pesquisa por palavra-chave e pesquisa semântica podem parecer confusas ou eles podem querer ter mais insights sobre como funciona. Embora o seguinte seja para programadores, é básico o suficiente para que você possa aprender alguns dos conceitos-chave sobre as diferenças entre os dois métodos de pesquisa sem ser um programador.

A DeepLearning.AI adicionou recentemente (14/08/2023) este curso básico gratuito sobre

Large Language Models with Semantic Search (ref)

que pode ser encontrado na página de cursos curtos.


Para aqueles que prestam atenção em quem é quem no mundo da IA, eles devem reconhecer algumas das pessoas que apresentam.

1 curtida

Para aqueles que, como eu, gostam de artigos de pesquisa e, como eu, não conheciam o HyDE, aqui está o artigo.

“Precise Zero-Shot Dense Retrieval without Relevance Labels” por Luyu Gao, Xueguang Ma, Jimmy Lin e Jamie Callan (pdf)

1 curtida

Você pode fornecer um link? (Respondido abaixo)

Desculpe perguntar, eu simplesmente não consegui encontrar. Aprendi sobre comandos de bot, no entanto. (ref)

@EricGT obrigado pelo link. Esse artigo é bastante denso para quem não entende bastante sobre ML.

Acho que a ideia principal é que, como aplicado aqui, o HyDE usaria um LLM para primeiro criar uma resposta “inventada” com base na pergunta. Essa resposta terá a forma de um post de fórum real (por exemplo), mas pode conter alucinações e estar factualmente errada porque o conteúdo vem do LLM, não de um conjunto de documentos canônicos. Este documento nunca é mostrado ao usuário, mas o truque interessante é que este documento será semanticamente semelhante a documentos/tópicos reais do seu site. A busca retorna documentos reais que são mais semelhantes ao documento “inventado”, e empiricamente isso parece funcionar melhor do que apenas comparar o termo de busca bruto com documentos semanticamente semelhantes no banco de dados de embeddings.

@sam Hyde a busca baseada em IA parece legal e estou animado para experimentá-la. Você está prevendo ajustes para alguns desses recursos de IA? Por exemplo, posso imaginar que seria bom editar os prompts usados tanto para gerar o documento hipotético quanto para controlar o resumo/resposta. Por exemplo, o chatbot atual é bastante prolixo quando encontra respostas. Seria bom poder adicionar “concisamente” ou “brevemente” como um prefixo ao prompt (como faço com frequência ao usar o próprio ChatGPT).

4 curtidas
4 curtidas

Boa observação!


Sei que muitos não darão atenção a essa afirmação, mas se você está pagando dinheiro real para executar prompts, essa é uma das afirmações mais valiosas que você precisa entender.

Veja:

Prompts

40-90%: Quantia economizada ao anexar “Seja Conciso” ao seu prompt

É importante lembrar que você paga por token pelas respostas. Isso significa que pedir a um LLM para ser conciso pode economizar muito dinheiro [1]. Isso pode ser ampliado além de simplesmente anexar “seja conciso” ao seu prompt: se você estiver usando o GPT-4 para criar 10 alternativas, talvez peça 5 e guarde a outra metade do dinheiro.

1 curtida

Temos o backend pronto para isso, mas levará um tempo para integrá-lo adequadamente à página de resultados de pesquisa do Discourse, pois a interface do usuário é um tanto complicada.

Hoje não oferecemos controle sobre os prompts, mas ofereceremos para torná-los personalizáveis no futuro, depois que conseguirmos fazer o recurso funcionar bem.

3 curtidas

Você pode experimentá-lo aqui no Meta, basta ir à página de busca e tentar algumas perguntas. Me diga como foi para você.

2 curtidas

Está ótimo! Especialmente quando insiro uma frase de pesquisa que retorna “Nenhum resultado encontrado” para a pesquisa de correspondência exata.

Estou obtendo várias correspondências semanticamente corretas para tópicos fechados do Marketplace. Talvez seja útil retorná-los, mas talvez eles devam aparecer perto do final da lista.

Talvez algumas pesquisas possam ser restritas a categorias ou tags específicas. Por exemplo:

  • Ao pesquisar por “Como posso impedir que e-mails de ativação sejam enviados quando os usuários fazem login no WordPress?”, os melhores resultados serão encontrados em Documentation ou Support > WordPress.

  • Ao pesquisar por “Como escrever uma consulta do Data Explorer que retorne os tópicos mais curtidos?”, os melhores resultados serão encontrados nas categorias Data & reporting e Documentation.

Se fosse possível, a pesquisa inicial poderia retornar resultados das categorias mais prováveis e uma sugestão poderia ser dada para tentar expandir a pesquisa para outras categorias.

Pensando na pesquisa semântica como o primeiro passo para usar o Discourse como um fórum de suporte ao cliente, seria bom poder priorizar categorias ou tags específicas. Por exemplo, no Meta, a pesquisa inicial poderia priorizar a pesquisa na categoria Documentation.

4 curtidas

Esse é exatamente um dos problemas que eu queria abordar com este novo recurso. A pesquisa semântica sempre encontrará algo.

No momento, a pesquisa semântica é bastante básica. Consiste em apenas algumas linhas de código no backend e retorna o que estiver semanticamente mais próximo. Ela carece de quaisquer recursos de pesquisa que adicionamos à pesquisa padrão na última década, como Melhorias de Pesquisa em 2.3 e muitos outros. Por causa disso, ela está atualmente sendo oferecida como um conjunto de resultados complementar.

Se o recurso for bem recebido e pudermos aperfeiçoar a interface do usuário no produto, tentaremos incorporar as partes específicas do Discourse aos resultados da pesquisa semântica.

5 curtidas

Sim, isso é realmente incrível para consultas complexas.

Mesmo que não tenha encontrado postagens para esta consulta, ele conseguiu encontrar tópicos suficientes que apontam para o lugar certo!

5 curtidas