開發生成式 AI 應用程式
這份文件將說明如何解決開發生成式 AI 應用程式時,在各個階段遇到的難題,包括如何選取模型、根據個人需求自訂模型輸出內容、評估自訂項目,以及部署模型。本文假設您已經想好特定用途,且該用途適用於生成式 AI。想瞭解如何開發用途,請參閱「評估及定義生成式 AI 業務用途」一文。
開始開發生成式 AI 應用程式前,請先評估貴組織的技術準備情況 (功能和基礎架構)。想瞭解如何評估 AI 功能並建立藍圖,以發揮 AI 功能的潛力,請參閱 AI 準備度研討會。如果您打算開發由生成式 AI 自動執行的工作流程,請評估是否應在重要決策階段納入人機迴圈。專人審查有助於做出決策,例如確保負責任的使用方式、符合特定品質驗證規定,或監控生成內容。
生成式 AI 模型
生成式 AI 基礎模型是用好幾 TB 的文字、圖像、程式碼或其他多媒體資料集訓練而成。模型可利用資料和模型架構,識別複雜模式、深入瞭解內容,並根據訓練資料生成文字、圖像、音樂或影片等新內容。
基礎模型是眾多生成式 AI 應用程式的建構核心。模型的能力會轉化為新興功能:只要提供簡單的文字提示指令,生成式 AI 基礎模型就能學會執行各種任務,例如翻譯語言、回答問題、寫詩或編寫程式碼,不用針對每項任務進行明確訓練。生成式 AI 基礎模型也能透過一些提示技巧,適應並執行特定任務,或使用極少的額外訓練資料進行微調。
大型語言模型 (LLM) 是以文字訓練而成,也是基礎模型的一種,通常以深度學習架構為基礎,例如 Google 在 2017 年開發的 Transformer。LLM 可根據數十億個文字樣本和其他內容進行訓練,並針對特定領域自訂。
其他多模態模型則擴展了生成式 AI 應用程式的功能,可處理圖片、影片、音訊和文字等多種形式的資訊。多模態提示詞結合多種輸入格式,例如文字、圖片和音訊。舉例來說,您可以輸入圖片,要求生成式 AI 應用程式列出或描述圖片中的物體。Google 的 Gemini 模型從一開始就建構於多模態的基礎上,因此可針對文字、圖像、影片、音訊和程式碼流暢地進行推論。 Google Cloud的 Model Garden 和 Vertex AI 可協助您尋找及自訂 Google、開放原始碼和第三方來源的各種基礎模型。
選擇模型
選擇模型時,請考量模型的模態、大小和費用,選擇可滿足回覆品質和延遲時間需求,也最經濟實惠的模型。
- 模態:如上一節所述,模型的模態會與訓練模型的高階資料類別相對應,例如文字、圖片和影片。一般來說,模型用途會與其模態密切相關。如果您的用途是文字轉圖像生成,則需要尋找以文字和圖片資料訓練的模型。如果您需要多種模態的彈性,例如多模態搜尋,也有支援多模態用途的模型,但成本和延遲時間可能會較高。
- Vertex AI 模型提供大量生成式 AI 模型。
- Model Garden 提供Google Cloud上的第一方和開放原始碼機器學習模型。
- 大小:模型大小通常取決於參數的數量。一般來說,模型越大,越能夠從資料中學習較複雜的模式和關係,進而生成更高品質的回覆。由於同一系列中較大的模型可能會導致延遲時間較長,成本也較高,因此您可能需要實驗及評估模型,判斷哪種模型大小最適合您的用途。
費用:模型費用與模型功能有關,通常取決於模型參數的數量,不同模型也可能採用不同的計量和收費方式。舉例來說,部分模型會根據輸入和輸出的詞元數量計費,其他模型則會根據模型部署期間使用的節點時數計費。
想瞭解 Vertex AI 的生成式 AI 模型定價,請參閱 Vertex AI 定價。
想瞭解在 Google Kubernetes Engine (GKE) 上部署模型的費用,請參閱 GKE 定價。
功能:調整和蒸餾等功能僅支援部分模型。如果這些功能對您來說很重要,建議您先確認各模型支援的功能。
設計提示詞
提示詞設計是指撰寫提示詞和回覆組合,為語言模型提供額外情境和指令的程序。撰寫提示詞後,請將其做為提示詞資料集提供給模型,進行預先訓練。模型提供預測結果時,會一併傳回您內建的指令。
如要取得特定輸出內容,可以使用提示詞設計策略,例如指示模型完成部分輸入內容,或是提供理想回覆的範例。詳情請參閱這篇文章。
自訂模型
設計提示詞後,您可能會發現模型的回覆效果良好,因此不需要自訂模型。如果模型成效不佳 (例如出現幻覺),可以採用其他自訂技巧。以下各節將介紹這類技巧,說明這些選項如何影響模型的輸出內容。
函式呼叫和擴充功能
函式呼叫和 Vertex AI 擴充功能可擴充模型功能。請考量應用程式的用途,以及單獨使用模型可能不足的情況。您可以新增函式呼叫或擴充功能,協助模型生成內容。舉例來說,模型可以從文字中擷取日曆資訊,然後使用擴充功能尋找及進行預訂。
雖然函式呼叫和擴充功能可以互換使用,但兩者之間仍存在一些高階差異。函式呼叫是非同步作業,您不需要在程式碼中加入憑證。Vertex AI 擴充功能則提供預先建構的選項,可用於複雜工作,因此您無須自行編寫函式。不過,由於 Vertex AI 擴充功能會傳回並呼叫函式,因此使用擴充功能時,您需要在程式碼中加入憑證。
建立基準
「建立基準」是指將模型回覆內容連結至可驗證的來源,藉此擴增回覆內容。如要建立模型基準,請將模型連結至資料來源。建立模型基準有助於減少幻覺發生,進而提高生成內容的可信度。
「檢索增強生成」(RAG) 是常用的模型建立基準技術。 RAG 會使用搜尋功能尋找相關資訊,然後將該資訊新增至模型提示詞。使用 RAG 時,輸出內容會以事實和最新資訊為依據。RAG 搜尋會使用向量嵌入和向量資料庫,將資料儲存為非結構化資料 (例如文字和圖片) 的數值表示形式。詳情請參閱「什麼是向量資料庫」相關說明。
想瞭解如何在 Vertex AI 中建立基準,請參閱「建立基準總覽」一文;想瞭解如何在 AlloyDB for PostgreSQL 中設定嵌入工作流程,請參閱這篇文章,查看嵌入工作流程範例。
模型調整
如果需要執行特殊工作,例如訓練語言模型使用特定術語,可能需要比單純設計提示詞更多的訓練。在這種情況下,您可以使用模型調整功能來提升成效,並讓模型遵循特定的輸出要求。
如要調整模型,請先建立訓練資料集,然後選取調整方法,例如監督式調整、人類回饋增強學習 (RLHF) 調整或模型蒸餾。資料集大小和調整方法取決於模型和您要最佳化的項目。舉例來說,專門的特定工作需要較小的資料集,才能獲得顯著改善。想進一步瞭解模型調整作業,請參閱這篇裝一文。
評估模型
模型評估作業可協助您評估提示詞和自訂項目對模型成效的影響。每種評估方法的優缺點不進相同。舉例來說,以指標為基礎的評估可自動進行,並採用可量化的方式評估成效,因此能快速擴大規模。不過,指標可能會過度簡化結果,並忽略自然語言的脈絡和細微差異。為減少這些缺點造成的影響,請搭配人工評估使用各種指標。
Vertex AI 的生成式 AI 提供自動並排比較,可讓您比較兩個模型的輸出內容與基準真相。而您可參考第三個模型選取品質較高的回覆。自動並排比較的結果與人工評估員的結果相去不遠,但速度更快,而且可隨時使用。不過,如果想進行比較,這個方法需要比評估模型更大的模型,可能導致出現固有偏誤,因此建議您應進行部分人工評估。
無論採用哪種評估方法,您都需要評估資料集。評估資料集包含您建立的提示詞和基準真相 (理想回應) 組合。建立資料集時,請納入與所評估工作一致的多種範例組合,以便取得有意義的結果。
部署模型
部署模型時,系統會將端點和實體機器資源與模型建立關聯,以便提供低延遲的線上預測結果。並非所有模型都需要部署。舉例來說,Vertex AI 生成式 AI 提供的 Google 基礎模型已有端點。這些端點專屬於您的 Google Cloud 專案,可立即使用。不過,如果您調整任何這類模型,就必須將其部署至端點。
部署模型時,請決定要部署在全代管環境還是自行管理的環境。在全代管環境中,您可以選取所需的實體資源,例如機型和加速器類型,Vertex AI 就會為您例項化及管理資源。舉例來說,如要啟用線上預測功能,並讓 Vertex AI 為您管理部署資源,請參閱「將模型部署至端點」一文。在自行管理的環境中,您可以更精細地控管資源,但必須自行管理。在自行管理的環境中,您可以在 GKE 等平台上提供模型。
決定要部署的環境類型後,請考量預期流量、延遲時間需求和預算。您必須在這些因素與實體資源之間取得平衡。舉例來說,如果降低成本是首要目標,您或許可以接受使用成本較低,但延遲時間較長的機器。採用測試環境就是這類衡量情況的絕佳範例。想進一步瞭解如何選擇機型,請參閱「決定用於 Vertex AI 端點的理想機型」筆記本。
負責任的 AI 技術
Vertex AI 生成式 AI 遵照 Google AI 開發原則設計。不過,請務必測試模型,確實以安全且負責任的方式使用模型。由於 LLM 的功能相當多元,因此難以預測會輸出什麼出乎意料或未預期的內容。
為您的用途開發應用程式時,請考量生成式 AI 模型的限制,妥善防範可能發生的濫用和非預期問題。舉例來說,模型品質取決於您使用的資料,如果提供給模型的資料不夠理想 (例如不準確或不完整),就無法期待模型發揮最佳效能。請確認輸入的資料和提示詞正確無誤,否則模型可能會產生不盡理想的效果或錯誤輸出內容。如要進一步瞭解生成式 AI 模型的限制,請參閱「負責任的 AI 技術」一文。