DeepResearch深度搜索實現方法調研

DeepResearch深度搜索實現方法調研

Deep Research 有三個核心能力

  • 能力一:自主規劃解決問題的搜索路徑(生成子問題,queries,檢索)
  • 能力二:在探索路徑時動態調整搜索方向(劉亦菲最好的一部電影是什么?如何定義好?已有信息是否足夠?)
  • 能力三:對多源的信息進行驗證,整合(一個文檔說 37 歲,另一個文檔說 27 歲,怎么分辨?)

非強化學習方法:

《Search-o1: Agentic Search-Enhanced Large Reasoning Models》(能力二)

作者:人大+清華

https://github.com/sunnynexus/Search-o1 (Star 800)

  • 當遇到知識不確定的情況時,模型會自動生成搜索查詢,格式為 <|begin_search_query|>搜索詞<|end_search_query|>
  • 系統檢測到這一標記后,暫停模型推理,執行網絡搜索
  • 搜索結果被包裝在 <|begin_search_result|>檢索到的內容<|end_search_result|> 標記中返回給模型
  • 如果檢索到的結果特別長,就用大語言模型對其進行精煉,再放進推理鏈條中。

優勢:

檢索觸發機制:傳統 RAG 是靜態的、預先定義的;Search-o1 是動態的、由模型主動觸發的,可以在一定程度上實現能力二。

Deep-Searcher

https://github.com/zilliztech/deep-searcher

基本流程:

  1. 將原始問題進行拆解,分成多個子問題。
  2. 子問題分別進行檢索,得到對應的答案。
  3. 子問題和答案進行整合,由模型生成下一輪子問題。
  4. 達到指定檢索輪數后,匯總最終的答案。

OpenDeepResearcher

https://github.com/mshumer/OpenDeepResearcher

  1. 用戶輸入一個研究主題后,LLM會生成最多四個不同的搜索關鍵詞。
  2. 每個搜索關鍵詞都通過調用SERPAPI接口進行搜索。
  3. 將所有獲取到的鏈接進行聚合和去重處理。
  4. 對每個唯一鏈接調用JINA網頁內容解析接口,利用LLM評估網頁的有用性,如果頁面被判定為有效,則提取相關文本內容。
  5. 匯總所有信息,判斷是否需要進一步生成新的搜索關鍵詞。如果需要,則生成新的查詢;否則,循環終止。
  6. 將所有收集到的上下文信息整合后,由LLM生成一份全面、詳盡的報告。

deep-research

https://github.com/dzhng/deep-research

  1. 獲取用戶的查詢和研究參數(廣度與深度)并生成SERP查詢。
  2. 處理搜索結果,提取關鍵內容用于生成后續研究方向。
  3. 如果深度 > 0,則根據新的研究方向繼續探索。
  4. 將所有上下文匯總成一份全面的Markdown報告。

強化學習方法:

《DeepRetrieval: Hacking Real Search Engines and Retrievers with Large Language Models via Reinforcement Learning》(能力一)

作者:伊利諾伊大學香檳分校+高麗大學

https://github.com/pat-jj/DeepRetrieval (Star 360)

query改寫已被證實是檢索流程中的關鍵步驟。當用戶提交問題時,大型語言模型(LLM)通常會對其進行重新表述(稱為增強查詢),然后再執行檢索。DeepRetrieval采用創新方法,利用強化學習(RL)而非傳統的監督式微調(SFT)來優化這一關鍵步驟。

DeepRetrieval的突出之處在于它能夠通過"試錯"方式直接學習,使用檢索指標作為獎勵,無需昂貴的監督數據。這種方法使模型能夠針對實際性能指標進行優化,而不僅僅是模仿人工編寫的查詢。

訓練策略使用 PPO。

數據集:PubMed、ClinicalTrials.gov…公開數據集

《Search-R1: Training LLMs to Reason and Leverage Search Engines with Reinforcement Learning》(能力一、二、三)

伊利諾伊大學香檳分校

https://github.com/PeterGriffinJin/Search-R1

  • 將搜索引擎建模為環境的一部分 模型可以在生成中插入 <search>query</search> 指令,系統則響應 <information>results</information>,最終答案用 <answer> 標簽輸出,推理過程包裹在 <think> 中。
  • 支持多輪思考-檢索循環 模型可以識別信息缺口并主動發起下一輪搜索,而不是一次性拼接上下文。
  • 基于強化學習策略學習 訓練采用 PPO (Proximal Policy Optimization)或 GRPO (Group Relative Policy Optimization)算法,獎勵信號基于最終結果(如 Exact Match)而非過程監督。
  • 避免優化干擾的技術細節 引入 Retrieved Token Loss Masking,對搜索返回內容不反向傳播,從而保持訓練穩定。

從下圖來看,它用 7B 模型就能超越 Search-o1 和 680B 參數的 R1?這種“小模型大能力”的背后,正是 RL 訓練出的搜索策略彌補了知識覆蓋和參數規模的不足。

  • 數據集:在七個問答數據集上進行評估,包括一般問答(NQ、TriviaQA、PopQA)和多跳問答(HotpotQA、2WikiMultiHopQA、Musique、Bamboogle)。
  • 基線比較:與多種方法進行比較,包括無檢索的推理、檢索增強生成(RAG)、工具調用方法(如IRCoT和Search-o1)、監督微調(SFT)和基于RL的微調(R1)。
  • 模型和檢索設置:使用Qwen-2.5-3B和Qwen-2.5-7B模型,以2018年維基百科轉儲作為知識源,E5作為檢索器,每次檢索返回3個段落。

獎勵函數:

總結

  • 非強化學習方法從技術上來看技術路線都是一樣的,即使用推理模型分析,結合聯網搜索以及ReAct機制,根據用戶輸入擴展問題,再對每個問題進行多次聯網查找,推理、再查找的過程,最終輸出一個綜合性的答案。這套方法也比較容易復現。
  • 使用強化學習對整體進行進行端到端訓練固然可以提升效果,用小模型代替大模型。但缺點也很明顯,依賴于高質量的數據,會限制其應用范圍,比如無法支持多種模型。
  • 使用強化學習對個別流程進行針對性訓練的是比較有可行性的,比如針對query生成專門訓練。
  • 當前的方法主要討論的都是能力一、二,對能力三較少有針對性優化。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/80372.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/80372.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/80372.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

跟我學C++中級篇——STL容器的查找對比

一、C標準庫的查找 在C的STL中&#xff0c;對容器或相關序列的查找中&#xff0c;有兩種方式&#xff0c;一種是std::find&#xff0c;另外一種是std::search。而且在它們的基礎上&#xff0c;還衍生出std::find_if、std::find_if_not、std::find_end等和std::search_n、range…

SpringAI框架中的RAG知識庫檢索與增強生成模型詳解

SpringAI框架中的RAG知識庫檢索與增強生成模型詳解 一、RAG簡介 RAG&#xff08;Retrieval-Augmented Generation&#xff09;可以通過檢索知識庫&#xff0c;克服大模型訓練完成后參數凍結的局限性&#xff0c;攜帶知識讓大模型根據知識進行回答。 二、SpringAI框架支持的R…

Delphi12安裝Android開發的配置

Delphi12如果要開發android和Linux系統,需要在安裝的時候安裝這兩個選項,否則,就找不到開發平臺。 1、Adroid開發三劍客必須是指: JDK,SDK,NDK三洋,其中JDK是必須要安裝的,最好使用Installer安裝,否則自解壓的免安裝版在安裝過程中會退出。 2、開始安裝Delphi12. …

OpenHarmony launcher開發——刪除dock欄

開發環境 OpenHarmony 5.0.0 代碼修改 效果

FreeRTOS如何實現100%的硬實時性?

實時系統在嵌入式應用中至關重要&#xff0c;其核心在于確保任務在指定時間內完成。根據截止時間滿足的嚴格程度&#xff0c;實時系統分為硬實時和軟實時。硬實時系統要求任務100%滿足截止時間&#xff0c;否則可能導致災難性后果&#xff0c;例如汽車安全系統或醫療設備。軟實…

微軟推動智能體協同運作:支持 A2A、MCP 協議

今日凌晨&#xff0c;微軟宣布 Azure AI Foundry 和 Microsoft Copilot Studio 兩大開發平臺支持最新 Agent 開發協議 A2A&#xff0c;并與谷歌合作開發擴大該協議&#xff0c;這一舉措對智能體賽道意義重大。 現狀與變革意義 當前智能體領域類似戰國時代&#xff0c;各家技術…

從“山谷論壇”看AI七劍下天山

始于2023年的美國山谷論壇(Hill and Valley Forum)峰會,以“國會山與硅谷”命名,寓意連接科技界與國家安全戰略。以人工智能為代表的高科技,在逆全球化時代已成為大國的致勝高點。 論壇創辦者Jacob Helberg,現在是華府的副國務卿,具體負責經濟、環境和能源事務。早先曾任…

Docker封裝深度學習模型

1.安裝Docker Desktop 從官網下載DockerDesktop&#xff0c;安裝。&#xff08;默認安裝位置在C盤&#xff0c;可進行修改&#xff09; "D:\Program Files (x86)\Docker\Docker Desktop Installer.exe" install --installation-dir"D:\Program Files (x86)\Do…

Linux 內核中的 security_sk_free:安全模塊與 Socket 釋放機制解析

引言 在 Linux 內核中,網絡通信和進程間交互(IPC)的核心數據結構之一是 struct sock(即 socket)。其生命周期管理涉及復雜的資源分配與釋放邏輯。本文聚焦于 security_sk_free 這一函數,探討其作用、調用場景以及與安全模塊的交互機制,并解答一個常見疑問:在單機間 TC…

工業與協議融合篇:如何將多個協議集成進一個系統?

?? 本文為《嵌入式通信協議全解析》第六篇,深入探討如何在工業或物聯網系統中同時集成 BLE、CAN、LoRa、MQTT、RS485 等多種通信協議,實現一個高效、可控、穩定運行的嵌入式通信架構。 ?? 一、為什么需要多協議融合? 在真實產品中,單一通信協議往往無法滿足所有業務需…

手撕紅黑樹的 左旋 與 右旋

一、為什么需要旋轉&#xff1f; 在紅黑樹中&#xff0c;插入或刪除節點可能會破壞其五條性質&#xff0c;比如高度不平衡或連續紅節點。 為了恢復紅黑性質&#xff0c;我們采用局部旋轉來“調整樹形結構”&#xff0c;保持平衡。 二、旋轉本質是“局部變形” 左旋和右旋不會…

不用官方EDA怎么開發FPGA?

目前FPGA的開發和官方的EDA工具是高度綁定的&#xff0c;用哪家的芯片只能用其配套的EDA工具進行開發&#xff08;綜合可選工具&#xff0c;布局布線沒有可選的工具&#xff09;&#xff0c;那么有沒有其他的開發方式呢&#xff1f;今天就介紹一個使用開源工具鏈來開發FPGA的方…

QuecPython+Aws:快速連接亞馬遜 IoT 平臺

提供一個可接入亞馬遜 Iot 平臺的客戶端&#xff0c;用于管理亞馬遜 MQTT 連接和影子設備。 初始化客戶端 Aws class Aws(client_id,server,port,keep_alive,ssl,ssl_params)參數&#xff1a; client_id (str) - 客戶端唯一標識。server (str) - 亞馬遜 Iot 平臺服務器地址…

44.輻射發射整改簡易摸底測試方法

輻射發射整改簡易摸底測試方法 1. 正式摸底預測試2. 簡易方法預測試3. 分析頻譜4. 探查傳播路徑5. 施加措施6. 與簡易方法預測試效果對比 1. 正式摸底預測試 去正式實驗室做一次預測試&#xff0c;取得頻譜圖&#xff1b;確定超標頻點和超標量&#xff08;備用&#xff09;。 …

OpenCV中適用華為昇騰(Ascend)后端的逐元素操作(Per-element Operations)

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 算法描述 針對華為昇騰&#xff08;Ascend&#xff09;后端的逐元素操作&#xff08;Per-element Operations&#xff09;&#xff0c;這些操作通常用于圖…

Web前端VSCode如何解決打開html頁面中文亂碼的問題(方法2)

Web前端—VSCode如何解決打開html頁面中文亂碼的問題&#xff08;方法2&#xff09; 1.打開VScode后&#xff0c;依次點擊 文件 >> 首選項 >> 設置 2.打開設置后&#xff0c;依次點擊 文本編輯器 >> 文件&#xff08;或在搜索框直接搜索“files.autoGuessEnc…

【UltralyticsYolo11圖像分類完整項目-04】代碼重構

經過上一篇博客,我們實現 了一個cpp文件,可以預測單個圖像和多個圖像。為了更加簡化代碼,方便部署,我們需要對代碼進行重構:將功能模塊化到頭文件中。 完整代碼下載鏈接:點擊這里 重構的優點 模塊化設計:將不同功能分離到不同的類中,每個類有明確的職責更好的可維護性:…

Debezium RelationalSnapshotChangeEventSource詳解

Debezium RelationalSnapshotChangeEventSource詳解 1. 類的作用與功能 1.1 核心功能 RelationalSnapshotChangeEventSource是Debezium中用于關系型數據庫快照的核心抽象類,主要負責: 數據快照:對數據庫表進行全量數據快照模式捕獲:捕獲數據庫表結構事務管理:確保快照過…

DeepInjectSQL - 基于 AI 生成對抗網絡(GAN)的下一代 SQL 注入自動化漏洞獵手

概述 SQLMap本身是一個成熟的自動化SQL注入工具&#xff0c;可以與GAN結合起來&#xff0c;讓GAN生成的Payload替代傳統的手工或規則生成的測試用例&#xff0c;從而提高檢測的覆蓋率和效率。 分析可行性 GAN通常用于生成類似真實數據分布的數據&#xff0c;例如圖片、文本等。…

Python 爬蟲之 XPath 元素定位

XPath 簡介 XPath (XML Path Language) 最初是為了在 XML 文檔中進行導航而設計的語言&#xff0c;后來被廣泛應用于 HTML 文檔的解析。與 BeautifulSoup 相比&#xff0c;XPath 有以下特點&#xff1a; 語法強大&#xff1a;可以通過簡潔的表達式精確定位元素跨平臺性&#…