このページでは、Genie スペースを作成および保守する際の一般的な問題を解決する方法について説明します。
業務用語の誤った解釈
ほとんどの企業や分野では、業務固有の出来事について伝えるために特有の略語や表現が使われます。 たとえば、「年」が常に会計年度を指す場合があり、その会計年度は 1 月ではなく 2 月または 3 月に始まることがあります。 Genie がこれらの質問に自然かつ正確に答えられるよう、業務用語を Genie が理解できる単語や概念に明示的にマッピングする指示を含めます。 「 手順を指定する」を参照してください。
誤ったテーブルまたは列の使用
Genie が誤ったテーブルからデータを取得しようとしたり、誤った列に対して分析を実行しようとしたりする場合は、次のいずれかの方法でデータを調整できます。
- 明確で正確な説明を提供する: テーブルと関連するメタデータを調べて、そこで使用される用語が、送信された質問のユーザーの用語と一致することを確認します。 そうでない場合は、説明を改善するか、テーブルで使用されている用語を質問で使用されている用語にマッピングする指示を追加します。
- クエリの例を追加する: Genie が特定の質問に応答する方法を学習できるよう、サンプル SQL クエリを提供します。 「 手順を指定する」を参照してください。
- スペースからテーブルまたは列を削除する: 一部のテーブルには重複する列または概念が含まれており、Genie が応答にどのデータを使用すべきかが判断しにくくなる可能性があります。 可能であれば、不要なまたは重複するテーブルや列を削除します。 基になるデータ オブジェクトを変更せずに Genie 空間 UI から列を非表示にするには、「 関連する列を非表示または表示する」を参照してください。
エラーのフィルター処理
生成されたクエリには、多くの場合、特定の値に基づいて結果をフィルター処理する WHERE 句が含まれます。 Genie がデータ値を表示できない場合、間違った値をフィルター処理するように WHERE 句を設定する可能性があります。 たとえば、テーブルで "CA" などの省略形が使用されている場合に、"California" という名前と一致しようとする場合があります。
このような状況では、関連する列で Example 値 と 値ディクショナリ が有効になっていることを確認します。 関連するテーブルに新しいデータが追加されている場合は、値を更新します。 より信頼性の高い Genie スペースについては、ナレッジ ストアの構築に関する記事を参照してください。
不適切な結合
Unity カタログで外部キー参照が定義されていない場合、異なるテーブルを結合する方法がわからない可能性があります。
次の 1 つ以上の解決策を試してください。
- 可能であれば、Unity Catalog で外部キー参照を定義します。 CONSTRAINT の条項を参照してください。
- テーブルの外部キー リレーションシップが Unity カタログで指定されていない場合は、Genie スペースのナレッジ ストアで結合リレーションシップを定義します。 この戦略は、自己結合などのより複雑な結合シナリオや、基になるテーブルを変更するための十分なアクセス許可がない場合に役立ちます。 「 結合リレーションシップの定義」を参照してください。
- 標準的な方法でテーブルを結合するクエリの例を提供します。
いずれの方法でも問題が解決しない場合は、テーブルをビューに事前結合し、代わりにそれをスペースへの入力として使用してください。
列コメントが外部テーブルから同期されない
Azure Databricks では、外部テーブルへの書き込みのメタデータ、データ、またはセマンティクスは管理されません。 ソース テーブルによっては、Azure Databricks からコメントにアクセスできない場合があります。 コメントを使用できるようにするには、Azure Databricks で次のいずれかの操作を行うことをお勧めします。
- Genie 空間 UI で列メタデータを編集します。 編集されたメタデータは、それが書き込まれる Genie スペースにのみ適用されます。 列メタデータの編集を参照してください。
- フェデレーション テーブルの上に具体化されたビューを作成します。 マテリアライズド ビューのコメントは、マネージド テーブルの場合と同様に追加および編集できます。 このビューは、複数の Genie スペースで再利用できます。 外部テーブルから具体化されたビューへのデータの読み込みの詳細については、「具体化されたビュー を使用して外部テーブルからデータを読み込む」を参照してください。 具体化されたビューの操作の詳細については、「 具体化されたビュー」を参照してください。
メトリック計算の問題
メトリックの計算とロールアップの方法は、任意に複雑化することもあり、あなたの領域で理解できない多くのビジネスの詳細が含まれる場合があります。 これは、誤ったレポートにつながる可能性があります。
次の 1 つ以上の解決策を試してください。
- ナレッジ ストアでメトリックを SQL 式として定義します。 SQL 式は、Genie が一貫して適用できるメジャー、フィルター、およびディメンションに対して、再利用可能で正確な定義を提供します。 「SQL 式の定義」を参照してください。
- メトリックがベース テーブルから集計される場合は、それぞれのロールアップ値を計算する SQL クエリの例を提供します。
- メトリックが事前に計算され、集計テーブルに格納されている場合は、その旨をテーブルのコメントで説明します。 そのテーブルのメトリックがさらにロールアップできる場合は、各メトリックに対して有効な集計方法を明記します。
- 生成しようとしている SQL が非常に複雑な場合は、空間のメトリックを既に集計したビューを作成してみてください。
正確ではない時間ベースの計算
Genie は、追加のガイダンスを明示的に提供しない限り、データに表されているタイムゾーンまたは分析を実行する必要があるタイムゾーンを常に推測できるとは限りません。
元のソースのタイムゾーン、変換関数、およびターゲット タイムゾーンを詳しく説明する明示的な命令を含めます。 次の例は、一般的な手順を変更してタイムゾーン変換の信頼性を高める方法を示しています。
-
時間を常に特定のタイムゾーンに変換する: この例では、ソースのタイムスタンプが
UTCで、America/Los_Angelesタイムゾーンでの結果が必要であると仮定します。 次の手順を追加し、<timezone-column>を適切な列名に置き換えます。- テーブルのタイムゾーンは
UTCです。 - 次の関数を使用してすべてのタイムゾーンを変換します:
convert_timezone('UTC', 'America/Los_Angeles', <timezone-column>).
- テーブルのタイムゾーンは
-
UTC 以外の日時形式を UTC に変換する: ワークスペースの既定のタイムゾーンが
UTCされているが、ロサンゼルスのユーザーが特定のレコードセットについて 今日 参照する必要がある場合は、スペースの一般的な手順に次を追加します。-
現在参照するには、
date(convert_timezone('UTC', 'America/Los_Angeles', current_timestamp()))を使用します。
-
現在参照するには、
詳細と構文については、convert_timezone関数を参照してください。
命令の無視
コメントでテーブルと列について説明し、一般的な指示を提供したとしても、スペースでそれらが適切に使用されていない可能性があります。
次の 1 つ以上の方法を試してください。
- テーブルを正しく使用するクエリの例を提供します。 クエリの例は、スペースにデータの使用方法を学習させるうえで特に効果的です。
- Genie 空間で無関係な列を非表示にします。 関連する列を非表示または表示するを参照してください。
- データの表示を簡単にするビューをテーブルから作成します。
- 指示を見直し、無関係なテーブルや指示を削除してスペースの焦点を絞ります。
- 新しいチャットを開始してみます。 以前の対話は、特定のチャットでの Genie の応答に影響を与える可能性がありますが、新しいチャットを開始すると、新しい手順をテストするための空白の開始点が提供されます。
パフォーマンスの問題
Genie が非常に長いクエリやテキスト応答を生成する必要がある場合、応答に長い時間がかかったり、思考フェーズでタイムアウトになったりすることがあります。
パフォーマンスを改善するには、次の 1 つ以上の方法を試してください。
- クエリ履歴を確認して、実行速度が遅いクエリを特定します。 Genie 領域の構成を変更するのではなく、生成された SQL クエリを最適化することで、多くのパフォーマンスの問題を解決できます。 SQL ウェアハウスのクエリ履歴のクエリ実行時間とクエリ プランを確認して、ボトルネックと最適化の機会を特定します。
- 信頼できるアセットまたはビューを使用して、複雑なクエリをカプセル化します。 「AI/BI Genie スペースで信頼できるアセットを使用する」を参照してください。
- 可能な限り、SQL クエリの例の長さを短くします。
- Genie がの応答が遅いまたは正常に応答できなくなってきた場合は、新しいチャットを開始します。
ミッション クリティカルな質問に対する信頼性の低い回答
ユーザーの質問が予想される特定の質問に対し、信頼されたアセットを使用して検証済みの回答を用意します。 「AI/BI Genie スペースで信頼できるアセットを使用する」を参照してください。
トークン数の上限に関する警告
トークンは、Genie が言語の処理と理解に使用するテキストの基本的な単位です。 Genie 空間のテキスト命令とメタデータはトークンに変換されます。 スペースがトークンの制限に近づくと、警告が表示されます。 Genie では、コンテキスト フィルタリングを使用して、質問に最も関連すると見なされるトークンに優先順位を付けます。 警告が表示されても応答は生成されますが、重要なコンテキストがフィルターで除外されると品質が低下する可能性があります。トークンの制限を超えると、Genie 空間でメッセージを送受信できなくなります。
トークン数を減らすには、次のプラクティスを検討してください。
- 不要な列を削減する: テーブル内の不要な列は、トークン使用量を大幅に増加させる可能性があります。 可能であれば、ビューを作成して、生テーブルから冗長フィールドまたは必須でないフィールドを除外します。 Genie 空間で不要な列を非表示にすることもできます。 関連する列を非表示または表示するを参照してください。
-
列の説明を効率化する: 列の説明は重要ですが、列名で既に伝わっている情報を繰り返さないようにします。 たとえば、
account_nameという名前の列がある場合、"アカウントの名前" のような説明は冗長になり、省略できます。 - Genie 空間で列メタデータを編集する: 列メタデータの編集 を参照して、列メタデータで説明を編集し、シノニムを指定する方法について説明します。
- SQL クエリの例を排除する: さまざまな種類の質問に対応するためにさまざまな SQL クエリの例を含めますが、重複する例や冗長な例は削除します。
- 指示を簡略化する: 指示が明確で簡潔であることを確認します。 不要な語句を避ける
アカウントの Geo 間処理が無効
Genie は、Azure Databricks によって管理される指定サービスです。 指定サービスは、Databricks Geo を使用してデータの保存場所を管理します。 一部のリージョンのワークスペースと同じ Geo でデータを処理することはできません。 ワークスペースがこれらのリージョンのいずれかに存在する場合は、アカウント管理者がGeo 間処理 を有効にする必要があります。
スループットの限界に到達する
Azure Databricks UI を介して Genie スペースにアクセスする場合、スループットは、すべての Genie スペースにわたって、ワークスペースあたり 1 分あたり 20 質問に制限されます。
Conversation API の Free レベル (パブリック プレビュー) を使用して Genie スペースにアクセスする場合、スループットは、すべての Genie スペースにわたって、ワークスペースごとに 1 分あたりベスト エフォートの 5 つの質問に制限されます。 Genie API を使用して Genie をアプリケーションに統合する方法を参照してください。