功能簡介
在進行搜尋文本召回前,OpenSearch會對使用者輸入關鍵詞進行查詢語義分析和處理。其中,同義字功能主要是對查詢詞進行同義擴充,擴大召回和查詢詞同義的文檔。由於業務情境的多樣性,不同行業不同業務都有各自的特殊性,只有具體到應用層級的同義字模型才能保障最優的搜尋效果。
OpenSearch提供了豐富的面向特定領域的同義字模型,使用者可以基於對應的行業分析器,經過簡單的配置訓練得到專屬的定製同義字模型。整個定製過程,同義字模型訓練會自動抽取已有資料進行適配(如果使用者已有一些個人化的同義字資料也支援匯入最佳化訓練模型,詳情可聯絡技術同學)。
定製召回模型按照儲存容量、計算資源、模型訓練收費,具體價格請參考OpenSearch-行業演算法版計費概述。
快速搭建
召回定製-同義字模型從建立到使用需要經過以下三個步驟:
-
建立召回定製-同義字模型並開啟訓練;
-
配置查詢分析並引用已訓練的召回定製-同義字模型;
-
根據業務需求通過幹預詞典調整召回定製-同義字模型;
建立並訓練模型
-
登入OpenSearch管理主控台,依次點擊OpenSearch-行業演算法版->搜尋演算法中心->召回配置->定製召回模型->建立。
-
按要求填寫模型名稱,選擇同義字模型並選擇訓練欄位,最後點擊確認:
在 目標應用 下拉框中選擇對應應用,模型名稱需為1-30個字元、以字母開頭,可包含大小寫字母、數字和底線。
-
模型名稱在模型建立後無法修改;
-
訓練欄位僅支援short_text、text類型;
-
您可以單擊訓練模型訓練同義字模型,或單擊查詢分析配置在查詢分析中使用該模型。單擊完成關閉建立頁面。
-
建立完成後, 新建立的模型狀態為模型不可用,最新版本狀態為待訓練,在定製召回模型列表頁操作一欄中點擊訓練模型。
-
模型訓練根據資料量的大小不同、耗時也不同,一般數小時即可訓練完成;
-
模型可重複訓練,每次訓練完成後,會在詳情頁中訓練歷史下新增一個模型版本,編號逐一遞增。
-
已訓練完成的同義字模型的模型狀態為可用,最新版本狀態為已訓練並就緒。
配置查詢分析
配置查詢分析規則時,勾選同義字功能,在其詞典使用中選擇定製模型,定製同義字模型選擇上述建立的模型,定製同義字模型版本選擇最新版本,幹預詞典可選,配置完成後,點擊確認:在編輯規則彈窗中,勾選功能選擇地區的同義字複選框,在右側展開的同義字配置面板中,詞典使用選擇定製模型,選擇定製同義字模型(例如 my_test)和模型版本(例如 2),並選擇幹預詞典(例如 syn)。
詳情頁說明
同義字模型列表頁介紹
同義字模型類列表頁
列表中模型類型包含同義字模型、調權重模型和文本分析器模型,操作列提供詳情、訓練模型等選項,頁面頂部有建立按鈕用於建立定製模型。
-
同義字模型列表包含模型名稱、模型類型、模型狀態、最後訓練開始時間、最新版本狀態、操作等。
-
已被引用的定製召回模型不可刪除;
同義字模型詳情頁介紹
詳情頁包含基本資料、配置資訊、訓練歷史三個部分。
1、定製同義字模型訓練成功後可點擊詳情後在點擊引用規則下的查看,展示引用當前同義字模型的查詢分析規則
在左側導覽列搜尋演算法中心 > 召回配置頁面,單擊定製召回模型頁簽,在模型列表中找到目標同義字模型,在其操作列單擊詳情。其中基本資料地區展示建立時間、最後訓練開始時間、模型狀態(如"可用")和最新版本狀態(如"已訓練並就緒");配置資訊地區展示訓練欄位(如title);訓練歷史表格包含模型版本、版本狀態、訓練開始時間、訓練結束時間、引用規則和操作(含刪除)列。
2、查看效果測試
在訓練歷史表格中,找到目標模型版本,單擊其操作列的效果測試。在效果測試介面中,可在測試輸入框中輸入查詢詞,查看對應的同義字擴充結果。
3、查看效果對比
頁面展示模型差異率,以百分比形式匯總兩個模型的同義字結果差異程度,差異詞條以紅色文字標註。
-
同義字模型可選系統內建模型、當前模型的不同版本,點擊對比後,在下方展示同義字效果對比
-
典型case對比展示最多200個同義字結果不同的情況,包含文本、同義字模型1結果、同義字模型2結果
-
可在測試文本中輸入測試query,測試相應的同義字結果
搜尋測試頁面展示
-
可以在OpenSearch管理主控台,左側菜單依次點擊OpenSearch-行業演算法版->功能擴充->搜尋測試頁面,測試效果:
在搜尋測試頁面輸入查詢詞 default:'藥品',經過同義字擴充後,實際查詢詞被改寫為 (default:'藥品') OR (default:'藥物') OR (default:'藥用' AND default:'品') OR (default:'醫學' AND default:'藥品')。右側 Query改寫分析 面板中 同義字 行顯示擴充結果為 藥物/藥用品/醫學藥品 藥品。
-
如需查看每次搜尋的請求消耗了多少計算資源,可以添加自訂參數:fetch=result:compute_cost,並開啟源碼模式:在搜尋測試頁面,設定查詢子句為
default:'藥品',參數中添加fetch=result:compute_cost以擷取算力消耗(LCU)明細。搜尋結果 JSON 響應的compute_cost欄位包含algos數組,其中可查看同義字演算法(function: "synonym")對應的計算開銷(如value: 5),以及索引整體 LCU 消耗值(如value: 6.44)。 -
如果雙模型或多模型進行索引搜尋時中間以OR做串連。
查詢語句樣本為 zw_ds_model:'搜尋' OR it_model:'黑',返回的 compute_cost 結構中包含 algos 數組,每個元素展示一個 analyzer 的 name 和計算代價 value,其中 zw_ds_model 和 it_model 的 value 均為 2.1,表示兩個模型各自的計算消耗。
功能限制
-
該功能僅在行業演算法版-獨享叢集執行個體中支援;
-
單個執行個體最多建立5個定製模型,單個模型的版本個數最多為3個;
-
基於應用建立的定製召回模型不可跨應用配置;