Bing搜尋引擎如何運用 SLM 和 TensorRT 技術進行最佳化

Bing搜尋引擎雖然很少人用(全球搜尋引擎排名),但有些新東西我們還是可以看一下。像這一篇 SLM 和 TensorRT 技術文章,我們就來「簡單」認識一下 Bing 搜尋引擎做了什麼努力。

Bing – 單字卡片

60 秒看懂本篇文章

Bing

Bing 是微軟(Microsoft)推出的搜尋引擎,以其多媒體搜尋AI 技術見長,並與微軟生態系統深度整合。

詞源

Bing 的設計理念是為用戶提供快速且準確的搜尋結果,結合自然語言處理和互動技術,讓搜尋更簡單。

可以這樣理解

想像你問:「新增 A 功能是否提升了用戶留存率?」 Bing 會呈現相關資料,幫助你快速找到答案,而不需要逐一查看文章。

Bing 的核心能力

  • 圖片與影片搜尋:支援篩選條件並提供高品質內容。
  • AI 功能:結合 ChatGPT 的技術,改善搜尋結果的相關性。
  • 微軟生態整合:與 Edge 瀏覽器、Windows 和 Microsoft 365 無縫結合。

順便學英文

“Bing integrates AI to deliver smarter, faster search results.”
Bing 通過 AI 提供更智慧、更快速的搜尋結果。

Bing搜尋引擎簡介:不止於搜尋,更懂圖片

Bing,微軟旗下的搜尋引擎,是全球第二大搜尋引擎,雖然市佔率僅次於 Google,但其獨特的功能和優勢使其成為不容忽視的搜尋選擇,尤其他還是ChatGPT的金主爸爸。

Cloudflare 平台上已驗證的機器人(Verified Bots)向網站發出請求(requests)數量的排名來看,BingBot 是排名第四名,而這個排名的依據,是 機器人每次訪問網站的一個頁面,或者下載網站上的一個文件,都會發出一個或多個請求,請求數量越多,通常表示該機器人訪問網站的頻率越高,或者抓取的內容越多,這個排名也代表著各家企業機器人的活躍程度。

Bing 不僅提供網頁搜尋,更在圖片搜尋、影片搜尋等方面表現也很強。Bing 的核心能力在於其精準的搜尋演算法,它能有效理解使用者輸入的關鍵字,並根據其搜尋意圖,從數十億個網頁中篩選出最相關的結果。

此外,Bing 持續最佳化其自然語言處理能力,即使面對複雜或口語化的查詢,也能提供令人滿意的答案,也是本篇文章的重點之一。

圖片搜尋是 Bing 的一大亮點,它的影像識別技術,讓「以圖搜圖」功能格外精準,使用者可以輕鬆地透過上傳圖片或輸入圖片網址,找到類似的圖片、圖片來源或相關資訊。

篩選選項也很多,如尺寸、顏色、類型和版權,更讓使用者能快速定位到理想的圖片。這使得 Bing 在尋找高解析度圖片、識別物體或尋找圖片出處方面,比 Google 更具優勢(我個人覺得)。

影片搜尋方面,Bing 也毫不遜色,它支援多個影片平台,使用者可以直接在搜尋結果頁面預覽影片片段,無需跳轉到其他網站,有更方便的觀影體驗。

bing 20241222 2
未使用 SLM 和 TensorRT 技術時

bing 20241222 1
使用 SLM 和 TensorRT 技術時

being 20241220 1

SLM 和 TensorRT 簡單說明

大型語言模型(LLM)是一種機器學習技術,能讓電腦理解和生成自然語言。想像一下,如果你和一個很聰明的機器人對話,這個機器人不僅能理解你說的話,還能回答你各種問題,這就是LLM的功能。

而稀疏線性模型(Sparse Linear Models)是另一種技術,它能讓電腦在搜尋時更快找到你想要的答案,這個技術會挑選出最重要的資訊,而不是每個細節都去處理,這樣就能更快找到答案。

TensorRT則是一種加速工具,可以讓LLM和SLM這些模型在電腦上運行得更快、更有效率。這就像是給機器人裝上一個超級引擎,讓它能以較快的速度去搜尋和回答問題。

所以,Bing搜尋引擎現在用這些技術來改善搜尋功能,具體來說,當你在Bing上搜尋問題時,Bing會用LLM來理解你的問題,然後用SLM來快速找到答案,再用TensorRT來加速這整個過程,這樣,搜尋結果就會變得更準確、更快。

稀疏線性模型(SLM)

稀疏線性模型(Sparse Linear Models)是一種特別的數學模型,用來分析和處理數據,當我們處理「非常大量」的數據時,又不是每個數據都同樣重要,SLM它能識別並使用最重要的數據,同時忽略不太重要的部分,這樣做的好處是模型可以更快、更有效地運算,因為它只專注於關鍵的數據。

舉個簡單的例子,如果你有一大堆玩具,但你只需要幾個最喜歡的,SLM就像是幫你挑選出那些最喜歡的玩具,讓你不必每次都翻找所有的玩具。

TensorRT

TensorRT是一種專門為深度學習模型設計的高效推理引擎,它是由NVIDIA開發的,用來加速機器學習模型在不同硬體上的運行,TensorRT能最佳化和加速模型的計算,讓這些模型在運行時變得更快,使用的資源更少。

主要的功能包括:

  • 模型最佳化:對模型進行最佳化,使其在運行時更高效。例如,移除不必要的運算部分。
  • 精度最佳化:根據需要調整模型的精度,平衡準確度和速度。
  • 運行加速:使用各種硬體加速技術(如GPU加速),大幅提升模型的推理速度。

想像一下,TensorRT就像給你的電腦安裝了一個超強的引擎,讓它能以極快的速度完成複雜的計算任務。

這裡還有一點模糊,沒關係,我們先知道以上的資訊就好,我們先往下看整個Bing搜尋引擎使用 SLM 和 TensorRT 流程。

being 20241220 2
我個人感覺,Being搜尋引擎使用 SLM 和 TensorRT 之後有更好的搜尋結果

Being搜尋引擎使用 SLM 和 TensorRT 的流程

1. 關鍵字輸入與初步處理

使用者在 Bing 搜尋框輸入「關鍵字」後,系統會開始處理輸入的內容:

  • 語言處理與查詢解析: 系統首先會對輸入的文字進行初步的語言處理和查詢解析,例如斷詞、詞性標註等,以理解使用者可能的意圖,這部分可能由專門的自然語言處理 (NLP) 模組來完成。
  • 稀疏語言模型 (SLM) 特徵提取: 接著,稀疏語言模型 (SLM) 會將「關鍵字」轉換成電腦能理解的稀疏向量。例如,將「附近的咖啡廳」分解成「附近」、「咖啡廳」等詞組,並將這些詞組編碼成稀疏的數字向量。SLM 的核心優勢在於其稀疏性:它只關注和搜尋意圖最相關的特徵,並將其餘特徵的權重設為零或接近零,從而提升處理速度和效率。

也就是說, SLM 分析使用者輸入的內容,將自然語言的查詢轉換成一種電腦可以理解的數字格式,例如將「附近的咖啡廳」這句話分解成有意義的詞組(如「附近」、「咖啡廳」),並進一步編碼成數字向量,為後續的模型運算做準備,不過這裡就很重要, SLM 的核心目的是高效率的將輸入文字轉換成數字格式(詞向量),除了將「關鍵字」轉換成電腦可以理解的數字向量格式之外,這個步驟,就是它只關注「和搜尋意圖相關的特徵,忽略不重要的部分」,這樣可以提升處理速度和效率。

2. 查詢預處理

這一步的目的是讓系統更好地理解使用者的輸入,將「關鍵字」變成適合模型處理的格式。具體來說包括三個小步驟:

斷詞與向量化

系統會把「關鍵字」拆解成單獨的詞語(斷詞),並用數字向量來表示每個詞語,這些向量代表了詞語的語義資訊,便於後續模型處理。

去除干擾的處理

系統會移除一些不重要或干擾的詞(例如停用詞「的」、「啊」等,但需根據具體情況判斷),只留下和搜尋意圖相關的關鍵詞。

語義解析

系統會進一步理解這些詞語之間的關係,例如「附近的咖啡廳」中的「附近」是修飾「咖啡廳」的,這有助於提取出查詢的核心意思。此步驟可能涉及更複雜的 NLP 技術。

3. 稀疏線性模型(SLM)接手

Bing 使用 SLM 模型來快速處理查詢,重點在於:

快速查詢理解

SLM 比大型語言模型 (LLM) 更輕量化,但更高效。它能快速分析使用者的查詢,理解查詢的核心意圖。例如,當使用者搜尋「台北最好吃的牛肉麵」,SLM 會辨識出「台北」、「最好吃」和「牛肉麵」這些關鍵詞,並將它們聯繫起來,理解使用者在尋找餐廳推薦。相較於 LLM,SLM 能提供大約 100 倍的處理速度,適合需要高吞吐量的搜尋場景。

稀疏特徵提取

SLM 的「稀疏」特性意味著它透過學習得到一個稀疏的權重矩陣,其中大多數元素為零。只有少數與查詢相關的特徵對應的權重較大。例如,在「台北最好吃的牛肉麵」這個查詢中,像「的」這種無實質意義的詞會被忽略,而「台北」、「牛肉麵」會被重點分析。這樣的特徵選擇不僅提高了模型的效率,也縮短了搜尋的處理時間。

4. TensorRT 最佳化

經過 SLM 初步篩選後的候選結果,會交給一個深度學習排序模型進行更精細的排序。而 TensorRT 則負責最佳化這個排序模型的推理過程。

讓我們把這段內容簡化為更容易理解的步驟和關鍵點:

1. SLM 初步篩選後的排序模型

  • 工作分配
    • Bing 搜尋的第一步是利用 SLM 快速篩選出一些候選結果。
    • 接著,這些結果會被交給一個「深度學習排序模型」進行更精準的排序,目的是選出最相關的結果。

2. TensorRT 的角色

  • TensorRT 是一種技術,專門用來讓深度學習模型的運算過程變得更快、更有效率。

3. 主要過程

(1) 模型量化(Model Quantization)
  • 什麼是量化?
    • 就像壓縮檔案一樣,量化是把模型裡的大數據精度降低,例如從 FP16(16位浮點數)轉換為 INT8(8位整數)。
    • SmoothQuant 是其中一種方法,能在降低運算精度的同時,維持模型的準確性。
  • 為什麼量化重要?
    • 它能減少模型的大小和需要的運算資源,讓排序模型更輕量、更高效。
(2) TensorRT 的最佳化

TensorRT 接收量化後的模型,進一步進行這些最佳化:

  • 計算圖最佳化
    • TensorRT 會分析模型的「計算流程」,把重複的計算合併起來,例如如果某個公式需要計算多次,TensorRT 會讓它只計算一次。
  • 執行序最佳化
    • 它會重新排列模型的計算順序,確保每一步都能以最快速度完成。
  • 核心融合
    • 將多個小的運算合併成一個大運算,減少不同運算核心之間的資料傳輸時間。
(3) 硬體加速
  • 部署到 GPU
    • 最佳化後的模型會被放到像 Nvidia A100 這樣的 GPU 上運行。
    • GPU 擅長一次處理大量數據,所以可以讓排序模型跑得更快、更省資源。

4. 簡化的流程

把整個過程濃縮成三個步驟:

  1. 模型瘦身:用 SmoothQuant 減少模型大小,降低運算需求,但仍保持準確性。
  2. 模型最佳化:用 TensorRT 最佳化排序模型的運算流程,合併重複計算,並針對硬體特性進行調整。
  3. 部署到 GPU:將最佳化後的模型放到 Nvidia A100 GPU 上,用硬體加速完成排序,快速生成結果。

5. 為什麼這樣做?

  • 速度:大幅加快排序模型的運算速度,讓搜尋結果幾乎是即時返回。
  • 效率:減少系統資源消耗,降低運行成本。
  • 準確性:最佳化過程中保留了對結果排序的精準理解,確保使用者獲得高品質搜尋結果。

5. 結果生成與排序

這一步的目的是從模型中提取出搜尋結果,並將最相關的結果排在前面,讓使用者能快速找到需要的資訊。具體過程如下:

  1. 查詢匹配
    • 什麼是查詢匹配?
      查詢匹配是指系統根據使用者輸入的關鍵字,從龐大的數據庫中找到可能符合搜尋需求的內容。例如,當你搜尋「台北的咖啡廳」,系統會檢索所有和「台北」以及「咖啡廳」相關的網頁或內容。
    • SLM 和深度學習模型的作用
      • SLM:先快速篩選出與關鍵字最相關的候選結果,像是挑出符合條件的「候選者」。
      • 深度學習模型:進一步分析候選結果的上下文,理解每個結果和查詢的關聯性,確保推薦內容不僅關鍵字匹配,還真正符合使用者的搜尋意圖。
  1. 排序與過濾
    • 排序的原理
      排序過程中,系統會給每個結果分配一個「相關性分數」。這個分數是根據多種因素計算出來的,比如:
      • 查詢關鍵字與內容的匹配程度。
      • 搜尋結果的點擊率(熱門結果通常排名更高)。
      • 結果的上下文是否滿足使用者需求(例如,地點相關性、內容詳盡度等)。
      結果例子:
      搜尋「台北的咖啡廳」,排名可能依次是:
      • 第1名:Google 評價最高的咖啡廳清單。
      • 第2名:附近熱門咖啡廳的推薦文章。
      • 第3名:關於台北咖啡廳的部落格分享。
    • 過濾的作用
      排除和使用者需求無關或品質較差的結果。例如,內容過時、無效的連結或與查詢不相關的結果會被移除。

6. 快速返回結果

經過 TensorRT最佳化的搜尋系統,結果會在低延遲下快速返回給使用者,滿足用戶對速度和準確性的需求。

什麼是低延遲?

延遲是指從使用者按下搜尋鍵到看到結果的這段時間,低延遲的目標是讓使用者幾乎不用等待,結果可以「即時」顯示,但我實際測試還是要等……。

如何實現低延遲?

  • 使用 TensorRT 技術對模型進行最佳化,減少每次計算的時間。
  • TensorRT 技術讓每個搜尋請求都能更快速地完成推理過程(即模型的查詢匹配和排序計算)。
  • 在硬體層面,借助 Nvidia A100 GPU 的並行處理能力,能同時處理多個查詢請求。

結果如何生成?

排序後的搜尋結果會被打包成結構化的輸出數據,準備顯示給使用者。這些數據包含:

  • 結果標題
  • 內容摘要(例如搜尋到的網頁內容的簡短介紹)
  • 連結(點擊後可訪問的網址)

結果傳輸

這些打包好的數據會通過網路傳輸到使用者的裝置上,比如手機或電腦,並由瀏覽器或APP呈現出來。

Bing搜尋引擎改進重點

  1. 查詢效率:Bing 的 SLM 模型最佳化讓用戶可以更快地獲得結果,大幅降低等待時間。
  2. 成本效益:通過 SmoothQuant 和 TensorRT 技術降低運算成本,也為搜尋技術的進一步留出更多資源。
  3. 用戶體驗:SLM 模型在理解複雜查詢的能力上更強,能提供準確且情境化的搜尋結果。

常見問題

激活值是什麼?

在深度學習模型中,「激活值」是指神經網路中每一層的輸出結果,這些結果會被用作下一層運算的輸入。激活值的產生過程可以想像成模型對輸入資料的一種「理解」或「反應」,它是模型處理輸入數據時的重要中間結果。

激活值的運作流程是什麼?

假設一個查詢是「台北的咖啡廳」,模型運作的過程如下:
第一層處理:模型會辨識出句子中的關鍵詞(例如「台北」和「咖啡廳」),並生成一組數值作為「激活值」,這些數值反映模型對每個詞的重要性理解。例如,模型可能認為「台北」的重要性是 0.8,「咖啡廳」的重要性是 0.9。

激活值傳遞:這些激活值會被傳遞到下一層進行進一步的計算,直到最終生成搜尋結果。

計算圖(Computation Graph)是什麼?

計算圖有點像是一張地圖,用來幫助電腦知道要怎麼一步步完成數學計算或模型運算。簡單來說,計算圖的作用是讓複雜的運算變得有條理,並方便進行最佳化,計算圖用「節點」和「邊」把數學公式或機器學習模型的運算步驟畫出來,這樣電腦就知道每一步需要什麼數據、該做什麼運算,並把結果傳給下一步。

想像你在做一個很大的積木城堡:
積木塊(節點): 每個積木塊代表你要做的一件事,比如「加法」像放一塊紅色積木,「乘法」像放一塊藍色積木。

積木之間的連線(邊): 積木之間用一條小路連起來,表示你上一塊積木做好的結果,會送到下一塊積木繼續用。

例如,你想要算這個問題: (2+3)×4 ,這裡有三個數字:2、3、4。

第一步:算 2+3
– 用紅色積木來算這件事。
– 答案是 5,這個 5 是我們的「中間結果」,就像玩積木時,先拼好了一小部分。

第二步:用 5 和 4 再算一次
把第一步算好的 5 和 4 放到藍色積木上。
這次算 5 × 4 答案是 20。

整個過程看起來像這樣:
拿 2 和 3,用紅色積木算,加起來得到 5。
拿這個 5 和 4,用藍色積木算,乘起來得到 20。

如果 Bing 的技術這麼強,為什麼市佔率仍然不高?

Bing 技術強大,但市佔率低的原因主要有以下幾點。首先,Google 搜尋作為市場領導者,擁有強大的品牌效應和生態系統,用戶早已習慣使用 Google,其預設的搜尋引擎地位更是難以撼動。其次,Bing 在用戶體驗上與 Google 的差距不明顯,無法吸引用戶主動切換。

此外,Bing 的市場行銷力度較弱,定位模糊,無法有效傳達其核心優勢。第三,Bing 在國際化和移動端市場上也缺乏足夠的影響力。總體來說,搜尋市場的競爭不僅是技術比拼,更需要突破用戶習慣、生態系統優勢和行銷策略,這些仍是 Bing 的挑戰所在。

Bing 為什麼需要使用 SLM 和 TensorRT 結合?

Bing 搜尋引擎結合 SLM(Sparse Linear Models) 和 TensorRT,是為了同時提升搜尋的效率和 精準度,解決搜尋引擎面臨的問題。

Bing 是 ChatGPT 的金主,這和搜尋有什麼關係?

Bing 是 OpenAI 的合作夥伴,為 ChatGPT 提供搜尋支援,這種合作讓搜尋和生成式 AI 更緊密結合。

精度」是什麼?

在數學、科學和工程中,精度(Precision)指的是數據或運算結果的細緻程度,也就是表達數值的準確細節有多高。在不同領域,精度可能有不同的含義,但通常與以下兩個方面相關:

數值精度:
表示數據中保留的有效位數(比如小數點後幾位)。

運算精度:
在電腦運算中,指計算機表示和處理數字時的位元數,例如 32 位(單精度)或 64 位(雙精度)。

單精度(Single Precision):
使用 32 位元存儲數據,精度通常到小數點後 7 位左右。
範例:3.1415926(保留小數點後 7 位)。

雙精度(Double Precision):
使用 64 位元存儲數據,精度通常到小數點後 15-16 位。
範例:3.141592653589793(保留更多細節)。

低精度(Low Precision):
例如 INT8(8 位整數)或 FP16(16 位浮點數),精度更低,但計算速度更快且節省內存。
範例:3.14(只保留小數點後 2 位)。

什麼是預處理

預處理(Preprocessing)是一個準備數據的過程,目的是將原始的數據轉換成電腦更容易理解和使用的格式。在自然語言處理(NLP)、機器學習和數據分析中,預處理是非常關鍵的第一步,因為原始數據通常雜亂無章且含有雜訊。

斷詞是什麼?

斷詞是一種自然語言處理(NLP)的技術,用來把一段文字切分成單獨的詞語或詞組。對於中文或其他不使用空格分隔單詞的語言(如日文、韓文),斷詞特別重要,因為電腦需要知道文字中每個詞的邊界才能進一步理解句子的意思。

計算圖範列

  2   3
   \  /
    + 
     \
      5   4
       \  /
        *
         \
         20

要深入了解 AI 產品經理的核心技能,請參考我的學習方法:AI 產品經理,我的學習之路

返回頂端