

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Amazon Bedrock 知識庫的運作方式
<a name="kb-how-it-works"></a>

Amazon Bedrock 知識庫可協助您充分利用檢索增強生成 (RAG) 這項熱門技術，其涉及從資料存放區提取資訊，以增強大型語言模型 (LLM) 產生的回應。當您使用資料來源設定知識庫時，您的應用程式可以查詢知識庫以傳回資訊，以使用來源的直接引述，或從查詢結果產生的自然回應來回答查詢。

透過 Amazon Bedrock 知識庫，您可以建置由查詢知識庫所收到的內容來充實應用程式。透過從繁重的建置管道中抽取出來，並提供現成可用的 RAG 解決方案，以減少應用程式的建置時間，進而加快上市時間。新增知識庫也可提高成本效益，因為不需要持續訓練模型來利用您的私有資料。

以下圖表以圖解方式說明 RAG 的進行方式。知識庫透過自動執行此過程中的幾個步驟，簡化 RAG 的設定和實作。

**預先處理非結構化資料**

若要從非結構化私有資料 (不存在於結構化資料存放區中的資料) 進行有效擷取，常見的做法是將資料轉換為文字，並將其分割為可管理的部分。然後，部分或區塊會轉換為嵌入項目，並寫入向量索引，同時保持與原始文件對應。這些內嵌項用於確定查詢和資料來源的文字之間的語意相似性。下圖說明了向量資料庫資料的預先處理。

![預先處理資料以進行檢索增強生成](http://docs.aws.amazon.com/zh_tw/bedrock/latest/userguide/images/kb/rag-preprocess.png)


向量嵌入是代表每個文字區塊的一系列數字。模型會將每個文字區塊轉換為一系列數字，稱為向量，以數學方式比較文字。這些向量可以是浮點數 (float32) 或二進位數字。根據預設，Amazon Bedrock 支援的大多數嵌入模型都會使用浮點向量。不過，某些模型支援二進位向量。如果您選擇二進位嵌入模型，您也必須選擇支援二進位向量的模型和向量存放區。

每個維度只使用 1 位元的二進位向量，其在儲存上的成本低於浮點 (float32) 向量高，其每個維度使用 32 位元。不過，二進位向量在文字表示方面不如浮點向量精確。

下列範例以三種表示顯示一段文字：


****  

| 代表 | 值 | 
| --- | --- | 
| 文字 | 「Amazon Bedrock 使用來自領導 AI 公司和 Amazon 的高效能基礎模型。」 | 
| 浮點向量 | [0.041..., 0.056..., -0.018..., -0.012..., -0.020..., ...] | 
| 二進位向量 | [1,1,0,0,0, ...] | 

**執行時期執行**

在執行時期，內嵌模型用於將使用者的查詢轉換為向量。然後查詢向量索引，藉由將文件向量與使用者查詢向量進行比較，以尋找語意與使用者查詢類似的區塊。在最後一個步驟中，使用從向量索引擷取的區塊中的其他內容來增強使用者提示。然後，提示與附加上下文一起傳送到模型，為使用者產生回應。下圖說明 RAG 如何在執行時期運作，以增強對使用者查詢的回應。

![在執行時期檢索增強生成](http://docs.aws.amazon.com/zh_tw/bedrock/latest/userguide/images/kb/rag-runtime.png)


若要進一步了解如何將資料轉換為知識庫、如何在設定知識庫之後查詢知識庫，以及您可以在擷取期間套用至資料來源的自訂，請參閱下列主題：

**Topics**
+ [將資料轉換為知識庫](kb-how-data.md)
+ [使用 Amazon Bedrock 知識庫從資料來源擷取資訊](kb-how-retrieval.md)
+ [自訂您的知識庫](kb-how-customization.md)