重點摘要
- 模組概述:
llama_index.embeddings.huggingface橋接 LlamaIndex 與 Hugging Face 模型,提供量身打造的嵌入。 - 安裝與設定:1. 使用 pip 安裝套件。2. 在 Python 中設定模組。3. 實例化嵌入模型。4. 用範例文字進行測試。
- 選擇合適的模型:根據語言和任務選擇模型的重要性,並考量效能與資源。
- 程式碼範例:展示基本嵌入生成、自訂模型、批次處理以及向量索引整合。
- 最佳化技巧:高效模型、批次處理、區塊大小調整、資源分配、快取以及系統監控。
- LLM API 整合:整合 Novita AI 的 LLM API 以執行進階 NLP 任務的步驟。
簡介
將 Hugging Face 嵌入與 LlamaIndex 整合,為開發者在處理進階自然語言處理任務時開啟了無限可能。透過在 LlamaIndex 框架中運用 Hugging Face 多元且最先進的模型,開發者能夠針對特定語言和領域,打造穩健、高效且高度準確的檢索增強生成 (RAG) 系統。本指南將逐步引導您完成在 LlamaIndex 中設定與使用 Hugging Face 嵌入的過程,並提供實用的見解與程式碼範例,協助您最佳化 NLP 專案。
什麼是 llama_index_embedding_huggingface?
llama_index.embeddings.huggingface 模組扮演著 LlamaIndex 與 Hugging Face 豐富模型生態系之間的橋樑。透過此模組,您可以從各種最先進的嵌入模型中挑選,為您的 RAG 系統量身打造適合特定語言、領域或效能需求的設定。
安裝與設定
步驟 1:安裝
- 首先,請確認您的系統已安裝 Python 與 pip。
- 開啟終端機或命令提示字元,使用 pip 安裝
llama_index_embedding_huggingface套件:
pip install llama_index_embedding_huggingface
步驟 2:設定
- 安裝完成後,您需要在 Python 腳本中匯入此模組:
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
- 決定最適合您需求的 Hugging Face 嵌入模型。請考慮語言支援、模型大小以及效能等因素。
步驟 3:設定模組
- 使用您選擇的模型名稱實例化
HuggingFaceEmbedding類別:
embedding_model = HuggingFaceEmbedding(model_name="BAAI/bge-small-en-v1.5")
- 此設定即可整合至您的 RAG 管線,用於將文字資料轉換為嵌入向量。
步驟 4:首次使用
- 準備好嵌入模型後,您可以繼續將其與其他 LlamaIndex 元件(例如文件載入器與向量索引)整合。
- 使用範例文字測試設定,確保嵌入生成符合預期:
sample_text = "Hello, world of RAG systems!"
embeddings = embedding_model.get_text_embedding(sample_text)
print(embeddings)
更多關於使用 Huggingface 與 LlamaIndex 的 RAG 專案資訊,請參閱這篇部落格:Building A RAG Ebook “Librarian” Using LlamaIndex。
選擇合適的嵌入模型
選擇正確的嵌入模型對於 RAG 系統的效能至關重要。嵌入是系統理解與檢索資料的核心。模型的選擇會影響檢索作業的準確性、相關性與效率。
探索可用模型
Hugging Face 提供了眾多模型,各有其獨特特性。若要探索可用模型,您可以造訪 Hugging Face Model Hub。使用篩選條件按語言、任務或資料集縮小模型範圍。請留意社群回饋、效能基準測試,以及模型是否與您的系統需求相容。
根據語言與任務選擇
您的選擇應考量資料的語言以及 RAG 系統設計要執行的特定任務。例如,如果您的應用程式涉及醫學文獻,您可能偏好針對醫學文字微調的模型。同樣地,對於多語言應用程式,支援多種語言的模型會是理想選擇。
效能考量
請考慮模型大小與效能之間的權衡。較大的模型可能提供更詳細的嵌入,但代價是增加計算資源與延遲。
程式碼使用範例
現在您已選好合適的模型,是時候實際應用了。以下詳細的程式碼範例示範如何使用 llama_index.embeddings.huggingface 模組生成文字嵌入。
基本嵌入生成:
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
# 初始化嵌入模型
embedding_model = HuggingFaceEmbedding(model_name="BAAI/bge-small-en-v1.5")
# 要嵌入的文字
text = "This is a sample text for embedding."
# 生成嵌入
embedding = embedding_model.get_text_embedding(text)
print(embedding)
使用自訂模型嵌入:
# 使用不同模型初始化
custom_embedding_model = HuggingFaceEmbedding(model_name="YourCustomModelName")
# 使用自訂模型生成嵌入
custom_embedding = custom_embedding_model.get_text_embedding(text)
批次嵌入生成:
# 文字列表
texts = ["text1", "text2", "text3", ...]
# 為所有文字生成嵌入
embeddings = embedding_model.get_text_embedding(texts)
針對特定需求調整:
# 自訂嵌入生成
embeddings = embedding_model.get_text_embedding(text, max_length=512)
整合向量索引:
from llama_index.core import SimpleDirectoryReader, VectorStoreIndex
# 載入文件
documents = SimpleDirectoryReader("./data").load_data()
# 建立向量儲存索引
index = VectorStoreIndex.from_documents(documents, embed_model=embedding_model)
# 現在,`index` 可用於高效的檢索作業
最佳化嵌入生成的技巧
技巧 1:選擇高效模型
挑選在準確性與速度之間取得平衡的嵌入模型。較大的模型可能提供更好的效能,但會增加計算時間。
技巧 2:批次處理
利用 llama_index.embeddings.huggingface 模組的批次處理功能,在單一操作中為多個文字生成嵌入,減少重複設定與拆卸的開銷。
技巧 3:調整區塊大小
在索引階段微調區塊大小與重疊比例,以最佳化嵌入的粒度。較小的區塊大小可能產生更精確的嵌入,但會增加計算時間。
技巧 4:資源分配
確保您的系統擁有足夠的資源 (CPU/GPU、記憶體) 來處理嵌入生成過程,特別是在使用複雜模型時。Novita AI GPU Instance 提供經濟實惠且按用量付費的 GPU 雲端服務,助您擴展創新。

此外,Novita AI GPU Instance 可即時存取 Jupyter,並預先安裝 Tensorflow、Pytorch、cuDNN、CUDA、TensorRT、Llama3 與 Stable Diffusion。Novita AI 讓您透過瀏覽器直接使用 GPU 雲端服務。
技巧 5:快取機制
實作快取策略,儲存先前生成的嵌入,避免對已處理過的文字進行重複計算。
技巧 6:監控系統負載
留意系統負載,最佳化並發作業數量,以防止系統超載並確保一致的效能。
與 LLM API 整合
將 LLM 與 llama_index.embeddings.huggingface 這類嵌入模組整合,能為自然語言處理任務帶來顯著優勢。此整合可透過運用捕捉文字語意細微差別的最新嵌入,打造高度高效且準確的檢索增強生成 (RAG) 系統。以下是與 Novita AI 的 LLM API 整合的逐步指南:
1. 前往 novita.ai 並登入
您可以使用 Google 或 GitHub 登入。首次登入時會自動建立新帳戶。
或者,您也可以使用電子郵件地址註冊。

2. 管理 API 金鑰
Novita AI 使用請求標頭中的 Bearer 認證(API 金鑰)來驗證 API 存取,例如:“Authorization: Bearer {API Key}”。
前往設定中的 “Key Management” 管理您的金鑰。
首次登入時,系統會自動建立一個預設金鑰。您可以點擊 “+ Add new key” 來建立更多金鑰。

3. 進行 API 呼叫
以下是以 Python 客戶端使用 Novita AI Chat Completions API 的範例。
pip install 'openai>=1.0.0'
from openai import OpenAI
client = OpenAI(
base_url="https://api.novita.ai/v3/openai",
# 取得 Novita AI API 金鑰,請參考:https://novita.ai/docs/get-started/quickstart.html#_2-manage-api-key。
api_key="<YOUR Novita AI API Key>",
)
model = "Nous-Hermes-2-Mixtral-8x7B-DPO"
stream = True # 或 False
max_tokens = 512
chat_completion_res = client.chat.completions.create(
model=model,
messages=[
{
"role": "system",
"content": "Act like you are a helpful assistant.",
},
{
"role": "user",
"content": "Hi there!",
}
],
stream=stream,
max_tokens=max_tokens,
)
if stream:
for chunk in chat_completion_res:
print(chunk.choices[0].delta.content or "", end="")
else:
print(chat_completion_res.choices[0].message.content)
更多資訊請參閱 Novita AI Model API Reference。

4. 加值點數
我們為新用戶提供附有部分點數的優惠券,供您試用產品。若要增加更多點數,請前往 Billing and Payments 並依照 Payment Methods 指南操作。
結論
將 Hugging Face 嵌入與 LlamaIndex 整合,能顯著增強您的 RAG 系統能力,提供穩健的框架來處理複雜的 NLP 任務。依照本指南概述的步驟,您可以順暢地設定與設定嵌入模型,選擇最適合需求的模型,並透過各種技巧與最佳實務來最佳化效能。
常見問題
[Bug]: No module named ‘llama_index.embeddings.huggingface’
執行 pip install llama-index-embeddings-huggingface
[Bug]: Loading embedding model form Hugging Face in Llama Index throws up an attribute error
檢查您的 torch 版本 !python -c "import torch; print(torch.version)"。降級版本可能有效:!python -m pip install — upgrade torch==1.13.0
Novita AI 是全能雲端平台,助您實現 AI 抱負。整合 API、無伺服器、GPU 虛擬機——您需要的經濟實惠工具。免除基礎設施煩惱,免費開始,讓您的 AI 願景成真。
推薦閱讀
