2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

先ほどOpenAIから「GPT-4.5 research preview」というメールを受け取りました。

本日、私たちは最大のモデルである gpt-4.5-preview を研究プレビューとして発表することに興奮しています。これは、ユーザーの意図をより深く理解し、世界知識を深めています。GPT-4.5 は、より自然な会話のために設計されています。創造性、共感、広範な一般知識を必要とするタスクに優れており、執筆支援、コーチング、ブレインストーミング、微妙なコミュニケーションなどに適しています。また、エージェント的な計画と実行においても優れたパフォーマンスを発揮することが確認されています。

ブログ記事はこちら。

ということで、Databricksで動かしてみます。

%pip install -U openai mlflow tiktoken
%restart_python

シークレットに設定してあるAPIキーを使います。

import os
import openai

os.environ["OPENAI_API_KEY"] = dbutils.secrets.get("demo-token-takaaki.yayoi", "openai_api_key")

動作確認

クイックスタートにある画像解析の例を動かします。

from openai import OpenAI
client = OpenAI()

response = client.chat.completions.create(
    model="gpt-4.5-preview",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "この画像はなんですか?"},
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg",
                    },
                },
            ],
        }
    ],
    max_tokens=300,
)

print(response.choices[0])
Choice(finish_reason='stop', index=0, logprobs=None, message=ChatCompletionMessage(content='この画像は、美しい景色が広がる緑豊かな草原の中に、木製の遊歩道が中央に配置された風景写真です。遠くに樹木や低木が見られ、空には雲がかかっています。爽やかで穏やかな雰囲気の景色です。', refusal=None, role='assistant', audio=None, function_call=None, tool_calls=None))
print(response.choices[0].message.content)
この画像は、美しい景色が広がる緑豊かな草原の中に、木製の遊歩道が中央に配置された風景写真です。遠くに樹木や低木が見られ、空には雲がかかっています。爽やかで穏やかな雰囲気の景色です。

以下の画像なので非常に精緻に説明されていることがわかります。

外部モデルとしてサービングエンドポイントにデプロイ

DatabricksではOpenAIのモデルを外部モデルとしてサービングエンドポイントにデプロイすることができます。

import mlflow.deployments

# APIを格納しているシークレットスコープ
secret_scope_name = "demo-token-takaaki.yayoi"
# APIを格納しているシークレット
secret_key_name = "openai_api_key"
# Databricksワークスペースのホスト名
databricks_host = "xxxx.cloud.databricks.com/"
# モデルサービングエンドポイント名
endpoint_name = "taka-openai-gpt-4-5"

client = mlflow.deployments.get_deploy_client("databricks")

client.create_endpoint(
    name=endpoint_name,
    config={
        "served_entities": [
            {
                "name": "test",
                "external_model": {
                    "name": "gpt-4.5-preview",
                    "provider": "openai",
                    "task": "llm/v1/chat",
                    "openai_config": {
                        "openai_api_key": f"{{{{secrets/{secret_scope_name}/{secret_key_name}}}}}"
                    }
                }
            }
        ]
    }
)

このようにAPIキーが設定されたエンドポイントが作成されます。

external_serving_endpoint.png

外部モデルのサービングエンドポイントはAI Playgroundで使用できるので、簡単に挙動を試すことができます。

playground_1.png
playground_2.png

MLflowへのロギング

このモデルのシステムプロンプトやパラメータを調整したものを組織内で広く活用したいというニーズがあるかと思います。その場合には、MLflowを活用することでそれらの設定を伴うGPT-4.5モデルをUnity Catalogで管理されるモデルとして登録することができます。

import mlflow

# モデルの登録先
model_name = "takaakiyayoi_catalog.openai.open_ai_4_5"

mlflow.set_registry_uri("databricks-uc")

with mlflow.start_run():
    model_info = mlflow.openai.log_model(
        model="gpt-4.5-preview",
        task=openai.chat.completions,
        messages=[{"role": "system", "content": "あなたはDatabricksの専門家です"}],
        artifact_path="model",
        registered_model_name = model_name,
    )

Screenshot 2025-02-28 at 11.16.03.png
Screenshot 2025-02-28 at 11.16.23.png

この登録モデルもモデルサービングエンドポイントにデプロイすることができます。

import requests

secret_scope_name = "demo-token-takaaki.yayoi"
secret_key_name = "openai_api_key"
databricks_host = "xxxxx.cloud.databricks.com/"

endpoint_name = "taka_logged_gpt_4_5"
model_name = model_name
model_version = 1
databricks_api_token = dbutils.notebook.entry_point.getDbutils().notebook().getContext().apiToken().get()

# Create your endpoint
data = {
    "name": endpoint_name,
    "config": {
        "served_models": [
            {
                "model_name": model_name,
                "model_version": model_version,
                "workload_size": "Small",
                "scale_to_zero_enabled": True,
                "environment_vars": {
                    "OPENAI_API_KEY": f"{{{{secrets/{secret_scope_name}/{secret_key_name}}}}}"
                }
            }
        ]
    }
}

headers = {
    "Context-Type": "text/json",
    "Authorization": f"Bearer {databricks_api_token}"
}

response = requests.post(
    url=f"https://{databricks_host}/api/2.0/serving-endpoints",
    json=data,
    headers=headers
)
print("Response status:", response.status_code)
print("Response text:", response.text, "\n")

このようにモデルサービングエンドポイントが作成されます。

Screenshot 2025-02-28 at 11.18.39.png

エンドポイントへのクエリー

こちらの手順を参考にモデルサービングエンドポイントに問い合わせを行います。

import os
import openai
from openai import OpenAI

client = OpenAI(
    api_key="<Databricksパーソナルアクセストークン>",
    base_url="https://xxxxx.cloud.databricks.com/serving-endpoints/"
)

completion = client.completions.create(
  model="taka_logged_gpt_4_5",
  prompt="Databricksについて教えてください",
  temperature=1.0
)
print(completion)
Databricks(データブリックス)は、Apache Sparkの開発者が創業したクラウドベースの統合的なデータ分析プラットフォームです。データエンジニアリング、機械学習(Machine Learning/ML)、データサイエンス、ストリーミング処理に至るまで、データに関わるさまざまなワークロードを統合し、管理・分析・活用できるように設計されています。\n\n主な特徴:\n\n1. **統合プラットフォーム(Lakehouseと呼ばれるデータ管理アーキテクチャ)**  \n   Databricksは「Lakehouse」というデータアーキテクチャを採用し、データレイク(Data Lake)の柔軟性や拡張性と、データウェアハウス(Data Warehouse)の管理性や信頼性を1つに統合しています。このLakehouseアプローチによって、データの重複や管理上の無駄を削減します。\n\n2. **Apache Sparkをベースとした分散処理エンジン**  \n   クラウド上でデータの分散処理を高速化・効率化します。Sparkのクラスター運用の手間を軽減し、パフォーマンスを高度に最適化します。\n\n3. **機械学習・AIとの連携**  \n   Azure ML、TensorFlow、PyTorch、scikit-learnなどの機械学習やAIツールとの統合が可能で、機械学習モデルの作成・管理・運用(MLOps)の仕組みが充実しています。サービスとしての機械学習モデルの構築・デプロイを強力にサポートします。\n\n4. **各クラウドベンダーとの幅広い統合**  \n   Microsoft Azure、AWS、Google Cloudなど主要クラウドプロバイダと統合されており、各ベンダーが提供するデータストレージ・サービスや認証・管理機能とシームレスに連動します。\n\n5. **SQL分析機能の提供(Databricks SQL、Serverless SQL)**  \n   標準的なSQLインターフェースを通じて、アナリストやビジネスユーザーも容易にデータレイク内の膨大なデータを迅速に分析可能にしています。\n\n6. **コラボレーションとノートブック型開発環境**  \n   Python、Scala、SQL、Rなどのさまざまな言語をサポートし、複数のデータエンジニア、データサイエンティストが1つのノートブックで協力して作業できます。これにより、データ分析、モデリング、検証、共有というプロセスがスムーズに実行できます。\n\n7. **データセキュリティ機能が充実**  \n   高レベルのセキュリティ設定、アクセス制御、統合認証(Azure Active Directory、AWS IAM、Google Cloud Identity)、データストレージ暗号化などの充実した機能があります。\n\nユースケース例:\n\n- 大規模なバッチ処理・リアルタイム・ストリーミング系のデータエンジニアリング(ETL/ELT)  \n- 機械学習モデルの高速な開発・運用  \n- ビジネスインテリジェンス(BI)やレポート作成などの分析・洞察業務  \n- データ分析チームやデータサイエンスチーム向けの標準プラットフォームとして\n\nこのようにDatabricksは、複雑なデータエコシステムの統合管理を目指して設計された、クラウドベースの包括的なデータ分析プラットフォームです。']

マークダウンで貼り付けます。

Databricks(データブリックス)は、Apache Sparkの開発者が創業したクラウドベースの統合的なデータ分析プラットフォームです。データエンジニアリング、機械学習(Machine Learning/ML)、データサイエンス、ストリーミング処理に至るまで、データに関わるさまざまなワークロードを統合し、管理・分析・活用できるように設計されています。

主な特徴:

  1. 統合プラットフォーム(Lakehouseと呼ばれるデータ管理アーキテクチャ)
    Databricksは「Lakehouse」というデータアーキテクチャを採用し、データレイク(Data Lake)の柔軟性や拡張性と、データウェアハウス(Data Warehouse)の管理性や信頼性を1つに統合しています。このLakehouseアプローチによって、データの重複や管理上の無駄を削減します。

  2. Apache Sparkをベースとした分散処理エンジン
    クラウド上でデータの分散処理を高速化・効率化します。Sparkのクラスター運用の手間を軽減し、パフォーマンスを高度に最適化します。

  3. 機械学習・AIとの連携
    Azure ML、TensorFlow、PyTorch、scikit-learnなどの機械学習やAIツールとの統合が可能で、機械学習モデルの作成・管理・運用(MLOps)の仕組みが充実しています。サービスとしての機械学習モデルの構築・デプロイを強力にサポートします。

  4. 各クラウドベンダーとの幅広い統合
    Microsoft Azure、AWS、Google Cloudなど主要クラウドプロバイダと統合されており、各ベンダーが提供するデータストレージ・サービスや認証・管理機能とシームレスに連動します。

  5. SQL分析機能の提供(Databricks SQL、Serverless SQL)
    標準的なSQLインターフェースを通じて、アナリストやビジネスユーザーも容易にデータレイク内の膨大なデータを迅速に分析可能にしています。

  6. コラボレーションとノートブック型開発環境
    Python、Scala、SQL、Rなどのさまざまな言語をサポートし、複数のデータエンジニア、データサイエンティストが1つのノートブックで協力して作業できます。これにより、データ分析、モデリング、検証、共有というプロセスがスムーズに実行できます。

  7. データセキュリティ機能が充実
    高レベルのセキュリティ設定、アクセス制御、統合認証(Azure Active Directory、AWS IAM、Google Cloud Identity)、データストレージ暗号化などの充実した機能があります。

ユースケース例:

  • 大規模なバッチ処理・リアルタイム・ストリーミング系のデータエンジニアリング(ETL/ELT
  • 機械学習モデルの高速な開発・運用
  • ビジネスインテリジェンス(BI)やレポート作成などの分析・洞察業務
  • データ分析チームやデータサイエンスチーム向けの標準プラットフォームとして

このようにDatabricksは、複雑なデータエコシステムの統合管理を目指して設計された、クラウドベースの包括的なデータ分析プラットフォームです。

はじめてのDatabricks

はじめてのDatabricks

Databricks無料トライアル

Databricks無料トライアル

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?