日本語のトークン計算、そんなに不利じゃなかった(けど英語のほうがまだまだ有利)

多くのLLMを利用できるAPIサービスで課金算出の対象となる「トークン」という単位。 以前GPT-3で計算した結果をもって「日本語はトークン消費が多くてかなり不利」という感覚を持ってましたが一部勘違いしてたみたい。

日本語の文章とその英語版(DeepLで直訳したもの)を用意して、GPT-3と、最近よく使うClaude(Anthropic社)とGPT-4(OpenAI)での計算をしてみる↓

from anthropic import Anthropic
import tiktoken

words_ja = '以下の条件を満たすJob Descriptionを日本語で作成してください。Job Descriptionには職務概要、ミッション・責任、求められるスキル・要件を必ず含めてください。'
words_en = 'Please prepare a Job Description in Japanese that meets the following requirements: Job Description must include a job description, mission/responsibilities, and required skills/requirements.'

# Count word length
print("length(ja): ", len(words_ja))
print("length(en): ", len(words_en))

# Count token using GPT-3
encoding = tiktoken.get_encoding("cl100k_base")
encoding = tiktoken.encoding_for_model("gpt2")
print("GPT-3 token(ja): ", len(encoding.encode(words_ja)))
print("GPT-3 token(en): ", len(encoding.encode(words_en)))

# Count token using GPT-4
encoding = tiktoken.encoding_for_model("gpt-4")
print("GPT-4 token(ja): ", len(encoding.encode(words_ja)))
print("GPT-4 token(en): ", len(encoding.encode(words_en)))

# Count token using Anthropic 
client = Anthropic()
print("Anthropic token(ja): ", client.count_tokens(words_ja))
print("Anthropic token(en): ", client.count_tokens(words_en))

length(ja):  91
length(en):  191
GPT-3 token(ja):  94
GPT-3 token(en):  33
GPT-4 token(ja):  64
GPT-4 token(en):  32
Anthropic token(ja):  65
Anthropic token(en):  32

GPT-3だと日本語かなり不利(91文字で構成されているものが94トークン消費=3倍乖離)だなと思うが、ClaudeやGPT-4だと同じ意味の文章に対して64〜65文字=2倍乖離ということで、英語のほうがあいかわらず有利だけど、これくらいなら悪い印象までは持たないかも。

しかも今後は1トークンあたり費用もどんどん安くなっていくと思うので、とくに社内利用であればあまりコスト懸念なくじゃんじゃん活用していけば良いではないだろうか。

ChatGPTとともに書かれた『東京都同情塔』

吉田真吾@yoshidashingo)です。

九段理江さんの『東京都同情塔』が第170回芥川賞を受賞されました。ChatGPT Community(JP)を主催してるわたしのモチベーションも刺激されたのでネタバレなしの書評です。

『東京都同情塔』あらすじ

舞台はわれわれが生きる世界線と少しだけ違う世界線。新国立競技場は当初予算の関係で揉めに揉めたザハ・ハディドのものが建っており、東京オリンピックは1年の延期をせずに予定通り2020年に開催された世界線だ。主人公の建築家「牧名沙羅」と年下の恋人(というには少し微妙な関係かも?)「拓人」を中心したストーリーです。

前半は沙羅目線を中心に、新国立競技場の隣、新宿御苑内に立てる囚人収容施設「シンパシータワートーキョー」のコンペを通じて沙羅のモノローグで進んでいきます。シンパシータワートーキョーが刑務所と呼ばれない理由は、社会学者(幸福学者)のマセキ・セトが提唱した考えかたによります。「従来、犯罪者と呼ばれ差別されてきた人は、それが境遇によってもたらされたものであるため、同情されるべき人々、社会で包摂されるべき人々」であると説き、犯罪者ではなく、『ホモ・ミゼラビリス』と呼び、タワーマンションのような塔に透過的(十分に配慮された形で)に隔離され、文化的生活を送ってもらうべきとして塔の建築計画が進み、沙羅自体は左翼的包摂の象徴であるこのディストピアの大義に対しての態度は不確定のまま、ただし実装については否定的な思いを感じながらストーリーが進んでいきます。

前半にも後半にも沙羅によって語られる「ドローイングと建築の違い」で象徴的なとおり、九段さんが沙羅を代弁者として語られている「言葉のディストピア」がテーマの1つである。マセキ・セトの『ホモ・ミゼラビリス 同情されるべき人々』は、ここでいうドローイングにあたり、コンセプト自体は否定しづらいものです。沙羅の言葉を借りれば『ポルノ』。ただし「建築」にあたる、その言葉の現実での選びかた・実装への落とし込み方がさしあたって沙羅のもっとも気に障ることとして描かれています。

言葉には「感性」がついてきます。母国語で、より正確にラベリングされたあらゆる言葉は、それが実際に使われていく習俗の中で、手垢がつくようにさまざまな意味を感性として伴い始めてしまい、やがて分かち難いものになってしまいます。その対策がカタカナ語を輸入し、利便性高いラベルとしての言葉に、大した大義もなく置き換えていくことなのです。

そのアンチテーゼがタワーの通称を『東京都同情塔』という絶好の響き(韻が固い)を浸透させた原動力だったということです。

中盤は拓人のモノローグを中心に進みますが、彼は一見するとわれわれ現代人のように無自覚に他人にどう見られるかを気にし、言葉の置き換えをすんなり受け入れる側の代弁者のように見えます。少し物語が進むと彼がそれだけではない点もあり、そちらにも注目してもらいたいです。

テーマ『アンビルト』とは

この物語の中ではザハ・ハディドの新国立競技場が建った世界線になっています。今やわれわれも忘れがちですが、あの案をベースに候補都市として採択されたにもかかわらず、建築予算の高騰があらわになった途端に実際に建てるのか、誰が責任を取るのかで議論が紛糾したことを覚えています。現実世界では実際には建たなかった(アンビルド)のだが、ザハ・ハディドのキャリアにおいて多くの建たなかったアンビルドがあるそうで、九段さんにしてみると、実際に建った世界でそのひとうひとつのディテールの意味を噛み締めることにこそ意味が、興味があるということなのでしょう。

この小説で問題提起されていることは、九段さんが会見で『言葉を無限に拡大解釈することが許容される社会、言葉のポジティブな面やネガティブな面をしっかり考えていきたい』と言われているとおり、D&Iやコンプライアンスのような大義の否定ではなく、借りてきたカタカナ語に簡単に置き換えてしまうような実装部分を気にされているということです。

上の世代の作家であれば単純に言葉狩りの時代を否定してSNS上で炎上しそうなところを、"時代の当事者"である九段さんの感性や舞台設定(Slackや生成AIが普通に出てくる)を通じて、この小説自体がアンビルトにならず、行間に問題意識を練り込み、作品に着地させることができたエンタメ性とのバランス感覚もとても上手だと感じられました。

『ChatGPTを活用して紡がれた文学』の意味

上記の受賞の記者会見で九段さんは、普段から自身がChatGPTに悩みを相談したりしており、『ChatGPTを駆使して全体の5%くらいの文章をそのまま利用した』と話しています。また、今後の活用方針としても『自分の創造性を発揮して上手に利用しながらつきあっていきたい』と、かなり肯定的だ。

こうなってくると、実際に作家が創造性を十分に発揮しながら、ChatGPTを具体的にどう使っているのかが気になるところです。

  • どんなプロンプトでアイデア出しをするのだろうか?
  • どんなチャンクサイズごとに文章を作成するのだろうか?
  • どのようにインタラクティブに介入しながら修正をさせているのだろうか?

将来はもしかしたら膨大なテーマ出しも枝打ちも、書き出しの掴みも、大どんでん返しも、中核となる問題意識やなにか心象風景をプロンプトとして入力することで、あとはDJのようにレコードバッグから次のバイナルを取り出し、フレーズを確認、組み合わせ、ピッチを合わせながらオーディエンスに届ける、そんな編集能力を主軸にした作家性が重要になってくるのかもしれません。

ChatGPT Community(JP)について

2022年11月30日、OpenAI社は大規模言語モデル(LLM)をチャット形式にインストラクションチューニングし、汎用的なチャットUIをフロントにかぶせることで、ChatGPTというD2C(BtoC)サービスを提供し、世界最速でユーザーを獲得しました。OEM先のBing Chatも、GoogleのBardもいまだ同じ程度のインパクトでユーザーのアクティビティは獲得できていないように思います。

こうしてダイレクトに消費者が使い始めたChatGPTは、われわれIT業界の人たちを置き去りにしながら、直接的に世界中あちこちのビジネスの現場で『新しいサービス価値』『新しい業務フロー』への変化を促し、事業利益や業務生産性を生み出しています。

それらの現場レベルの変化をつぶさに共有しあっていこう、さらに言えば、汎用性から用途別へのUXの絞り込みや、LLMやシステム性能・セキュリティの問題、それらにも幅広く協業を促すために、ChatGPTユーザーからアプリ開発者まで幅広くターゲットとしたユーザーコミュニティを作ったわけです。

そういう意味では今はたまたまBtoCについてはChatGPTが一人勝ちであるし、用途別のシステム構築にはAOAIのようなプラットフォームやLangChainやLlamaIndexのようなフレームワークが活況ですが、そのときどきどんなトピックが出てくるかのトレンドは今後変化・拡大していくだろうし、そうであってもよいと思っています。※とはいえ当初から"ChatGPT" Meetupという名前で開催しているので、その旗の元でやっていきたいのは変わりませんが。

バックオフィス業務やコンサルテーションなどがトピックの主軸でしたが、作家がChatGPTを使って純文学を書く時代です。音楽プロデューサー、映画の演出家、ゲームクリエイターやエッセンシャルワーカーにおいての活用事例について聞ける日も、そう遠くないかもしれないですね。

作品は以下から読めます。

サブスクを整理しよう

吉田真吾@yoshidashingo)です。

毎年年末にやってたのですがあらためて現状書き出しておきます。

サブスク一覧

サービス名 用途 月額 年額 説明
freee 会計システム ¥2,894 フリーランス側も含めるとすでに10年以上利用している
Google Workspace ワークスイート ¥730 メインのカレンダーをこちらで管理するように変更した
お名前.com ドメインレジストラ 約 ¥20,000 co.jpや愚にもつかないドメインを管理
Namecheap ドメインレジストラ 約 ¥20,000 .comなど有名なgTLDのドメインはすべてこちらで管理
Shifter コーポレートサイト ¥21,332 sec9のコーポレートサイトをホストしてる
はてなブログPro ブログサイト ¥14,400 このブログ
GitHub Pro + GitHub Copilot リポジトリ+AIコーディング $14 GitHubのリポジトリとCopilot
Google Colab Pro Jupyter Notebook as a Service ¥1,179 Jupyter Notebookのクラウドサービス、便利すぎる
ChatGPT Plus GPT-4のチャットサービス $20 なんだかんだよく使う。Microsoft Copilot Proが使いやすくなったら乗り換えるかも
Zapier iPaaS $15 最近あまり使ってないので止めても良いかな
Feedly RSSサービス $5 最近Zapier経由でXとの連携ができなくなったので止めても良いかな

会社としてはそんなに課金してないですが、今年はここから結構増えそうな気がします。 どちらかというと変動費として利用してるハイパースケーラーなクラウドサービス(AWS, Azure, Google Cloud, OCI)の利用料のほうが増えそうな懸念があって、今年は検証環境には積極的に Cloudflare、Vercel、Supabase などのクラウドプラットフォームを利用していこうと思ってるとこです。