Aprendizagem pessoal com IA
e orientação prática
Espelho de desenho CyberKnife

[Reimpressão] Capacidade de chamada de ferramenta do QwQ-32B e aplicativo RAG autêntico

contextos

Um artigo recente intitulado Search-R1: treinamento de LLMs para raciocinar e aproveitar os mecanismos de pesquisa com aprendizado por reforço Tese sobre o tema "O futuro das Nações Unidas" (arxiv.org/pdf/2503.09516) tem atraído muita atenção. O artigo propõe uma nova maneira de treinar modelos de linguagem grandes (LLMs) usando o aprendizado por reforço para raciocinar e explorar mecanismos de pesquisa. Vale a pena observar que algumas das ideias do artigo são semelhantes às desenvolvidas pela equipe da Qwen em QwQ-32B A exploração no modelo coincide.

O QwQ-32B da Alibaba, lançado recentemente (qwenlm.github.io/zh/blog/qwq-32b/), integra recursos relacionados ao agente no modelo de raciocínio. Esses recursos permitem que o modelo pense de forma crítica ao usar a ferramenta e adapte o processo de raciocínio com base no feedback do ambiente. Na pasta do modelo QwQ-32B no diretório added_tokens.json você pode ver os tokens especiais adicionados para chamadas e respostas de ferramentas:

{
"": 151668,
"": 151658,
"": 151666, "": 151667,
"": 151667.

"": 151665
}

Neste documento, usaremos o Agentic RAG Como exemplo, são demonstrados os recursos do modelo QwQ-32B em termos de chamada de ferramentas.


 

RAG autêntico vs. RAG tradicional

Para entender melhor os benefícios do RAG Autêntico, primeiro precisamos distinguir entre o RAG Autêntico e o paradigma de prática RAG predominante atualmente:

  • RAG tradicionalA grande maioria dos projetos RAG atuais são essencialmente fluxos de trabalho, ou seja, sistemas que orquestram LLMs e ferramentas por meio de caminhos de código predefinidos. Esse fluxo de trabalho artificialmente predefinido e "escrito até a morte" consiste em muitas partes inter-relacionadas, mas frágeis, como roteamento, fragmentação, reordenação, interpretação de consultas, expansão de consultas, contextualização de fontes e engenharia de pesquisa.
    • desvantagensÉ difícil cobrir todos os casos extremos em um fluxo de trabalho orquestrado por humanos. Especialmente em cenários complexos que exigem várias rodadas de recuperação, o efeito é mais limitado.
  • RAG autênticoAbordagem de ponta a ponta: Uma abordagem de ponta a ponta é usada para simplificar o processo. Basta equipar o modelo com uma ferramenta de API para recuperação em rede (a API da Tavily foi usada neste caso, com uma certa quantidade de créditos gratuitos) e fazer todo o restante do trabalho de forma autônoma pelo modelo, incluindo, entre outros:
    • Intenção de entender (julgar se a rede é necessária)
    • Reescrever ou dividir a pergunta
    • chamada de interface
    • Coreografia do processo (incluindo se e como realizar buscas em várias etapas)
    • citar algo como fonte de algo
    • ...

Em poucas palavras, o conceito central do RAG Autêntico é:Menos estrutura, mais inteligência, menos é mais.

exatamente como Antrópica Definição do modelo de agente: semelhante à Deep Search, os agentes devem executar a tarefa-alvo internamente e "direcionam dinamicamente seus próprios processos e o uso de ferramentas para controlar a maneira como a tarefa é realizada".

Processo geral

A figura a seguir ilustra o fluxo geral do Agentic RAG:

[Reimpressão] Capacidade de chamada de ferramentas do QwQ-32B e aplicativo RAG autêntico-1

  1. Adapte as perguntas dos usuários para solicitar modelos de palavras.
  2. Chama o modelo para gerar um novo token. Se o processo de geração não resultar em um ...e, em seguida, o resultado do retorno é emitido diretamente.
  3. No caso de ...indica que o modelo iniciou uma solicitação de chamada de ferramenta durante o processo de raciocínio. Analisando essa solicitação, executando pesquisa na webe agrupa os resultados da chamada de interface em ... emendados no contexto do macromodelo e solicitados novamente para a geração do macromodelo.
  4. Repita as etapas acima até que não haja mais (ou o limite de solicitação é atingido) ou a presença de .

O processo é essencialmente o mesmo que o descrito no artigo Search-R1:

[Reimpressão] Capacidade de chamada de ferramentas do QwQ-32B e aplicativo RAG autêntico-2

Principais pontos técnicos

  • Modelos de palavras de taco::
user_question = input('Digite sua pergunta:')
max_search_times = 5
prompt = f"""Você é Qwen QwQ, uma IA curiosa criada para geração aumentada de retorno.
Você está em 2025 e a data atual é {date.today()}.
Você tem acesso à ferramenta web_search para recuperar informações relevantes e ajudar a responder às perguntas dos usuários.
Você pode usar a ferramenta web_search até {max_search_times} vezes para responder à pergunta de um usuário, mas tente ser eficiente e usar o mínimo possível.
Veja a seguir algumas diretrizes.
- Use web_search para consultas gerais na Internet, como encontrar eventos atuais ou informações factuais.
- Sempre forneça uma resposta final de forma clara e concisa, com citações de qualquer informação obtida na Internet.
- Se você achar que precisa usar uma ferramenta, formate sua resposta como uma chamada de ferramenta com `action` e `action_input` dentro de ... , da seguinte forma:\n\n{{ "action": "web_search", "action_input": {{ "query": "current stock price of Tesla" }} }}\n .
- Depois de usar uma ferramenta. continuar seu raciocínio com base no resultado da web_search em ... .
- Lembre-se de que, se você precisar de um web_search de várias voltas para encontrar informações relevantes, certifique-se de realizar todas as tarefas de pesquisa antes de fornecer uma resposta final.
---
Pergunta do usuário:{user_question}""""
  • Sinais de parada personalizados::

    Quando for detectado que o modelo acionou um processo de geração autorregressivo durante a (. *?) \s*$ A geração é interrompida após o formato (correspondência de expressão regular):

from transformers import (
AutoModelForCausalLM,
AutoTokenizer, AutoModelForCausalLM, AutoTokenizer, StoppingCriteria
StoppingCriteria, StoppingCriteriaList, StoppingCriteriaList, StoppingCriteriaList
StoppingCriteriaList
)
importar torch
import re
tool_call_regex = r"(. *?) \s*$"
end_regex = r"\s*$"
Monitoramento simultâneo do #:  ou 
class RegexStoppingCriteria(StoppingCriteria).
def __init__(self, tokeniser, patterns).
self.patterns = patterns
self.tokenizer = tokenizer
def __call__(self, input_ids: torch.LongTensor, scores: torch.FloatTensor, **kwargs) -> bool.
texto_decodificado = self.tokenizer.decode(input_ids[0])
for pattern in self.patterns:: if re.search(pattern, decode).decode(input_ids[0])
if re.search(pattern, decoded_text, re.DOTALL):: if re.search(pattern, decoded_text, re.DOTALL).
return True
return False
stopping_criteria = StoppingCriteriaList([)
RegexStoppingCriteria(
tokenizer, [tool_call_criteria], [stopping_criteria
patterns=[tool_call_regex, end_regex]
)
])
#model.generate(... , stopping_criteria=stopping_criteria) # add stopping_criteria
  • API de pesquisa na Web::

    A API de pesquisa usada nessa prática é a Tavily API, que oferece uma certa quantidade de créditos gratuitos para facilitar a experimentação e a replicação. A Tavily API permite que os desenvolvedores integrem a funcionalidade de pesquisa na Web em seus aplicativos por meio de chamadas simples de API.

Código de Prática

Para obter o código de prática detalhado, consulte o link a seguir:

Capítulo de replicação do DeepSearch: uma primeira olhada na função ToolCall do QwQ-32B, com o Agentic RAG como exemplo.ipynb

Casos de teste

Problemas de testeDescrição: Por favor, forneça mais informações sobre o modelo QwQ-32B lançado recentemente em código aberto pela Ali.

Gerar resultados(consulte o bloco de notas para ver os resultados completos)

[Reimpressão] Capacidade de chamada de ferramentas do QwQ-32B e aplicativo RAG autêntico-3

[Reimpressão] Capacidade de chamada de ferramenta do QwQ-32B e aplicativo RAG autêntico-4

[Reimpressão] Capacidade de chamada de ferramenta do QwQ-32B e aplicativo RAG autêntico-5

Como pode ser visto nos resultados, o modelo de inferência realiza de forma autônoma a compreensão da intenção (determinando se uma pesquisa em rede é necessária) e a geração de palavras-chave de pesquisa (reescrita ou divisão de perguntas). O modelo também leva em conta possíveis cenários de pesquisa em várias rodadas. Após acionar um pesquisa na web Em seguida, o modelo gera um relatório final com base nos resultados da pesquisa.

Nesse caso, o modelo concluiu apenas uma chamada à interface de pesquisa. Isso pode ser devido à simplicidade do problema do caso ou ao fato de que o modelo básico ainda não tem capacidade suficiente para acionar pesquisas complexas em várias rodadas. Isso também mostra que, para utilizar totalmente o potencial do modelo como um corpo inteligente, ainda é necessário consultar o Search-R1 para pós-treinamento e ajuste fino direcionado.

No entanto, com base nos recursos já demonstrados pelo modelo QwQ-32B, a combinação de dados de retreinamento sintéticos (ou classificados manualmente) bem projetados e o treinamento de reforço ou SFT em cenários segmentados, além de mascarar a saída retornada pela resposta da interface da ferramenta token Espera-se que essa rota de retreinamento se torne a principal corrente de desenvolvimento e implantação de inteligência no futuro, já que as perdas correspondentes podem ser pré-consideradas para uma variedade de ações e casos-limite, tornando a implantação mais simples e eliminando a necessidade de orquestração humana do fluxo de trabalho de design. O retreinamento permite a pré-consideração de várias ações e casos-limite, facilitando a implementação e eliminando a necessidade de fluxos de trabalho de design orquestrados por humanos. A seção 3.1 do documento Search-R1 descreve em detalhes o "Loss Masking for Retrieved Tokens" Tecnologia. Por meio do uso do PPO e do GRPO em que os tokens recuperados são mascarados por perdas, o Search-R1 otimiza o LLM para gerar tokens, aumentando a capacidade do modelo de interagir com mecanismos de pesquisa e realizar inferências.

Além disso, o Search-R1 oferece suporte à recuperação e à inferência em várias rodadas (Seção 3.2 "Geração de texto com chamada de mecanismo de pesquisa multi-turnos intercalados" na tese) por meio do  responder cantando  e coloca o conteúdo recuperado no  responder cantando  entre. A saída da resposta final, por outro lado, usa o  responder cantando .

Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " [Reimpressão] Capacidade de chamada de ferramenta do QwQ-32B e aplicativo RAG autêntico

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil