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”.
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
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
@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).
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.
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.
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.
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.