使用資料科學和 AI 快速操作,在 GPU 上微調及部署開源 LLM
簡介
本教學課程將引導您使用 Oracle Cloud Infrastructure (OCI) Data Science 服務,使用資料科學提供的 AI 快速操作功能微調開源 LLM。輕鬆點選即可使用 AI Quick Actions 來微調 Hugging Face 提供的 Mistral LLM,該 LLM 會在 NVIDIA 發布的常見問題中微調。接著,AI Quick Actions 將用於在 OCI 中部署該調整模型至 A10 GPU 資源配置。接著會使用在 Jupyter 筆記型電腦中執行的 Python 程式碼,顯示調整模型的輸出具有與 NVIDIA 訓練資料類似的所需樣式和音調。
目標
- 在 OCI 中啟動資料科學記事本階段作業。
- 下載 NVIDIA 常見問題。
- 使用 AI Quick Actions 在該常見問題上微調 Hugging Face LLM,並在 OCI 中針對 GPU 資源配置執行微調。
- 使用 AI 快速操作來檢查微調模型的學習曲線,以確認調整後的 LLM 適用於部署。
- 使用 AI 快速操作,在 GPU 上部署微調的 LLM。
- 使用程式碼呼叫已部署模型的端點。
- 使用 OCI 日誌來監控進入該已部署模型端點的流量。
- 在資料科學的 Jupyter 筆記型電腦中使用 python,以評估已部署模型的品質。
必備條件
- 熟悉 OCI 資料科學。
- 在具有 A10 或更高 GPU 資源配置的區域中存取 OCI 租用戶。
- OCI 原則可讓您啟動 Data Science 記事本,以及使用 AI Quick Actions 在 GPU 上微調和部署 LLM;如需原則的詳細指導,請參閱 https://github.com/oracle-samples/oci-data-science-ai-samples/tree/main/ai-quick-actions/policies。
- OCI 資源主體已啟用,因此您可以將檔案寫入 OCI 物件儲存的儲存桶。
- OCI 資源主體已啟用,因此您可以與 OCI 中部署的模型互動。
- 具有有效權杖的 Hugging Face 帳戶。
工作 1:佈建資料科學記事本階段作業
-
使用 OCI 主控台建立資料科學專案。
-
瀏覽至該專案並建立有兩個或更多 ECPU 的資料科學記事本階段作業。
-
開啟該記事本階段作業,然後按一下擴充。
-
在資料科學中啟動終端機階段作業。
-
使用該終端機複製一個包含此自學課程將使用之 Jupyter 筆記型電腦的 github 儲存區域:
git clone https://github.com/oracle-nace-dsai/quick-actions-demo-archive.git -
複製 NVIDIA 常見問題:
git clone https://huggingface.co/datasets/ajsbsd/nvidia-qa -
將 NVIDIA 常見問題複製到第一個儲存庫的資料目錄
cp nvidia-qa/NvidiaDocumentationQandApairs.csv quick-actions-demo-archive/data/. -
安裝然後啟動
General Machine Learning for CPUs on Python 3.11conda:odsc conda install -s generalml_p311_cpu_x86_64_v1 conda activate /home/datascience/conda/generalml_p311_cpu_x86_64_v1 -
每 https://github.com/oracle-samples/oci-data-science-ai-samples/blob/main/ai-quick-actions/model-deployment-tips.md#using-python-sdk-without-streaming 安裝 LangChain
pip install langgraph "langchain>=0.3" "langchain-community>=0.3" "langchain-openai>=0.2.3" "oracle-ads>2.12"
任務 2:設定 Hugging Face 帳戶
-
在 https://huggingface.co. 建立 Hugging Face 帳戶
-
瀏覽至您的 Hugging Face 帳戶 > 存取權杖,然後建立已勾選這些權限的新「使用者存取權杖」:
- 讀取您個人命名空間下所有儲存區域的內容
- 可存取之所有公用限定儲存區域內容的讀取存取權
-
使用 Data Science 終端機階段作業,以 Hugging Face 記錄您的 User Access Token:
git config --global credential.helper store huggingface-cli login
作業 3:建立物件儲存的儲存桶
在與資料科學記事本相同的區域和區間中建立物件儲存的儲存桶。
- 選取啟用物件版本控制
作業 4:設定記錄日誌
建立日誌群組,然後建立自訂日誌
- 若為建立代理程式組態,請選擇
Add configuration later
任務 5:使用資料科學的 AI 快速操作,在 A10 GPU 資源配置上部署 LLM,無需微調
-
導覽至資料科學記事本 > 啟動器 > AI 快速動作
a.搜尋
Mistral模型
b。按一下mistralai/Mistral-7B-Instruct-v0.3磚塊
c。在選取的上方日誌中按一下部署 -
模型部署大約需要 15 分鐘。您可以選取在終端機中開啟日誌來監督建置日誌。
-
模型部署完成後,請導覽至部署 > < 您剛部署的模型 > > 測試您的模型,並使用簡單的問題來測試該模型,例如:
Who wrote the Harry Potter book series? -
有些簡單的 LLM 可能無法正確回答下列測試問題,但
Mistral-7B-Instruct-v0.3在回答這些問題時會是相當好的工作:A bat and a ball cost $1.10 in total. The bat costs $1.00 more than the ball. How much does the ball cost? Every cat has four legs. My pet has four legs. Is my pet a cat? Who is President of the United States?
工作 6:與已部署模型的端點互動
-
瀏覽至部署 > < 您剛部署的模型 > 呼叫您的模型以查看已部署模型的端點。然後使用「資料科學」終端機將該端點儲存為 Shell 變數。舉例而言:
endpoint=https://modeldeployment.<region>.oci.customer-oci.com/<model_ocid>/predict -
傳送提示至已部署模型的端點:
prompt="Who is President of the United States?" request_body='{"model":"odsc-llm","prompt":"'$prompt'","max_tokens":100,"temperature":0.1,"top_k":50,"top_p":0.99,"stop":[],"frequency_penalty":0,"presence_penalty":0}' oci raw-request --http-method POST --target-uri $endpoint --request-body "$request_body" --auth resource_principal -
您可以使用這個 bash 迴圈,在十秒內呼叫模型的端點 100 次:
for i in $(seq 1 100); do oci raw-request --http-method POST --target-uri $endpoint --request-body "$request_body" --auth resource_principal & echo $i sleep 0.1 done -
請瀏覽至部署 > < 您剛部署的模型 > > 日誌,檢視剛剛傳送至模型端點的流量。

工作 7:使用 AI 快速動作微調 LLM
先前的工作部署了不進行微調的 Mistral LLM。此任務將微調,然後部署相同的 LLM。任務 9 將比較模型的輸出、已調整和未調整。此工作和下一個工作也會使用從此程式碼存檔下載的兩個 Jupyter 筆記型電腦。
-
使用 Data Science 記事本的檔案瀏覽器導覽至
quick-actions-demo-archive資料夾,然後開啟prep_data.ipynbJupyter 記事本。 -
選取
generalml_p311_cpu_x86_64_v1核心。 -
修訂記事本的第二至最後一個段落,使其參照您的租用戶 / 命名空間和物件儲存的儲存桶。
-
執行
prep_data.ipynbJupyter 筆記型電腦,將:- 從檔案
data/NvidiaDocumentationQandApairs.csv閱讀 NVIDIA 常見問題 - 將 CSV 常見問題當作具有 AI 快速操作預期之
prompt和completion欄位的 JSON 記錄。 - 執行該資料的 90:10 分割成 train:test 範例。
- 將訓練範例推送至物件儲存中的
quick_actions/tuning_data/tune_sample.jsonl檔案。
- 從檔案
-
導覽至 AI 快速動作 > 模型 >
mistralai/Mistral-7B-Instruct-v0.3。接著,使用下列設定值按一下微調:- 物件儲存路徑 =
quick_actions/tuning_data/tune_sample.jsonl - 驗證分割 =
20% - 結果物件儲存路徑 =
quick_actions/tuning_results - 如果有可用性,形狀 =
BM.GPU.A10.4。否則,請使用10.2或10.1資源配置 - 選取您的日誌群組和日誌
- 物件儲存路徑 =
-
使用下列設定值啟用顯示進階組態:
batch_size = 64sequence_len = 256learning_rate = 0.000025epochs = 12
-
在 A10.2 上微調需要大約 60 分鐘,因此按一下在終端機中開啟日誌以監督微調工作的日誌。
-
在指標區段中檢視微調模型的學習曲線。妥善調整的模型將具有「驗證損失」曲線,以遞減,然後以遞增紀元進行高原。

工作 8:部署微調的 LLM
-
瀏覽至 AI 快速動作 > 微調模型 > < 您的剛調整模型 > > 使用下列設定值部署:
- 運算資源配置 =
VM.GPU.A10.1 - 選取您的日誌群組和日誌
- 運算資源配置 =
-
按一下在終端機中開啟日誌以監督部署日誌
工作 9:測試微調 LLM 的部署
-
模型部署完成後,請導覽至部署 > < 您剛才調整的模型 > > 測試您的模型,並使用
prep_data.ipynb筆記型電腦中顯示的測試範例問題來測試模型,例如:What benefits does Unified Memory bring to complex data structures and classes? -
將模型的端點複製 / 貼上至您終端機階段作業的 Shell 變數:
endpoint=https://modeldeployment.<region>.oci.customer-oci.com/<model_ocid>/predict -
傳送提示至已部署模型的端點:
prompt="What benefits does Unified Memory bring to complex data structures and classes?" request_body='{"model":"odsc-llm","prompt":"'$prompt'","max_tokens":100,"temperature":0.1,"top_k":50,"top_p":0.99,"stop":[],"frequency_penalty":0,"presence_penalty":0}' oci raw-request --http-method POST --target-uri $endpoint --request-body "$request_body" --auth resource_principal -
使用此 bash 迴圈呼叫模型端點 100 次:
for i in $(seq 1 100); do oci raw-request --http-method POST --target-uri $endpoint --request-body "$request_body" --auth resource_principal & echo $i sleep 0.1 done -
按一下微調 / 部署模型的日誌,即可檢視進入該模型端點的最新流量
-
開啟
compare_models.ipynbJupyter 筆記型電腦並更新段落 [8],以參照您兩個模型 (已調整和未調整) 的端點。 -
執行該記事本,它將會:
- 閱讀常見問題記錄的測試範例。
- 使用 python 將五個測試問題饋送至微調和未調整模型的端點,並比較其回應。
-
請注意第 [10] 段說明如何使用 python 呼叫已部署模型的端點,這相當簡單:

-
複查此測試的主要發現項目:
- 微調 LLM 的回應有相當類似於實際 NVIDIA 組成之常見問題解答的語調、樣式和長度。
- 未調整 LLM 的回應更詳細,並包含許多可能不正確的無關陳述。
- 微調與未調整 LLM 的回應頻率比不多且相等地不正確。
- 對較大的資料集微調可能會提高其回應的準確性。
作業 10:刪除資源
-
導覽至 AI 快速動作 > 部署,然後刪除您的模型部署。
-
導覽至 AI 快速動作 > 模型 > 微調模型並刪除。
-
您可以在 OCI 主控台頁面瀏覽至您的資料科學記事本階段作業,然後終止。
-
按一下工作,然後刪除微調工作。
-
刪除您的資料科學專案。
-
您可以在「OCI 主控台」頁面瀏覽至您的「物件儲存」儲存桶,然後將它刪除。
-
使用 OCI 主控台刪除您的日誌和日誌群組。
相關連結
確認
- 作者 - joe.hahn@oracle.com 資深資料科學家 Joe Hahn
- 貢獻者 - kevin.ortiz@oracle.com 資深雲端架構師 Kevin Ortiz
其他學習資源
在 docs.oracle.com/learn 上探索其他實驗室,或在 Oracle Learning YouTube 頻道上存取更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。
如需產品文件,請造訪 Oracle Help Center 。
Fine-Tune & Deploy an Open Source LLM on GPU using Data Science and AI Quick Actions
G42937-02