Slide 1

Slide 1 text

Chat Completions API における実行時間の検証 2023/07/28 第2回 AI/ML Tech Night

Slide 2

Slide 2 text

自己紹介 natsuume (Twitter: @_natsuume) 所属:株式会社オプト - NLPer → LLM・アプリケーションエンジニア - 最近やっていること: https://tech-magazine.opt.ne.jp/entry/2023/06/23/144625

Slide 3

Slide 3 text

Function Calling - GPT-3.5-turbo-0613, GPT-4-0613モデルから利用可能になった機能 - 事前に定義したJSONスキーマの形式で返答が返ってくる機能 - 従来よりも簡単に出力の制御が可能になった - 色々な検証にも使える Function Callingを使って実行時間の検証してみる

Slide 4

Slide 4 text

検証方法 例(入力トークン数と実行時間の検証) - 右のようなFunctionを用いて、入力テキストに 関わらず出力内容を固定 - 他の実験でも同様

Slide 5

Slide 5 text

入力トークン数と実行時間 - 実験トークン数 - 50 - 100 - 500 - 1000 - 実験回数 - 各100回 - 中央値

Slide 6

Slide 6 text

出力トークン数と実行時間 - 実験トークン数 - 10 - 50 - 100 - 実験回数 - 各50回 - 中央値

Slide 7

Slide 7 text

出力数nと実行時間 - 出力トークン数を固定し、nを変化させたときの実行時間の変化 - 例:出力トークン数: 100 - n=1(100×1) - n=2(50×2) - n=10(10×10) - n=1における単位出力トークンは先程の実験と同様に10, 50, 100の3パターン - 合計の出力トークン数は次の4パターン - 50(10×5, 50×1) - 100(10×10, 50×2, 100×1) - 500(10×50, 50×10, 100×5) - 1000(10×100, 50×20, 100×10) - 試行回数はn=1の場合は前述の実験データを利用、それ以外は各10回

Slide 8

Slide 8 text

合計出力トークンあたりの生成数nに対する実行時間 - 合計出力トークン数が 同じでもn=1で出力す る場合のほうが実行 時間が長い - 中央値 - GPT-3.5-Turbo - GPT-4でも傾向は同じ

Slide 9

Slide 9 text

nに対する実行時間の推移 - nを増やしても実行時 間は変化なし~微増 - 中央値 - GPT-3.5-Turbo - GPT-4でも傾向は同じ

Slide 10

Slide 10 text

検証を通して気づいたFunction Callingの所感 - Function Callingとはいえ、本質的にはGPTアーキテクチャのモデル - 100%完全に出力を制御できるわけではない - 心なしかGPT-3.5-TurboよりもGPT-4のほうがFunction Callingの結果壊れやすい 感じがある - 定型文を返すfunction定義などGPT-3.5-Turboは愚直に定義した内容を返してくれることが多い が、GPT-4はdescriptionをよろしく解釈してしまうので壊れることがある印象 - プロンプトインジェクションの余地がある - Function Callingだから、と油断して出力をチェックせずに DB等に流すのは危険

Slide 11

Slide 11 text

まとめ - 入力トークン - 実行時間への影響はなさそう - 出力トークン - トークン数に応じて(おおよそ)線形に実行時間が増加する - トークン数あたりの増加量は GPT-3.5-Turboに対してGPT-4は2~2.5倍程度 - 生成数N - 出力トークン数の合計が同じでも単位生成あたりのトークン数が少ない方が高速 - 例:実行時間は 1000 × 1 > 100 × 10 > 10 × 100 の関係 - 複数候補を生成するような用途の場合、生成数 nパラメータの利用を積極的に検討する価値があり そう