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認証情報を取得します。認証情報ではresourceName
、deploymentName
、ai_generate_text()
のパラメーターを入力します。
- Azure PortalのCognitive Servicesに移動し、Azure OpenAIを選択します。
- 使用したいリソースを選択します。
- Resource ManagementでKeys and Endpointを選択します。
- キーとリソース名をコピーします。
- Resource ManagementでModel Deploymentsを選択します。
- モデルデプロイメント名をコピーします。
OpenAIでは、OpenAIに移動してキーを作成するためにAPIキーを選択します。
注意
既存のキーの設定のキーをコピーすることはできません。
以下のいずれかを行うことができます:
- 設定を作成した個人、あるいは、プリンシパルからキーを参照することができます。
- 新規のキーを作成し、作成に成功したキーをコピーすることができます。
アクセストークンの格納
重要!
ノートブック、コード、gitリポジトリに平文としてトークンを含めないでください。
APIトークンを保持するためにDatabricksシークレットを活用することができます。シークレットを作成するためにSecrets CLI、Secrets API 2.0を活用することができます。以下の例のステップでは、Secrets CLIを使っています:
-
OpenAIキーを保持するシークレットスコープがない場合には作成します:
databricks secrets create-scope --scope openai
-
OpenAIへの接続を許可するユーザーやグループに対してREAD権限以上を付与する必要があります。
openai-users
グループを作成して、そのグループに許可するユーザーを追加することをお勧めします。databricks secrets put-acl --scope openai --principal openai-users --permission READ
-
APIアクセストークンのシークレットを作成します。
<resource-name>-key
というフォーマットにすることをお勧めします:databricks secrets put --scope openai --key demo-key --string-value yourkey123
制限
- インタラクティブクラスターやジョブクラスターでは
ai_generate_text()
はサポートされていません。 - このプレビューでサポートされているモデルは、
openai/gpt-3.5-turbo
とazure_openai/gpt-35-turbo
のみです。 -
openai/gpt-3.5-turbo
とazure_openai/gpt-35-turbo
のトークン制限は4096です。
コストパフォーマンスの検討
- OpenAIとOpenAIサービスにはサブスクリプションが必要であり、Databricksとは別の課金が発生します。
- OpenAIとAzure OpenAIサービスのトークンコストは入力と出力の両方に適用されます。
- 詳細はOpenAI pricing page、Azure OpenAI pricing pageをご覧ください。
- 特定のクエリーでは、LLM APIの呼び出しは、関数が呼び出されるカラムにおいてシーケンシャルに行われます。
- ほとんどのSQL関数と比較して、
ai_generate_text()
を用いたクエリーは遅くなる傾向があります。
- ほとんどのSQL関数と比較して、
- AI Functionsを呼び出すクエリーのレスポンスタイプは、プロンプトで指定されるタスクと、指定されリクエストされるトークンの数の両方に依存します。
- Azure OpenAIサービスはプレビュー時点では、少数のAzureリージョンでのみ利用できます。
その他のリソース
ai_generate_text functionの構文やデザインパターンの言語マニュアルドキュメントをご覧ください。
ビジネスシナリオにおけるai_generate_text()
の使い方の例については、Analyze customer reviews with ai_generate_text() and OpenAIをご覧ください。