隨著人工智能的發展, ChatGPT 已經成為了自然語言處理領域的領導者。近期, OpenAI 推出了 ChatGPT Search 功能,旨在將實時網路搜尋與聊天機器人的互動結合起來。
ChatGPT Search的技術原理
預訓練和微調
ChatGPT Search 的技術基礎是基於 Transformer 模型的預訓練和微調技術。預訓練階段,模型會在大量的文本數據上進行學習,包括維基百科、網頁文本和小說等,目的是理解語言的結構和規則。這一過程分為兩個階段:首先是單向語言模型訓練,模型從前面的詞預測後面的詞;其次是雙向語言模型訓練,模型可以同時從前後文預測中間的詞。
微調和 Beam Search、Top-K、Top-P
在微調階段, ChatGPT 會針對特定任務進行參數調整,以提高其在特定任務上的表現。例如,對於自動生成文本、問答系統等,微調可以讓模型更好地適應這些任務的要求。
Beam Search(束搜尋)是一種在序列生成任務中常用的解碼策略,廣泛應用於機器翻譯、語音識別和文本生成等領域。它在每個時間步保留概率最高的前 k 個候選序列,從而在效率和效果之間取得平衡。
在自然語言生成中,Top-K 和 Top-P 是兩種控制模型輸出多樣性的方法。Top-K 採樣在每個步驟中,從模型預測的所有可能詞彙中選取概率最高的前 K 個,然後從中隨機選擇下一個詞。Top-P 採樣(又稱核採樣)則是從所有可能詞彙中,選取累積概率達到預設閾值 P 的最小集合,然後從中隨機選擇下一個詞。簡而言之,Top-K 固定候選詞數量,而 Top-P 根據累積概率動態調整候選詞集合。
在生成回應時,ChatGPT 使用多種解碼策略,包括 Beam Search 和其他方法,如 Top-K 和 Top-P 采樣。這些策略有助於模型在生成文本時平衡流暢性和多樣性。
網路搜尋的整合
mclick
是 ChatGPT 的一個內部指令,用於從先前的搜尋結果中選取多個網頁,並檢索其內容以提供更詳盡的回答。使用 mclick
時,通常會選擇至少 3 個、最多 10 個來源,確保資訊的多樣性和可靠性。這有助於 ChatGPT 在回答問題時,引用多個可信來源,提供更全面的資訊。
ChatGPT Search通過「search」功能向搜尋引擎發送查詢,然後使用「mclick」命令來選擇和抓取相關網頁內容。這些內容會被合成為一條自然語言的回答,並引用來源。ChatGPT會自動決定是否需要從網路上獲取即時資訊,或者用戶也可以手動觸發搜尋。
與第三方搜尋引擎的整合
OpenAI 選擇了與微軟 Bing 搜尋技術合作,利用其搜尋能力來提供 ChatGPT Search 的結果。此外, OpenAI 也開發了自己的爬蟲技術,包括 GPTBot 、 ChatGPT-User 和 OAI-Search ,來收集和分析網頁內容。
如何屏蔽 ChatGPT 的 Search 爬蟲( OAI-SearchBot )
使用robots.txt文件
如果希望阻止 OpenAI 的爬蟲抓取網站內容,可以在網站的根目錄下放置一個 robots.txt 文件,並添加以下內容來屏蔽 OAI-SearchBot :
User-agent: OAI-SearchBot
Disallow: /
這將阻止 OAI-SearchBot 的訪問,但不會影響到其他爬蟲。網站管理員也可以限制 OAI-SearchBot 訪問特定目錄:
User-agent: OAI-SearchBot
Allow: /directory-1/
Disallow: /directory-2/
IP 地址檢查
OpenAI 提供了 OAI-SearchBot 使用的 IP 地址範圍,網站管理員可以通過檢查訪問 IP 來確認是否為 OAI-SearchBot ,若是則可選擇屏蔽。
完整的使用者代理參數
ChatGPT Search 使用以下的使用者代理參數造訪網站,網站管理員可以在網站日誌中確認其是否為 OAI-SearchBot:
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; OAI-SearchBot/1.0; +https://openai.com/searchbot
其他的 OpenAI Bot (也可以在 robot.txt 及 IP 地址設定屏蔽)
ChatGPT-User
ChatGPT-User 用於 ChatGPT 和自定義 GPTs。當用戶向 ChatGPT 或 CustomGPT 提出問題時,它可能會訪問網頁以幫助回答,並在其響應中包含指向源的連結。ChatGPT 用戶還可以通過以下方式與外部應用程序交互
GPT Actions 。ChatGPT 用戶控制可以向哪些站點發出這些用戶請求。它不用於以任何自動方式抓取網路,也不用於抓取生成 AI 訓練的內容。
完整的使用者代理參數:Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; ChatGPT-User/1.0; +https://openai.com/bot
GPTBot
GPTBot 用於使 OpenAI 的生成 AI 基礎模型更加有用和安全。它用於抓取可能用於訓練 ChatGPT 的生成 AI 基礎模型的內容。禁止 GPTBot 表示站點的內容不應用於訓練生成 AI 基礎模型。
完整的使用者代理參數:Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.1; +https://openai.com/gptbot
對 ChatGPT Search 的考量
雖然屏蔽 OAI-SearchBot 可以防止網站內容被 ChatGPT Search 直接引用作為答案,但這可能會影響網站的搜尋流量,因為 ChatGPT Search 是通過第三方搜尋引擎(如 Bing )提供資訊的。因此,網站管理員需要考慮屏蔽可能帶來的影響。
結語
ChatGPT Search 的推出標誌著自然語言處理和搜尋技術的融合,帶來了更為自然、即時的網路搜尋體驗。然而,對於網站所有者來說,保護內容不被未經許可的抓取和訓練使用成為了一個新的挑戰。通過適當的技術手段,如使用 robots.txt 文件、檢查 IP 地址等,可以有效地屏蔽 ChatGPT 的爬蟲,同時還需考慮屏蔽對網站曝光度的影響。未來,隨著 AI 技術的進一步發展,這一領域的技術和策略也將不斷演進。