📖
🔄 アップデート情報
2024年9月12日よりChatGPTの最新モデルとしてOpenAI o1の提供が開始されました!
- 高度な推論能力を持つように設計されており、特に科学、数学、コーディングの分野で優れたパフォーマンスを発揮します。
- 応答前に「思考時間」を取るよう訓練されており、複雑な問題に対してより深い分析が可能です。
o1-preview
とo1-mini
の2つのモデルがあります。主な違いを以下の表にまとめました。
特徴 | o1-preview | o1-mini |
---|---|---|
推論能力 | より高度 | o1-previewよりやや劣る |
処理速度 | 標準 | より高速 |
コスト | 高い | o1-previewの約80% |
週間利用制限 | 30メッセージ | 50メッセージ |
最大出力トークン数 | 32,768トークン | 65,536トークン |
主な用途 | 高度な技術開発、 研究プロジェクト | 小規模プロジェクト、 基本的な自動化タスク |
コーディング能力 | 非常に高い | o1-previewと同等 |
リソース消費 | 多い | 少ない(軽量) |
複雑なタスク処理 | 優れている | やや劣る |
🎙️
OpenAI o1とGPT-4oの出力精度の違いを漫才ネタで比較してみました!
1️⃣ はじめに
- 今回は、ChatGPTの最新モデルGPT-4oを利用してスクショした画面からダミーデータを生成する方法を紹介していきます。
- また、ご質問をいただきましたVBAの実行方法についてもご紹介していきます。
📖
GPT-4o(オムニ)とは?
OpenAIが開発した最新のマルチモーダルAIモデルです。
- テキスト、音声、画像、映像をシームレスに扱い、自然なテンポでのリアルタイム音声会話が可能になりました。特に、視覚と音声の理解力が際立ち、多言語対応や複雑な対話の要素を理解できるようになったと言われています。
- GPT-4oの「o」は「omni」を意味し、omniとは全て、あまねくという意味を含み、マルチモーダルとなった新たなGPTと、多言語に対応したことを指す意図が推測されます。
- さらに、既存モデルや競合モデルを上回る性能でありながら、制限はありますが、無料ユーザーも利用可能となっています。
- それでは早速、動画で作成方法を確認していきましょう!
2️⃣ スクショを利用したFew Shotプロンプティング
- 今回はこちらのExcelファイルのダミーデータを作成します。
※Excelの関数や機能、VBAやPythonといったプログラミングの学習の際にはダミーデータがあると便利です。
- ダミーデータを生成する際には
Few Shotプロンプティング
を用いると希望のデータを生成する確率が上がります。
Few Shotプロンプティング
とは出力の形式や具体的な例を提示することで、望む回答をより精度高く取得するためのプロンプトの手法を指します。
📖
Few Shotプロンプティング
とは?graph TD; A["Few Shotプロンプティングって何?"] --> B["少ない例で学ぶ方法"] A --> C["基本的な手順"] C --> D["1. 例を選ぶ"] C --> E["2. 指示を作る"] C --> F["3. 学習させる"]
Few Shotプロンプティング
とは「限られたデータ点(例)を使用して、機械学習モデルを訓練する方法」です。
基本的な手順は以下の通りです。
- 例を選ぶ
最初のステップでは、モデルに学習させるための例を選択します。この選択は、モデルが学ぶべきタスクや目標に適切なものである必要があります。
- 指示を作る
次に、選択したデータに基づいてモデルに与える指示(プロンプト)を作成します。この指示はモデルに何をするかを明確に伝えるためのものです。
- 学習させる
最後のステップでは、指示をモデルに入力して、実際にタスクを実行させます。このプロセスを通じて、モデルは提供された少数の例から学習し、関連するタスクを実行する能力を身につけます。
- 今回は出力例を入れたうえでスクショを撮り、プロンプト代わりに使用します。
こちらのシートに住所のダミーデータを生成、追加していきます。
- まずはExcelシートをスクリーンショットで撮ります。
3️⃣ GPT-4oを利用してダミーデータを生成
- スクリーンショットをChatGPTにアップロードし、プロンプトを記述します。
- GPT-4oは画面左上のプルダウンメニューから選択することが可能です。
- スクリーンショットをChatGPTにアップロードし、プロンプトを記述します。
🪄
プロンプトの内容
- 画像の例を参考にダミーデータを生成してください
実際に存在する地名にしてください。
それ以降に町名も入れてください。
番地は適当で結構です。
47都道府県すべて含めてください。
※動画ではそれ以降の部分の町名が抜けてしまっていましたが、上記のようなプロンプトにすることで町名も出力することが可能です。
- 10,000行のデータが出力されました。
- 出力されたデータがこちらになります。
- こちらのデータを先程のExcelファイルに貼り付けます。
- Excelデータを貼り付けました。
- こちらのデータに対して、前回の動画で使用したVBAコードを実行してみます。
- 前回の動画はこちらからご覧ください。
- こちらの記事でご紹介しています。
ChatGPTの最新モデルGPT-4oが登場!ExcelシートのスクリーンショットからVBAコードを生成する方法をご紹介します!
4️⃣ VBAの実行方法について
- 前回の動画ではたくさんのコメント、ご質問をいただきました。ありがとうございます!
- ご質問の中にありました、VBAコードの実行方法についても詳しくご説明いたします。
1. コードを入力するVBE(Visual Basic Editor)の画面を表示する方法
- まずはコードを入力するVBE(Visual Basic Editor)の画面を表示する方法をご紹介します。
- Excelのツールバーのメニューから「開発」タブを選び、「Visual Basic」をクリックします。
- もし開発タブが表示されていない場合は、リボンの上で右クリック、リボンのユーザー設定を選択します。
- リボンのユーザー設定が選択されていることが確認できたら、「開発」にチェックマークを入れてOKボタンをクリックします。
- また、ショートカットキーで起動することも可能です。Excelが開いている状態で、キーボードの
Alt + F11
を押すことで、直接VBEを起動することができます。
2. VBE(Visual Basic Editor)にコードを貼り付ける方法
- 次にコードの貼り付け方法をご紹介します。
- VBE画面の、左のプロジェクトウィンドウで現在開いているExcelファイルの「VBAProject (現在のファイル名)」を右クリックし、「挿入」→「標準モジュール」を選択します。
- キーボードショートカットで挿入する場合は
Alt ➜ I ➜ Mで挿入できます。
- 標準モジュールを削除する場合は削除するモジュールを選択し、右クリックからモジュールの解放を選択します。
- 「いいえ」を選択することでモジュールを削除することができます。
- 前回の動画でChatGPTで作成したVBAコードを貼り付けます。
3. VBAコードの実行方法
- 最後にコードの実行方法をご紹介します。
- コードを貼り付けたら、エディタの上部にある「実行」ボタン(緑の再生ボタン)をクリックするか、F5キーを押して実行できます。
- 実行したところ一部分割がうまくいっていない行があります。市区町村の文字数に問題があるようです。
- 正規表現のパターンを一部修正します。
- 再度F5キーで実行します。
- 分割の処理が完了しました。
- 以上で、GPT-4oによるスクリーンショットの画面からダミーデータの生成が完了しました。
住所を分割するVBAコード
Option Explicit
Sub SplitAddress()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Dim address As String
Dim pattern As String
Dim regEx As Object
Dim matches As Object
' 処理するシートを設定
Set ws = ThisWorkbook.Sheets("住所") ' シート名を適宜変更してください
' 最終行を取得
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
' 正規表現パターンを設定
pattern = "^(.{2,3}都|.{2,3}道|.{2,3}府|.{2,3}県)(.{1,4}市|.{1,3}区|.{2,3}町|.{2,3}村)(.+)$"
' 正規表現オブジェクトを作成
Set regEx = CreateObject("VBScript.RegExp")
regEx.Global = False
regEx.IgnoreCase = False
regEx.pattern = pattern
' 住所を分割してセルに書き込み
For i = 2 To lastRow
address = ws.Cells(i, 1).Value
If regEx.Test(address) Then
Set matches = regEx.Execute(address)
ws.Cells(i, 2).Value = matches(0).SubMatches(0) ' 都道府県
ws.Cells(i, 3).Value = matches(0).SubMatches(1) ' 市区町村
ws.Cells(i, 4).Value = matches(0).SubMatches(2) ' それ以降
End If
Next i
' メモリを解放
Set regEx = Nothing
Set matches = Nothing
End Sub
5️⃣ さいごに
- 最後までお読みいただきありがとうございます!
- 今回はGPT-4oを活用したスクリーンショットした画面からダミーデータを生成する方法をご紹介しました。
- この記事へのご質問やアドバイスがありましたら、ぜひコメントもお待ちしております。
- またX(Twitter)でもVBA、Pythonに関するアウトプットをしていますので、🔽フォローいただけますと幸いです😆