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