次の方法で共有


ai_classify 関数

適用対象:「はい」のチェック マーク Databricks SQL 「はい」のチェック マーク Databricks Runtime

重要

この機能は 、パブリック プレビューHIPAA に準拠しています

プレビュー期間中:

  • 基になる言語モデルでは複数の言語を処理できますが、この AI 関数は英語用にチューニングされています。
  • AI Functionsの地域可用性については、地域限定の機能を参照してください。

ai_classify()関数は、指定したカスタム ラベルに従ってテキストコンテンツを分類します。 基本的な分類には単純なラベル名を使用するか、ラベルの説明と指示を追加して、カスタマー サポートのルーティング、ドキュメントの分類、コンテンツ分析などのユース ケースの精度を向上させることができます。

この関数は、ai_parse_documentなどの他の AI 関数からのテキストまたはVARIANT出力を受け取り、構成可能なワークフローを可能にします。

ai_classifyで反復処理する UI バージョンについては、「分類」を参照してください。

要件

Apache 2.0 ライセンス

現時点で使用できる基になるモデルは、 Apache 2.0 ライセンスの Copyright © The Apache Software Foundation に基づくライセンスが付与されています。 お客様は、該当するモデル ライセンスへのコンプライアンスを遵守する責任を負います。

Databricks では、該当する使用条件に準拠するために、これらのライセンスを確認することをお勧めしています。 Databricks の内部ベンチマークに従ってパフォーマンスが向上するモデルが将来出現した場合、Databricks によってモデルが変更される可能性があります (および、このページで提供されている該当するライセンスの一覧)。

この関数を利用するモデルは、Model Serving Foundation Model API を使用して使用できるようになります。 Databricks で使用できるモデルと、それらのモデルの使用を管理するライセンスとポリシーについては、 該当するモデル開発者の用語 を参照してください。

Databricks の内部ベンチマークに従ってパフォーマンスが向上するモデルが将来出現した場合、Databricks によってモデルが変更され、ドキュメントが更新される可能性があります。

  • この関数は、一部のリージョンでのみ使用できます。 AI 関数の可用性に関するページを参照してください。
  • この関数は、Azure Databricks SQL クラシックでは使用できません。
  • Databricks SQL の価格ページを確認してください。
  • Databricks Runtime 15.1 以上では、この関数は Databricks ノートブック内でサポートされ、これには Databricks ワークフロー内でタスクとして実行されるノートブックも含まれます。
  • バッチ推論ワークロードでは、パフォーマンスを向上させるために Databricks Runtime 15.4 ML LTS が必要です。

構文

ai_classify(
    content VARIANT | STRING,
    labels STRING,
    [options MAP<STRING, STRING>]
) RETURNS VARIANT

バージョン 1

ai_classify(
    content STRING,
    labels ARRAY<STRING>,
    [options MAP<STRING, STRING>]
) RETURNS STRING

議論

  • content: VARIANT または STRING 式。 以下のいずれかを受け入れます:

  • labels: 分類ラベルを定義する STRING リテラル。 ラベルは次のようになります。

    • 単純なラベル: ラベル名の JSON 配列。
      ["urgent", "not_urgent"]
      
    • 説明付きのラベル: ラベル名を説明にマッピングする JSON オブジェクト。 ラベルの説明は 0 ~ 1000 文字にする必要があります。
      {
        "billing_error": "Payment, invoice, or refund issues",
        "product_defect": "Any malfunction, bug, or breakage",
        "account_issue": "Login failures, password resets"
      }
      

    各ラベルは 1 ~ 100 文字にする必要があります。 labels には、少なくとも 2 つのラベルと 500 個以下のラベルを含む必要があります。

  • options: 構成オプションを含む省略可能な MAP<STRING, STRING> :

    • version: 移行をサポートするバージョン スイッチ (v1 動作の場合は"1.0" 、v2 動作の場合は "2.0" )。 既定値は入力の種類に基づいていますが、 "1.0"にフォールバックします。
    • instructions:分類の品質を向上させるためのタスクとドメインのグローバルな説明。 20,000 文字未満にする必要があります。
    • multilabel: 複数のカテゴリが適用されたときに複数のラベルを返す "true" に設定します。 既定値は "false" (単一ラベル分類) です。

バージョン 1

  • content: 分類するテキストを含む STRING 式。

  • labels: 予期される出力分類ラベルを持つ ARRAY<STRING> リテラル。 2 個以上 20 個以下の要素を含む必要があります。 各ラベルは 1 ~ 50 文字にする必要があります。

  • options: 構成オプションを含む省略可能な MAP<STRING, STRING> :

    • version: 移行をサポートするバージョン スイッチ (v1 動作の場合は"1.0" 、v2 動作の場合は "2.0" )。 既定値は入力の種類に基づいていますが、 "1.0"にフォールバックします。

戻り値

次を含む VARIANT を返します。

{
  "response": ["label_name"], // Array with single label (or multiple if multilabel=true)
  "error_message": null // null on success, or error message on failure
}

response フィールドには次のものが含まれます。

  • 単一ラベル モード (既定): 最適に一致するラベルを含む 1 つの要素を含む配列
  • 複数ラベル モード (multilabel: "true"): 複数のカテゴリが適用される場合に複数のラベルを持つ配列
  • ラベル名は、 labels パラメーターで指定されているものと完全に一致します

contentNULLされている場合、またはコンテンツを分類できない場合は、NULLを返します。

バージョン 1

STRINGを返します。 この値は、labels 引数で指定された文字列のいずれかとマッチします。

contentNULLされている場合、またはコンテンツを分類できない場合は、NULLを返します。

単純なラベル - ラベル名のみ

> SELECT ai_classify(
    'My password is leaked.',
    '["urgent", "not_urgent"]'
  );
 {
   "response": ["urgent"],
   "error": null
 }

説明付きのラベル

> SELECT ai_classify(
    'Customer cannot complete checkout due to payment processing error.',
    '{
      "billing_error": "Payment, invoice, or refund issues",
      "product_defect": "Any malfunction, bug, or breakage",
      "account_issue": "Login failures, password resets",
      "feature_request": "Customer suggestions for improvements"
    }'
  );
 {
   "response": ["billing_error"],
   "error": null
 }

グローバル命令の使用

> SELECT ai_classify(
    'User reports app crashes on startup after update.',
    '["critical", "high", "medium", "low"]',
    MAP('instructions', 'Classify bug severity based on user impact and frequency.')
  );
 {
   "response": ["critical"],
   "error": null
 }

複数ラベル分類

> SELECT ai_classify(
    'Customer wants refund and reports product arrived broken.',
    '{
      "billing_issue": "Payment or refund requests",
      "product_defect": "Damaged or malfunctioning items",
      "shipping_issue": "Delivery problems"
    }',
    MAP('multilabel', 'true')
  );
 {
   "response": ["billing_issue", "product_defect"],
   "error": null
 }

を使用したコンポーザビリティ ai_parse_document

> WITH parsed_docs AS (
    SELECT
      path,
      ai_parse_document(
        content,
        MAP('version', '2.0')
      ) AS parsed_content
    FROM READ_FILES('/Volumes/support/tickets/', format => 'binaryFile')
  )
  SELECT
    path,
    ai_classify(
      parsed_content,
      '["billing_error", "product_defect", "account_issue", "feature_request"]',
      MAP('instructions', 'Customer support ticket classification.')
    ) AS ticket_category
  FROM parsed_docs;

バッチ分類

> SELECT
    description,
    ai_classify(
      description,
      '["clothing", "shoes", "accessories", "furniture", "electronics"]'
    ) AS category
  FROM products
  LIMIT 10;

バージョン 1

> SELECT ai_classify("My password is leaked.", ARRAY("urgent", "not urgent"));
  urgent

> SELECT
    description,
    ai_classify(description, ARRAY('clothing', 'shoes', 'accessories', 'furniture')) AS category
  FROM
    products
  LIMIT 10;

制限事項

バージョン 2 の制限事項:

  • この関数は、Azure Databricks SQL クラシックでは使用できません。

  • この関数は Views では使用できません。

  • ラベル名はそれぞれ 1 ~ 100 文字にする必要があります。

  • labels パラメーターには、2 ~ 500 個の一意のラベルが含まれている必要があります。

  • ラベルの説明はそれぞれ 0 ~ 1,000 文字にする必要があります。

  • コンテキストの最大合計サイズは 128,000 トークンです。

バージョン 1

バージョン 1 の制限事項:

  • この関数は、Azure Databricks SQL クラシックでは使用できません。

  • この関数は Views では使用できません。

  • ラベル名はそれぞれ 1 ~ 50 文字にする必要があります。

  • labels配列には、2 ~ 20 個のラベルが含まれている必要があります。

  • content入力は、128,000 トークン (約 300,000 文字) 未満である必要があります。