1
0

More than 1 year has passed since last update.

SQLからLLMを利用できるDatabricksのai_generate_text()のセットアップと検討事項

Posted at

Set up and considerations for ai_generate_text() | Databricks on AWS [2023/6/30時点]の翻訳です。

本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。

プレビュー
本機能はパブリックプレビューです。

本書では、ai_generate_text()関数を使う前に、何を検討すべきか、何をセットアップすべきか、特にどのように認証情報を取得し、セキュアに格納するのかについて説明します。また、機能の制限やコストパフォーマンスの検討についても説明します。

ai_generate_text()とは?

ai_generate_text()関数は、SQLから直接大規模言語モデル(LLM)にアクセスすることができるビルトインのDatabricks SQL関数です。この関数は、現在OpenAIモデルとAzure OpenAIモデルへのアクセスをサポートしており、ユーザーはデータパイプラインや機械学習ワークロードにおけるビルディングブロックとして活用できます。構文やデザインパターンに関しては、ai_generate_text functionの言語マニュアルコンテンツをご覧ください。

ai_generate_text()のユースケースには、翻訳、要約、推奨アクション、トピックやテーマの特定などが含まれます。

以下にDatabricksにおけるLLM活用のメリットを示します:

  • オープンソースLLMやプロプライエタリLLMに対する統合アクセス、管理レイヤー。
  • サーバレス、オートスケーリング、データ連携されたLLMのインフラストラクチャ。
  • ご自身のビジネス要件やユースケースに合わせて、ポイントアンドクリックでLLMをカスタマイズできるシンプルさ。
  • 高度なユーザー向けには、オープンソースLLMの迅速な開発、カスタマイズのためのツール。

要件

  • AI Functionsパブリックプレビューへの登録。パブリックプレビューに登録するには、AI Functions Public Preview enrollment formを提出してください。
  • AzureやAWSで利用できるDatabricks SQL ProあるいはServerless。
  • この機能はデータがあなたのSQL環境から出て、サードパーティLLMモデルプロバイダーであるOpenAIやAzure OpenAIに送信されることの価値や用法の理解。
  • OpenAIやAzure OpenAIにアクセスできること。
  • GPT 3.5 Turboモデルがデプロイされていること。

認証情報の取得

ai_generate_text()関数を使うには、Azure OpenAIやOpenAIにアクセスできる必要があります。

以下のステップを通じてAzure OpenAI認証情報を取得します。認証情報ではresourceNamedeploymentNameai_generate_text()のパラメーターを入力します。

  1. Azure PortalのCognitive Servicesに移動し、Azure OpenAIを選択します。
  2. 使用したいリソースを選択します。
  3. Resource ManagementでKeys and Endpointを選択します。
  4. キーとリソース名をコピーします。
  5. Resource ManagementでModel Deploymentsを選択します。
  6. モデルデプロイメント名をコピーします。

OpenAIでは、OpenAIに移動してキーを作成するためにAPIキーを選択します。

注意
既存のキーの設定のキーをコピーすることはできません。

以下のいずれかを行うことができます:

  • 設定を作成した個人、あるいは、プリンシパルからキーを参照することができます。
  • 新規のキーを作成し、作成に成功したキーをコピーすることができます。

アクセストークンの格納

重要!
ノートブック、コード、gitリポジトリに平文としてトークンを含めないでください

APIトークンを保持するためにDatabricksシークレットを活用することができます。シークレットを作成するためにSecrets CLISecrets API 2.0を活用することができます。以下の例のステップでは、Secrets CLIを使っています:

  1. OpenAIキーを保持するシークレットスコープがない場合には作成します:

    databricks secrets create-scope --scope openai

  2. OpenAIへの接続を許可するユーザーやグループに対してREAD権限以上を付与する必要があります。openai-usersグループを作成して、そのグループに許可するユーザーを追加することをお勧めします。

    databricks secrets put-acl --scope openai --principal openai-users --permission READ

  3. APIアクセストークンのシークレットを作成します。<resource-name>-keyというフォーマットにすることをお勧めします:

    databricks secrets put --scope openai --key demo-key --string-value yourkey123

制限

  • インタラクティブクラスターやジョブクラスターではai_generate_text()はサポートされていません。
  • このプレビューでサポートされているモデルは、openai/gpt-3.5-turboazure_openai/gpt-35-turboのみです。
  • openai/gpt-3.5-turboazure_openai/gpt-35-turboのトークン制限は4096です。

コストパフォーマンスの検討

  • OpenAIとOpenAIサービスにはサブスクリプションが必要であり、Databricksとは別の課金が発生します。
  • 特定のクエリーでは、LLM APIの呼び出しは、関数が呼び出されるカラムにおいてシーケンシャルに行われます。
    • ほとんどのSQL関数と比較して、ai_generate_text()を用いたクエリーは遅くなる傾向があります。
  • AI Functionsを呼び出すクエリーのレスポンスタイプは、プロンプトで指定されるタスクと、指定されリクエストされるトークンの数の両方に依存します。
  • Azure OpenAIサービスはプレビュー時点では、少数のAzureリージョンでのみ利用できます。

その他のリソース

ai_generate_text functionの構文やデザインパターンの言語マニュアルドキュメントをご覧ください。

ビジネスシナリオにおけるai_generate_text()の使い方の例については、Analyze customer reviews with ai_generate_text() and OpenAIをご覧ください。

Databricksクイックスタートガイド

Databricksクイックスタートガイド

Databricks無料トライアル

Databricks無料トライアル

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0