gpt-4-turboのAPIがリリースされたので、10万文字の文章で早速試してみる

OpenAI DevDayにて発表があったgpt-4-turboのAPIを早速試してみました。利用可能なトークン数が大幅に向上したことで、利用できる領域が大きく広がりそうです。この記事では10万文字の文章の要約タスクをデモとして実施します。
2023.11.07

はじめに

OpenAIの開発者向けカンファレンスであるDevDayが11/6に実施され、様々なアップデートが発表されました。まだ発表から24時間も経っていませんが、インパクトの大きさからSNSでも大きな盛り上がりを見せています。今回のアップデートの内容の中にはgpt-4のAPIが最新化され、より賢く、より安く、より長い文字列を取り扱うことができるようになりました。

利用できるトークン数は128,000トークンとなり、これまでOpenAIが提供するGPT-4のAPIの利用可能だった最大のトークン数が32,000トークンであったことから約4倍の情報を扱うことができるようになりました。

128,000トークンと言われてもどの程度の情報量かいまいちイメージがつかないので、早速試してみたいと思います。

その他のアップデート情報や”やってみた記事”は以下にリンクを掲載しておきます。あわせてご覧ください。

[アップデート]DALL·E 3にAPI経由でアクセスできるようになりました

gpt-4-vision-preview APIを使って画像からmdやjsonを生成してみる

[速報]OpenAI DevDayの発表内容をまとめる!GPT VisionのAPI提供やGPT-4 turboのリリースなど

まずはgpt-4-turboをAPI経由で利用してみる

まずはgpt-4-turboをAPIを使って呼び出してみたいと思います。Pythonで以下のような関数を作成しました。

GPTのAPIに対してリクエストを行い、返答をテキストファイルに保存するような処理を書いています。

GPT-4-turboを呼び出す場合はmodelとして指定してあげればOKです。

def query_gpt_chat(model, input_str, filename):
    try:
        response = openai.ChatCompletion.create(
            model=model,
            temperature = 0,
            messages=[
                {"role": "system", "content": "You are a helpful assistant."},
                {"role": "user", "content": input_str}
            ],
        )
        result = response.choices[0]["message"]["content"]
        print(result)
    except AttributeError as e:
        error_message = f"Error: {e}"
        print(error_message)
        result = error_message 

    # 結果をファイルに保存する
    with open(filename, 'w', encoding='utf-8') as file:
        file.write(result)
    
    return result

#GPTに送るプロンプトを記載する
prompt="こんにちは! gpt-4-turboはいつまでのデータを学習していますか?"

query_gpt_chat("gpt-4-1106-preview",prompt, "output.txt")

gpt-4-turboを利用したい場合は、モデルとしてgpt-4-1106-previewを指定すると利用できます。

実際に実行すると以下のように出力されました。DevDayでの発表は2023年4月までが学習期間とのことで若干期待していた実行結果とは異なりますが、今回のテーマではないのでとりあえず良しとします。

以前は2021年9月までのみの情報にのみ回答可能であったため、2023年までの情報が回答できるようになったのは嬉しいポイントですね。

output.txt

こんにちは!GPT-4-turboは、2023年までのデータを学習しています。ただし、具体的な月までの情報は提供されていません。私の知識は2023年の初めまでの情報に基づいていますが、その後のデータについては更新されていない可能性があります。

 

とても長い文章を与えてgpt-4-turboを利用してみる

今回のGPT-4のAPIに関するアップデートの特徴として情報の最新化のみならず、128,000トークンまでの文字列を取り扱いできるようになったことがあります。

実際にとても長い文章を試してみます。今回は検証のために青空文庫のサイトから本の内容を利用します。

検証のために利用した本は江戸川乱歩さんの「少年探偵団」という青空文庫の本を利用します。文字列をカウントすると10万5000文字程度でした。この本の内容をGPTに要約してもらおうと思います。

この記事に全文を記載すると長くなりすぎるため内容は省略します。実際に実行する際には全文をプロンプトとして記載しました。

prompt=""" 以下は「少年探偵団」という本の内容です。内容を200文字以内で要約してください

 ### 

少年探偵団 江戸川乱歩 黒い魔物[#「黒い魔物」は中見出し]  そいつは全身、墨を塗ったような、おそろしくまっ黒なやつだということでした。 「黒い魔物」のうわさは、もう、東京中にひろがっていましたけれど、ふしぎにも、はっきり、そいつの正体を見きわめた人は、だれもありませんでした。


(内容を省略。実際のプロンプトには約10万文字の全文を記載)


このようにして、二十面相はさいごをとげたのでした。  火災が終わってから、焼けあとのとりしらべがおこなわれたのは申すまでもありません。しかし、二十面相がいったとおり、肉も骨もこっぱみじんにくだけ散ってしまったのか、ふしぎなことに怪盗の死がいはもちろん、三人の部下の死がいも、まったく、発見することができませんでした。 """


query_gpt_chat("gpt-4-1106-preview",prompt, "output.txt")

実行結果

二十面相は、大鳥時計店の「黄金の塔」を盗むと予告し、明智小五郎が警戒する中、塔を盗むことに成功する。
しかし、実は明智が仕掛けた罠により、二十面相は偽物の塔を盗んでしまい、本物は安全に隠されていた。
二十面相は逃走を図るが、明智の計画により、地下室に閉じ込められる。最終的に二十面相は、自ら火薬を爆発させて自害するかのように見せかけ、その死を偽装する。
しかし、実際には彼の遺体は見つからず、二十面相の最後は謎に包まれたまま終わる。

うまく要約されていそうです。本一冊の文章を一度のリクエストで処理できるのは非常に強力ですね。 10万文字の文字列を利用しましたが、実際の処理にかかった時間は30秒程度でした。処理も速くて驚き。

長い文字列が利用できることでの業務への影響は?

これまでは文章量が多い文書に対してGPTを利用しようとすると、文章を途中で分割する必要があったり処理を分ける必要があったりとなかなか面倒でした。

今回のように扱えるトークン数が劇的に増えたことで様々な業務に適用が可能になると思います。

例えば、プログラミングの領域ではプロジェクト内のファイルを全て読み込ませてコーディングのアシストを行ってもらうことや法務領域などでは契約書の翻訳や内容の査読に利用するなどで活用できそうです。その他にも会議の録画をWhipserで文字起こしして、その内容を全てGPTに読み込ませて議事録を作成することも簡単にできそうです。

利用できる情報が増えたことで、さらなる業務活用が広がることは間違いないでしょう。

簡単な内容ですが、以上です。日々の業務で是非活用してみてください!