[Python] GPT4o-miniを試すコードを紹介!

GPT-4o miniは、OpenAIが提供する軽量版のGPT-4oで、高精度かつ高速なモデルです。

GPT-3.5 Turboよりも高い精度を持ち、マルチモーダル対応で、テキストや画像を入力として処理できます。

この記事でわかること
  • GPT-4o miniの特徴とGPT-4 Turboとの違い
  • Python環境でのGPT-4o miniのセットアップ方法
  • テキストおよび画像を用いた基本的なコードの実装例
  • 画像処理機能を活用した応用例とその限界
  • マルチモーダル入力の可能性と具体的な活用方法

目次から探す

GPT-4o miniとは

GPT-4o miniの概要

GPT-4o miniは、OpenAIが開発した最新のAIモデルで、GPT-4oの軽量版として設計されています。

このモデルは、より小さなメモリフットプリントで動作し、リソースが限られた環境でも高いパフォーマンスを発揮することを目的としています。

GPT-4o miniは、テキスト生成や自然言語処理タスクにおいて、優れた精度と速度を提供します。

GPT-4o miniの特徴

GPT-4o miniの主な特徴は以下の通りです:

  • 高精度: GPT-3.5 Turboよりも高い精度を誇ります。
  • 高速処理: 処理速度はGPT-3.5 Turboと同等で、迅速な応答が可能です。
  • 多モーダル対応: テキストだけでなく、画像や音声などの多様な入力形式に対応しています。
  • 大きなコンテキストサイズ: 最大128,000トークンのコンテキストを処理できるため、長文の処理や複雑なタスクにも対応可能です。

GPT-4o miniとGPT-4 Turboの比較

GPT-4o miniとGPT-4 Turboは、どちらもOpenAIの先進的なAIモデルですが、いくつかの点で異なります。

以下の表にその違いをまとめました。

スクロールできます
特徴GPT-4o miniGPT-4 Turbo
精度高い標準
処理速度高速高速
モーダル対応テキスト、画像、音声テキストのみ
コンテキストサイズ128,000トークン8,000トークン

GPT-4o miniは、特に多モーダル対応が求められるタスクや、長文の処理が必要なシナリオにおいて、優れた選択肢となります。

一方、GPT-4 Turboは、テキストベースのタスクに特化したモデルとして、依然として多くの場面で活用されています。

環境の準備

GPT-4o miniを使用するためには、Python環境のセットアップと必要なライブラリのインストール、そしてOpenAI APIキーの取得と設定が必要です。

以下にその手順を詳しく説明します。

必要なライブラリのインストール

まず、GPT-4o miniを利用するために必要なPythonライブラリをインストールします。

以下のコマンドを使用して、最新のpipopenaiライブラリをインストールまたはアップグレードしてください。

pip install --upgrade pip
pip install --upgrade openai

これにより、OpenAIのAPIを利用するためのライブラリがインストールされます。

インストールが完了したら、以下のコマンドでインストールされたバージョンを確認できます。

pip list | grep openai

このコマンドを実行すると、openaiライブラリのバージョンが表示されます。

例えば、openai 1.35.15のように表示されるでしょう。

OpenAI APIキーの取得と設定

次に、OpenAIのAPIを利用するために必要なAPIキーを取得し、環境変数に設定します。

以下の手順に従ってください。

  1. OpenAIのアカウント作成: まず、OpenAIの公式ウェブサイトにアクセスし、アカウントを作成します。
  2. APIキーの取得: アカウントにログイン後、APIキーを取得します。

通常、ダッシュボードの「APIキー」セクションから取得できます。

これで、Python環境がGPT-4o miniを使用する準備が整いました。

次のステップでは、実際にGPT-4o miniを使ったプログラムを作成していきます。

GPT-4o miniを使った基本的なコード

GPT-4o miniを利用するための基本的なコードを紹介します。

ここでは、Pythonでのセットアップから、テキスト入力の例、日本語での入出力までを解説します。

Pythonでのセットアップ

まず、PythonでGPT-4o miniを使用するための基本的なセットアップを行います。

以下のコードは、OpenAIのAPIを利用してGPT-4o miniモデルを呼び出すための基本的な構成です。

from openai import OpenAI
import os
import openai
# 環境変数からAPIキーを取得
api_key = os.getenv("OPENAI_API_KEY")
# ここでAPIを利用するコードを記述
client = OpenAI(api_key=api_key)

# APIキーとモデル名を設定します
MODEL = "gpt-4o-mini"
# チャットの完了を作成します
completion = client.chat.completions.create(
    model=MODEL,
    messages=[
        {"role": "system", "content": "3行以内で回答する"},
        {"role": "user", "content": "1円玉の重さは?"},
    ]
)
# 応答を表示します
print("Assistant: " + completion.choices[0].message.content)
Assistant: 1円玉の重さは約1グラムです。

このコードは、OpenAIのAPIを使用して、GPT-4o miniモデルに対して簡単な会話を行うものです。

APIキーは環境変数から取得されます。

テキスト入力の例

次に、テキスト入力を使用した具体的な例を示します。

ここでは、ユーザーが数学の質問をした場合の応答を生成します。

from openai import OpenAI
import os
import openai
# 環境変数からAPIキーを取得
api_key = os.getenv("OPENAI_API_KEY")
# ここでAPIを利用するコードを記述
client = OpenAI(api_key=api_key)

# APIキーとモデル名を設定します
MODEL = "gpt-4o-mini"
# チャットの完了を作成します
completion = client.chat.completions.create(
    model=MODEL,
    messages=[
        {"role": "system", "content": "計算手順を含めて説明すること"},
        {"role": "user", "content": "27の0.5乗は?"},
    ]
)
# 応答を表示します
print("Assistant: " + completion.choices[0].message.content)
Assistant: 27の0.5乗は、27の平方根を求めることに相当します。計算手順は以下の通りです。

1. 27の平方根を求めます。
   - 平方根は、その数を2乗して元の数に戻る値です。

2. 27の平方根を計算します。
   - 根号の形で表すと、√27 になります。

3. √27 はさらに簡略化できます。
   - √27 = √(9 × 3) = √9 × √3 = 3√3 です。

よって、27の0.5乗は 3√3 となります。

具体的な数値が必要な場合、3√3の値をおおよそ計算すると、√3 ≈ 1.732 なので、

3 × 1.732 ≈ 5.196

したがって、27の0.5乗は3√3または約5.196となります。

この例では、ユーザーが「27の0.5乗は?」と尋ねた際に、GPT-4o miniが正しい答えを返します。

日本語以外での入出力

GPT-4o miniは日本語での入出力にも対応しています。

以下のコードは、日本語での質問に対する応答を生成する例です。

completion = client.chat.completions.create(
    model=MODEL,
    messages=[
        {"role": "system", "content": "Explain including the calculation steps"},
        {"role": "user", "content": "What is 27 to the power of 0.5?"},
    ]
)
3. √27 はさらに簡略化できます。
Assistant: To calculate \( 27^{0.5} \), you can follow these steps:

1. Recognize that raising a number to the power of \( 0.5 \) is equivalent to taking the square root of that number. Therefore, \( 27^{0.5} = \sqrt{27} \).
  
2. Simplify \( \sqrt{27} \). The number 27 can be expressed as \( 9 \times 3 \), and since 9 is a perfect square, you can break it down:
   \[
   \sqrt{27} = \sqrt{9 \times 3} = \sqrt{9} \times \sqrt{3}
   \]

3. Calculate \( \sqrt{9} \):
   \[
   \sqrt{9} = 3
   \]

4. Combine the results:
   \[
   \sqrt{27} = 3 \times \sqrt{3}
   \]

Now, if you want to approximate \( \sqrt{3} \), we know that \( \sqrt{3} \) is approximately \( 1.732 \). So you can then calculate:
   \[
   3 \times \sqrt{3} \approx 3 \times 1.732 = 5.196
   \]

Thus, \( 27^{0.5} \) or \( \sqrt{27} \) is approximately \( 5.196 \).

In summary:
\[
27^{0.5} = \sqrt{27} = 3\sqrt{3} \approx 5.196
\]

この例では、日本語での質問に対しても正確に応答できることを示しています。

GPT-4o miniは多言語対応しており、日本語での自然な会話が可能です。

画像処理機能の活用

GPT-4o miniは、テキストだけでなく画像も処理できる多モーダル対応のモデルです。

ここでは、画像処理機能を活用する方法を紹介します。

画像の読み込みと表示

まず、Pythonで画像を読み込み、表示する方法を説明します。

ここでは、PIL(Python Imaging Library)とmatplotlibを使用します。

from PIL import Image
import matplotlib.pyplot as plt
# 画像のパスを指定します
IMAGE_PATH = "data/image.png"
# 画像を読み込みます
img = Image.open(IMAGE_PATH)
# 画像を表示します
plt.imshow(img)
plt.axis('off')  # 軸を表示しないようにします
plt.show()

このコードは、指定したパスの画像を読み込み、表示します。

matplotlibを使用することで、画像を簡単に視覚化できます。

画像を使った質問の例

次に、画像を使った質問をGPT-4o miniに投げかける例を示します。

ここでは、画像をbase64エンコードして送信します。

from openai import OpenAI
import os
import base64
# 環境変数からAPIキーを取得
api_key = os.getenv("OPENAI_API_KEY")
# ここでAPIを利用するコードを記述
client = OpenAI(api_key=api_key)
# APIキーとモデル名を設定します
MODEL = "gpt-4o-mini"
# 画像のパスを指定します
IMAGE_PATH = "image.jpg"

# 画像をbase64エンコードします
def encode_image(image_path):
    with open(image_path, "rb") as image_file:
        return base64.b64encode(image_file.read()).decode("utf-8")
base64_image = encode_image(IMAGE_PATH)

# チャットの完了を作成します
completion = client.chat.completions.create(
    model=MODEL,
    messages=[
        {
            "role": "user", 
            "content": [
                {"type": "text", "text": "この画像のについて説明してください"},
                {"type": "image_url", "image_url": {
                    "url": f"data:image/png;base64,{base64_image}"}
                }
        ]}
    ]
)
# 応答を表示します
print("Assistant: " + completion.choices[0].message.content)

このコードは、画像をエンコードしてGPT-4o miniに送信し、画像に基づいた質問を行います。

例えば、以下の画像を使った場合の実行結果はこちらです。

使用した画像

Assistant: この画像には、小さな子猫が写っています。猫は灰色の縞模様を持ち、大きな目と愛ら
しい表情で、何かに興味を示している様子です。背景はぼやけており、猫が前面に際立っています。全体的に、穏やかで可愛らしい雰囲気を持った画像です。

画像認識の精度と限界

GPT-4o miniの画像認識機能は非常に強力ですが、いくつかの限界もあります。

例えば、画像の内容を正確に理解するためには、画像の品質や解像度が重要です。

また、複雑な画像や曖昧な内容の画像に対しては、誤った解釈をする可能性があります。

  • 精度: 高品質な画像に対しては高い精度で認識が可能です。
  • 限界: 低解像度やノイズの多い画像では、認識精度が低下することがあります。
  • 言語依存: 質問の言語によって、応答の精度が変わることがあります。

これらの点を考慮し、画像を使用する際には、適切なプロンプトを設定し、画像の品質を確認することが重要です。

応用例

GPT-4o miniの多モーダル対応機能を活用することで、さまざまな応用が可能です。

ここでは、マルチモーダル入力の活用方法や画像とテキストの組み合わせ、音声入力の可能性について紹介します。

マルチモーダル入力の活用

マルチモーダル入力とは、テキスト、画像、音声など複数の形式のデータを同時に処理することを指します。

GPT-4o miniは、これらの異なるデータ形式を統合して処理することができ、より豊かな情報を提供することが可能です。

  • : 旅行ガイドアプリで、ユーザーが撮影した写真とテキストで質問を入力することで、観光地の詳細情報を提供する。
  • 利点: 複数のデータ形式を組み合わせることで、より正確で詳細な情報を引き出すことができる。

画像とテキストの組み合わせ

画像とテキストを組み合わせることで、よりインタラクティブな応答を生成することができます。

例えば、教育アプリケーションでは、画像を用いた問題に対してテキストで解説を加えることが可能です。

# 画像とテキストを組み合わせた質問の例
response = client.chat.completions.create(
    model=MODEL,
    messages=[
        {"role": "user", "content": [
            {"type": "text", "text": "この画像の動物について教えてください"},
            {"type": "image_url", "image_url": {
                "url": "https://example.com/animal.jpg"}
            }
        ]}
    ],
    temperature=0.0,
)
print(response.choices[0].message.content)

このように、画像とテキストを組み合わせることで、ユーザーに対してより具体的な情報を提供することができます。

音声入力の可能性

音声入力は、ユーザーが音声で質問を入力し、モデルがそれに応じて応答を生成する機能です。

GPT-4o miniは、将来的に音声入力にも対応する予定であり、これによりさらに多様なインタラクションが可能になります。

  • : スマートホームデバイスで、音声コマンドを使用して家電を操作する。
  • 利点: ハンズフリーでの操作が可能になり、ユーザーエクスペリエンスが向上する。

音声入力が実現されれば、GPT-4o miniはさらに多くの場面で活用されることが期待されます。

音声認識技術と組み合わせることで、より自然な対話型インターフェースを提供することが可能です。

よくある質問

GPT-4o miniはどのようなタスクに向いていますか?

GPT-4o miniは、以下のようなタスクに特に向いています。

  • 自然言語処理: テキスト生成、要約、翻訳などのタスクで高い精度を発揮します。
  • 多モーダルタスク: テキストと画像を組み合わせたタスクや、将来的には音声も含めた複合的なデータ処理が可能です。
  • インタラクティブなアプリケーション: チャットボットやバーチャルアシスタントとして、ユーザーとの自然な対話を実現します。

これらのタスクにおいて、GPT-4o miniはその高い精度と多様な入力形式への対応力を活かすことができます。

日本語での応答はどの程度正確ですか?

GPT-4o miniは、日本語を含む多言語に対応しており、日本語での応答も非常に自然で正確です。

  • 自然な会話: 日本語での質問に対して、文法的に正しい応答を生成します。
  • 多様なトピック: 一般的な知識から専門的な内容まで、幅広いトピックに対応可能です。
  • 限界: 特定の専門用語やスラングに対しては、応答が不正確になる場合があります。

日本語での応答の精度は、プロンプトの設定や質問の具体性によっても影響を受けるため、適切なプロンプトを設定することが重要です。

画像認識の精度を向上させる方法はありますか?

画像認識の精度を向上させるためには、以下の方法を考慮することができます。

  • 高品質な画像の使用: 解像度が高く、ノイズが少ない画像を使用することで、認識精度が向上します。
  • 適切なプロンプト設定: 画像に関連する具体的な質問を設定することで、モデルがより正確に応答を生成します。
  • 前処理の実施: 画像の前処理(例:明るさやコントラストの調整)を行うことで、モデルが画像の内容をより正確に理解できるようになります。

これらの方法を組み合わせることで、GPT-4o miniの画像認識機能を最大限に活用することができます。

まとめ

この記事では、GPT-4o miniの概要から始まり、その特徴や他のモデルとの比較、さらに具体的なコード例を通じて、Pythonでのセットアップ方法や画像処理機能の活用法について詳しく解説しました。

GPT-4o miniの多モーダル対応機能を活かすことで、テキストや画像を組み合わせた高度なタスクを実現できることがわかります。

これを機に、ぜひGPT-4o miniを活用して、あなたのプロジェクトに新たな可能性を見出してみてください。

  • URLをコピーしました!
目次から探す