共用方式為


適用於開發人員的 Generative AI 解決方案

由大型語言模型 (LLM) 啟用的產生 AI,為軟體開發人員和組織開闢了令人興奮的新可能性。 Azure OpenAI 服務等服務可透過易於使用的 API 來存取 AI 開發。 所有技能層級的開發人員都可以將進階 AI 功能整合到其應用程式中,而不需要特殊知識或硬體投資。

身為應用程式開發人員,您可能想要瞭解您可以扮演的角色,以及適合的位置。 例如,您可能想知道該將學習專注在「AI 堆疊」中的哪個層級。 或者,您可能會想知道在現有技術下您能建造什麼。

若要回答這些問題,您必須先開發一種心理模型,以對應新術語和技術如何融入您已了解的內容。 開發心理模型可協助您在應用程式中設計和建置產生式 AI 功能。

在一系列文章中,我們會示範您目前軟體開發體驗如何套用至產生式 AI。 當您開始開發第一個生成式 AI 解決方案時,這些文章也會奠定關鍵詞和概念的基礎。

企業如何受益於使用生成式 AI

若要瞭解您目前軟體開發體驗如何套用至 Generative AI,請務必了解企業想要如何受益於使用 Generative AI。

企業將產生 AI 視為改善客戶參與、提高營運效率,以及增強解決問題和創造力的方法。 將產生 AI 整合到現有的系統中,可讓企業有機會增強其軟體生態系統。 它可以使用進階 AI 功能來補充傳統軟體功能,例如為使用者提供個人化建議,或智慧代理,以回答關於組織、其產品或服務的特定問題。

以下是一些常見案例,其中產生 AI 可協助企業:

  • 內容產生

    • 產生文字、程序代碼、影像和音效。 此案例適用於營銷、銷售、IT、內部通訊等等。
  • 自然語言處理

    • 透過建議或完整產生訊息來撰寫或改善商務通訊。
    • 使用「與您的數據聊天」。也就是說,讓用戶能夠使用儲存在組織資料庫或文件中的數據,在聊天體驗中詢問問題,做為解答的基礎。
    • 摘要、組織和簡化大型內容主體,讓內容更容易存取。
    • 使用語意搜尋。 也就是說,允許使用者搜尋文件與資料,而不需使用精確的關鍵字匹配。
    • 翻譯語言以增加內容的觸達和可及性。
  • 資料分析

    • 分析市場並識別數據的趨勢。
    • 建立「假設狀況」案例模型,以協助公司規劃業務的每個領域可能變更或挑戰。
    • 分析程式代碼以建議改善、修正 Bug,以及產生檔。

軟體開發人員有機會藉由將產生的 AI 應用程式和功能整合到其組織所依賴的軟體中,大幅提升其影響。

如何建置生成式 AI 應用程式

雖然 LLM 會執行繁重的工作,但您建置整合、協調及監視結果的系統。 有很多東西可以學習,但您可以套用您已經具備的技能,包括如何:

  • 使用 REST、JSON 或語言特定的 SDK 來呼叫 API
  • 協調對 API 的呼叫並執行商業規則
  • 儲存至資料庫並從中取回
  • 將輸入和結果整合到用戶體驗中
  • 建立可從 LLM 呼叫的 API

開發以您現有技能為基礎的產生 AI 解決方案。

開發人員工具和服務

Microsoft投資開發工具、服務、API、範例和學習資源,以協助您開始產生 AI 開發旅程。 每個都強調構建生成式 AI 解決方案所需的主要重點關注事項或責任。 若要有效地使用指定的服務、API 或資源,挑戰是確保您:

  • 瞭解生成式 AI 功能中某特定類型的一般職能、角色和責任。 例如,在我們討論描述擷取增強生成(RAG)型聊天系統的概念性文章中,系統中有許多架構責任。 請務必先仔細瞭解問題領域和條件約束,再設計可解決問題的系統。
  • 瞭解針對特定功能、角色或責任所存在的 API、服務和工具。 既然您已了解問題網域和條件約束,您可以選擇使用自定義程式代碼或現有的低程式代碼/無程式代碼工具自行建置系統的該層面,也可以呼叫現有服務的 API。
  • 瞭解選項,包括程式碼為中心的方案以及無程式碼/低程式碼方案。 您可以自己打造一切,但這樣是否是您時間和技能的有效使用? 根據您的需求,您通常可以結合技術和方法的組合(程序代碼、無程式代碼、低程式代碼、工具)。

在應用程式中建置產生的 AI 功能沒有單一正確的方法。 您可以從許多工具和方法中選擇。 重要的是要評估每一項的優缺點。

從應用層開始

您不需要了解生成式 AI 的運作原理,就能開始並有效地提高生產力。 如先前所述,您可能已經足夠瞭解。 您可以使用 API 並套用現有的技能來開始使用。

例如,您不需要從頭開始訓練自己的 LLM。 培訓 LLM 需要大多數公司不願意投資的時間和資源。 相反地,您可以透過調用 Azure OpenAI API 等現有託管服務,在 GPT-4 等已經預先訓練的基礎模型上進行開發。 將產生 AI 功能新增至現有的應用程式與根據 API 呼叫新增任何其他功能並無不同。

研究 LLM 的訓練方式,或其運作方式可能會滿足您的智力好奇心,但充分瞭解 LLM 的運作方式,需要深入了解數據科學和支援它的數學背景。 獲得這項理解可能包括統計數據、機率和信息理論的研究生級課程。

如果您有計算機科學背景,您可以瞭解大部分的應用程式開發發生在研究和技術的「堆棧」中較高層。 您可能會對每一層有一些瞭解,但您可能會專攻應用程式開發層,並著重於特定的程式設計語言和平臺,例如可用的 API、工具和模式。

AI 領域也是如此。 您可以了解並欣賞建置在 LLM 之上的理論,但您可能會將注意力集中在應用層上,或協助實作模式或程式,以在您的公司中啟用產生 AI 工作。

以下是在新的或現有應用程式中實作產生 AI 功能所需的知識層級的過度簡化表示:

圖表,描述在應用程式中實作產生 AI 功能所需的知識層級。

在最低層級,數據科學家會根據對統計數據、機率理論等的深入數學理解,進行數據科學研究來解決或改善 AI。

一層向上,根據最低的基礎層,數據科學家在 LLM 中實作理論概念,建置神經網路,訓練權數和偏差,以提供一個實用的軟體片段,可以接受輸入(提示),併產生結果(完成)。 根據提示生成完成項的計算過程稱為 推斷。 數據科學家會決定 神經網路的神經元 如何預測下一個字或像素的產生方式。

鑒於定型模型和根據輸入產生結果所需的處理能力,模型通常會定型並裝載在大型數據中心。 在本地電腦上可以訓練或執行模型,但結果通常很慢。 速度和效率由專用 GPU 顯示卡提供,協助處理所需的計算以產生成果。

裝載於大型資料中心時,會透過 REST API 提供對這些模型的程式設計存取。 API 有時會由 SDK「包裝」,而且可供應用程式開發人員輕鬆使用。 其他工具可協助改善開發人員體驗,提供可觀察性或其他公用程式。

應用程式開發人員可以呼叫這些 API 以實作商務功能。

除了以程式設計方式提示模型之外,模式和程式也正在出現,以協助組織根據產生式 AI 建置可靠的商務功能。 例如,模式正在出現,可協助企業確保產生的文字、程序代碼、影像和音效符合道德與安全標準,並承諾客戶數據隱私權。

在這一系列層層考量中,如果您是負責建置商務功能的應用程式開發人員,您有可能不僅止於應用層,還能進一步發展及訓練您自己的大型語言模型(LLM)。 但是,這種理解水準需要一套新的技能,通常只有通過高等教育才能開發。

如果您無法致力於在學術上培養數據科學的能力,以助於構建下一層技術架構,您可以專注於提升對應用層領域的知識。

  • API 和 SDK:可用的專案,以及各種端點所產生的內容。
  • 相關工具和服務可協助您建置達到生產環境需求的生成式 AI 解決方案所需的各項功能。
  • 提示工程:如何透過詢問或改述問題來達到最佳結果。
  • 瓶頸出現的地方,以及如何擴展解決方案。 此區域包括了解在記錄或取得遙測時涉及哪些內容,而不會侵犯客戶隱私權。
  • 各種 LLM 的特性:其優點、使用案例、基準檢驗及測量的內容,以及不同廠商及其生成模型之間的主要差異。 此資訊可協助您為組織的需求選擇正確的模型。
  • 您可用來在應用程式中建立有效且具復原性 AI 功能的最新模式、工作流程和程式。

來自Microsoft的工具和服務

您可以使用來自 Microsoft 的低程式代碼和無程式代碼產生 AI 工具和服務,協助您建置部分或全部的解決方案。 各種 Azure 服務可以扮演關鍵角色。 每個都有助於解決方案的效率、延展性和強固性。

以程式代碼為中心的方法的 API 和 SDK

每個產生 AI 解決方案的核心是 LLM 模型。 Azure OpenAI 可讓您存取 GPT-4 等模型中可用的所有功能。

Products 描述
Azure OpenAI 託管服務,可讓您存取 GPT-4 等功能強大的語言模型。 您可以使用數個 API 來執行 LLM 的所有一般功能,包括建立內嵌和建立聊天體驗。 您可以完整存取設定和自定義,以取得您想要的結果。

執行環境

因為您要建置商業規則、呈現邏輯或 API,以將產生 AI 整合到您組織的應用程式中,因此您需要服務來裝載和執行該邏輯。

Products 描述
Azure App 服務(或數個容器型雲端服務之一) 此平臺可以裝載 Web 介面或 API,讓使用者透過此 API 與 RAG 聊天系統互動。 它支援快速開發、部署和調整 Web 應用程式,因此更容易管理系統的前端元件。
Azure Functions 使用無伺服器計算來處理RAG聊天系統中的事件驅動工作。 例如,使用它來觸發數據擷取程式、處理使用者查詢,或處理背景工作,例如數據同步處理和清除。 它允許更模組化、可調整的方法來建置系統的後端。

低程式代碼和無程式代碼解決方案

您可以使用低程式碼或無程式碼的解決方案可靠地託管,並快速建構一些實現您的生成式 AI 概念所需的邏輯。

Products 描述
Azure AI Foundry 您可以使用 Azure AI Foundry 來定型、測試及部署自定義機器學習模型,以增強 RAG 聊天系統。 例如,使用 Azure AI Foundry 來自訂回應生成或改善所擷取資訊的相關性。

向量資料庫

某些生成式 AI 解決方案可能需要儲存和擷取用於增強生成的數據。 例如,RAG 型聊天系統可讓使用者與貴組織的數據聊天。 在此使用案例中,您需要向量數據存放區。

Products 描述
Azure AI 搜尋服務 您可以使用此服務有效率地搜尋大型數據集,以尋找相關信息,以通知語言模型所產生的回應。 這對於RAG(檢索增強生成)系統的擷取元件非常有用,從而確保生成的回應具有盡可能多的資訊性和高度的內容相關性。
Azure Cosmos DB 這個全域散發的多模型資料庫服務可以儲存 RAG 聊天系統需要存取的大量結構化和非結構化數據。 其快速讀取和寫入功能可讓您將即時數據提供給語言模型,以及儲存使用者互動以進行進一步分析。
Azure Cache for Redis 這個完全受控的記憶體內部數據存放區可用於快取經常存取的資訊、降低延遲,以及改善RAG聊天系統的效能。 它特別適用於儲存會話數據、用戶喜好設定和常見查詢。
適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器 此受控資料庫服務可以儲存應用程式數據,包括記錄、使用者配置檔和歷程記錄聊天數據。 其彈性和延展性支援RAG聊天系統的動態需求,讓數據持續可用且安全。

這些 Azure 服務都有助於為產生 AI 解決方案建立全面、可調整且有效率的架構。 其可協助開發人員存取和使用 Azure 雲端功能和 AI 技術的最佳功能。

使用 Azure OpenAI API 以程式代碼為中心的產生 AI 開發

在本節中,我們將焦點放在 Azure OpenAI API 上。 如先前所述,您可以透過 RESTful Web API 以程式設計方式存取 LLM 功能。 您可以使用任何新式程式設計語言來呼叫這些 API。 在許多情況下,語言特定或平臺特定的 SDK 會以包裝 REST API 呼叫的方式運作,使得使用經驗更符合語言習慣。

以下是 Azure OpenAI REST API 包裝函式的清單:

如果語言或平臺 SDK 無法使用,最壞的情況是您必須直接對 Web API 進行 REST 呼叫:

大部分的開發人員都熟悉如何呼叫 Web API。

Azure OpenAI 提供一系列 API,其設計目的是為了協助不同類型的 AI 支援工作,讓開發人員可以將進階 AI 功能整合到其應用程式中。 以下是 OpenAI 提供的主要 API 概觀:

  • 聊天生成 API:此 API 著重於文字生成場景,包括支援建立聊天機器人和虛擬助理,以進行自然、人類對話般的互動功能。 其已針對互動式使用案例進行優化,包括客戶支援、個人助理和互動式學習環境。 不過,它用於所有文字產生案例,包括摘要、自動完成、寫入檔、分析文字和翻譯。 這是目前處於預覽狀態的視覺功能的進入點(也就是上傳影像並詢問其相關問題)。
  • 仲裁 API:此 API 的設計目的是協助開發人員識別及篩選文字中潛在的有害內容。 這是一種工具,可透過自動偵測冒犯性、不安全或其他不適當的內容,協助確保更安全的用戶互動。
  • 內嵌 API:內嵌 API 會產生文字輸入的向量表示法。 它會將單字、句子或段落轉換成高維度向量。 這些內嵌可用於語意搜尋、叢集、內容相似度分析等等。 它會擷取文字中的基礎意義和語意關聯性。
  • 影像產生 API:使用此 API 從文字描述產生原始、高品質的影像和藝術。 它以 OpenAI 的 DALL 為基礎。E 模型,可根據收到的提示,建立符合各種樣式和主旨的影像。
  • 音訊 API:此 API 提供 OpenAI 音訊模型的存取權,並專為自動語音辨識而設計。 它可以將口語轉譯成文字,或將文字轉譯成語音,支援各種語言和方言。 對於需要語音命令、音訊內容轉譯等等的應用程式而言,它很有用。

雖然您可以使用產生 AI 來處理許多不同的媒體形式,但在本文中的其餘部分,我們著重於以文字為基礎的產生 AI 解決方案。 這些解決方案包括聊天和摘要等案例。

開始使用生成式 AI 進行開發

不熟悉語言、API 或技術的軟體開發人員通常會遵循示範如何建置小型應用程式的教學課程或訓練課程模組來開始學習。 有些軟體開發人員偏好採用自我引導方法,並建置小型實驗性應用程式。 這兩種方法都有效且有用。

在起步時,最好從小做起,少承諾,多反覆試驗,並建立您的理解和技能。 利用生成式 AI 開發應用程式具有獨特的挑戰。 例如,在傳統軟體開發中,您可以依賴決定性輸出。 也就是說,針對任何一組輸入,您每次都能預期完全相同的輸出。 但生成性 AI 是不具確定性的。 對於給定的提示,您永遠不會得到完全相同的答案兩次,這是許多新挑戰的根源。

當您開始使用時,請考慮這些秘訣。

秘訣 1:清楚瞭解您想要達成的目標

  • 請特別說明您嘗試解決的問題:Generative AI 可以解決各種問題,但成功來自於明確定義您想要解決的特定問題。 您是否嘗試產生文字、影像、程序代碼或其他專案? 更具體的是,您可以更妥善地量身打造 AI 以符合您的需求。
  • 瞭解您的物件:瞭解您的對象有助於量身打造 AI 的輸出,以符合其期望,無論是特定領域的休閒用戶或專家。

秘訣 2:使用 LLM 的優點

  • 瞭解 LLM 的限制和偏差:雖然 LLM 很強大,但它們具有限制和固有偏差。 瞭解限制和偏差可協助您針對這些限制進行設計,或納入風險降低措施。
  • 瞭解 LLM 擅長的領域:LLM 在內容創作、摘要和語言翻譯等任務中表現出色。 雖然其決策功能和歧視功能在每一個新版本中都變得更強,但可能有其他類型的 AI 更適合您的案例或使用案例。 選擇作業的正確工具。

秘訣 3:如需良好的結果,請使用良好的提示

  • 學習提示工程最佳做法:製作有效的提示是藝術。 試驗不同的提示,以查看它們如何影響輸出。 簡潔但具描述性。
  • 認可反覆精簡:通常,第一個提示可能不會產生所需的結果。 這是一個試用和錯誤的過程。 使用輸出進一步優化提示。

建置您的第一個再生 AI 解決方案

如果您想要立即著手嘗試建構一個生成式 AI 解決方案,建議您查看 使用 Python和自有資料範例開始聊天。 本教學課程也適用於 .NETJavaJavaScript

應用程式設計的最終考慮

以下是需要考慮的簡要清單以及本文可能會影響您應用程式設計決策的其他要點:

  • 定義問題範疇和目標受眾,以配合 AI 的功能與使用者的期望。 針對預定的使用案例優化解決方案的有效性。
  • 如果低程式代碼/無程式代碼平臺符合您的專案需求,請使用低程式代碼/無程式代碼平台進行快速原型設計和開發。 評估開發速度和可自定義性之間的取捨。 探索應用程式元件低程式碼和無程式碼解決方案的可能性,以加快開發速度,並讓非技術小組成員參與專案。