🧐
OpenAI o1についてまとめてみた
はじめに
最近業務でも使わない日がないChatGPTですが、OpenAIから最新モデルである「OpenAI o1」が出たと聞きつけたので、飛びついてみました。
よく読むと何でもかんでもo1というわけではないようなので、一度整理しておこうと思った次第です。
モデルの概要
今回リリースされたモデルは2つ。
o1-preview
- 複数のドメインにわたる困難な問題を解決するために設計された推論モデル。
- コンテキストウィンドウ、カットオフともに変更なし(128K、2023/10月まで)
o1-mini
- コーディング、数学、科学に特に適した、より高速で安価な推論モデル。
- o1よりも高速で回答を生成することが可能。
- コンテキストウィンドウ、カットオフともに変更なし(128K、2023/10月まで)
機能制限(2024/09/14時点)
これまでのモデルと同様の機能が全て使えるというわけではない。
- テキストのみで、画像には対応せず
- tools、function calling、respose format非対応
- temperature、top_pとnは固定(1)
- presence_penalty、frequency_penaltyに固定(0)
- Assistant API、batchAPIでも非対応(Chatのみ)
GPT-4oファミリーから切り替えるべきか?
一口にタスクといっても色々なものがあるので、全部切り替えは非推奨。
切り替えた方がいいもの
- 回答出力までの時間を要求しないタスク
- 複雑な問題解決を含むタスク
- プロンプトでChain-of-thoughtを細かく定義している場合(プロンプトの最適化は必要)
切り替えないほうがいいもの
- 画像の入力を伴うタスク
- function callingが必要なタスク
- 応答時間へのレギュレーションが厳しいタスク
トークン処理
今後実用化において大事なコストのお話。
- 入出力の合計トークンが、次の入力トークンとして換算される考え方は変更なし
- 推論中のトークンは「出力トークン」として加算される
- モデルごとに最大トークン数は固定
- o1-preview: 最大 32,768 トークン
- o1-mini: 最大 65,536 トークン
- 非表示の「推論トークン」と、表示される「補完トークン」がある
- 推論トークン数は
reasoning_tokens
で確認可能
- 推論トークン数は
- モデルごとに最大トークン数は固定
- 「推論トークン」と「補完トークン」のいずれも、コンテキストウィンドウの対象
- 対象だけど、次の入力トークンとして扱われない
- 推論トークンに関してはAPI経由で表示できない罠?
プロンプトの工夫
自分でChain-of-Thoughtが可能なので、前提情報が多すぎると特に混乱しやすいのが特徴。
定義と最小限の前提、期待する成果物の宣言のみで良いかもしれません。
1. プロンプトはシンプルかつ明確に: 短くてわかりやすい指示を使うことで最適なパフォーマンスが得られます。
2. 逐次思考プロンプトを避ける: 「ステップバイステップで考える」ように指示する必要はありません。モデルは内部で推論を処理します。
3. 区切り文字を使用して明確にする: 引用符やXMLタグ、セクションタイトルなどを使って入力の各部分を明確に区別します。
4. RAGでの追加コンテキストを制限する: 関連性の高い情報のみを提供し、モデルの応答を複雑にしないようにします。
まとめ
まだまだ検証が足りないので、わかったことがあれば追記していきます。
Discussion