返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

深度网页探索 自主写作:WebThinker让大模型像人类一样完成研究报告

[复制链接]
链载Ai 显示全部楼层 发表于 昨天 20:57 |阅读模式 打印 上一主题 下一主题


随着人工智能技术的不断发展,大型语言模型在处理复杂任务时面临着诸多挑战,例如依赖静态知识库、难以实时获取最新信息等。为了解决这些问题,中国人民大学自然语言处理实验室(RUC-NLPIR)推出了开源项目WebThinker。WebThinker通过赋予大型推理模型自主搜索、深度探索网页和撰写研究报告的能力,为复杂问题解决与科研写作提供了新的思路和方法。本文将详细介绍WebThinker的项目背景、核心功能、技术创新、应用场景以及快速使用方法,帮助读者更好地了解和应用这一前沿技术。


一、项目概述


WebThinker是一个开源的深度研究框架,由中国人民大学自然语言处理实验室(RUC-NLPIR)推出。它使大型推理模型(LRM)能够在思考过程中自主搜索、深入探索网页和起草研究报告。与传统的检索增强生成(RAG)模型不同,WebThinker面向复杂问题解决与科研写作,赋予了模型自主执行网络搜索、深度网页探索、内容整合与科研报告撰写的端到端能力,旨在解决传统模型依赖静态知识库、难以处理复杂知识密集型任务的局限性。


二、核心功能


(一)自主思考-搜索-写作机制


WebThinker的核心在于其自主思考-搜索-写作机制(Autonomous Think-Search-and-Draft)。该机制使模型在撰写研究报告时具备以下能力:


1.章节写作:根据收集到的知识,系统可独立生成某一节的内容。


2.内容审查与编辑:允许用户随时审查当前写作内容;系统可自动重写不准确或结构不佳的部分。


3.多轮修订能力:模型会反复搜索、修订,不断优化已有内容,实现内容持续进化。


(二)自我提升训练机制


WebThinker开发了基于强化学习(RL)的训练策略,迭代合成工具使用偏好数据,并应用在线DPO培训来增强LRM的工具利用能力。这种自我提升训练机制(Self-Improvement)使模型能够回顾过往的推理-搜索路径,识别哪些路径最有效,并提炼“成功的推理轨迹”用于进一步学习,针对写作任务优化写作逻辑和节奏。


三、技术创新


(一)自主搜索与推理


WebThinker突破了传统模型仅依赖静态知识库的限制,使模型能够在推理过程中自主调用网络搜索工具。通过这种方式,模型可以实时获取最新的外部知识,从而更好地处理复杂问题和知识密集型任务。


(二)深度网页探索


WebThinker不仅支持简单的网页搜索,还能进行深度网页探索。这意味着模型可以像人类一样浏览网页,获取更丰富的信息,而不仅仅是依赖于搜索结果的摘要。


(三)多轮交互与优化


WebThinker的多轮交互能力使其能够不断优化搜索和写作过程。模型会根据用户的反馈和自身的评估,反复搜索、修订内容,从而生成更高质量的研究报告。


四、应用场景


(一)科研写作


WebThinker在科研写作领域具有巨大的应用潜力。它可以帮助研究人员快速收集和整理相关资料,生成高质量的研究报告,从而提高科研效率。


(二)复杂问题解决


WebThinker能够处理复杂的知识密集型任务。例如,在医学研究、法律分析等领域,模型可以通过自主搜索和推理,为用户提供详细的解决方案。


(三)教育与培训


WebThinker可以作为教育工具,帮助学生学习如何进行科学研究和写作。通过观察模型的搜索和写作过程,学生可以更好地理解科研方法和写作技巧。


五、快速使用


(一)克隆代码


打开终端或命令提示符,运行以下命令克隆WebThinker的代码仓库:

gitclonehttps://github.com/RUC-NLPIR/WebThinker.gitcdWebThinker

(二)安装依赖


创建一个新的Conda环境并安装所需的Python依赖库:

condacreate-nwebthinkerpython=3.9condaactivatewebthinkerpipinstall-rrequirements.txt

(三)准备模型


确保你的推理模型和辅助模型已经通过vLLM服务。在官方的实验中,使用QwQ-32B作为推理模型,Qwen-72B-Instruct作为辅助模型。你也可以选择其他经过指令微调的模型作为辅助模型。


(四)运行示例


1.问题解决模式

如果你只想提出一个问题,运行以下命令:

pythonscripts/run_web_thinker.py\--single_question"WhatisOpenAIDeepResearch?"\--bing_subscription_key"YOUR_BING_SUBSCRIPTION_KEY"\--api_base_url"YOUR_API_BASE_URL"\--model_name"QwQ-32B"\--aux_api_base_url"YOUR_AUX_API_BASE_URL"\--aux_model_name"Qwen2.5-32B-Instruct"\--tokenizer_path"ATH_TO_YOUR_TOKENIZER"\--aux_tokenizer_path"ATH_TO_YOUR_AUX_TOKENIZER"

如果你想在基准测试上运行结果,运行以下命令:

pythonscripts/run_web_thinker.py\--dataset_namegaia\--splitdev\--concurrent_limit32\--max_search_limit15\--bing_subscription_key"YOUR_BING_SUBSCRIPTION_KEY"\--api_base_url"YOUR_API_BASE_URL"\--model_name"QwQ-32B"\--aux_api_base_url"YOUR_AUX_API_BASE_URL"\--aux_model_name"Qwen2.5-32B-Instruct"\--tokenizer_path"ATH_TO_YOUR_TOKENIZER"\--aux_tokenizer_path"ATH_TO_YOUR_AUX_TOKENIZER"

2.报告生成模式

如果你想提出一个问题并生成报告,运行以下命令:

pythonscripts/run_web_thinker_report.py\--single_question"WhatarethemodelsofOpenAIandwhatarethedifferences?"\--bing_subscription_key"YOUR_BING_SUBSCRIPTION_KEY"\--api_base_url"YOUR_API_BASE_URL"\--model_name"QwQ-32B"\--aux_api_base_url"YOUR_AUX_API_BASE_URL"\--aux_model_name"Qwen2.5-32B-Instruct"\--tokenizer_path"ATH_TO_YOUR_TOKENIZER"\--aux_tokenizer_path"ATH_TO_YOUR_AUX_TOKENIZER"

如果你想在基准测试上运行结果,运行以下命令:

pythonscripts/run_web_thinker_report.py\--dataset_nameglaive\--splittest\--concurrent_limit32\--bing_subscription_key"YOUR_BING_SUBSCRIPTION_KEY"\--api_base_url"YOUR_API_BASE_URL"\--model_name"QwQ-32B"\--aux_api_base_url"YOUR_AUX_API_BASE_URL"\--aux_model_name"Qwen2.5-32B-Instruct"\--tokenizer_path"ATH_TO_YOUR_TOKENIZER"\--aux_tokenizer_path"ATH_TO_YOUR_AUX_TOKENIZER"

3.运行演示

你可以运行我们创建的演示,运行以下命令:

cddemostreamlitrundemo.py


在运行之前,需要在`demo/settings.py`中配置相关参数。


4.参数说明

以下是运行命令中常用参数的说明:


`--dataset_name`:要使用的数据集名称(例如`gaia`、`glaive`)。


`--split`:数据集的分割部分(例如`dev`、`test`)。


`--single_question`:在单问题模式下要提出的问题。


`--concurrent_limit`:最大并发请求数。


`--max_search_limit`:每次推理会话的最大搜索查询次数。


`--bing_subscription_key`:你的Bing Search API订阅密钥。


`--api_base_url`:主模型API的基地址。


`--model_name`:要使用的主模型名称。


`--aux_api_base_url`:辅助模型API的基地址。


`--aux_model_name`:要使用的辅助模型名称。


`--tokenizer_path`:主模型分词器的路径。


`--aux_tokenizer_path`:辅助模型分词器的路径。


六、结语


WebThinker作为一款开源的深度研究框架,为大型推理模型的自主科研提供了新的可能性。通过自主搜索、深度网页探索和自我提升训练机制,WebThinker能够有效解决传统模型的局限性,为复杂问题解决和科研写作提供强大的支持。希望本文的介绍能够帮助读者更好地了解WebThinker,并将其应用于实际项目中。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ