在 Retrieval-Augmented 產生 (RAG) 解決方案的先前步驟中,您將檔分割成區塊,並擴充區塊。 在此步驟中,您會為那些區塊和您打算執行向量搜尋的任何元數據欄位產生內嵌。
本文是一系列文章的一部分。 閱讀 簡介。
內嵌是物件的數學表示法,例如文字。 在定型神經網路時,會建立對象的許多表示法。 每個表示法都有與網路中其他對象的連線。 內嵌很重要,因為它會擷取對象的語意意義。
一個物件的表示法與其他物件的表示有連接,因此您可以以數學方式比較物件。 下列範例顯示內嵌如何擷取彼此之間的語意意義和關聯性:
embedding (king) - embedding (man) + embedding (woman) = embedding (queen)
使用相似度和距離的概念來比較內嵌。 下列方格會顯示內嵌的比較。
在RAG解決方案中,您通常會使用與區塊相同的內嵌模型來內嵌用戶查詢。 然後,您會搜尋資料庫以尋找相關的向量,以傳回最具語意相關的區塊。 相關區塊的原始文字會傳遞至語言模型作為基礎數據。
注意
向量以允許數學比較的方式,代表文字的語意意義。 您必須清除區塊,讓向量之間的數學鄰近性正確地反映其語意相關性。
內嵌模型的重要性
您選擇的內嵌模型可能會大幅影響向量搜尋結果的相關性。 您必須考慮內嵌模型的詞彙。 每個內嵌模型都會使用特定詞彙來定型。 例如,BERT 模型的詞彙大小 大約是 30,000 個字。
內嵌模型的詞彙很重要,因為它會以獨特的方式處理不在詞彙中的字詞。 如果某個單字不在模型的詞彙中,它仍會計算它的向量。 若要這樣做,許多模型會將字組細分為子字詞。 它們會將子字詞視為相異標記,或匯總子字詞的向量,以建立單一內嵌。
例如,他明 一詞可能不在內嵌模型的詞彙中。 他明一詞 具有語意意義,作為你的身體釋放的化學物質,這會導致過敏癥狀。 內嵌模型不包含 他明。 因此,它可能會將其字詞分成詞彙中的子字詞,例如 他的、ta,以及 我的。
這些子字的語意意義遠非 他明的意義。 子字詞的個別或合併向量值,相較於模型詞彙中
選擇內嵌模型
為您的使用案例決定正確的內嵌模型。 當您選擇內嵌模型時,請考慮內嵌模型詞彙與數據字組之間的重疊。
首先,判斷您是否有網域特定內容。 例如,您的檔是否專屬於使用案例、您的組織或產業? 判斷網域特定性的好方法是檢查您是否可以在因特網上找到內容中的實體和關鍵詞。 如果可以,一般內嵌模型也可能。
一般或非網域特定內容
當您選擇一般內嵌模型時,請從 擁抱臉部排行榜開始。 取得 up-to日期內嵌模型排名。 評估模型如何與您的數據搭配運作,並從最上層模型開始。
網域特定內容
針對網域特定內容,判斷您是否可以使用特定領域模型。 例如,您的資料可能位於生物醫學領域,因此您可以使用 BioGPT 模型。 這種語言模型是預先定型的大型生物醫學文獻集合。 您可以將它用於生物醫學文字採礦和產生。 如果有特定領域模型可用,請評估這些模型如何與您的數據搭配使用。
如果您沒有特定領域模型,或領域特定模型效能不佳,您可以使用特定領域詞彙來微調一般內嵌模型。
重要
針對您選擇的任何模型,您必須確認授權符合您的需求,且模型提供必要的語言支援。
評估內嵌模型
若要評估內嵌模型,請將內嵌可視化,並評估問題與區塊向量之間的距離。
將內嵌可視化
您可以使用 t-SNE 等連結庫,在 X-Y 圖形上繪製區塊的向量和問題。 然後,您可以判斷區塊彼此和問題之間的距離。 下圖顯示繪製的區塊向量。 彼此附近的兩個箭號代表兩個區塊向量。 另一個箭號代表問題向量。 您可以使用此視覺效果來了解問題與區塊有多遠。
兩個箭號指向彼此附近的繪圖點,而另一個箭號則顯示遠離其他兩個的繪圖點。
計算內嵌距離
您可以使用程式設計方法來評估內嵌模型如何與問題和區塊搭配運作。 計算問題向量與區塊向量之間的距離。 您可以使用 Euclidean 距離或曼哈頓距離。
內嵌經濟學
當您選擇內嵌模型時,必須在效能與成本之間瀏覽取捨。 大型內嵌模型通常對基準檢驗數據集有較佳的效能。 但是,提升的效能會增加成本。 大型向量需要向量資料庫中更多的空間。 它們也需要更多計算資源和時間來比較內嵌。 小型內嵌模型通常具有相同基準檢驗的效能較低。 它們需要較少的向量資料庫中的空間,以及比較內嵌的計算和時間較少。
設計系統時,您應該考慮在記憶體、計算和效能需求方面內嵌的成本。 您必須透過測試來驗證模型的效能。 公開可用的基準檢驗主要是學術數據集,可能不會直接套用至您的商務數據和使用案例。 視需求而定,您可以偏向效能勝過成本,或接受足夠好效能的取捨,以降低成本。