Após analisar alguns tópicos, eis o que aprendi e recomendo.
O site é destinado ao suporte do sistema de segurança residencial Surety.
O objetivo da IA utilizada com o fórum Discourse é (ref):
- Complementar nossa equipe de suporte humano em um fórum de suporte técnico.
- Ser capaz de aprender com nossos dados históricos do fórum.
- Possuir conhecimento de domínio para oferecer suporte.
- Deveria tentar responder apenas a perguntas dentro do tópico.
- Deveria fornecer uma maneira de o usuário solicitar que o bot pare de responder, permitindo que ele aguarde um humano caso sinta que o bot não está ajudando.
E aqui estão algumas das perguntas de Ryan:
- Esses modelos aprendem automaticamente ou são ajustados (fine-tuned) com dados históricos do fórum?
- Não duplicar trabalho que já foi feito por pessoas mais inteligentes.
- Restringir os tópicos em que o bot se envolverá, para que não participe de conversas gerais ou fora do tópico?
- O Chatbot original do Discourse tem a intenção de ser desenvolvido e mantido a longo prazo?
- Ou está planejado que ele seja eventualmente substituído pelo Bot de IA no plugin oficial, ou integrado a ele?
Aqui está uma pergunta postada que fiz ao bot de IA do Discourse, atualmente habilitado na versão do site que testei, e uma resposta do ChatGPT.
A pergunta:
Tenho um IQP4 com um PowerG para fiação fixa. Os sensores com fio estão funcionando. Queria fazer um teste no sino/sirene, mas não consegui encontrar a opção no IQP4. Posso testar a sirene no painel e ela toca junto com o IQ Remote, mas o sino com fio não. Preciso disparar o alarme para que a sirene com fio toque.
Existe uma maneira de testar o sino no PowerG para fiação fixa a partir do IQP4?
Aqui está a resposta usando o bot de IA do Discourse com GPT-4
Encontrei um tópico relevante em nosso fórum que pode ajudá-lo com seu problema.
No tópico Testar sino com fio no PowerG para fiação fixa?, o usuário teve um problema semelhante, onde não conseguiu encontrar a opção para testar o sino no PowerG para fiação fixa a partir do IQP4.
Por favor, consulte este tópico para possíveis soluções. Se ainda tiver dúvidas ou precisar de mais assistência, sinta-se à vontade para perguntar.
Aqui está a resposta usando o bot de IA do Discourse com GPT-3.5
Encontrei um tópico no Fórum de Suporte Surety que discute o teste do sino com fio na conexão PowerG para fiação fixa com o Painel IQ 4 (IQP4). Você pode encontrar o tópico aqui.
No tópico, o usuário menciona que não conseguiu encontrar uma opção para testar o sino/sirene no próprio IQP4. No entanto, eles conseguiram testar a sirene no painel e ela tocou junto com o IQ Remote. O sino com fio, por outro lado, não tocou a menos que o alarme fosse disparado.
Você pode visitar o tópico para mais informações e ver se há soluções ou sugestões fornecidas por outros usuários.
Tanto o bot de IA do Discourse com GPT-4 quanto o com GPT-3.5 encontraram o mesmo tópico.
Aqui está a resposta usando o ChatGPT
Não tenho informações específicas sobre a versão mais recente do software ou os recursos do Painel IQ 4, pois meu treinamento inclui apenas conhecimento até janeiro de 2022. No entanto, com base em princípios gerais de teste de sistemas de alarme, aqui estão algumas sugestões que podem ajudá-lo a testar sua sirene com fio conectada ao PowerG:
-
Modo de Teste do Sistema:
- Verifique se seu painel de alarme possui um modo de “Teste do Sistema” ou “Teste de Caminhada”. Este modo é tipicamente projetado para testar sensores e alarmes sem disparar um evento real de alarme. Se seu painel tiver esse recurso, ele deve permitir que você teste a sirene sem acionar um alarme completo.
-
Controle de Saída:
- Procure por uma opção de “Controle de Saída” ou “Saída Auxiliar” nas configurações do seu painel de alarme. Este recurso pode permitir que você dispare manualmente saídas, como a sirene, para fins de teste.
-
Bypass de Zona:
- Alguns sistemas permitem que você ignore zonas específicas durante o teste. Se sua sirene com fio estiver associada a uma zona particular, você poderá ignorar essa zona para teste.
-
Manual do Usuário:
- Consulte o manual do usuário ou a documentação que veio com seu Painel IQ 4. Deve fornecer instruções específicas sobre como testar e controlar diferentes componentes do seu sistema de alarme.
-
Suporte Técnico:
- Se não conseguir encontrar uma solução por conta própria, considere entrar em contato com o suporte técnico do fabricante. Eles podem fornecer orientação com base nos recursos e capacidades específicos do seu sistema.
-
Atualização de Software do Painel:
- Verifique se há atualizações de software disponíveis para seu Painel IQ 4. Os fabricantes frequentemente lançam atualizações para adicionar novos recursos ou resolver problemas, e uma atualização pode incluir um modo de teste específico para a sirene.
Lembre-se de agir com cautela durante os testes para evitar acionar acidentalmente um evento real de alarme. Se não tiver certeza sobre qualquer etapa, é sempre uma boa ideia consultar o manual do usuário ou entrar em contato com o suporte técnico para assistência.
Claramente, o ChatGPT está fornecendo uma resposta mais detalhada. Abordarei possíveis razões mais tarde neste tópico.
Nota: Não tenho acesso ao plugin Discourse AI de Merefield (Card) (GitHub). Seria bom ver a resposta à mesma pergunta postada aqui para comparação. 
Aqui está meu feedback.
A IA desses bots é baseada em LLMs (Modelos de Linguagem de Grande Escala); o conhecimento é limitado pelo conjunto de treinamento. Os bots também estão usando RAG (Recuperação Aumentada por Geração) para ampliar seu conhecimento acessando os tópicos do fórum.
Os bots geralmente usam um prompt de sistema, pense como uma persona, que não é um prompt de usuário com a solicitação à API do LLM.
Vou deixar o ChatGPT explicar a diferença.
ChatGPT
O que é um prompt de sistema? Como ele difere de um prompt de usuário?
Resposta
Um prompt de sistema e um prompt de usuário são termos frequentemente usados no contexto de modelos de linguagem e sistemas de IA conversacional como o GPT-3.5. Deixe-me esclarecer a diferença entre eles:
-
Prompt de Usuário:
- Um prompt de usuário é a entrada fornecida por um usuário humano para iniciar uma conversa ou solicitar informações ao sistema de IA.
- É o texto ou a consulta que uma pessoa digita ou fala para interagir com o modelo de IA.
- Por exemplo, se você estiver usando um chatbot ou um modelo de linguagem, sua entrada fazendo uma pergunta ou fazendo uma afirmação seria o prompt de usuário.
-
Prompt de Sistema:
- Um prompt de sistema, por outro lado, é a entrada ou instrução inicial dada ao modelo de IA para definir o contexto ou guiar seu comportamento para uma conversa.
- É usado para fornecer à IA um ponto de partida ou contexto para gerar respostas.
- O prompt de sistema ajuda a moldar o tom, o estilo ou o conteúdo das respostas da IA e serve como uma espécie de instrução para guiar o comportamento do modelo.
- Enquanto os prompts de usuário são específicos para as consultas ou declarações do usuário, os prompts de sistema tratam mais de fornecer um contexto geral ou instrução para toda a conversa.
No caso do GPT-3.5 ou modelos de linguagem semelhantes, uma conversa geralmente começa com um prompt de sistema seguido por prompts de usuário em uma troca contínua. O prompt de sistema ajuda a influenciar as respostas do modelo durante toda a conversa, mas é a combinação de prompts de sistema e de usuário que determina a saída do modelo.
A razão pela qual os bots não conseguem fornecer uma resposta muito mais específica é que sua base de conhecimento carece dos manuais do usuário, instruções de instalação, etc., para esses produtos. Além disso, os bots frequentemente não conseguem extrair imagens e diagramas de tal documentação, como diagramas de fiação e imagens usadas nos manuais de instalação.
Como ponto de partida, o RAG deve ser usado para expandir o conhecimento da IA o máximo possível, mesmo que seja apenas o texto da documentação. Embora o bot de IA do Discourse possa usar RAG para todos os tópicos no fórum, não sei se eles permitem a adição de informações externas. Caso contrário, uma ideia seria importar todos os documentos como PDFs em uma categoria, possivelmente oculta, e então o código do Discourse poderia acessá-los mais facilmente, já que estão no fórum, e usar Langchain para acessar os PDFs (ref).
Com esse conhecimento incluído, o prompt de sistema pode ser ajustado para melhorar as respostas, mas isso ainda estará longe do que você busca. Você ainda provavelmente receberá respostas como a primeira, com referências a informações, mas sem instruções passo a passo quando necessário. Além disso, não há como dar feedback sobre a resposta da IA que a IA saiba que está recebendo feedback. Em outras palavras, se um usuário responder ao bot dizendo que algo está errado, o bot lerá a resposta, mas não entenderá que precisaria atualizar o conhecimento com base nisso.
Para melhorar a qualidade das respostas, três ideias vêm à mente:
- Fazer uso do HyDE (Hypothetical Document Embeddings - Incorporações de Documentos Hipotéticos)
„Precise Zero-Shot Dense Retrieval without Relevance Labels“ por Luyu Gao, Xueguang Ma, Jimmy Lin e Jamie Callan (pdf)
Na verdade, soube do HyDE por meio do Discourse (ref) e sei que eles estão usando.
-
RLHF (Aprendizado por Reforço com Feedback Humano). Não acho que nenhum dos bots seja capaz disso, e o Discourse pode estar considerando; gostaria de ouvir o feedback deles se quiserem compartilhar.
-
Dados sintéticos com RLHF. Isso é realmente de ponta e não é algo que eu esperaria que qualquer um dos dois bots implementasse.
Uma das formas mais demonstradas e bem-sucedidas de treinar um LLM é fazê-lo treinar a si mesmo, mas você precisa de alguma métrica para saber se o resultado é melhor ou pior. Para o seu site, a única maneira que atualmente entendo de saber se uma solução é melhor ou pior é que um humano avalie a solução fornecida pela IA. Para obter mais rodadas possíveis de perguntas e soluções, as perguntas são geradas por uma IA, com outra IA gerando a solução, e então a solução é medida e usada para melhorar a IA que gera a solução.
Para melhorar a capacidade do bot de ajudar os usuários, ele deve realizar uma série de perguntas para coletar informações e entender melhor o problema, de maneira semelhante à forma como um médico faz para um diagnóstico e prognóstico.
Outra opção é olhar para tecnologias semelhantes que podem ser acessadas com o bot de IA, como o Copilot da Microsoft.
Um item que você não solicitou ou notou, mas que é valioso, são as referências de volta à fonte. A razão pela qual isso é importante é verificar se a conclusão da IA é uma alucinação ou não. Se uma referência for incluída, e for uma referência real e não uma alucinação, então a referência pode ser verificada para ver se é de uma fonte autorizada, como um manual, e assim saber que não é uma alucinação. Adicionar referências é fácil de fazer com RAG e deve ser esperado.
Agora, abordando seus objetivos específicos.
Complementar nossa equipe de suporte humano em um fórum de suporte técnico.
Isso é mais uma declaração do que uma pergunta, então não responderei como uma pergunta.
Seria necessário aprender com nossos dados históricos do fórum.
Isso fazia parte de uma declaração maior que dividi. A razão pela qual dividi é que, embora você esteja correto ao afirmar que os dados históricos no fórum são valiosos, o conhecimento básico, como o contido nos manuais, também é necessário. Os bots atuais usam RAG com as postagens do fórum, mas, que eu saiba, não sabem como acessar dados externos.
Deveria tentar responder apenas a perguntas dentro do tópico.
Isso pode ser realizado ajustando o prompt de sistema. Isso também precisaria de alguma tecnologia da Regra de Automação do Classificador de Postagens do Discourse AI.
Deveria fornecer uma maneira de o usuário solicitar que o bot pare de responder, permitindo que ele aguarde um humano caso sinta que o bot não está ajudando.
Isso pode ser realizado ajustando o prompt de sistema.
Esses modelos aprendem automaticamente ou são ajustados (fine-tuned) com dados históricos do fórum?
Boa pergunta. Embora eu tenha mencionado brevemente como começar a resolver isso anteriormente, é realmente uma pergunta muito mais difícil do que parece, mas os grandes pesquisadores de LLM estão fazendo progressos muito melhores nisso e pode haver alguns anúncios interessantes nos próximos meses que possam tornar isso muito mais fácil.
Não duplicar trabalho que já foi feito por pessoas mais inteligentes.
Vou interpretar isso como que o LLM não deve divagar sobre o que sabe. Isso depende de como o modelo é treinado com novos conhecimentos. É possível tornar o modelo pior e até mesmo mais difícil de fazer um modelo “esquecer”. Que eu saiba, nenhum dos bots de IA do Discourse tem a capacidade de aprender, ou seja, alterar os pesos no LLM, mas eles têm a capacidade de usar RAG com postagens de tópicos. Portanto, uma postagem de tópico ruim, lixo entra, lixo sai.
Restringir os tópicos em que o bot se envolverá, para que não participe de conversas gerais ou fora do tópico?
Isso seria semelhante à Regra de Automação do Classificador de Postagens do Discourse AI.
O Chatbot original do Discourse tem a intenção de ser desenvolvido e mantido a longo prazo?
Vou deixar essa questão para a equipe do Discourse.
Ou está planejado que ele seja eventualmente substituído pelo Bot de IA no plugin oficial, ou integrado a ele?
Vou deixar essa questão para a equipe do Discourse.