共用方式為


Microsoft Fabric 中的 Copilot 運作方式

Microsoft Fabric 中的 Copilot 是一種產生式 AI 輔助技術,旨在增強網狀架構平台的數據分析體驗。 本文可協助您瞭解 Fabric 中的 Copilot 運作方式,並提供一些高階指引和考量,以便您能更好地使用它。

備註

Copilot 的功能會隨著時間而演進。 如果您打算使用 Copilot,請確定您隨時掌握 Fabric 的每月更新,以及 Copilot 體驗的任何變更或公告。

本文可協助您瞭解 Fabric 中的 Copilot 運作方式,包括其架構和成本。 本文中的資訊旨在引導您和貴組織有效地使用和管理 Copilot。 本文主要是給以下群體的:

  • BI 和分析主管或經理: 負責監督 BI 計劃和策略的決策者,以及決定要在 Fabric 或其他 AI 工具中啟用和使用 Copilot 的決策者。

  • 網狀架構系統管理員: 組織中負責監督Microsoft Fabric 及其各種工作負載的人員。 網狀架構系統管理員會監督誰可以在 Fabric 中使用 Copilot 來進行這些工作負載,並監視 Copilot 使用量如何影響可用的網狀架構容量。

  • 數據架構師: 負責設計、建置及管理支援組織中數據和分析的平臺和架構的人員。 數據架構設計師會考慮在架構設計中使用 Copilot。

  • 卓越中心(COE)、IT和 BI 小組: 負責協助成功採用和使用組織中 Fabric 等數據平臺的小組。 這些小組和個人可能會使用 Copilot 等 AI 工具,但也支援和指導組織中的自助使用者,以從中受益。

Fabric 中 Copilot 運作方式的概觀

Fabric 中的 Copilot 的運作方式與其他 Microsoft Copilot 類似,例如 Microsoft 365 Copilot、Microsoft Security Copilot,以及 Power Platform 中的 Copilots 和生成式 AI。 不過,有數個層面專屬於 Copilot in Fabric 的運作方式。

程式概觀圖表

下圖描述 Copilot 在 Fabric 中的運作方式概觀。

備註

下圖描述 Fabric 中 Copilot 的一般架構。 不過,視特定工作負載和體驗而定,可能會有新增或差異。

此圖顯示 Fabric 中 Copilot 運作方式的程式流程。

此圖表包含下列部分和程式:

項目 描述
1 使用者在 Fabric、Power BI Desktop 或 Power BI 行動裝置應用程式中為 Copilot 提供輸入。 輸入可以是寫入的提示或產生提示的另一個互動。 所有與 Copilot 的互動都是用戶專屬的。
2 輸入包含包含提示、使用者令牌和內容的資訊,例如使用者的 Copilot 會話聊天歷程記錄,以及具有系統元數據的中繼提示,包括使用者所在的位置,以及他們在 Fabric 或 Power BI Desktop 中執行的動作。
3 Copilot 會分別處理使用者輸入和大型語言模型 (LLM) 回應的前置處理和後處理。 前置處理和後置處理期間完成的特定特定步驟取決於個人所使用的 Copilot 體驗。 租用戶設定中的 Fabric 系統管理員必須啟用 Copilot 才能使用它。
4 在前置處理期間,Copilot 會執行扎根化,以擷取更多上下文資訊,增強最終 LLM 回應的具體性和實用性。 當前置數據可能包含元數據(例如來自數據湖倉或語意模型的架構)或工作區專案中的數據點,以及來自目前 Copilot 會話中的聊天歷程記錄。 Copilot 只會擷取用戶可存取的地面數據。
5 前置處理的結果是最終輸入:最終提示和基礎數據。 傳送哪些數據取決於特定的 Copilot 體驗,以及使用者要求的內容。
6 Copilot 會將輸入傳送至 Azure OpenAI 服務。 此服務是由 Microsoft 管理,且無法由用戶設定。 Azure OpenAI 不會使用您的數據來定型模型。 如果 Azure OpenAI 無法在您的地理區域使用,而您已啟用租戶設定「傳送至 Azure OpenAI 的數據可以在您的容量地理區域、合規性範圍或國家雲端實例之外處理」,那麼 Copilot 可能會在這些地理區域之外傳送您的數據。
7 Azure OpenAI 會裝載 LLM,例如 GPT 系列模型。 Azure OpenAI 不會使用 OpenAI 的公共服務或 API,而 OpenAI 無法存取您的數據。 這些 LLM 會將輸入標記化,並使用其訓練數據中的嵌入來處理輸入並生成回應。 LLM 的範圍和規模限制其定型數據。

Azure OpenAI 包含組態,可決定 LLM 如何處理輸入及其傳回的回應。 客戶無法檢視或變更此設定。 OpenAI 服務的呼叫是透過 Azure 完成,而不是透過公用因特網進行。
8 LLM 回應會從 Azure OpenAI 傳送至 Fabric 中的 Copilot。 此回應包含文字,可能是自然語言、程序代碼或元數據。 回應可能包含不正確的或低質量的資訊。 這也是不具決定性的,這表示可能會針對相同的輸入傳回不同的回應。
9 Copilot 後處理 LLM 回應。 後處理包含負責任 AI 的篩選,但也牽涉到處理 LLM 回應併產生最終的 Copilot 輸出。 後處理期間所採取的具體步驟取決於個人使用的 Copilot 體驗。
10 Copilot 會將最終輸出傳回給使用者。 使用者會在使用前檢查輸出,因為輸出未包含可靠性、精確度或可信度的指示。

下一節說明上圖中所述的 Copilot 程式五個步驟。 這些步驟詳細說明 Copilot 如何從使用者輸入到用戶輸出。

步驟 1:使用者向 Copilot 提供輸入

若要使用 Copilot,用戶必須先提交 輸入。 此輸入可以是使用者自行提交的書面提示,或是當使用者在UI中選取互動式元素時,Copilot所產生的提示。 根據某人使用的特定 Fabric 工作負載、專案和 Copilot 體驗,他們有不同的方式來提供 Copilot 的輸入。

下列各節說明使用者如何提供 Copilot 輸入的數個範例。

透過 Copilot 聊天面板輸入

透過 Fabric 中的許多 Copilot 體驗,您可以擴充 Copilot 聊天面板,以使用自然語言與 Copilot 互動,就像使用聊天機器人或訊息服務一樣。 在 Copilot 聊天面板中,您可以撰寫自然語言提示,描述您想要 Copilot 採取的動作。 或者,Copilot 聊天面板可能包含含有您可以選取之建議提示的按鈕。 與這些按鈕互動會導致 Copilot 產生對應的提示。

下圖顯示使用 Copilot 聊天面板詢問 Power BI 報表數據問題的範例。

顯示 Copilot 聊天面板中使用者提示和回應的螢幕快照。

備註

如果您使用 Microsoft Edge 瀏覽器,您可能也可以在那裡存取 Copilot。 Edge 中的 Copilot 也可以在瀏覽器中開啟 Copilot 聊天面板(或提要欄)。 Edge 中的 Copilot 無法互動或使用 Fabric 中的任何 Copilot 功能。 雖然兩個 Copilot 都有類似的用戶體驗,但 Edge 中的 Copilot 與 Fabric 中的 Copilot 完全分開。

透過內容相依彈出窗口輸入

在某些情況下,您可以選取 Copilot 圖示來觸發彈出視窗,以與 Copilot 互動。 範例包括當您在 DAX 查詢檢視或 Power BI Desktop 的 TMDL 腳本檢視中使用 Copilot 時。 這個彈出視窗包含可讓您輸入自然語言提示的區域(類似於 Copilot 聊天面板),以及可為您產生提示的內容特定按鈕。 此視窗可能還包含有關輸出的資訊,例如當在 DAX 查詢檢視模式中使用 Copilot 時,提供關於 DAX 查詢或概念的說明。

下圖顯示有人在 DAX 查詢視圖中使用 Copilot 體驗來解釋他們藉由在 Power BI 中使用 Copilot 所產生的一個查詢範例。

螢幕快照顯示 Copilot 在 Power BI Desktop 的 DAX 查詢視圖中,回應使用者提示的輸出。

使用者輸入的類型

Copilot 輸入可以來自寫入的提示或 UI 中的按鈕:

  • 寫入的提示: 用戶可以在 Copilot 聊天面板或其他 Copilot 體驗中撰寫提示,例如 Power BI Desktop 中的 DAX 查詢檢視。 書面提示需要使用者充分說明 Copilot 的指示或問題。 例如,使用者在Power BI 中使用 Copilot 時,可以詢問有關語意模型或報表的問題。

  • 按鈕: 用戶可以在 Copilot 聊天面板或其他 Copilot 體驗中選取按鈕,以提供輸入。 然後,Copilot 會根據用戶選取項目產生提示。 這些按鈕可以是 Copilot 的初始輸入,例如 Copilot 聊天面板中的建議。 不過,當 Copilot 提出建議或要求釐清時,這些按鈕也可能出現在會話期間。 提示 Copilot 會產生取決於內容,例如目前會話的聊天歷程記錄。 按鈕輸入的範例是當您要求 Copilot 建議模型欄位的同義字,或模型量值的描述時。

此外,您可以在不同的服務或應用程式中提供輸入:

  • 織物: 您可以從網頁瀏覽器使用 Fabric 中的 Copilot。 這是您在 Fabric 中針對獨佔建立、管理和使用的任何項目使用 Copilot 的唯一方式。

  • Power BI Desktop: 您可以在 Power BI Desktop 中搭配語意模型和報表使用 Copilot。 這包括在 Fabric 中對 Power BI 工作負載的開發與使用 Copilot 的體驗。

  • Power BI 行動應用程式: 如果報表位於支援的工作區(或連線至該工作區的應用程式),且已啟用 Copilot,您可以在 Power BI 行動裝置應用程式中使用 Copilot。

備註

若要搭配 Power BI Desktop 使用 Copilot,您必須將 Power BI Desktop 設定為從支援的工作區使用 Copilot 功能,且該工作區需具備 Fabric 容量。 然後,您可以使用 Copilot 與發佈到任何工作區的語意模型一起使用,其中包括 Pro 工作區和 PPU 工作區。

當您選取具有書面提示的按鈕時,無法改變 Copilot 產生的提示,但您可以使用自然語言提出問題並提供指示。 改善使用 Copilot 取得結果的最重要方式之一,就是撰寫清楚且描述性的提示,以準確傳達您想做的事情。

改善 Copilot 的書面提示

使用者提交至 Copilot 之提示的清楚程度和品質可能會影響使用者收到的輸出有用性。 構成良好書面提示的內容取決於您所使用的特定 Copilot 體驗:不過,有一些技術可以套用至所有體驗,以改善一般提示。

以下是數種方式可改善提交至 Copilot 的提示:

  • 使用英文語言提示: 今天,Copilot 功能在英語中效果最佳。 這是因為這些 LLM 的訓練資料大多數是英文。 其他語言的表現可能不如預期。 您可以嘗試以其他語言撰寫提示,但為了獲得最佳結果,建議您撰寫並提交英文語言提示。

  • 具體如下: 避免在問題和指示中模棱兩可或模糊。 包含足夠的詳細數據來描述您想要 Copilot 執行的工作,以及您預期的輸出為何。

  • 提供內容: 如有必要,請提供提示的相關內容,包括您想要執行的動作,或您想要使用輸出回答的問題。 例如,良好提示的關鍵元件可能包括:

    • 目標: 您想要 Copilot 達成的輸出。
    • 上下文: 您打算如何使用該特定輸出以及為什麼要這樣做。
    • 期望值: 您預期輸出看起來會像這樣。
    • 源: Copilot 應該使用哪些數據或欄位。
  • 使用動詞: 明確參考您想要 Copilot 採取的特定動作,例如「建立 報表頁面」或「篩選 至客戶密鑰帳戶」。

  • 使用正確和相關術語: 明確參考提示中的適當詞彙,例如函式、欄位或數據表名稱、視覺效果類型或技術術語。 避免拼字錯誤、縮寫或縮略語,以及冗餘的文法,或 Unicode 字元或表情符號等非典型字元。

  • 反覆運算和疑難解答: 當您未取得預期的結果時,請嘗試調整提示並重新提交,以查看這是否可改善輸出。 某些 Copilot 體驗也提供 [ 重試 ] 按鈕,以重新提交相同的提示,並檢查是否有不同的結果。

這很重要

請考慮在啟用 Copilot 之前,先訓練使用者撰寫良好的提示。 確定使用者瞭解可產生實用結果的清楚提示與不明確的提示之間的差異。

此外,Copilot 和其他許多 LLM 工具都是 不具決定性的。 這表示兩個提交使用相同的地面數據提示的使用者可以取得不同的結果。 這種非決定性是產生式 AI 基礎技術固有的,當您預期或需要決定性的結果時,這是一個重要考慮,例如數據問題的解答,例如 「2021 年 8 月的銷售量為何?

Copilot 在前置處理中使用的其他輸入資訊

除了使用者提供的輸入之外,Copilot 也會擷取下一個步驟期間在前置處理中使用的其他資訊。 此資訊包括:

  • 使用者的令牌。 Copilot 不會在系統帳戶或系統權限下運作。 Copilot 傳送及使用的所有資訊都專屬於使用者;Copilot 無法允許用戶檢視或存取他們尚未擁有檢視許可權的項目或數據。

  • 目前這次使用的 Copilot 的會話聊天記錄。 針對聊天體驗或 Copilot 聊天面板,Copilot 一律會提供聊天歷程記錄,以用於預先處理作為基礎數據內容的一部分。 Copilot 不會記住或使用先前會話的聊天記錄。

  • 使用系統元數據的中繼提示。 元提示提供有關使用者所在位置以及他們在 Fabric 或 Power BI Desktop 中執行的操作的額外上下文。 在前置處理期間會使用此中繼提示信息來判斷應該使用哪一種技能或工具 Copilot 來回答用戶的問題。

當使用者提交其輸入之後,Copilot 會繼續進行下一個步驟。

步驟 2:Copilot 先行處理輸入資料

提交提示至 Azure OpenAI 服務之前,Copilot 會 先進行前置處理 。 前置處理會構成 Copilot 在收到輸入時以及 Azure OpenAI 服務中處理此輸入時所處理的所有動作。 前置處理是必要的,以確保 Copilot 的輸出是特定且適合您的指示或問題。

您無法影響 Copilot 的前置處理。 不過,請務必瞭解前置處理,以便您知道 Copilot 使用的數據及其取得方式。 這與瞭解 Fabric 中的 Copilot 成本有關,以及當您針對產生不正確或非預期結果的原因進行疑難解答時。

小提示

在某些體驗中,您也可以對專案進行變更,讓其基礎數據更妥善結構化,以供 Copilot 使用。 例如,在語意模型中執行語言模型化,或將同義字和描述新增至語意模型量值和數據行。

下圖描述 Copilot in Fabric 的前置處理期間所發生的情況。

此圖顯示 Copilot 如何預處理輸入的程式流程。

接收使用者輸入之後,Copilot 會執行前置處理,其中包含下列步驟:

  • 基準: Copilot 會執行檢索增強生成(RAG)來收集基礎數據。 基礎數據包含您在 Fabric 中使用 Copilot 時的相關內容資訊。 這些基礎資料可能包含背景資訊,例如:

    • 與 Copilot 目前會話的聊天記錄。
    • 與 Copilot 搭配使用的 Fabric 項目的元數據(例如語意模型或湖倉的架構,或報表中的視覺化元數據)。
    • 特定數據點,例如報表中呈現的圖示中的數據點。 視覺效果組態中的報表元數據也包含數據點。
    • 元提示,這是針對每個用戶體驗提供的補充指示,以協助確保更加具體且一致的結果。
  • 提示增強: 根據案例而定,Copilot 會根據輸入和地面數據來重寫提示(或 增強)。 擴增提示應該比原始輸入提示更好且更具情境感知。

  • 緩存: 在某些情況下,Copilot 會快取您的提示和地面數據 48 小時。 快取提示可確保重複的提示會在快取時傳回相同的結果,而且它們會更快速地傳回這些結果,而且您不只為了在相同內容中重複提示而取用 Fabric 容量。 快取發生在兩個不同的位置:

    • 用戶的瀏覽器快取。
    • 租使用者主區域中的第一個後端快取,其會儲存用於稽核目的。 Azure OpenAI 服務和 GPU 的位置都不會快取任何數據。 如需有關 Microsoft Fabric 中快取的詳細資訊,請參閱 Microsoft Fabric 安全性白皮書
  • 將輸入傳送至 Azure OpenAI: Copilot 會將增強型提示和相關的地面數據傳送至 Azure OpenAI 服務。

當 Copilot 執行參考時,它只會從使用者正常可以存取的數據或項目收集資訊。 Copilot 尊重工作區角色、專案許可權和數據安全性。 Copilot 也無法從其他使用者存取數據;與 Copilot 的互動是每個個別使用者特有的。

Copilot 在基礎過程中收集的數據,以及 Azure OpenAI 的處理,取決於您所使用的特定 Copilot 體驗。 如需詳細資訊,請參閱 Copilot 使用哪些數據,以及其處理方式?

前置處理完成且 Copilot 已將輸入傳送至 Azure OpenAI 之後,Azure OpenAI 服務就可以處理該輸入,以產生傳回 Copilot 的回應和輸出。

步驟 3:Azure OpenAI 會處理提示並產生輸出

所有 Copilot 體驗都是由 Azure OpenAI 服務提供。

瞭解 Azure OpenAI 服務

Copilot 會使用 Azure OpenAI,而非 OpenAI 的公開可用服務來處理所有數據並傳回回應。 如先前所述,此回應是由 LLM 產生。 LLM 是「縮小」AI 的特定方法,著重於使用深度學習在非結構化數據中尋找和重現模式;具體來說,是文字。 此內容中的文字包括自然語言、元數據、程序代碼,以及任何其他具有語意意義的字元排列方式。

Copilot 目前使用由 GPT 模型組成的組合,包含 OpenAI 開發的生成型預訓練轉換器(GPT)系列模型。

備註

您無法選擇或變更 Copilot 所使用的模型,包括使用其他基礎模型或您自己的模型。 Fabric 中的 Copilot 使用各種模型。 您也無法改變或設定 Azure OpenAI 服務,使其與 Fabric 中的 Copilot 不同行為;此服務是由 Microsoft 管理。

Copilot 在 Fabric 中使用的模型目前不會使用任何微調。 模型會改為依賴基礎數據和元數據提示來建立更具體且實用的輸出。

Copilot 在 Fabric 中使用的模型目前不會使用任何微調。 模型會改為依賴基礎數據和元數據提示來建立更具體且實用的輸出。

Microsoft裝載 Microsoft Azure 環境中的 OpenAI 模型,且此服務不會與 OpenAI 的任何公共服務互動(例如 ChatGPT 或公用 OpenAI API)。 您的數據不會用來定型模型,而且無法提供給其他客戶使用。 如需詳細資訊,請參閱 Azure OpenAI 服務

瞭解標記化

您必須瞭解令牌化,因為 Fabric 中 Copilot 的成本(這是 Fabric 容量 Copilot 耗用多少),取決於 Copilot 輸入和輸出所產生的令牌數目。

若要處理 Copilot 的文字輸入,Azure OpenAI 必須先將該輸入轉換成數值表示法。 此程式中的關鍵步驟是 標記化,也就是將輸入文字分割成不同、較小的部分,稱為 令牌。 符號是一組共同出現的字元,是 LLM 用來生成其輸出的最小資訊單位。 每個令牌都有對應的數值標識碼,這會成為 LLM 的詞彙,以編碼並使用文字做為數位。 有不同方式可以標記文字,不同的 LLM 會以不同的方式標記輸入文字。 Azure OpenAI 使用 Byte-Pair Encoding (BPE),這是子字標記化的方法。

若要進一步瞭解令牌是什麼,以及提示如何變成令牌,請考慮下列範例。 此範例顯示輸入提示及其標籤,這些標籤是使用 OpenAI 平台標記器(專為 GPT4 設計)估算的。 提示文字中強調顯示的標記下方,是數值令牌ID的列表(或陣列)。

顯示提示標記化範例的螢幕快照,其中包含 7 個令牌和 27 個字元。

在此範例中,每個不同顏色的醒目提示都代表單一標記。 如先前所述,Azure OpenAI 會使用 子字詞 標記化,因此令牌不是單字,但也不是字元或固定字元數。 例如,“report” 是單一令牌,但 “.” 也是。

若要重申,您應該瞭解令牌是什麼,因為 Copilot 的成本(或其網狀架構容量耗用量率)是由令牌所決定。 因此,瞭解令牌是什麼,以及建立輸入和輸出令牌的方式,可協助您了解並預期 Copilot 使用量如何導致網狀架構 OU 的耗用量。 如需 Fabric 中 Copilot 成本的詳細資訊,請參閱本文稍後的相關章節。

Fabric 中的 Copilot 同時使用輸入和輸出令牌,如下圖所示。

顯示 Copilot 如何從提示和基礎數據中取用輸入令牌,並由 LLM 回應生成輸出令牌的螢幕截圖。

Copilot 會建立兩種不同的令牌:

  • 輸入令牌 是來自於對最終提示和任何基礎數據進行標記的結果。
  • 輸出令牌 產生於將 LLM 回應令牌化。

某些 Copilot 體驗會導致多個 LLM 呼叫。 例如,當詢問有關模型和報表的數據問題時,第一個 LLM 回應可能是針對語意模型評估的查詢。 然後,Copilot 會將評估的查詢結果再次傳送至 Azure OpenAI,並要求摘要,Azure OpenAI 會以另一個回應傳回。 這些額外的 LLM 呼叫可能會在後處理階段被處理,並且 LLM 回應會被合併。

備註

使用 Fabric 中的 Copilot 時,除了寫入的輸入提示變更之外,您只能藉由調整相關項目的設定來優化輸入和輸出符號,例如隱藏語義模型中的欄位,或減少報表中的視覺元素或頁面數。 您無法在由 Copilot 傳送至 Azure OpenAI 之前攔截或修改地面數據。

了解處理

了解 Azure OpenAI 中的 LLM 如何處理您的數據並產生輸出非常重要,這樣您才能更好地理解為什麼從 Copilot 獲得特定輸出,以及在進一步使用或做出決策之前,為什麼應批判性地評估這些輸出。

備註

本文提供簡單的高層次概述,說明 Copilot 使用的 LLM(例如 GPT)是如何運作的。 如需技術詳細數據以及更深入了解 GPT 模型如何處理輸入以產生回應或了解其架構,請閱讀 Ashish Vaswani 等人在 2017 年發表的研究論文《注意力是你所需的》,以及 Tom Brown 等人在 2020 年發表的《語言模型是 Few-Shot 學習者》。

Copilot (和一般 LLM) 的目的是根據使用者提供的輸入和其他相關的地面數據,提供適合內容且實用的輸出。 LLM 會藉由解譯在類似的上下文中符號的意義,如同在其訓練數據中所見來達成這個目的。 為了對令牌有有意義的語意瞭解,LLM 已針對被認為 同時包含著作權和公用網域資訊的大規模數據集進行訓練。 不過,此訓練資料在內容新鮮度、品質和範圍方面受到限制,這會為 LLM 和使用這些資料的工具帶來限制,例如 Copilot。 如需有關這些限制的詳細資訊,請參閱在本文稍後部分的 理解 Copilot 和 LLM 的限制

詞元的語意被捕捉在稱為嵌入的數學建構中,這會將詞元轉換成實數的密集向量。 簡而言之,嵌入根據給定詞元周圍的其他詞元,為 LLM 提供語義意義。 這個意思取決於 LLM 訓練數據。 想像代碼就像獨特的組建模塊,而嵌入則可以幫助 LLM 知道何時使用哪一個模塊。

使用令牌和內嵌,Azure OpenAI 中的 LLM 會處理您的輸入併產生回應。 此處理是需要大量資源的計算密集型工作,也就是成本的來源。 大型語言模型(LLM)會一次產生一個字元的回應,根據輸入內容來計算的機率選取每個字元。 每個生成的 token 也會在產生下一個 token 前加入到現有的上下文中。 因此,LLM 的最終回應必須是文字,Copilot 稍後可能會進行後處理,以提供更有用的輸出給使用者。

請務必瞭解關於此產生回應的幾個重要層面:

  • 這是不具決定性的;相同的輸入可能會產生不同的回應。
  • 用戶可以在其內容中將其解譯為低品質或不正確。
  • 其以 LLM 訓練數據為基礎,其範圍既有限又受到限制。

瞭解 Copilot 和 LLM 的限制

請務必瞭解並認可 Copilot 的限制及其使用的基礎技術。 了解這些限制可協助您從 Copilot 取得價值,同時降低使用它固有的風險。 若要有效地在 Fabric 中使用 Copilot,您應該瞭解最適合這項技術的使用案例和情境。

當您在 Fabric 中使用 Copilot 時,請務必記住下列考慮:

  • Fabric 中的 Copilot 具有不確定性。 除非提示詞及其輸出已被快取,否則相同的輸入可能會產生不同的輸出。 當您接受一系列可能的輸出時,例如報表頁面、程序代碼模式或摘要,這不是問題,因為您可以容忍,甚至可能會預期回應中的多樣性。 不過,針對預期只有一個正確答案的案例,您可能想要考慮 Copilot 的替代方法。

  • Fabric 中的 Copilot 可能會產生低品質或不正確的輸出: 如同所有 LLM 工具,Copilot 可能會產生可能不正確、預期或適合您案例的輸出。 這表示您應該避免在 Fabric 中使用 Copilot,無論是搭配敏感數據或是在高風險區域。 例如,您不應該使用 Copilot 輸出來回答有關商務關鍵程式的數據問題,或建立可能會影響個人個人或集體福祉的數據解決方案。 用戶應該先檢查並驗證 Copilot 輸出,再使用它們。

  • Copilot 對「正確性」或「真實性」沒有瞭解: Copilot 提供的輸出不會提供信任、可靠性或類似情感的指標。 基礎技術涉及模式辨識,且無法評估其輸出的品質或實用性。 用戶應該在其他工作或決策中使用這些輸出之前,先對輸出進行評估。

  • Copilot 無法推理、瞭解您的意圖,或瞭解其輸入以外的內容: 雖然 Copilot 的地面程式可確保輸出更具體,但單靠地面無法提供 Copilot 回答問題所需的所有資訊。 例如,如果您使用 Copilot 來產生程式代碼,Copilot 仍然不知道您將使用該程式代碼做什麼。 這表示程式代碼可能會在某個內容中運作,但不能在另一個內容中運作,而且用戶必須修改輸出或提示以解決此問題。

  • Copilot 輸出受限於其所使用的 LLM 定型數據: 在某些 Copilot 體驗中,例如您產生程式代碼的地方,您可能會希望 Copilot 使用新發行的函式或模式來產生程式代碼。 不過,如果 GPT 模型所使用的定型數據中缺乏這類範例,且這些數據是基於過去的資料,則 Copilot 將無法有效地執行這項作業。 當您嘗試將 Copilot 應用到訓練數據稀少的情境中時,也會發生這種情況,例如在 Power BI Desktop 中使用 TMDL 編輯器搭配 Copilot。 在這些案例中,您應該特別警惕低品質或不正確的輸出。

警告

為了降低這些限制和考慮的風險,以及 Copilot、LLM 和產生式 AI 是新興技術的事實,您 不應該 在 Fabric 中使用 Copilot 進行自主、高風險或業務關鍵流程和決策。

如需詳細資訊,請參閱 LLM 的安全性指引

一旦 Azure OpenAI 服務處理輸入併產生回應,就會將此回應當做輸出傳回 Copilot。

步驟 4:Copilot 會在輸出上執行後續處理

從 Azure OpenAI 接收回應時,Copilot 會執行額外的後處理,以確保回應適當。 後置處理的目的是篩選掉不適當的內容。

若要執行後處理,Copilot 可能會執行下列工作:

  • 負責任的 AI 檢查: 確保 Copilot 符合Microsoft的負責任 AI 標準。 如需詳細資訊,請參閱 使用 Copilot 負責任的注意事項

  • 使用 Azure 內容仲裁進行篩選: 篩選回應,以確保 Copilot 只會傳回適合案例和體驗的回應。 以下是 Copilot 如何使用 Azure 內容仲裁執行篩選的一些範例:

    • 非預期或不當使用: 內容仲裁可確保您無法以非預期或不當的方式使用 Copilot,例如在工作負載、專案或使用體驗範圍之外詢問其他主題的問題。
    • 不當或冒犯性的輸出: Copilot 會防止可能包含不可接受的語言、字詞或片語的輸出。
    • 嘗試提示插入: Copilot 會防止提示插入,使用者嘗試隱藏基礎數據中的干擾指令,例如語意模型中的物件名稱、描述或程式代碼批注。
  • 案例特定的條件約束: 根據您使用的 Copilot 體驗而定,在您收到輸出之前,可能會有進一步的 LLM 回應的檢查及處理。 以下是一些 Copilot 如何應用特定情境的約束條件的範例:

    • 程式代碼剖析器: 產生的程式代碼可能會透過剖析器來篩選出低品質的回應和錯誤,以確保程式代碼能夠執行。 當您在Power BI Desktop的DAX查詢檢視中使用 Copilot 產生DAX查詢時,就會發生這種情況。
    • 視覺效果和報表的驗證:Copilot 會在輸出中傳回視覺效果和報表之前,先檢查視覺效果和報表是否可以呈現。 Copilot 不會驗證結果是否正確或有用,或產生的查詢是否會逾時(併產生錯誤)。
  • 處理和使用回應: 取得回應並新增其他資訊,或在其他程式中使用它,將輸出提供給使用者。 以下是 Copilot 在後續處理期間如何處理和使用回應的一些範例:

    • 建立 Power BI 報表頁面: Copilot 結合了 LLM 回應 (報表視覺元數據) 與其他報表元數據,這會導致建立新的報表頁面。 如果您尚未在報表中建立任何視覺效果, Copilot 也可能套用 Copilot 主題 。 主題不是 LLM 回應的一部分,而且包含背景影像,以及色彩和視覺樣式。 如果您已建立視覺效果,則 Copilot 不會套用 Copilot 主題,並使用您已套用的主題。 變更報表頁面時,Copilot 也會刪除現有的頁面,並將它取代為已套用調整的新頁面。
    • Power BI 數據問題: Copilot 會針對語意模型評估查詢。
    • Data Factory 數據流 gen2 轉換步驟建議: Copilot 會修改項目元數據以插入新步驟,並調整查詢。
  • 其他 LLM 呼叫: 在某些情況下,Copilot 可能會執行額外的 LLM 呼叫來擴充輸出。 例如,Copilot 可能會將評估查詢的結果提交至 LLM 作為新的輸入,並要求說明。 接著,這個自然語言說明會封裝在一起,並將查詢結果封裝在使用者於 Copilot 聊天面板中看到的輸出中。

如果輸出中篩選出內容,則 Copilot 會重新提交新的、修改過的提示,或傳回標準回應。

  • 重新提交新的提示: 當回應不符合案例特定條件約束時,Copilot 會產生另一個修改過的提示,然後再試一次。 在某些情況下,Copilot 可能會建議用戶選取數個新的提示,然後再提交提示以產生新的輸出。

  • 標準回應: 在此情況下,標準回應會指出泛型錯誤。 根據案例,Copilot 可能會提供其他資訊,以引導用戶產生另一個輸入。

備註

您無法檢視來自 Azure OpenAI 的原始、已篩選的回應,或變更 Copilot 的標準回應或行為。 這是由 Microsoft 管理。

完成後處理之後,Copilot 就會將輸出傳回給使用者。

步驟 5:Copilot 會將輸出傳回給使用者

用戶的輸出可以採用自然語言、程序代碼或元數據的形式。 此元數據通常會在 Fabric 或 Power BI Desktop 的 UI 中轉譯,例如當 Copilot 傳回 Power BI 視覺效果或建議報表頁面時。 針對 Power BI 體驗中的某些 Copilot,使用者可以透過 Power BI 行動裝置應用程式將輸入和輸出提供給 Copilot。

一般而言,輸出可以允許使用者介入或完全自主,而不允許使用者改變結果。

  • 使用者介入: 這些輸出可讓用戶在評估或顯示結果之前修改結果。 允許使用者介入的輸出範例包括:

    • 產生 DAX 或 SQL 查詢之類的程式碼,使用者可以選擇保留或執行。
    • 在語意模型中產生量值描述,用戶可以選擇保留、修改或刪除。
  • 自治: 用戶無法改變這些輸出。 程序代碼可能會直接針對 Fabric 專案進行評估,或無法編輯窗格中的文字。 自主輸出的一些範例包括:

    • Copilot 聊天面板提供語意模型或報表相關數據問題的解答,它會自動評估查詢並顯示結果。
    • 程式代碼、專案或數據的摘要或說明,可自動選擇要摘要和說明的內容,並顯示結果。
    • 建立報表頁面,這會自動在報表中建立頁面和視覺效果。

有時候,作為輸出的一部分,Copilot 也可能建議額外的後續提示,例如要求澄清或其他建議。 當使用者想要改善結果或繼續處理特定輸出時,這通常很有用,例如說明概念以了解產生的程序代碼。

Copilot 的輸出可能包含低品質或不正確的內容

Copilot 無法評估或指出其輸出的有用性或精確度。 因此,每當使用者使用 Copilot 時,使用者就務必自行評估。

若要降低 Copilot 中 LLM 幻覺的風險或挑戰,請考慮下列建議:

  • 訓練使用者使用 Copilot 和利用 LLM 的其他類似工具。 請考慮針對下列主題進行訓練:

    • 科皮洛特可以和不能做什麼。
    • 何時使用 Copilot,以及何時不使用。
    • 如何撰寫更好的提示。
    • 如何針對非預期的結果進行疑難解答。
    • 如何使用受信任的在線來源、技術或資源來驗證輸出。
  • 在允許這些項目搭配使用之前,先使用 Copilot 測試這些項目。 某些專案需要某些準備工作,以確保它們與 Copilot 搭配運作良好。

  • 避免在 自主、高風險或業務關鍵決策程式中使用 Copilot。

這很重要

此外,請檢閱 Fabric 的補充預覽條款,其中包括Microsoft Generative AI Service Preview 的使用規定。 雖然您可以嘗試並實驗這些預覽功能,但建議您不要在生產解決方案中使用預覽版中的 Copilot 功能。

隱私權、安全性和負責任的 AI

Microsoft致力於確保 AI 系統受到 AI 準則負責任 AI 標準的引導。 如需詳細概觀 ,請參閱 Fabric 中 Copilot 的隱私權、安全性和負責任使用 。 如需 Azure OpenAI 的特定詳細資訊,另請參閱 Azure OpenAI 服務的數據、隱私權和安全性

如需每個 Fabric 工作負載的特定概觀,請參閱下列文章:

Fabric 中的 Copilot 成本

與其他 Microsoft Copilots 不同,Fabric 中的 Copilot 不需要額外的授權,不論是每個使用者的授權還是每個容量的授權。 相反地,Fabric 中的 Copilot 會從您可用的 Fabric 容量單位 (CUs) 中取用。 Copilot 的使用率取決於您在 Fabric 的各種使用體驗中,輸入和輸出時所涉及的令牌數量。

如果您擁有 Fabric 容量設施,那麼您使用的是隨用隨付制或保留實例。 在這兩種情況下,Copilot 耗用量的運作方式相同。 在隨用隨付的情境中,當您的容量處於作用中狀態時,系統將以每秒計費,直到您暫停容量。 計費費率與 Fabric CUs 的使用沒有關聯性;如果您的容量已完全使用或完全未使用,則支付相同的金額。 因此,Copilot 不會對您的 Azure 計費產生直接成本或影響。 相反地,Copilot 會取用其他 Fabric 工作負載和項目也會使用的可用 CUs,而且如果您使用太多,使用者將會遇到效能降低和 節流的情況。 也可以進入一種稱為 「順向」的 CU 債務狀態。 如需節流和轉寄的詳細資訊,請參閱 節流觸發程式和節流階段

下列各節將進一步說明您應如何瞭解與管理 Fabric 中的 Copilot 使用情況。

備註

如需詳細資訊,請參閱 網狀架構取用中的 Copilot

網狀架構中的 Copilot 耗用量是由令牌所決定

Copilot 會消耗您可用的 Fabric CUs,也常被稱為 容量計算、或 資源。 當您使用它時,耗用量是由輸入和輸出令牌所決定。 回顧時,您可以了解下列內容的輸入與輸出令牌,這是透過標記化過程取得的結果:

  • 輸入詞元:撰寫提示和基礎數據進行標記化。
  • 輸出令牌: 以輸入為基礎的 Azure OpenAI 回應令牌化。 輸出令牌 比輸入令牌高三倍

您可以使用較短的提示來限制輸入令牌數目,但無法控制 Copilot 用於前置處理的基礎數據,或 Azure OpenAI 中 LLM 傳回的輸出令牌數目。 例如,您可以預期 Power BI 中 Copilot 的 報表建立體驗 會具有高耗用量率,因為它可能會使用基礎數據(例如模型架構),而且可能會產生詳細資訊輸出(報表元數據)。

輸入、輸出和基礎數據會轉換成標記

若要從本文稍早的章節重申,請務必瞭解 令牌化程式 ,以便您知道哪種類型的輸入和輸出會產生最高的耗用量。

優化提示令牌並不會影響您的 Copilot 成本。 例如,書面使用者提示中的令牌數量通常比基礎數據和輸出的令牌數量小得多。 Copilot 會自主處理地面數據和輸出,您無法優化或影響這些標記。 例如,在 Power BI 中使用 Copilot 時,Copilot 可能會在前置處理期間,使用來自您語義模型或報表元數據的結構作為基礎數據。 此元數據可能包含比初始提示更多的令牌。

Copilot 會執行各種系統優化,以減少輸入和輸出令牌。 這些優化取決於您使用的 Copilot 體驗。 系統優化範例包括:

  • 減少架構: Copilot 不會傳送語意模型或 Lakehouse 數據表的整個架構。 反而,它會使用嵌入來判斷要傳送的欄位。

  • 提示增強: 在前置處理期間重寫提示時,Copilot 會嘗試產生最終提示,以傳回更具體的結果。

此外,您可以實作各種用戶優化操作,以限制 Copilot 可以看到和使用的參考數據。 這些使用者優化取決於您使用的項目和體驗。 用戶優化的某些範例包括:

  • 在語意模型中隱藏欄位或將數據表標示為 私用 Copilot 不會考慮任何隱藏或私人物件。

  • 隱藏報表頁面或視覺效果: 同樣地,Copilot 也不會考慮隱藏在報表書籤後方的任何隱藏報表頁面或視覺效果。

小提示

用戶優化主要是為了改善 Copilot 輸出的效用,而不是優化 Copilot 成本。 如需詳細資訊,請參閱各種工作負載和 Copilot 體驗的特定文章。

您無法查看令牌化程式,而且只能對輸入和輸出令牌造成最小影響。 因此,管理 Copilot 耗用量和避免 節流 的最有效方式是管理 Copilot 使用量。

Copilot 是運行順暢的背景作業

當許多人員同時使用它時,Fabric 中的 Copilot 並行使用方式是由稱為 smoothing 的程式來處理。 在 Fabric 中,任何被分類為 背景作業的操作 ,其 CU 耗用量會在24小時內分攤,從操作開始時間到24小時後結束。 這與 互動式作業形成鮮明對比,例如來自使用 Power BI 報表的人的語意模型查詢,這些查詢不會被平滑處理。

備註

為了簡化您的瞭解,背景和互動式作業會針對計費目的,將 Fabric 中發生的不同事情分類。 它們不一定如其名稱所示,涉及到專案或功能是否為使用者提供互動性或是在背景中發生。

例如,如果您現在使用 48 個計算單元搭配背景作業,則現在會消耗 2 個計算單元,並且從現在起至 24 小時後,每小時皆會消耗 2 個計算單元。 如果您使用 48 個 CUs 搭配互動式作業,則會導致目前使用 48 個 CUs 而且對未來的耗用量沒有任何影響。 不過,平滑處理也表示,如果您的 Copilot 或其他網狀架構工作負載的使用量足夠高,您可能會 在該視窗中 累積 CU 耗用量。

若要進一步瞭解平滑處理及其對網狀架構 CU 耗用量的影響,請考慮下圖:

顯示 Fabric 容量平滑化概觀的圖表。

此圖描繪了一個互動式操作中高並行使用情境的例子(未經平滑處理)。 互動式作業會跨越節流限制(可用的Fabric容量),並進入累積。 這是沒有平滑的情況。 相反地,Copilot 等背景作業的耗用量分散在 24 小時內。 在該 24 小時內的後續作業將會「堆疊」,並導致該期間的總累計耗用量。 在這個例子中的平滑情境下,背景作業(例如 Copilot)將有助於未來的 CU 耗用量,但不會觸發節流或超過任何限制。

在 Fabric 中監控 Copilot 的耗用量

Fabric 管理員可以使用 Microsoft Fabric 容量計量應用程式,監控在您的 Fabric 容量中進行的 Copilot 耗用量。 在應用程式中,網狀架構管理員可以依活動和用戶檢視明細,協助他們識別在高耗用量期間可能需要專注的個人和區域。

小提示

我們建議您不要考慮將令牌之類的抽象計算納入考慮,而是將焦點放在您使用 的網狀架構容量百分比 上。 這個指標是最容易理解和採取行動的,因為一旦達到 100% 使用率,您就會經歷 限制

您可以在 應用程式的時間點頁面上找到此資訊。

備註

當您暫停容量時,經過平滑處理的使用數據會集中到容量暫停的時間點。 此平滑消耗量的壓縮會導致觀察到的消耗量出現尖峰,並不反映您的實際使用量。 高峰期經常會產生用盡可用 Fabric 容量的通知和警告,但這些是誤報。

降低高使用率和節流

Copilot 會耗用 Fabric 計算單位,即使使用平滑處理,您也可能會遇到高使用率的情況,這會導致高耗用量,並限制其他 Fabric 工作負載。 下列各節將討論一些可用來減輕此案例中網狀架構容量影響的策略。

使用者訓練和允許清單

確保有效採用任何工具的重要方式是讓使用者有足夠的指導和培訓,並逐步推出人員完成此類培訓的存取權。 有效的訓練是一種預防措施,透過教育使用者如何有效使用 Copilot 以及哪些行為應避免,來預防高使用率和流量限制。

您可以透過從 Fabric 租使用者設定建立可存取此功能的使用者 允許清單 ,以最佳方式控制誰可以使用 Fabric 中的 Copilot。 這表示您只針對屬於特定安全組的使用者,在 Fabric 中啟用 Copilot。 如有必要,您可以為每個 Fabric 工作負載建立個別的安全組,讓 Copilot 能夠更精細地控制誰可以使用哪些 Copilot 體驗。 如需建立安全組的詳細資訊,請參閱 建立、編輯或刪除安全組

將特定安全組新增至 Copilot 租使用者設定之後,您就可以為使用者整合上線訓練。 Copilot 訓練課程應涵蓋基本主題,例如下列主題。

小提示

請考慮為大型語言模型和生成式人工智慧的基本概念建立一個總體概念訓練課程,但接著為使用者建立針對特定工作負載的訓練。 如果每個人員不一定與其相關,則不需要瞭解每個網狀架構工作負載。

  • LLM: 說明 LLM 是什麼及其運作方式的基本概念。 您不應該進入技術詳細數據,但您應該說明提示、基礎和令牌等概念。 您也可以說明 LLM 如何從輸入取得意義,並產生內容適當的回應,因為其定型數據。 對用戶進行教學可協助他們了解技術的運作方式,以及其功能及無法執行的工作。

  • Copilot 和其他產生的 AI 工具用於: 您應該解釋 Copilot 不是自發的代理程式,並不適合取代人類在其工作中,但意在增強個人,以更好且更快速地執行其目前的工作。 您也應該強調 Copilot 不適合的情況,使用具體範例來說明,並解釋在這些情況下,個人還可以使用哪些其他工具和資訊來解決問題。

  • 如何批判性評估 Copilot 輸出: 請務必指導用戶瞭解如何驗證 Copilot 輸出。 此驗證取決於他們所使用的 Copilot 體驗,但一般而言,您應該強調下列幾點:

    • 請先檢查每個輸出,然後再使用。
    • 評估並自問輸出是否正確。
    • 將批註新增至產生的程序代碼,以瞭解其運作方式。 或者,如有需要,請向 Copilot 詢問該程式代碼的說明,以及與信任來源交叉參考該說明。
    • 如果輸出產生非預期的結果,請使用不同的提示或執行手動驗證來進行疑難解答。
  • LLM 和 Generative AI 的風險和限制: 您應該說明 Copilot、LLM 和產生 AI 的主要風險和限制,例如本文中所述的風險和限制:

    • 它們不具決定性。
    • 它們不提供正確性、可靠性或真實性的指示或保證。
    • 它們可以幻覺並產生不正確的或低質量的輸出。
    • 它們無法產生超出訓練資料範圍的資訊。
  • 在 Fabric 中尋找 Copilot 的位置: 提供某人可能使用的不同工作負載、專案和 Copilot 體驗的高階概觀。

擴增或縮減容量

當您在 Fabric 中因 Copilot 耗用量或其他作業而發生節流時,您可以 暫時擴展或調整容量至較高的 SKU。 這是一項因應措施,暫時性提高您的成本,以減輕因節流或結轉引起的短期問題。 當您主要因為背景作業而遇到節流時,這特別有用,因為耗用量(因此影響)可能會分散在 24 小時時段內。

分割容量策略

在我們預期 Copilot 會在 Fabric 中被大量使用的情況下(例如在大型組織中),您可以考慮將 Copilot 的使用與其他 Fabric 工作負載進行隔離。 在此分割容量案例中,您可以只對個別的 F64 或更高 SKU 啟用 Copilot,以防止 Copilot 耗用量對其他網狀架構工作負載造成負面影響,而此 SKU 只會用於專用的 Copilot 體驗。 此分割容量策略會產生較高的成本,但可能會讓您更容易管理和管理 Copilot 使用量。

小提示

您可以搭配不支援或啟用 Copilot 的其他容量中的專案使用一些 Copilot 體驗。 例如,在 Power BI Desktop 中,您可以連結至具有 F64 SKU Fabric 容量的工作區,但接著連線到 F2 或 PPU 工作區中的語意模型。 然後,您可以在 Power BI Desktop 中使用 Copilot 體驗,而 Copilot 耗用量只會影響 F64 SKU。

下圖展示了一個拆分容量策略的範例,該策略可隔離 Copilot 的使用量,以提供類似於 Power BI Desktop 中 Copilot 的體驗。

圖表描述了透過分配獨立的 Fabric Copilot 容量以管理 Copilot 耗用量的策略。

您也可以將 Copilot 耗用量指派給個別容量,以使用分割容量解決方案。 將 Copilot 耗用量指派給獨立的容量,可確保 Copilot 的高使用率不會影響您的其他 Fabric 工作負載以及依賴這些工作負載的商業關鍵流程。 當然,使用任何分割容量策略需要您已經擁有兩個或以上 F64 或更高型號的產品。 因此,對於預算有限的小型組織或資源有限的組織,此策略可能難以管理,因為無法負擔於其數據平台上的花費。

無論您選擇如何管理 Copilot,最重要的是監視 Fabric 容量中的 Copilot 使用量。