4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

APIキーも安全に!Azure DatabricksとAzure OpenAI Serviceの連携術

Last updated at Posted at 2023-04-12

この記事では、Azure Databricks上でAzure OpenAI Serviceを安全かつ効率的に利用する方法について解説します。Databricksクラスターとワークスペースの作成から、databricks-cliを使ってシークレット設定を行うまでの手順を詳しく説明します。

はじめに

近年、データ分析や機械学習の分野での活用が急速に進んでいるAzure DatabricksとAzure OpenAI Serviceの連携がますます注目を集めています。この記事では、Azure Databricks上でAzure OpenAI Serviceを安全かつ効率的に利用する方法について解説します。具体的には、Databricksクラスターとワークスペースの作成から、databricks-cliを使ってシークレット設定を行うまでの手順を詳しく説明します。

Azure Databricksは、ビッグデータ処理と機械学習を統合したアナリティクスプラットフォームです。一方、Azure OpenAI Serviceは、人工知能の力を利用してテキストデータを解析し、自然言語処理や機械学習タスクを実行するためのサービスです。この2つのサービスを組み合わせることで、データ分析の効率化や高度な分析機能を活用したビジネスインサイトの獲得が可能となります。

本記事を通じて、Azure DatabricksとAzure OpenAI Serviceの連携方法を習得し、効率的なデータ分析環境を構築できるようになることを目指しています。それでは、まずはDatabricksクラスターとワークスペースの作成から始めましょう。

Databricksクラスターとワークスペースの作成

この章では、Azure Databricksのクラスターとワークスペースの作成方法を説明します。クラスターは、分散コンピューティング環境を提供するためのノードの集まりであり、ワークスペースは、クラスター上で実行されるノートブックやデータを管理するための環境です。

1. Azure Databricks ワークスペースのセットアップ:

    1. Azure Portal (portal.azure.com) にログインし、Azure Databricks サービスを作成します。
    2. ワークスペース名、サブスクリプション、リソースグループ、および場所を選択します。 トライするだけであれば「価格レベル:試用版」がおすすめです。
    3. デプロイが完了したら、Azure Databricks ワークスペースにアクセスします。

2. クラスターの作成

  1. 作成されたDatabricksワークスペースにアクセスします。概要>URLからワークスペースに移動することが出来ます。
    例)https://adb-**********.azuredatabricks.net/
  2. 初回アクセス時に用途「What’s your current data project?」を聞かれますが、どれを選択しても問題ありません。
  3. Databricksワークスペース内の左側のメニューから、「Compute」をクリックします。
  4. 「Create Cluster」ボタンをクリックし、新しいクラスターの設定画面が表示されることを確認します。
  5. クラスター名を入力し、必要に応じてランタイムバージョンやノードタイプなどの設定を変更します。
  6. 「Create Cluster」ボタンをクリックしてクラスターを作成します。クラスターの作成には数分かかることがあります。

3. ワークスペースの設定

  1. Databricksワークスペース内の左側のメニューから、「Workspace」をクリックします。
  2. ワークスペース内に右クリックして「Create」>「Notebook」を選択します。ノートブック名を入力し、言語とクラスターを選択して「Create」ボタンをクリックします。
これで、Azure Databricksのクラスターとワークスペースが作成されました。次の章では、databricks-cliを使ってシークレット設定を行い、Azure OpenAI Serviceと連携する方法を説明します。

databricks-cliのインストールと設定

この章では、databricks-cliのインストールと設定方法を説明します。databricks-cliを使うことで、コマンドラインからDatabricksワークスペースとクラスターを管理できます。

1. databricks-cliのインストール

まず、databricks-cliをインストールしましょう。以下の手順に従ってインストールしてください。
  1. コマンドラインで pip install databricks-cli または pip3 install databricks-cli を実行して、databricks-cliをインストールします。
  2. インストールが完了したら、コマンドラインで databricks -v を実行して、バージョン情報が表示されることを確認します。

2. 設定ファイルの作成

次に、databricks-cliの設定ファイルを作成しましょう。以下の手順に従って設定ファイルを作成してください。
  1. Azureポータルで、DatabricksワークスペースのURLとアクセストークンを取得します。左側のメニューから「Databricks」を選択し、作成済みのワークスペースにアクセスして、URLをコピーします。 次に、右上のメールアドレスをクリックして「User Settings」から「Access Tokens」を選択し、新しいアクセストークンを生成します。
  2. コマンドラインで databricks configure --token を実行し、プロンプトに従ってDatabricksワークスペースのURLとアクセストークンを入力します。
  3. 設定が完了したら、コマンドラインで databricks workspace ls を実行して、ワークスペース内のフォルダ一覧が表示されることを確認します。
    ※下図はdatabricks configure設定前後での結果です。
    $ databricks workspace ls
    Error: Authorization failed. Your token may be expired or lack the valid scope
    
    $ databricks workspace ls
    Users
    Shared
    Repos
    
これで、databricks-cliのインストールと設定が完了しました。次の章では、Databricksシークレットを使ってAzure OpenAI ServiceのAPIキーを安全に保管する方法を説明します。

Databricksシークレットの設定

この章では、Databricksシークレットを使ってAzure OpenAI ServiceのAPIキーを安全に保管する方法を説明します。シークレットを使用することで、ノートブック上に直接APIキーを記述することなく、安全にAPIキーを管理できます。

1. シークレットスコープの作成

まず、シークレットスコープを作成しましょう。シークレットスコープは、シークレット(APIキーなどの機密情報)をグループ化するためのコンテナです。

databricks-cliを使ってシークレットスコープを作成します。コマンドラインで以下のコマンドを実行してください(スコープ名をazure_openaiとしています)。

databricks secrets create-scope --scope azure_openai

2. APIキーの登録

次に、Azure OpenAI ServiceのAPIキーをシークレットスコープに登録しましょう。

Azureポータルで、Azure OpenAI ServiceのAPIキーを取得します。OpenAIリソースの「キーとエンドポイント」タブから、APIキーをコピーします。
コマンドラインで以下のコマンドを実行して、APIキーをシークレットスコープに登録します(<your_api_key> にはAzure OpenAI ServiceのAPIキー、api_baseにはAzure OpenAI ServiceのURLを入力します)。

databricks secrets put --scope azure_openai --key api_key --string-value <your_api_key>
databricks secrets put --scope azure_openai --key api_base --string-value https://***************.openai.azure.com/
これで、Databricksシークレットを使ってAzure OpenAI ServiceのAPIキーを安全に保管する設定が完了しました。

クラスター上でのAzure OpenAI Serviceの利用

この章では、Databricksクラスター上でAzure OpenAI Serviceを利用する方法を説明します。シークレットを使用してAPIキーを安全に保管した後、ノートブックでOpenAI APIを呼び出す方法を紹介します。

ノートブックの作成

  1. Databricksワークスペースで新しいノートブックを作成します。
  2. ノートブックの言語を選択します(Python)。

スクリプトの実行

import os
import openai


api_key = dbutils.secrets.get(scope="azure_openai", key="api_key")
api_base = dbutils.secrets.get(scope="azure_openai", key="api_base")

openai.api_type = "azure"
openai.api_version = "2023-03-15-preview"
openai.api_base = api_base
openai.api_key = api_key

response = openai.ChatCompletion.create(
    engine="GPT4-32",
    messages=[
        {"role": "user", "content": "こんにちは"}
    ]
)

print(response["choices"][0]["message"]["content"])

この章で説明した手順に従って、Databricksクラスター上でAzure OpenAI Serviceを利用する準備が整いました。ノートブックを使ってデータ分析や機械学習タスクにAzure OpenAI Serviceを活用してください。

まとめ

この記事では、Azure DatabricksとAzure OpenAI Serviceを連携させて効率的かつ安全に使用する方法について解説しました。Databricksクラスターとワークスペースの作成、databricks-cliのインストールと設定、Databricksシークレットの設定などの手順を通じて、APIキーを安全に保管し、クラスター上でAzure OpenAI Serviceを利用する方法を学びました。

これらの知識を活用して、ビジネスやデータ分析プロジェクトでAzure OpenAI Serviceを効果的に活用できるようになります。これにより、データ分析、機械学習タスク、自然言語処理などの多岐にわたる分野で、AI技術を組み込んだ迅速かつ効果的なデータ処理が可能となります。

4
2
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
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?