主動學習

「主動式學習建議」功能可根據使用者提交的內容來針對問題解答組建議替代問題,以改善知識庫的品質。 您可以檢閱這些建議,並將其新增至現有的問題或加以拒絕。

您的知識庫不會自動變更。 您必須接受建議,變更才能生效。 這些建議會新增問題,但不會變更或移除現有的問題。

注意

QnA Maker 服務即將於 2025 年 3 月 31 日淘汰。 較新版的問題和解答功能現在隨附於適用於語言的 Azure 認知服務。 如需瞭解語言服務內的問題解答功能,請參閱問題解答。 從 2022 年 10 月 1 日開始,您將無法建立新的 QnA Maker 資源。 如需將現有的 QnA Maker 知識庫移轉至問題解答的相關資訊,請參閱移轉指南

何謂主動式學習?

QnA Maker 可透過隱含和明確的意見反應學習新演變出來的問題。

  • 隱含的意見反應 – 排名工具了解使用者問題有多個答案且分數非常接近,並將其視為意見反應。 您不需要執行任何動作,就會產生這個效果。
  • 明確的意見反應 – 從知識庫傳回分數變化很小的多個答案時,用戶端應用程式會詢問使用者哪個問題是正確的問題。 使用者的明確意見反應會透過訓練 API 傳送至 QnA Maker。

這兩種方法都會向排名工具提供叢集化的類似查詢。

主動式學習的運作方式

系統會根據 QnA Maker 傳回的前幾個答案分數,觸發主動式學習。 如果符合查詢之 QnA 配對的分數差落在一個小範圍內,查詢即會視為每個可能 QnA 配對的可能建議 (替代問題)。 一旦針對某個特定 QnA 配對接受建議的問題,其他配對就會拒絕此建議。 接受建議之後,請務必記得儲存及訓練。

當端點取得合理數量和足夠類型的使用查詢時,主動式學習可提供最佳的可能建議。 集合五個或以上的類似查詢後,QnA Maker 每 30 分鐘就會建議知識庫設計者接受或拒絕以使用者為基礎的問題。 所有建議會依相似度叢集化在一起,並根據使用者發出特定查詢的頻率顯示替代問題的最高排名建議。

當在 QnA Maker 入口網站中建議問題後,即必須檢閱並接受或拒絕這些建議。 沒有可管理建議的 API。

QnA Maker 隱含意見反應的運作方式

QnA Maker 的隱含意見反應會使用演算法來判斷分數鄰近性,然後提供主動式學習建議。 判定相近程度的演算法並非簡單的計算。 下列範例中的範圍非為固定,僅應作為了解演算法影響的指引。

當問題的分數具有高信賴度時 (例如 80%),可考慮進行主動式學習的分數範圍較廣,大約在 10% 以內。 信賴分數下降時 (例如 40%),分數的範圍也會隨之降低,大約在 4% 以內。

在下列從查詢到 QnA Maker generateAnswer 的 JSON 回應中,A、B 和 C 的分數非常相近,會視為建議。

{
  "activeLearningEnabled": true,
  "answers": [
    {
      "questions": [
        "Q1"
      ],
      "answer": "A1",
      "score": 80,
      "id": 15,
      "source": "Editorial",
      "metadata": [
        {
          "name": "topic",
          "value": "value"
        }
      ]
    },
    {
      "questions": [
        "Q2"
      ],
      "answer": "A2",
      "score": 78,
      "id": 16,
      "source": "Editorial",
      "metadata": [
        {
          "name": "topic",
          "value": "value"
        }
      ]
    },
    {
      "questions": [
        "Q3"
      ],
      "answer": "A3",
      "score": 75,
      "id": 17,
      "source": "Editorial",
      "metadata": [
        {
          "name": "topic",
          "value": "value"
        }
      ]
    },
    {
      "questions": [
        "Q4"
      ],
      "answer": "A4",
      "score": 50,
      "id": 18,
      "source": "Editorial",
      "metadata": [
        {
          "name": "topic",
          "value": "value"
        }
      ]
    }
  ]
}

但是 QnA Maker 不知道哪個才是最佳答案。 請使用 QnA Maker 入口網站的建議清單選取最佳答案,然後再訓練一次。

如何使用訓練 API 提供明確的意見反應

QnA Maker 需要有明確的意見反應,指出哪些答案是最佳答案。 您決定如何判斷最佳答案,其可包括:

  • 使用者意見反應,選取其中一個答案。
  • 商務邏輯,例如判斷可接受的分數範圍。
  • 結合使用者意見反應和商務邏輯。

在使用者選取答案後,使用訓練 API 將正確的答案傳送至 QnA Maker。

升級執行階段版本以使用主動式學習

執行階段 4.4.0 版和更新版本可支援主動式學習。 如果您的知識庫是在舊版中建立的,請升級執行階段以使用這項功能。

開啟替代問題的主動式學習

依預設會關閉主動式學習。 開啟它以查看建議的問題。 開啟主動式學習之後,您必須將用戶端應用程式的資訊傳送至 QnA Maker。 如需詳細資訊,請參閱從 Bot 使用 GenerateAnswer 和訓練 API 的架構流程

  1. 選取 [發佈] 以發佈知識庫。 主動式學習查詢只會從 GenerateAnswer API 預測端點收集。 QnA Maker 入口網站 [測試] 窗格中的查詢不會影響主動式學習。

  2. 若要在 QnA Maker 入口網站中開啟主動式學習,請在右上角選取 [名稱],然後移至 的 [服務設定]

    從 [服務] 設定頁面開啟主動學習的建議問題替代方案。選取右上角功能表的使用者名稱,並選取 [服務設定]。

  3. 尋找 QnA Maker 服務,然後切換主動式學習

    在 [服務] 設定頁面上,開啟 [主動學習] 功能。若無法開啟該功能,服務可能必須升級。

    注意

    上圖中的確切版本僅供作為範例。 您的版本可能會不同。

    在啟用主動式學習後,知識庫將根據使用者提交的問題定期建議新的問題。 您可以再次切換設定以停用主動式學習

檢閱建議的替代問題

在每個知識庫的 [編輯] 頁面上檢閱替代的建議問題

下一步