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

「Databricks Assistant Autocomplete」ついに一般提供開始!

Share this post

Summary

Assistant Autocompleteの一般利用開始を発表することを嬉しく思います。アシスタントオートコンプリートは、入力時にAIによるリアルタイムのコード提案を提供します。

本日、全てのクラウドプラットフォームで「Databricks Assistant Autocomplete」の一般提供を開始しました!Assistant Autocompleteは、PythonとSQLの両方で、入力中にAIによるパーソナライズされたコード提案を提供します。

gif1

 

アシスタントオートコンプリート

ノートブックやSQLエディタ、AI/BIダッシュボードに直接統合されたAssistant Autocompleteの提案は、開発フローにスムーズに溶け込み、作業に集中したまま効率的にコーディングが進められます。

2

 

「普段はGenAIには懐疑的な方ですが、Databricks Assistant Autocompleteは、この技術において数少ない本当に素晴らしいユースケースの一つだと感じています。動作は速く、正確性も十分で、キー入力をかなり節約できるため、入力よりも思考に集中できるようになりました。さらに、APIの定型文(例:プロットの注釈など)を確認するためにインターネットを頻繁に参照する必要がほぼなくなりました。」
— Jonas Powell, リビアン社 スタッフデータサイエンティスト

この生産性向上を皆様にお届けできることを楽しみにしています。今後数週間で、対象のワークスペースにてDatabricks Assistant Autocompleteを順次有効化していきます。

複合AIシステム  

複合AIは、単一のモノリシックなモデルに頼るのではなく、複数の相互作用するコンポーネントを組み合わせて複雑なタスクに取り組むAIシステムを指します。このようなシステムは、さまざまなAIモデル、ツール、処理ステップを統合し、より柔軟で高性能、かつ適応性の高い全体的なワークフローを形成し、従来の単一モデルアプローチよりも優れています。

Assistant Autocompleteは、関連コードセルや関連するクエリ、同じテーブルを使用しているノートブック、Unity Catalogのメタデータ、DataFrame変数などからコンテキストを賢く活用する複合AIシステムで、入力時に正確でコンテキストに基づいた提案を生成します。

私たちのApplied AIチームは、DatabricksおよびMosaic AIフレームワークを利用してモデルをファインチューニング、評価、提供し、正確なドメイン固有の提案を実現しました。

テーブルメタデータと最近のクエリの活用

例えば、以下のカラムを持つシンプルなメトリクステーブルを作成したとします:

  • date (STRING)
  • click_count (INT)
  • show_count (INT)

Assistant Autocompleteを使えば、テーブルの構造を手動で確認することなく、クリック率(CTR)を簡単に計算できます。このシステムは、リトリーバル・オーグメンテッド・ジェネレーション(RAG)を用いて、操作中のテーブル(列の定義や最近のクエリパターン)に関するコンテキスト情報を提供します。

例えば、テーブルメタデータを基に、以下のようなシンプルなクエリが提案されます。

5

以前にクリック率をパーセンテージで計算したことがある場合、モデルは次のような提案をするかもしれません:

c

 

追加のコンテキストにRAGを使用することで、応答が根拠に基づいたものとなり、モデルの幻覚(誤った情報生成)を防ぐのに役立ちます。

実行時のDataFrame変数の活用

同じテーブルをSQLではなくPySparkで分析してみましょう。実行時変数を利用することで、DataFrameのスキーマを検出し、利用可能な列がわかります。

例えば、日ごとの平均クリック数を計算したい場合:

3

この場合、システムは実行時のスキーマを使用して、DataFrameに合わせた提案を提供します。

ドメイン固有のファインチューニング

多くのコード補完LLMは一般的なコーディングタスクに優れていますが、当モデルはDatabricksエコシステム向けに特別にファインチューニングされています。これには、データエンジニアリング、分析、AIワークフローの共通パターンに焦点を当て、公開されているノートブック/SQLコードでの追加トレーニングが含まれます。これにより、分散環境でビッグデータを扱う際の微妙な違いを理解するモデルを構築しました。

ベンチマークに基づくモデル評価

提案の質と関連性を確保するために、HumanEval、DS-1000、Spiderなどの一般的なコーディングベンチマークを用いてモデルを評価しています。しかし、これらのベンチマークは一般的なコーディング能力やドメイン知識を評価するのには役立ちますが、Databricksの機能や構文をすべて捉えることはできません。そこで、Databricksで頻繁に使用されるパッケージや言語を対象としたカスタムベンチマークを数百のテストケースで開発しました。この評価フレームワークは、一般的なコーディング評価を超え、Databricks固有のタスクや実際に使用中に見られた品質問題を評価するものです。

モデル評価の詳細について興味がある方は、専門的なコーディングタスクのためのLLM評価に関する最近の投稿をご覧ください。

いつ生成するか(しないか)を理解する

コンテキストが十分であり、コードの提案が不要な場合もあります。初期バージョンのコーディングモデルの例に示されているように、クエリがすでに完成している場合、追加の補完は役立たないどころか邪魔になることもあります。

初期コード(カーソルは<here>で表されます)

完成したコード(太字は以前のモデルからの提案コード)

-- 全時間を通じて日ごとのクリック率を取得します

SELECT date, click_count<here> *100.0/show_count as click_pct

main.product_metrics.client_side_metricsから

-- 全時間を通じて日ごとのクリック率を取得します

SELECT date, click_count, show_count, click_count*100.0/show_count as click_pct

main.product_metrics.client_side_metricsから

-- 全時間を通じて日ごとのクリック率を取得します

SELECT date, click_count*100<here>.0/show_count as click_pct

main.product_metrics.client_side_metricsから

-- 全時間を通じて日ごとのクリック率を取得します

SELECT date, click_count*100.0/show_count as click_pct

main.product_metrics.client_side_metricsから.0/show_count as click_pct

main.product_metrics.client_side_metricsから

上記の例すべてにおいて、理想的な応答は実際には空の文字列です。モデルは時々空の文字列を生成するものの、このような不必要な補完が頻繁に発生することが問題でした。この問題は、モデルが「控えるべき時」、つまり出力を生成せず空の補完を返す必要があることを認識できるようになるべきだということです。

この課題を解決するため、ファインチューニングのトリックを導入しました。コードのランダムな位置で、5〜10%のケースに空の中央スパンを含むように強制しました。これにより、モデルがコードが完成しており提案が不要な場合を認識するように訓練されることを狙いました。このアプローチは非常に効果的であることが証明され、SQLの空応答テストケースではパス率が60%から97%に向上し、他のコーディングベンチマークの性能に影響を与えることはありませんでした。さらに重要なことに、モデルを本番環境に展開したところ、コード提案の受け入れ率が明確に向上しました。このファインチューニングの改善により、ユーザーにとって顕著な品質向上が実現しました。

高速かつコスト効率の高いモデルサービング

リアルタイムのコード補完には、効率的なモデルサービングが重要です。DatabricksのGPUアクセラレーションを最適化したモデルサービングエンドポイントを活用することで、低遅延の推論を実現しつつGPU使用コストを管理しています。このセットアップにより、迅速な提案が可能となり、スムーズで応答性の高いコーディング体験が提供されます。

Assistant Autocompleteはエンタープライズニーズに応えます

私たちは、データとAIに特化し、企業の顧客がデータから価値を引き出して世界の難問を解決できるよう支援する企業として、AIの導入には責任ある対応が必要だと確信しています。

Assistant Autocompleteは、エンタープライズ向けのワークロードに対応するよう、最初から設計されています。Assistant AutocompleteはUnity Catalogのガバナンスに準拠し、特定の高度に規制された業界のコンプライアンス基準を満たしています。また、地理的制限に従い、医療保護情報(PHI)データを処理するワークスペースで使用できます。お客様のデータは決して他の顧客と共有されず、モデルのトレーニングにも使用されません。詳細はDatabricksの信頼と安全性に関するページをご覧ください。(Databricks Trust and Safety

Databricks Assistant Autocompleteのはじめかた

Databricks Assistant Autocompleteは追加費用なしですべてのクラウドで利用可能で、今後数週間でワークスペースに順次有効化されます。ユーザーは開発者設定で機能を有効化または無効化できます。

  1. 設定に移動します。
  2. Developerの下でAutomatic Assistant Autocompleteを切り替えます。
  3. 入力中に提案が自動的に表示されます。提案を受け入れるにはTabキーを押します。提案を手動でトリガーするには、macOSではOption + Shift + Space、WindowsではControl + Shift + Spaceを押します。自動提案を無効にしていても手動で提案をトリガーできます。

詳しい使用方法やユースケースの一覧については、ドキュメンテーションページ公開プレビューブログ投稿をご覧ください。