建立、訓練或推論密集型AI模型,需要昂貴的資源、時間和專業知識。然而,若能善用雲端平台,開發人員可隨處存取其專案計畫,將架設時間降至最低並最佳化工作流程。本文章將探討如何使用Intel Developer Cloud,釋放其潛力以啟動開發專案。
建立、訓練或推論密集型AI模型,例如大型語言模型(LLM)等,需要昂貴的資源、時間和專業知識,並且需要採購合適的硬體以運行其工作負載,甚至知道從何著手,這些因素都可能成為開發人員創新發展的障礙。
然而,若能善用雲端平台,開發人員可隨處存取其專案計畫,將架設時間降至最低並最佳化工作流程,以快速進入市場。
此外,雲端平台也能降低硬體故障導致資料遺失的風險、確保資料安全,並讓開發人員可以迅速將內容從雲端傳送到終端,輕鬆地利用相關的即用型軟體最佳化其專案,建立更好的解決方案和創新。具有競爭力的雲端平台有助於實現AI無所不在,讓希望嘗試新軟硬體工具的開發人員可以更有效率地建立新專案。
在這篇文章中,將探討如何開始使用Intel Developer Cloud,釋放其潛力以啟動開發專案。
建立帳戶
首先,建立帳戶,完成以下幾個步驟:
‧造訪cloud.intel.com。可以在此找到可用的軟體(英特爾工具包和函式庫)、硬體以及資源來開始操作。
‧開設帳戶。從標準免費帳戶、付費高級帳戶到企業帳戶,選擇最符合的帳戶,也能隨時升級以滿足自身開發需求。
‧訂閱優先服務級別,依照註冊流程提供並驗證電子郵件和基本資訊。
‧建立並驗證帳戶後,即可存取平台控制台以快速取得工具和資源。
設定運算實例
在Intel Developer Cloud的控制台主頁中,可以透過硬體目錄存取各種硬體配置。接下來,以Intel Max系列處理器作為範例說明。
從目錄中選擇硬體選項,並記下符合的實例系列、類型(預設為4x GPU機器)和機器映像(預設為Ubuntu作業系統)。命名實例後,準備設定SSH金鑰以進行存取。
設定金鑰
Intel Developer Cloud提供了詳細的命令列說明,用於設定SSH金鑰和遠端存取的實例。將在本機電腦上產生SSH金鑰,並向英特爾開發者雲端提供公鑰。
依照自身的作業系統建立SSH金鑰。按下〔建立金鑰〕後,執行以下步驟。
情境一:Linux作業系統和macOS
在系統上啟動終端裝置,將以下內容複製並貼上到終端裝置:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/ id_rsa
如果系統出現覆蓋選項,請選擇「否」。如果出現提示,則建立重複密碼短語(Passphrase)。接著,將以下內容複製並貼上到終端裝置以開啟SSH金鑰:
vi ~/.ssh/id_rsa.pub
從終端裝置,複製產生的金鑰,並將其貼到Intel Developer Cloud實例設定的金鑰內容欄位。
情境二:Microsoft Windows作業系統
在系統上啟動PowerShell終端裝置視窗。如果之前尚未產生金鑰,則將以下內容複製貼到PowerShell視窗中:
mkdir $env:UserProfile\.ssh
把以下內容複製貼到PowerShell視窗以產生SSH金鑰:
ssh-keygen -t rsa -b 4096 -f $env:UserProfile\.ssh\id_rsa
如果系統出現覆蓋選項,請選擇「否」。如果出現提示,則建立重複密碼短語。然後,將以下內容複製並貼到PowerShell視窗以開啟自己的SSH金鑰:
cat $env:UserProfile\.ssh\id_rsa.pub
從PowerShell視窗,複製產生的金鑰,並將其貼上到Intel Developer Cloud實例設定的金鑰內容欄位。
若要了解如何產生金鑰的更多詳細資訊,請依照How to create a SSH Key。上傳的金鑰將顯示在金鑰畫面,可藉此繼續設定實例。
啟動運算實例
按下啟動,本次的實例即可開始配置並很快準備就緒!按下實例名稱,畫面上會列出運算實例的規格和〔How to Connect〕按鈕,按下此鈕將顯示從執行Windows、macOS或Linux的本機裝置連接到運算實例的指令操作說明。按照指令操作說明在本機裝置上命令列介面中進行操作,將SSH連接到Intel Developer Cloud實例,即可開始作業。
查看並確認實例中的裝置
透過在視窗中執行以下命令來查看並確認實例中的裝置:
sycl-ls
設定oneAPI
連接到Intel Developer Cloud實例後,第一步先在Intel Developer Cloud上的機器初始化oneAPI。在命令列中執行以下指令,讓oneAPI為目前的環境提供建立應用程式的函式庫、編譯器等:
source /opt/intel/oneapi/setvars. sh --force
聊天機器人操作示範
在平台上開發和運行個人的AI應用程式十分簡單,只需幾行程式碼即可利用Hugging Face Transformers和英特爾AI軟體透過Neural Chat建立AI聊天機器人。Neural Chat提供單行API呼叫,可使用Intel Neural Compressor執行最佳化。
Neural Chat是英特爾的免費函式庫,提供與Hugging Face Transformer介接的高階建構模組,只需要幾行程式碼就能建立文字聊天機器人。它還提供插入擴充功能,例如微調或檢索增強生成(RAG),以便使用自己的資料自訂聊天機器人,另有一些插件可以為聊天機器人增加語音輸入和輸出功能。
開始建立Neural Chat聊天機器人
執行以下三行程式碼,開始建立Neural Chat聊天機器人:
from intel_extension_for_ transformers.neural_chat import build_chatbot chatbot = build_chatbot() response = chatbot.predict("Tell me about Intel Xeon Scalable Processors.")
然後,開發人員只須添加幾行程式碼,即可新增用於語音輸入和輸出的模組。輸入採用自動語音辨識模型,而輸出則根據聊天機器人的文字輸出產生音訊(圖1)。
使用自己的資料來自訂聊天機器人
如果企業想用自己的資料來自訂聊天機器人,可採用以下幾種方法:
1. 提示工程(Prompt Engineering)。這不需要對LLM進行額外的訓練或修改,但需要在推論過程中調整提示,讓LLM提供所需的資訊。
2. 檢索增強生成(Retrieval-augmented Generation,RAG)。讓模型能夠利用特定領域的知識庫來生成回應,使得LLM可以在知識新增到資料庫後,立即使用這些資訊來產生最新的答案。
3. 使用特定領域的知識庫微調,透過少量的額外訓練來更新LLM。隨著LLM規模的增長,僅微調少量參數的參數高效微調(Parameter Efficient Fine-tuning,PEFT)變得盛行,因為它減少了所需的運算量,將資訊內建到模型中,讓微調的推論延遲比RAG更快。
4. 從頭開始訓練。由於從頭開始訓練所需的專業知識和運算成本較高,這通常是LLM開發人員的專業領域。
如果希望使用自己的數據,但卻又沒有足夠的資源,就不適合採用提示工程或從頭開始訓練。RAG和微調反而是比較好的選項,這兩種方法只要使用CPU就可以完成。
以下範例使用上述程式碼,示範在Intel Developer Cloud上如何執行Neural Chat聊天機器人。
這裡將使用RAG,它結合了基礎模型的語言能力和開發者本身的知識庫。
RAG不需要任何的重新訓練,因此開發者的知識不會嵌入模型中,可以輕鬆地更新知識庫。使用Neural Chat執行RAG只需要增加幾行程式碼即可啟用檢索插件,然後配置Pipeline(工作流),如圖2所示。
首先要新增語音IO,實際上有兩個插件,一個是語音辨識模型,用於從音訊產生文字輸入;另一個將文字輸出轉換為語音,並且可以自訂語音(圖3)。
在機器學習中,推論是指使用浮點數或整數進行運算,混合精度推論是指同時使用浮點數和整數進行運算。
你可能已經注意到,語音IO模型增加了執行階段負載,也許需要更快速的回應,或者需要在較小的裝置上運行。Neural Chat可以輕鬆地用專門針對Transformer模型進行優化的Intel Neural Compressor最佳化技術。只要添加到配置中,隨後即可使用。
現在,每次執行推論時Python腳本都會載入模型。Neural Chat也提供模型推理服務功能,可以使用Python或指令列,也可以在yaml檔案中啟用和配置插件,如圖4所示。
此範例使用帶有檢索插件、基於文字的聊天機器人。模型推理已經在這個運算實例上運行,即可開始使用聊天機器人。
以上為簡短介紹,完整介紹請見:
https://www.youtube.com/watch?v=KWT6yKfu4n0&t=1s
可以從下載實作投影片開始:
https://github.com/intel/intel-extension-for-transformers/blob/main/docs/pubs/AI010_Demystifying%20Generative%20AI%20Build%20Your%20Own%20Talking%20Chatbot.pdf
或造訪Neural Chat GitHub儲存:https://github.com/intel/intel-extension-for-transformers/tree/main/intel_extension_for_transformers/neural_chat
<本文作者:王宗業,美商英特爾公司網路暨邊緣運算事業群平台研發協理,負責Intel Edge AI平台生態系統的推廣,帶領過智慧零售、智慧製造、智慧交通與智慧醫療等專案的開發。在20多年的軟硬體開發、推廣、客戶支援經驗中,含括嵌入式系統、智慧型手機、物聯網、Linux及開源軟體、AI硬體加速器在影像與自然語言處理等領域,並擔任過台灣人工智慧學校經理人班、技術領袖班與Edge AI專班的講師,以及大專院校的深度學習課程業師。>