このページの本文へ

遠藤諭のプログラミング+日記 第160回

ChatGPTプロンプトプログラミング講座(5)

アルファベット26文字をすべて使ってできるだけ短い文を作る with ChatGPT

2023年08月05日 16時00分更新

文● 遠藤諭(角川アスキー総合研究所 主席研究員)

  • この記事をはてなブックマークに追加
  • 本文印刷

いつからできるようになったか教えてほしい

 これが、ChatGPTの8月3日のアップデートによって状況が変わったのか? すでにしばらく前からこれだけのことができるようになっていたのか確認できていない。しかし、今日(この原稿を書いている8月4日)、パングラム(pangram=アルファベット26文字を少なくとも1回ずつは使った短い文)の作成をたのんだらサラサラと答えてくれた。

 数か月前、私がChatGPTのプロンプトから「パングラム知っているよね。いくつか作ってくれる?」とお願いしてもちゃんとした答えは得られなかった。やはりググってみると同じようなことをした人が何人もいる。5ヵ月前にChatGPTにお願いしたら「できました」と返ってきたものの実際にはできおらず失望したという人がいる(Ycombinator Hacker News)。

 わずか8日前のredditでも、ChatGPTにパングラムを頼んだがひと目でちゃんとできていない答えをだしてきた。ChatGPTは、「Crazy Jacl loves my big waltz nymph.」をパングラムだと言ってきたそうで「どうなってんだ?」と書いている。

 それらに対して、今日、私がChatGPT(GPT-4)にプロンプトを与えて、ChatGPTがわずか数秒で出してきたのが次のパングラムたちである。

Quick zephyrs blow, vexing a jumpy, fidgety crowd.
速く吹く西風が、落ち着きのない群衆を苛立たせる
文字数 50(40)、単語数 8

Vampy jackdaw buzzes, quietly frolicking with next herd.
ヴァンパイアのようなカラスが群れと静かに戯れながら、ブンブン鳴く
文字数 56(47)、単語数 8

Vexing wizard Jack quotes about my big sphynx and froze luck.
厄介な魔法使いジャックが私の大きなスフィンクスについて引用し、運を凍らせました
文字数: 51(40)、単語数: 11

※文字数はスペースやカンマ、ピリオドを含む(カッコ内はそれらを含まない数)

 これはなかなかのものではなかろうか? もちろん、アルファベット26文字がきちんと1回以上使われているかは検証している。また、これらをネット検索してみたが出てこないということは新しいパングラムといえそうである。

 私が何か勘違いしていて数か月前から新しいパングラムが見つかったくらいでは誰も話題にしない状況になっていたのか? もし、このあたりの事情に詳しい方がいたらご教示いただきたい。仮にそうだとしても新しいパングラムが自分の端末から出てくるというのは楽しい出来事である。

 実は、"Pack my box with five dozen jugs of liquid bronze."(私の箱に液体の青銅を5ダースの壺で詰めて=文字数 50、単語数 10)というものも出てた。しかし、これはすでに知られている「Pack my box with five dozen jugs of liquor bronze.」に酷似しているのでここには入れなかった(“liquid” が “liquor” になっただけ)。

1992年には遺伝的アルゴリズムでチャレンジしていた

 パングラムとして、もっとも有名なのの1つでありコンピューター業界とも馴染みが深いのが、次のものだ。

The quick brown fox jumps over the lazy dog.
すばやい茶色のキツネがのろい犬を飛び越す
文字数 44(35)、単語数 9

 なぜコンピューター業界とも馴染みが深いのかというと、新しい端末ですべてのキーが支障なく打鍵できるか試してみるときにこの文を打ってみる。 アルファベットの使用文字数が35文字というのは相当に凄いことで、とにかく有名。犬はきつねに飛び超えられ続けている(私は変人なので“The lazy dog jumps over the quick brown fox .”《のろい犬がすばやい茶色のキツネを飛び越す》と打つようにしていたが)。

 もう少し、個人的に大好きなパングラムを紹介しておくと、これらは空で覚えているわけではないが次のようなものがある。

Six plump boys guzzled cheap raw vodka quite joyfully.
6人のデブっちょの少年たちがとても楽しそうに安いウォッカ をがぶ飲みした
文字数: 54(43)、単語数: 9

By jove, my quick study of lexicography won a prize.
いやはや、泥縄式の辞書編纂の研究で賞がいただけたなんて
文字数 52(41)、単語数 10

Baby knows all his letters except d, f, g, j, m, q, u, v, and z.
赤ん坊はd、f、g、j、m、q、u、v、z以外の全ての文字を知っている
文字数 64(40)、単語数 16

 1つ目は、そのようすがなんとなく絵になるようなならないような英語参考書のよくわからない例文みたいで楽しい。2個目は、パングラムのテーマが辞書編纂というのがいかにもその手の言葉を仕事にしている人たちの雰囲気が出ていてよろしい(辞書編纂にはつねに打算がつきまとうという私の偏見のせいかもしれないが=失礼)。そして、3個目の赤ちゃんを出してきて無理やり乗り切ろうという作戦が、いかにもパングラムがどんなものかを物語っている(こうでもしないとフツーは無理なのだ)。

 このあたりのパングラム、私は、 『英語ことば遊び事 典』(トニー・オーガード著, 新倉俊一監訳, 杉山和芳・西原克 政・富山英俊訳, 大修館書店刊) で知ったのだった。1984年が初版のこの本の原著 “The Oxford Guide to Word Games”で、すでにコンピューターでパングラムを作る試みが行われていると書かれている。しかし、いずれも40文字以上、もうひとつピリっとた作品はまだないといった意味のことが書かれていた。

 そこで、私も、コンピューターでパングラムを作ることにチャレンジしたことがあった。『月刊アスキー』の1992年6月号と7月号の「ことば遊びコンピュータ」という連載においてである。7月号の原稿については、こちら(「アルファベット26文字で文を作る」)に転載してある。

 しかし、パングラムというのは真正面からトライするとちょっとした組み合わせ問題である。『スーパーアスキー』編集部の五十嵐氏の机の横にあった、当時、最高性能クラスのワークスーションを数十時間もブンブン回わさせてもらった。

 組み合わせ問題ではダメだと気がついて目についたのが、『月刊アスキー』1991年6月号と7月号でスタジオ・ゲンの宮沢丈夫さんが「現代科学の最先端をあなたのパソコンで!」という連載で紹介してくれた「遺伝的アルゴリズム」(GA)である。愛読していた”Scientifoc American”のA・K・デュードー氏のコラムでも紹介されたところでもあり、NTT基礎研究所の竹内郁雄先生を訪ねたときに、「これが面白いよ」と米国の論文のコピーをもらったのが、まさに遺伝的アルゴリズムだった。

 そのようすは、先ほどの「アルファベット26文字で文を作る」をご覧いただきたい。「遺伝的アルゴリズムは、旧来の機械的数学的なアプローチと異なり、文字どおり生物の遺伝をモデルにしたものである」などと書いている。この記事、Mediumのダッシュボードによるといまでも毎週数~数十件と細々ながら読まれ続けている。

 1992年に、私がコンピューターで求めたパングラムには、以下のようなものがある。文字数的には、なかなか健闘していると思うが、ほとんど意味をなしていない文ばかりという気もしないでもない(分からなさではChatGPTもかなりのものな気もするが)。

Sphinx quiz computer J, selfknowing avoidably.
回避的に自己認識するスフィンクス問題計算機J
文字数: 46(39)、単語数: 6

Everything of jazzmen will be triplex quicksand.
三重の危険こそ、ジャズマンたちにとって最も大切なものなのだろう
文字数: 48(41)、単語数: 7

Having work of zymurgy, objects equal expanders.
醸造学の研究をすると、物体はエキスパンダーに等しくなる
文字数: 48(40)、単語数: 7

X’d (=executed)with zip, flybynight works equal curving jambs.
元気よくなされたとしても、信頼できない仕事は、曲がっているよろいのすね当てに等しい
文字数: 62(50)、単語数: 8

 ところで、ChatGPTに「私は以前このようなパングラムを求めるために遺伝的アルゴリズムというものを使って試みたことがあります。あなたはどのようにしてこれらの新作を作ったのでしょうか?」と聞いたところ、彼は、次のように答えてきた。

 OpenAIが開発したGPT-4は、自然言語生成(NLG)のためのトランスフォーマ型機械学習モデルです。このモデルは大量のテキストデータを学習し、それに基づいて新しい文を生成します。遺伝的アルゴリズムとは異なり、このモデルは特定の問題を解決するために「進化」するわけではありません。代わりに、学習したパターンと規則に基づいて、特定の入力(この場合は、26の英語のアルファベット全てを使うパングラムの生成)に対する最も適切な出力を予測します。

 これらのパングラムを生成する際に、モデルは以下のようなステップを経ています:

 入力を理解する:ユーザーが提供した指示(この場合は全アルファベットを使った短い英文の生成)を理解し、必要な制約を把握します。

 文の生成:学習した言語パターンに基づき、指示に適合する文を生成します。この際に、全アルファベットが含まれるよう制約が働きます。

 修正と最適化:生成された文が要求を満たすかどうかを評価し、必要に応じて修正します。例えば、特定の文字が欠けている場合、それを補うような文を新たに生成します。

 この過程は完全に自動化されており、人間の介入はありません。モデルは学習データに基づいて言語のパターンを理解し、それを新しい文の生成に適用します。その結果、各アルファベットを一度だけ使用したパングラムを生成することができました。

 「遺伝的アルゴリズムとは異なり、このモデルは特定の問題を解決するために「進化」するわけではありません。代わりに、学習したパターンと規則に基づいて、~(中略)~最も適切な出力を予測します」というあたりは、ChatGPTの本質をとらえていて、なかなか読みどころではないかと思う。

 ところで、誰でも考えることだが、私も、50音のすべてを1度以上使ってできるだけ短い文を作る《日本語版パングラム》を作ってほしいとChatGPTに頼んでみた。すると、まず出てきたのが、次の文章である。

あなたと私の喜びを歌う声は、ひとりぼっちの僕を救う永遠の音、輝く魔法のような奇跡だ。

 おー、日本語でもできたぞ! と思ったのはぬか喜びで、「さ」「せ」「そ」「に」「へ」「ふ」「み」「め」「ら」「れ」の10文字が使用されていなかった(他の40文字はすべて1回以上使用されている)。

あの伊勢海老を窓口で預けるぞ。やっと開けた大和の椅子は革、悠久の価値が足りないね。おう、おまえの化粧が温まりければ笑うさ。そんなに笑ったら、悲しみが人間の良さを喪失するよ。

 こんなに長いのに、「く」「こ」「て」「ぬ」「ひ」「ふ」「へ」「ほ」「む」「め」「も」「ろ」は1文字も含んでいない。ちなみに、ここまでの例はすべて「GPT-4」の結果である。「GPT-3.5」の設定でやってみたところ「できました」と言って出してきた文のすべてが、50音で使ってない文字のある文だった(これも「幻覚」=ハルシネーションと呼ばれる現象の一種なのだろうか?)。

 どうやら、日本語のパングラムに関しては、まだChatGPTがスラスラと答えるようにはなっていないように見える。ホワイトカラーの仕事は、ほとんどすべてChatGPTに仕事をとられるという意見がある。ChatGPTのプラグイン「Code Interpreter」や「DeployScript」は、そのリアリティをますます増している。しかし、日本語パングラム的な仕事はまだいけそうだ。

 

遠藤諭(えんどうさとし)

 株式会社角川アスキー総合研究所 主席研究員。MITテクノロジーレビュー日本版 アドバイザー。プログラマを経て1985年に株式会社アスキー入社。月刊アスキー編集長、株式会社アスキー取締役などを経て、2013年より現職。人工知能は、アスキー入社前の1980年代中盤、COBOLのバグを見つけるエキスパートシステム開発に関わりそうになったが、Prologの研修を終えたところで別プロジェクトに異動。「AMSCLS」(LHAで全面的に使われている)や「親指ぴゅん」(親指シフトキーボードエミュレーター)などフリーソフトウェアの作者でもある。趣味は、カレーと錯視と文具作り。2018、2019年に日本基礎心理学会の「錯視・錯聴コンテスト」で2年連続入賞。その錯視を利用したアニメーションフローティングペンを作っている。著書に、『計算機屋かく戦えり』(アスキー)、『頭のいい人が変えた10の世界 NHK ITホワイトボックス』(共著、講談社)など。

Twitter:@hortense667

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン