Entenda como construímos o Question Assistant

Já se perguntou como o Stack Overflow garante a qualidade das perguntas e respostas? A plataforma revelou os bastidores da criação do Question Assistant, uma ferramenta que usa inteligência artificial para auxiliar usuários a formularem perguntas claras e relevantes. O objetivo é otimizar o processo de revisão, permitindo que os moderadores se concentrem em casos mais complexos e garantindo que a comunidade continue sendo um espaço valioso para troca de conhecimento técnico. Vamos descobrir como essa ferramenta foi desenvolvida e quais os resultados que ela tem trazido para a comunidade do Stack Overflow.

Afinal, o que é uma boa pergunta?

Para começar, a equipe do Stack Overflow tentou usar LLMs (Large Language Models) para avaliar a qualidade das perguntas em três categorias: contexto e histórico, resultado esperado, formatação e legibilidade. Essas categorias foram escolhidas por serem as áreas onde os revisores mais frequentemente repetiam os mesmos comentários. A ideia era usar a inteligência artificial para identificar padrões e acelerar o processo de feedback.

Os testes iniciais com LLMs não foram muito promissores. A inteligência artificial não conseguia prever classificações de qualidade de forma confiável, e o feedback gerado era repetitivo e genérico, sem muita utilidade prática. Além disso, as avaliações não se adaptavam às mudanças feitas nas perguntas.

A equipe percebeu que, para uma LLM avaliar a qualidade de uma pergunta de forma confiável, era necessário definir o que é uma pergunta de qualidade com base em dados concretos. Embora o Stack Overflow tenha diretrizes sobre como fazer boas perguntas, transformar qualidade em uma pontuação numérica não é tarefa fácil. Isso significava que seria preciso criar um conjunto de dados rotulados para treinar e avaliar os modelos de ML (Machine Learning).

Para criar uma base de dados inicial, foi realizado um questionário com mil revisores, pedindo que avaliassem a qualidade das perguntas em uma escala de 1 a 5 nas três categorias. Apenas 152 revisores completaram o questionário. Após analisar os resultados com o teste Krippendorff’s alpha, a equipe obteve uma pontuação muito baixa, indicando que os dados coletados não seriam confiáveis para treinar e avaliar os modelos de ML.

Construindo modelos indicadores para o Question Assistant

A equipe decidiu mudar a abordagem e, em vez de usar apenas uma LLM com respostas genéricas, criou modelos de regressão logística individuais. Esses modelos geram uma resposta binária com base no título e no corpo da pergunta, indicando se um modelo de comentário específico deve ser aplicado ou não. Para o primeiro experimento, a equipe escolheu a categoria de contexto e histórico.

Dentro dessa categoria, foram definidos quatro indicadores de feedback:

  • Definição do problema: Falta informação para entender o que o usuário está tentando realizar.
  • Detalhes da tentativa: Necessidade de mais informações sobre o que já foi tentado e o código relevante.
  • Detalhes do erro: Falta de informações sobre mensagens de erro e logs de depuração.
  • Falta de MRE: Ausência de um exemplo mínimo e reproduzível usando uma parte do código que reproduz o problema.

Esses indicadores foram derivados de comentários de revisores em posts do Staging Ground, agrupados por temas comuns. A equipe usou dados históricos de comentários de revisores e razões para fechamento de perguntas para treinar um modelo capaz de detectar esses indicadores. Os comentários foram vetorizados usando a técnica TF IDF (term frequency inverse document frequency) antes de serem inseridos nos modelos de regressão logística.

Para fornecer feedback prático, os modelos de ML foram integrados a uma LLM. Quando um indicador sinaliza uma pergunta, um texto de resposta pré-definido é enviado para o Gemini, juntamente com alguns comandos do sistema. O Gemini sintetiza essas informações para produzir um feedback específico para a pergunta, abordando o indicador sinalizado. Os modelos foram treinados e armazenados no ecossistema Azure Databricks. Em produção, um serviço dedicado no Azure Kubernetes baixa os modelos do Databricks Unity Catalog e os hospeda para gerar previsões sob demanda.

Com os modelos prontos, a equipe iniciou os testes no site.

Testando o Question Assistant no site

O experimento foi realizado em duas fases: primeiro, apenas no Staging Ground, e depois em todo o stackoverflow.com para todos os usuários do Ask Wizard. O sucesso foi medido através da coleta de eventos via Azure Event Hub e do registro de previsões e resultados no Datadog. O objetivo era entender se o feedback gerado era útil para o usuário e melhorar as iterações futuras dos modelos indicadores.

O primeiro experimento foi no Staging Ground, com foco em novos usuários que provavelmente precisavam de mais ajuda para elaborar suas perguntas. O teste foi do tipo A/B, dividindo os usuários elegíveis em dois grupos: controle e variante. O grupo de controle não recebeu assistência do Gemini, enquanto o grupo de variante recebeu. O objetivo era verificar se o Question Assistant poderia aumentar o número de perguntas aprovadas no site principal e reduzir o tempo de revisão das perguntas.

Os resultados iniciais foram inconclusivos em relação às métricas originais. As taxas de aprovação e os tempos médios de revisão não melhoraram significativamente para o grupo de variante em comparação com o grupo de controle. No entanto, a equipe identificou que a solução resolvia um problema diferente: um aumento significativo nas taxas de sucesso das perguntas, ou seja, perguntas que permaneciam abertas no site e recebiam uma resposta ou uma pontuação de pelo menos +2. Embora não tenha atingido os objetivos originais, o experimento validou o valor do Question Assistant para os usuários e seu impacto positivo na qualidade das perguntas.

No segundo experimento, o teste A/B foi executado em todos os usuários elegíveis na página Ask Question com o Ask Wizard. Desta vez, o objetivo era confirmar os resultados do primeiro experimento e verificar se o Question Assistant também poderia ajudar usuários mais experientes. Os resultados mostraram uma taxa de sucesso constante de +12% em ambos os experimentos. Com esses resultados consistentes, o Question Assistant foi disponibilizado para todos os usuários do Stack Overflow em 6 de março de 2025.

Próximos passos com o Question Assistant

Mudar de rumo é comum em pesquisa e desenvolvimento. Perceber quando um caminho não trará impacto e mudar para uma nova lógica é crucial para garantir que todas as peças do quebra-cabeça se encaixem de forma diferente. Ao unir o ML tradicional com o Gemini, foi possível combinar o feedback do indicador sugerido com o texto da pergunta, fornecendo um retorno mais específico e contextualizado, auxiliando o usuário a melhorar sua questão. Este é um passo em direção a melhorias no fluxo de perguntas e respostas, tornando mais fácil para todos perguntar, responder e contribuir com conhecimento. A equipe de produtos da comunidade está buscando maneiras de otimizar os modelos indicadores e aprimorar a experiência de quem faz perguntas com este recurso.

Este conteúdo foi auxiliado por Inteligência Artificial, mas escrito e revisado por um humano.

Via Stack Overflow Blog

Leave a Comment