メインコンテンツへジャンプ

Databricks アシスタントは、Databricksノートブック、SQLエディタ、ファイルエディタで利用可能な、コンテキストを意識したAIアシスタントで、Databricksの生産性を向上させます:

  • SQL/Pythonコードの生成
  • オートコンプリートコードまたはクエリ
  • コードの変換と最適化
  • コードやクエリの説明
  • エラーの修正とコードのデバッグ
  • アクセス可能なテーブルとデータの発見

Databricks アシスタントのドキュメントには、これらのタスクに関する高レベルの情報と詳細が記載されていますが、コード生成のためのジェネレーティブAIは比較的新しいものであり、これらのアプリケーションを最大限に活用する方法はまだ学習中です。

このブログ記事では、Databricks アシスタントを最大限に活用するための5つのヒントとトリックについて説明します。

Databricks アシスタントのための5つのヒント

1. より良い応答を得るためにFind Tablesアクションを使用する

Databricks アシスタントは様々なシグナルを活用して、より正確で関連性の高い結果を提供します。 Databricks アシスタントが現在使用しているコンテキストには、次のようなものがあります:

  • ノートブックのセルまたはDatabricks SQLエディタ タブ内のコードまたはクエリ
  • テーブル名とカラム名
  • アクティブなテーブル(ノートブックまたはSQLエディタ タブで現在参照されているテーブル)
  • 現在のセッションでの以前の入力と応答(このコンテキストはノートブックスコープであり、チャットセッションがクリアされると消去されることに注意してください)
  • デバッグやエラー修正のために、Databricks アシスタントはエラーのスタックトレースを使用します

Databricks アシスタントがコンテキストとして使用する項目が異なるため、コンテキストを使用して Databricks アシスタントとの対話方法を変更することで、最良の結果を得ることができます。 より良い結果を得るための最も簡単な方法の1つは、Databricks アシスタントがレスポンスを生成する際にコンテキストとして使用したいテーブルを指定することです。 クエリで使用するテーブルを手動で指定することも、そのテーブルをお気に入りに追加することもできます。

以下の例では、2018年のNFLシーズンにおいて、ホームチームとアウェイチームの最大の点差についてDatabricks アシスタントに質問してみたいと思います。 Databricks アシスタントの反応を見てみましょう。

Databricks アシスタントには、このデータを検索するために使用するテーブルに関するコンテキストがないため、このような回答を得ました。 これを解決するには、Databricks アシスタントにこれらのテーブルを検索してもらうか、使用するテーブルを手動で指定します。

"Find tables related" と入力すると、Databricks アシスタントがテーブル検索モードに入ります。 このモードでは、NFLの試合について言及しているテーブルを検索することができます。テーブルをクリックすると、SELECTクエリの候補、テーブルの説明、またはそのテーブルを使用して自然言語でクエリを実行できるドロップダウンが開きます。 このプロンプトでは、"Query in natural language" オプションを使用して、次のクエリのテーブルを明示的に設定します。

使用するテーブルを選択した後、元のプロンプトは 44 ポイントという答えを返す SQL クエリを生成します。 Databricks アシスタントに使用するテーブルを伝えることで、正しい答えが得られます。

2. 応答がどのように見えるかを指定する

Databricks アシスタントが提供する構成や詳細は、同じプロンプトであっても時間によって異なります。 必要な構造または形式で出力を得るために、Databricks アシスタントにさまざまな量の詳細、説明、またはコードで応答するように指示することができます。

NFLのテーマに引き続き、以下のクエリは、現役か引退かを含め、1シーズンに500回以上試行したクォーターバックのパス成功率のリストを取得します。

このクエリは、書いた本人にとっては意味があるでしょうが、初めて見る人にとってはどうでしょう? Databricks アシスタントにコードを説明してもらうとよいでしょう。

このコードの基本的な概要をあまり詳しく説明せずに知りたい場合は、Databricks アシスタントに説明文を最小限に抑えるように依頼することができます。

逆に、Databricks アシスタントにこのコードを一行ずつ詳しく説明してもらうこともできます(長さの関係で出力はカットされています)。

レスポンスがどうあるべきかを指定することは、コード生成にも当てはまります。 プロンプトによっては、ビジュアライゼーションの作成など、同じタスクを達成するための複数の方法があります。 例えば、2015年シーズンのNFL公式戦の試合数をプロットしたい場合、MatplotlibやPlotly、Seabornを使うことができます。 この例ではPlotlyを使いたいので、この画像のようにプロンプトで指定します:

Databricks アシスタントがプロンプトに応答する方法や含まれる内容を変更することで、時間を節約し、要件を満たす応答を得ることができます。

3. Databricks アシスタントに行レベルデータがどのようなものかを伝える

Databricks アシスタントはテーブルスキーマとカラムタイプを検査し、より正確なレスポンスを提供しますが、行レベルのデータにはアクセスできません。 これはデータのプライバシーにとって重要ですが、Databricks アシスタントが一部のデータ形式や構造にしか対応できないコードを生成する可能性があるという欠点があります。

NFL スカウティング・コンバインに参加した選手のデータを含むテーブルを扱うとします:

Databricks Assistantに各ポジションの平均身長を取得するよう依頼すると、構文的に正しく、正しいカラム名とテーブルを使用したSQLクエリを受け取ることができます。

しかし、クエリを実行するとエラーが発生します。 これは、テーブルの高さ列が実際には文字列であり、"feet-inches" (6-2)のような構造になっているためです。しかし、Databricks アシスタントは行レベルのデータにアクセスできないため、このことを知る方法がありません。

これを解決するには、プロンプトを編集して、行レベルのデータがどのように見えるかの例を含めるようにします。 これで新しいクエリが正常に実行されるようになります。

このテーブルを扱うデータアナリスト、エンジニア、サイエンティストは、コードを書きながらデータを見ることができますが、Databricks アシスタントは行レベルのデータについては何も知らないため、正しい結果を得るためには、データがどのように見えるかの例を示したり、フォーマットについてさらに詳しく説明したりする必要があります。

4. アシスタントパネルでコードスニペットを直接実行してテストする

LLMベースのツールで作業する大部分は、望ましい結果を得るために、どのような種類のプロンプトが最も効果的なのかを弄り回すことです。 Databricks アシスタントに、プロンプトの表現が不適切だったり、プロンプトにスペルミスがあったりするタスクを実行させると、最良の結果が得られない可能性があります。

Databricks アシスタントのチャットウィンドウでは、既存のコンテキストを失うことなく、以前のプロンプトを直接編集してリクエストを再送信することができます。

しかし、質の高いプロンプトを使っても、その回答が正しいとは限りません。 アシスタントパネルで直接コードを実行することで、ノートブックにコピーする前にコードをテストし、素早く反復することができます。 アシスタントパネルはスクラッチパッドだと思ってください。

チャットウィンドウでコードが更新または検証されたので、それをノートブックに移動し、下流のユースケースで使用することができます。

おまけ:アシスタントウィンドウでコードを編集するだけでなく、既存のコードと新しく生成されたコードを切り替えて、2つの違いを簡単に確認することもできます。

5. ノートブック内でのセルアクションの使用

セルアクションを使用すると、ユーザーはチャットウィンドウなしで Databricks アシスタントと対話し、ノートブック内でコードを生成することができます。

ノートブックのセル内のコードのスニペットにコメント(ドキュメント)を追加したいとします。 まず、Databricks アシスタントのチャットウィンドウを開き、" add comments to my code " のようなプロンプトを入力するか、セルアクションを使用して、以下のように" /doc" を選択します。

セルアクションでは、ショートカットだけでなく、カスタムプロンプトも使用できます。 Databricks アシスタントにコードをフォーマットしてもらいましょう。 同じアイコンをクリックして、プロンプトを入力してエンターキーを押します。

Databricks アシスタントは、生成された出力コードと、元のコードと提案されたコードの違いを表示します。 セルアクションは、サイドチャットウィンドウを開かずに Databricks Notebooks 内でコードを生成する素晴らしい方法です。

まとめ

Databricks アシスタントは、Databricks での開発をより簡単に、より速く、より効率的にする強力な機能です。 上記のヒントを取り入れることで、Databricks アシスタントを最大限に活用することができます。

こちらに記載されている手順に従って、DatabricksアカウントとワークスペースでDatabricks Assistantを有効にしてください。

Databricks アシスタントは、他の生成AIツールと同様、間違いを犯す可能性があります。 このため、Databricks アシスタントによって生成されたコードを実行する前に必ず確認してください。 見た目が適切でない、または構文が正しくない回答を受け取った場合は、親指を下に振るアイコンでフィードバックを送信してください。 Databricks アシスタントは、より良い結果を返すために常に学習し、改善しています。

Databricks アシスタントの有効化

Databricks 無料トライアル

関連記事

コンテキストを認識するAIアシスタント、Databricks Assistantの紹介

翻訳:Junichi Maruyama. - Original Blog Link 本日、Databricks Notebooks、SQLエディタ、ファイルエディタでネイティブに利用可能な、コンテキストを意識したAIアシスタント、Databricks Assistantのパブリックプレビューを発表します。Databricks Assistantを使えば、会話形式のインターフェイスでデータを照会することができ、Databricks内での生産性が向上します。タスクを英語で説明すると、アシスタントが SQL クエリを生成し、複雑なコードを説明し、エラーを自動的に修正します。アシスタントは、Unity カタログのメタデータを活用して、テーブル、カラム、説明、および会社全体で人気のあるデータ資産を理解し、あなたにパーソナライズされた応答を提供します。 データおよびAIプロジェクトの迅速な構築 SQLまたはPythonコードの生成 Databricks Assistant は Databricks の各編集画面にネイティブに

データ・インテリジェンス・プラットフォーム

「 ソフトウェアが世界を食べている 」という見方が、現代のハイテク産業を形成してきました。今日、ソフトウェアは、私たちが身につける時計から、家、車、工場、農場まで、私たちの生活のいたるところにあります。Databricksでは、まもなく AIがすべてのソフトウェアを食べるようになる と考えています。つまり、過去数十年の間に構築されたソフトウェアがインテリジェントになり、データを活用することで、より賢くなるということです。 その影響は膨大かつ多様で、カスタマーサポートから医療、教育まであらゆる分野に影響を及ぼします。このブログでは、AIがデータ・プラットフォームをどのように変えるかについて、私たちの見解を述べます。データ・プラットフォームに対するAIのインパクトは漸進的なものではなく、データへのアクセスを大幅に民主化し、手作業による管理を自動化し、カスタムAIアプリケーションのターンキー作成を可能にするという根本的なものであると主張します。 これらすべてを可能にするのが、組織のデータを深く理解する統合プラットフォー

LakehouseIQのご紹介: あなたのビジネスを独自に理解するAIエンジン

翻訳:Junichi Maruyama. - Original Blog Link 本日、LakehouseIQを発表いたします。LakehouseIQは、お客様のビジネスとデータのユニークなニュアンスを学習し、様々なユースケースで自然言語によるアクセスを可能にするナレッジエンジンです。LakehouseIQは、組織内のどの従業員でも自然言語でデータを検索、理解、照会することができます。LakehouseIQは、お客様のデータ、使用パターン、組織図に関する情報をもとに、専門用語や独自のデータ環境を理解し、素朴なLarge Language Models (LLM)よりもはるかに優れた回答を提供します。 ラージ・ランゲージ・モデルはもちろん、データに言語インターフェースをもたらすと約束されており、どのデータ会社もAIアシスタントを追加しているが、現実には、これらのソリューションの多くは企業データでは不十分である。どの企業も独自のデータセット、専門用語、ビジネス上の質問に答えるために必要な内部知識を持っており、質問に
プラットフォームブログ一覧へ