【Ragflow】10. 助理配置參數詳細解析/模型響應加速方法

概述

Ragflow的助理配置中,有很多參數,盡管官方文檔給出了一定程度的解釋,但不夠詳細。

本文將對各項參數進行更詳細的解釋說明,并進一步挖掘某些參數中隱含的潛在陷阱。

助理設置

空回復

含義:輸入的問題若未能在知識庫中找到匹配的chunk塊,就默認輸出設置的內容,默認不啟用。

這個設置大多數場景都用不到,因為RAG本身就是通過知識庫對原本模型回答進行“增強”,除非是要求精確的查詢業務,才可能需要設置該值。

顯示引文

含義:開啟后,會在模型的回答中增加回答的引用提示,默認開啟。

此功能還是比較實用的,但存在一個小坑,開啟之后,在模型問答時,會在system prompt中添加默認提示,內容在rag\prompts.pycitation_prompt

# Citation requirements:
- Inserts CITATIONS in format '##i$$ ##j$$' where i,j are the ID of the content you are citing and encapsulated with '##' and '$$'.
- Inserts the CITATION symbols at the end of a sentence, AND NO MORE than 4 citations.
- DO NOT insert CITATION in the answer if the content is not from retrieved chunks.--- Example START ---
<SYSTEM>: Here is the knowledge base:Document: Elon Musk Breaks Silence on Crypto, Warns Against Dogecoin ...
URL: https://blockworks.co/news/elon-musk-crypto-dogecoin
ID: 0
The Tesla co-founder advised against going all-in on dogecoin, but Elon Musk said it’s still his favorite crypto...Document: Elon Musk's Dogecoin tweet sparks social media frenzy
ID: 1
Musk said he is 'willing to serve' D.O.G.E. – shorthand for Dogecoin.Document: Causal effect of Elon Musk tweets on Dogecoin price
ID: 2
If you think of Dogecoin — the cryptocurrency based on a meme — you can’t help but also think of Elon Musk...Document: Elon Musk's Tweet Ignites Dogecoin's Future In Public Services
ID: 3
The market is heating up after Elon Musk's announcement about Dogecoin. Is this a new era for crypto?...The above is the knowledge base.<USER>: What's the Elon's view on dogecoin?<ASSISTANT>: Musk has consistently expressed his fondness for Dogecoin, often citing its humor and the inclusion of dogs in its branding. He has referred to it as his favorite cryptocurrency ##0$$ ##1$$.
Recently, Musk has hinted at potential future roles for Dogecoin. His tweets have sparked speculation about Dogecoin's potential integration into public services ##3$$.
Overall, while Musk enjoys Dogecoin and often promotes it, he also warns against over-investing in it, reflecting both his personal amusement and caution regarding its speculative nature.--- Example END ---

由于ragflow原生語言是英文,因此對于中文問題,直接加英文作為系統提示,混雜輸入或多或少會影響模型輸出性能,因此對于中文用戶,建議修改為中文的默認提示:

# 引用要求:
- 以格式 '##i$$ ##j$$'插入引用,其中 i, j 是所引用內容的 ID,并用 '##''$$' 包裹。
- 在句子末尾插入引用,每個句子最多 4 個引用。
- 如果答案內容不來自檢索到的文本塊,則不要插入引用。--- 示例 ---
<SYSTEM>: 以下是知識庫:Document: 埃隆·馬斯克打破沉默談加密貨幣,警告不要全倉狗狗幣  ...
URL: https://blockworks.co/news/elon-musk-crypto-dogecoin
ID: 0
特斯拉聯合創始人建議不要全倉投入 Dogecoin,但埃隆·馬斯克表示它仍然是他最喜歡的加密貨幣...Document: 埃隆·馬斯克關于狗狗幣的推文引發社交媒體狂熱
ID: 1
馬斯克表示他“愿意服務”D.O.G.E.——即 Dogecoin 的縮寫。Document: 埃隆·馬斯克推文對狗狗幣價格的因果影響
ID: 2
如果你想到 Dogecoin——這個基于表情包的加密貨幣,你就無法不想到埃隆·馬斯克...Document: 埃隆·馬斯克推文點燃狗狗幣在公共服務領域的未來前景
ID: 3
在埃隆·馬斯克關于 Dogecoin 的公告后,市場正在升溫。這是否意味著加密貨幣的新紀元?...以上是知識庫。<USER>: 埃隆·馬斯克對 Dogecoin 的看法是什么?<ASSISTANT>: 馬斯克一貫表達了對 Dogecoin 的喜愛,常常提及其幽默感和品牌中狗的元素。他曾表示這是他最喜歡的加密貨幣 ##0 ##1。
最近,馬斯克暗示 Dogecoin 未來可能會有新的應用場景。他的推文引發了關于 Dogecoin 可能被整合到公共服務中的猜測 ##3$$。
總體而言,雖然馬斯克喜歡 Dogecoin 并經常推廣它,但他也警告不要過度投資,反映了他對其投機性質的既喜愛又謹慎的態度。--- 示例結束 ---

關鍵詞分析

含義:開啟后,會在模型的回答中增加回答的引用提示,默認關閉。

開啟后,對于用戶輸入的問題會調用rag\prompts.pykeyword_extraction進行額外關鍵詞提取,關鍵詞提取會額外使用一輪模型問答,系統默認prompt:

Role: You're a text analyzer. 
Task: extract the most important keywords/phrases of a given piece of text content.
Requirements: - Summarize the text content, and give top {topn} important keywords/phrases.- The keywords MUST be in language of the given piece of text content.- The keywords are delimited by ENGLISH COMMA.- Keywords ONLY in output.### Text Content 
{content}

同理,對于中文用戶,可以設定為中文提示:

角色:文本分析器
任務:提取給定文本內容中最重要的關鍵詞/短語
要求:
- 總結文本內容,給出前{topn}個重要關鍵詞/短語
- 關鍵詞必須使用原文語言
- 關鍵詞之間用英文逗號分隔
- 僅輸出關鍵詞### 文本內容
{content}

提取完關鍵詞后,直接加在問題后面,相當于在prompt中對問題進行顯性強化,這樣方便在進行知識檢索中進行關鍵詞匹配。

這個功能比較看重實際場景,比如,對于數據精確度較高的業務,建議開啟,這樣更容易匹配到準確信息。對于普通問答業務,不建議開啟,因為會減慢模型響應速度。

文本轉語音

含義:開啟后,需要在系統模型設置中配置TTS模型,模型回答后,可點擊播放聲音按鈕,直接聽語音,默認關閉。

很雞肋的功能,開啟后無疑會顯著增加響應時間,絕大多數場景中用不到語音。

Tavily API Key

含義:用于將問題通過 Tavily 提供的外部資料庫進行進一步檢索,默認關閉。

這個功能不會將本地知識庫信息泄露到外部,而是在查完本地之后,再查一遍外部公網上的資料。個人認為沒有開啟的必要,因為需要網上的資料,直接用現成公開模型平臺的聯網搜索就可以了。

提示引擎

相似度閾值

含義:如果查詢和塊之間的相似度小于此閾值,則該塊將被過濾掉,默認值0.2。

輸入問題時,系統在查詢時會進行兩個操作,一方面提取關鍵詞,另一方面通過embedding模型變成詞向量,分別計算關鍵詞相似度和向量余弦相似度,最終相似度通過兩者加權得到,最終相似度如果超過此閾值,表明檢索成功。如果經常檢索不出內容,可以適當調低該值。

看源碼時,還發現一個小細節,在進行關鍵詞提取時,系統還會進行同義詞查詢,默認字典路徑為rag\res\synonym.json

關鍵字相似度權重

含義:在混合檢索中,賦予關鍵字相似度的權重,默認值為0.7,向量余弦相似度權重為1-0.7=0.3。

如果業務是偏向精確搜索,可調大該值,如果偏模糊搜索,可適當降低該值。

Top N

含義:輸入到 LLM 的最大塊數。換句話說,即使檢索到更多塊,也只會提供前 N 個塊作為輸入。

多輪對話優化

含義:利用多輪對話中的現有上下文來增強用戶查詢,默認啟用。

非常雞肋的功能,前文分析過,開啟該功能后,在進行2輪以上對話時,會額外進行一輪大模型問答來優化第二次及以后提問的prompt,影響模型響應速率,建議關閉。

使用知識圖譜

含義:是否在檢索多跳問答時使用指定知識庫中的知識圖譜,默認關閉。

知識圖譜會極大增長檢索時間,除非業務特殊要求,否則不建議使用。

推理

含義:通過類似Deepseek-R1/OpenAI o1的推理過程來生成答案,開啟后聊天模型在回答問題時,遇到未知話題時會自主推理,生成答案。

如果用DeepSeek-R1系列模型,本身就是推理模型,不需要開啟。

Rerank模型

含義:使用重新排序模型,需要在系統模型設置中進行配置,作用是對檢索內容進行重新排序。如果開啟,混合相似度計算會使用關鍵詞相似度和重排器評分,重排器評分權重為1-關鍵字相似度權重

個人覺得用Rerank作用不大,重排序的出發點是用來解決embedding固有的一些局限性問題,比如,"查找2025年4月3日的資料"容易檢索到”2024年4月3日的資料“,因為它倆就一字之差,在向量空間中可能是很接近的。ragflow已經采用了關鍵詞加權檢索來盡可能避免這個問題,再加一個重排序,有點過于保守,反而還會降低響應速度,因此不建議配置。

變量

含義:系統提示中要使用的變量,{knowledge}為特殊變量,用來將檢索的知識添加到系統prompt中。

有點雞肋的功能,如果需要修改系統prompt,直接改就行了,這里設置成變量形式,可能是為了后續拓展考慮,現階段作用不大,保持原樣即可。

模型設置

模型設置這幾個參數是LLM的固有屬性,系統并不會因此采取特殊策略。

溫度

含義:控制生成文本的隨機性和創造性,技術原理是通過softmax函數調整token概率分布的平滑程度。

低溫度 (如0.1-0.5):

  • 輸出更確定、保守
  • 傾向于高頻詞,適合事實性回答
  • 示例:客服機器人回答"如何重置密碼?"

高溫度 (如0.7-1.0):

  • 輸出更隨機、有創意
  • 可能生成非常用詞,適合詩歌/故事
  • 示例:寫科幻小說開頭時使用

Top P

含義:從概率最高的詞匯中動態劃出一個范圍,只從這個范圍內隨機選擇下一個詞。

概念比較抽象,舉個例子解釋:

問題:續寫句子 “The scientist discovered…”
模型預測的下一個詞概率可能如下:

  • “a” (0.4)
  • “the” (0.3)
  • “that” (0.15)
  • “an” (0.1)
  • “quantum” (0.05)
  • 如果 p=0.8:候選池 = {“a”, “the”, “that”}(累計概率0.4+0.3+0.15=0.85)
    可能生成:“The scientist discovered the…”
  • 如果 p=0.95:候選池 = {“a”, “the”, “that”, “an”, “quantum”}可能生成:“The scientist discovered quantum…”(更有創意但風險更高)

通常,該值和溫度聯合使用,用來控制輸出保守或激進:

保守輸出(如問答):

  • p=0.5~0.8(避免冷門詞,保持準確性)

創意輸出(如故事):

  • p=0.9~1.0(允許更多可能性)

存在處罰

含義:通過懲罰對話中已經出現的單詞來抑制重復單詞的出現。

比較容易理解,模型輸出過的token會被降權,防止模型在同一個話題來回打轉。

頻率懲罰

含義:與存在懲罰類似,抑制模型輸出相同的內容。

存在處罰是出現過就懲罰一下,通常是固定值;頻率懲罰是出現頻率越高,懲罰強度越大。

對于嚴謹的問答場景,這兩個值就稍微調大;創意寫作場景,這兩個值就稍微調小。

如何加速模型聊天響應

我上一篇文章略微提到過加速模型響應的思路,在官方文檔中,也給出了以下幾點加速小貼士:

  • 在聊天配置對話框的提示引擎選項卡中,禁用多輪優化將減少從 LLM 獲取答案所需的時間

  • 在聊天配置對話框的提示引擎選項卡中,將重新排名模型字段留空將顯著減少檢索時間

  • 使用重新排序模型時,請確保您有 GPU 來加速;否則重新排序過程將非常緩慢

  • 在聊天配置對話框的助手設置選項卡中,禁用關鍵字分析將減少從 LLM 接收答復的時間

總結一下,加速方式總共就兩個方向,一個方向是關閉沒必要的選項,另一個方向是用GPU來加速embedding的過程。

官方給的docker啟動方式是運行這個文件:docker-compose.yml,如果使用其內置的embedding,可以通過這個文件docker-compose-gpu.yml進行啟動,這會運行docker調用存在gpu資源,一定程度上讓內置模型進行加速。

如果用的是ollama等其它框架外掛的embedding模型,可以忽略這一點。

修改默認值

其實官方也明確知道,多輪對話優化會影響模型輸出速度,然而它仍然將其保持了默認開啟的狀態,下面就通過修改初始值的方式,將其默認狀態設置為關閉。

助理相關的聊天配置文件在src\pages\chat\chat-configuration-modal這個文件夾下。

比如,想將多輪對話優化選項關閉,就修改prompt-engine.tsx的這部分內容:

<Form.Itemlabel={t('multiTurn')}tooltip={t('multiTurnTip')}name={['prompt_config', 'refine_multiturn']}initialValue={false}>

其它初始值的設置方式同理。

為什么模型不聽話?

之前有群友問到過這個問題,即設置了系統prompt,也在聊天時進行強調,為什么模型不按指定的規則來?在看官方文檔時,發現官方也特意強調了這個問題(看來問的人真的很多),這里順帶一提。

參考這個issue:
https://github.com/infiniflow/ragflow/issues/5627

這個用戶提了一個問題:為什么問答時,模型沒有正確檢索到本該檢索到的內容?

最后結論是,把DeepSeek-R1:14b切換成DeepSeek-R1:32b就解決了。

因此,想要模型正常理解意圖,至少采用32b以上的模型。

文檔解析的正確姿態

估計不少人都和我一樣,在向數據庫添加文件時,直接在知識庫界面點這里的上傳本地文件:

其實這樣操作會對文件管理產生問題,點到文件管理中,所有文件會被存放到.knowledgebase文件夾。

因此,正確上傳文件的姿態應該是先進入到文件管理界面,上傳文件,上傳完之后,選擇鏈接到知識庫

這樣,同一個文件夾是可以被多個知識庫共享的,這樣操作會更方便文件管理和知識庫的精細分類。

可參考的提示詞模板

看了系統內置的一些提示詞,不免對系統提示詞的設計再進行反思。

目前,新建助理時,默認的系統提示詞如下:

你是一個智能助手,請總結知識庫的內容來回答問題,請列舉知識庫中
的數據詳細回答。當所有知識庫內容都與問題無關時,你的回答必須包
括“知識庫中未找到您要的答案!”這句話。回答需要考慮聊天歷史。
以下是知識庫:
{knowledge}
以上是知識庫。

這樣寫比較通用,如果和實際業務結合,建議進行相應修改。

視頻[2]給出了一個可供參考的提示詞構建步驟:

  1. 指定角色:明確讓 AI 扮演的角色,例如情感專家、健身教練或知名人士。
  2. 描述問題:提供背景信息,包括現狀、目標和限制條件,例如年齡、體重、時間和資源。
  3. 提出請求:清楚地告知 AI 你需要的具體任務,如制定減肥計劃、分析分手原因或翻譯文章。
  4. 選擇格式:指定結果的呈現形式,如表格、郵件、合同等,并細化需求,如加粗重點。
  5. 設定語氣:說明期望的溝通風格,如正式、尊重、友愛等。
  6. 提供參考:附加具體的案例或樣例,以便 AI 更精準地理解和執行。

參考

1.官方文檔:
https://ragflow.io/docs/dev/start_chat

2.我用了3年的AI提示詞萬能公式,5分鐘解決70%提示詞問題~:
https://www.bilibili.com/video/BV1ib421E7Sy

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

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

相關文章

Mac Apple silicon如何指定運行amd64架構的ubuntu Docker?

如何指定運行amd64架構的ubuntu Docker 下面這個docker命令如何指定運行amd64架構的ubuntu Docker&#xff1f; docker run -it -v $(pwd):/workspace ubuntu:20.04 bash這個命令已經非常接近正確運行一個基于 amd64 架構的 Ubuntu 容器了&#xff0c;但如果你想明確指定運行…

ColPali:基于視覺語言模型的高效文檔檢索

摘要 文檔是視覺豐富的結構&#xff0c;不僅通過文本傳遞信息&#xff0c;還包括圖表、頁面布局、表格&#xff0c;甚至字體。然而&#xff0c;由于現代檢索系統主要依賴從文檔頁面中提取的文本信息來索引文檔&#xff08;通常是冗長且脆弱的流程&#xff09;&#xff0c;它們…

使用C++實現HTTP服務

天天開心&#xff01;&#xff01;&#xff01; 閱讀本篇文章之前&#xff0c;請先閱讀HTTP基礎知識 傳送門----> HTTP基礎知識 文章目錄 一、CWeb服務器&#xff08;核心代碼WebServer.cpp&#xff09;二、靜態文件結構三、編譯和運行四、訪問測試 一、CWeb服務器&#xff…

Reactive編程入門:Project Reactor 深度指南

文章目錄 4.2.1 創建 Flux 和 MonoFlux 基礎創建方式高級創建模式Mono 創建方式 4.2.2 訂閱與數據處理基礎訂閱模式數據處理操作符 4.2.3 核心操作符深度解析flatMap 操作符zip 操作符buffer 操作符 高級組合模式復雜流處理示例背壓處理策略 測試響應式流性能優化技巧 React 編…

【萬字總結】前端全方位性能優化指南(完結篇)——自適應優化系統、遺傳算法調參、Service Worker智能降級方案

前言 自適應進化宣言 當監控網絡精準定位病灶&#xff0c;真正的挑戰浮出水面&#xff1a;系統能否像生物般自主進化&#xff1f; 五維感知——通過設備傳感器實時捕獲環境指紋&#xff08;如地鐵隧道弱光環境自動切換省電渲染&#xff09; 基因調參——150個性能參數在遺傳算…

PQ以及有關索引的筆記Faiss: The Missing Manual

參考Faiss 索引結構總結&#xff1a; 為了加深記憶&#xff0c;介紹一下Inverted File Index&#xff08;IVF&#xff09;的名字由來&#xff1a; IVF索引的名字源自“倒排文件”&#xff08;Inverted File&#xff09;的概念。在傳統的信息檢索中&#xff0c;倒排文件是一種索…

win10徹底讓圖標不顯示在工具欄

關閉需要不顯示的軟件 打開 例此時我關閉了IDEA的顯示 如果說只是隱藏&#xff0c;鼠標拖動一個道理 例QQ 如果說全部顯示不隱藏

關稅核爆72小時!跨境矩陣防御戰緊急打響

一、T86崩塌&#xff1a;全球貿易鏈的至暗時刻 &#xff08;配圖&#xff1a;美國海關系統深夜彈出紅色警報&#xff09; 5月2日凌晨2:17&#xff0c;杭州某光伏企業的供應鏈系統突然發出刺耳警報——其價值1800萬美元的逆變器模塊被劃入34%關稅清單。這場代號"黑天鵝突…

藍橋杯Java B組省賽真題題型近6年統計分類

困難題 題號題型分值代碼量難度通過率內容2024-F解答1581困難0.12最短路問題 Dijkstra 期望2024-G解答20116困難0.19模擬 暴力 搜索 DFS 剪紙 枚舉2023-H解答2070困難0動態規劃2022-H解答20109困難0.032022-J解答25141困難0搜索2021-H解答2041困難0.18二分 思維 規律2021-I解答…

【網絡流 圖論建模 最大權閉合子圖】 [六省聯考 2017] 壽司餐廳

題目描述&#xff1a; P3749 [六省聯考 2017] 壽司餐廳 題目描述 Kiana 最近喜歡到一家非常美味的壽司餐廳用餐。 每天晚上&#xff0c;這家餐廳都會按順序提供 n n n 種壽司&#xff0c;第 i i i 種壽司有一個代號 a i a_i ai? 和美味度 d i , i d_{i, i} di,i?&…

前端面試題(三):axios有哪些常用的方法

Axios 是一個基于 Promise 的 HTTP 客戶端&#xff0c;用于瀏覽器和 Node.js 中發送 HTTP 請求。它提供了一些常用的方法來處理不同類型的請求。以下是 Axios 中常用的一些方法&#xff1a; 1. axios.get() 用于發送 GET 請求&#xff0c;從服務器獲取數據。 axios.get(/api/d…

python match case語法

學習路線&#xff1a;B站 普通的if判斷 def if_traffic_light(color):if color red:return Stopelif color yellow:return Slow downelif color green:return Goelse:return Invalid colorprint(if_traffic_light(red)) # Output: Stop print(if_traffic_light(yellow)) …

LLaMA-Factory大模型微調全流程指南

該文檔為LLaMA-Factory大模型微調提供了完整的技術指導&#xff0c;涵蓋了從環境搭建到模型訓練、推理和合并模型的全流程&#xff0c;適用于需要進行大模型預訓練和微調的技術人員。 一、docker 容器服務 請參考如下資料制作 docker 容器服務&#xff0c;其中&#xff0c;掛…

【HCIA】靜態綜合實驗練習筆記

實驗拓撲圖如下&#xff1a; 實驗配置思路如下&#xff1a; 1、網段劃分、配置IP地址 2、配置DHCP&#xff0c;使客戶端獲得ip地址 3、配置靜態明細路由&#xff0c;內網全網通 4、配置空接口防環 5、配置優先級&#xff0c;實現選路最佳 6、配置缺省路由&#xff0c;實現公網通…

大數據(4.5)Hive聚合函數深度解析:從基礎統計到多維聚合的12個生產級技巧

目錄 背景一、Hive聚合函數分類與語法1. 基礎聚合函數2. 高級聚合函數 二、6大核心場景與案例場景1&#xff1a;基礎統計&#xff08;SUM/COUNT&#xff09;場景2&#xff1a;多維聚合&#xff08;GROUPING SETS&#xff09;場景3&#xff1a;層次化聚合&#xff08;ROLLUP&…

RTOS基礎 -- NXP M4小核的RPMsg-lite與端點機制回顧

一、RPMsg-lite與端點機制回顧 在RPMsg協議框架中&#xff1a; Endpoint&#xff08;端點&#xff09; 是一個邏輯通信端口&#xff0c;由本地地址&#xff08;local addr&#xff09;、遠程地址&#xff08;remote addr&#xff09;和回調函數組成。每個消息都會發送到特定的…

NineData云原生智能數據管理平臺新功能發布|2025年3月版

本月發布 15 項更新&#xff0c;其中重點發布 3 項、功能優化 11 項、性能優化 1 項。 重點發布 基礎服務 - MFA 多因子認證 新增 MFA 多因子認證&#xff0c;提升賬號安全性。系統管理員開啟后&#xff0c;所有組織成員需綁定認證器&#xff0c;登錄時需輸入動態驗證碼。 數…

DAY 35 leetcode 202--哈希表.快樂數

題號202 編寫一個算法來判斷一個數 n 是不是快樂數。 「快樂數」 定義為&#xff1a; 對于一個正整數&#xff0c;每一次將該數替換為它每個位置上的數字的平方和。然后重復這個過程直到這個數變為 1&#xff0c;也可能是 無限循環 但始終變不到 1。如果這個過程 結果為 1&a…

Maven+Spring實現后端開發

一、前置知識的介紹 1.Spring 輕量級的 DI / IoC 和 AOP 容器的開源框架 容器的開源框架網址&#xff1a;https://spring.io/projects/spring-framework 作用&#xff1a;可簡化管理創建和組裝對象之間的依賴關系 將controller----->service------->dao層的依賴配置…

解鎖界面設計密碼,打造極致用戶體驗

界面設計是對軟件、網站、移動應用等產品的用戶界面進行設計的過程&#xff0c;旨在為用戶提供美觀、易用、高效的交互體驗。以下是關于界面設計的一些主要方面&#xff1a; 一、設計原則 用戶中心原則&#xff1a;以用戶為中心&#xff0c;了解用戶的需求、期望、行為和習慣…