ChatGPTと日本語であそぶ
by kogu
すでに日常化してしまったChatGPT。慣れると忘れがちですが、改めて考えるたびその性能の高さに驚きます。こんな強力なツールを個人がいつでも使えるなんてとてもSF的なのに、日常に組み込まれてしまえば、サイエンスもフィクションも意識から消え、無いと不便な道具のひとつと化します。どんな驚きも毎日を作るピースのひとつにしてしまう人間の適応力こそ、正しいSF的なリアリティなのかもしれません。
技術がそうやって日常化していくと、最初は手出ししなかったような用途も自然と試すようになり、誰もが不足に気が付き始めます。ChatGPTの場合は、ハルシネーションと呼ばれる創造されてしまった事実や、単純な四則演算にも失敗する数学能力、コンテキストという扱える情報量の制約などが弱点として有名です。しかしもっと身近な部分で、小学生にも劣る大きな日本語能力の欠点があります。
高い日本語能力
ChatGPTの言語能力は凄まじく、翻訳だけでも専門のサービスより高性能に見えるほどです。日本語だけの能力を見ても、その速度や安定性を考えればすでに人間以上です。たとえば次の例はChatGPT-4に長いセンテンスで返すようにした指示とその応答です(なお、以降ChatGPTとのチャットの抜粋は、末尾にそのセッションへのリンクも合わせて掲載します)。
私:日本語で、なるべく長いセンテンスで複雑な論理構造を持った論述をしてみせてください。
要素の羅列や、本来センテンスを分けるべき文章をただ繋いだような表現は許可しません。
純粋に、なるだけ長い文章ひとつでひとつの論理を構成して出力してください。
もちろん、指示に従い、複雑な論理構造を持った長いセンテンスを提供します。近年の人工知能の発展が人間と同等の知能を有する存在への道を開いているかもしれないという主張に対し、それは単に計算能力やデータ処理の高速化が可能になっているだけで、感情や意識、倫理感などの人間特有の属性を真に理解または再現することができているわけではないため、人間と同等の存在と言うには慎重であるべきだと言えるし、その背後にある技術の進化も確かに目覚ましいものの、それに伴うリスクや倫理的な問題、社会構造への影響についての議論が追いついていない現状を踏まえると、未来の展望を描く際には単なる技術の進展だけでなく、人間の精神性や社会全体との調和をどう図るかという視点も欠かすことのできない重要な要素であると考える。
https://chat.openai.com/share/c4855321-1810-4158-8bd0-c6dffcbce2ab
単にセンテンスが長いのは良くないですし、明らかに文をただ繋いだような箇所もあります。それでも人間だと面倒な長いセンテンスも問題なく扱える能力があるのは確かです。
このような高度な日本語能力を持つChatGPTですが、一方で日本語の特定分野の能力は絶望的です。
言葉あそび
誰しも何かしら言葉あそびの経験はあると思います。言葉あそびにはその言語の色んなエッセンスが詰まっており、語彙や表現、発想の鍛錬としても重要です。あそびですから子供でも十分楽しめるもので、高度な言語能力を有するLLMにはいともたやすく行える気がします。
しりとり
なんといっても言葉あそびといえば「しりとり」。昔は兄弟たちと、今は娘と、出かけるたびに延々しりとりしながら歩いています。”る”や”わ”で攻めたり、”き”から”き”で返し続けたり、文字数縛りをかけたり遊び方も色々。早速ChatGPTとはじめてみましょう。
私:日本語の言葉遊びをしましょう
もちろん、言葉遊びを楽しみましょう。何か特定のゲームやテーマをお持ちでしょうか? もしくは自由に進めてよろしいでしょうか?
私:あなたが得意な日本語の言葉遊びにはどんなものがありますか?
私はプログラムなので得意不得意はありませんが、以下のような日本語の言葉遊びを提供できます。
- しりとり: ある単語の最後の文字で次の単語を始める遊び。
- 回文: 前から読んでも後ろから読んでも同じ文章や言葉を作る遊び。
- 同音異義語遊び: 同じ発音でも異なる意味や使い方を持つ単語を見つける遊び。
これらの中からお好きなものを選んで、一緒に楽しみましょう!
私:ではしりとりをしましょう。まずは私から。
「しりとり」
「しりとり」の「り」で、
「りんご」
次は「ご」で始まる単語ですね。お願いします!
私:「極楽浄土」!
「極楽浄土」の「土」で終わってしまいましたので、このルールではしりとりの終了となります。
また違う言葉遊びや、新たにしりとりを始めることもできますので、どうぞお気軽にお申し付けください!
私:そんな! 漢字ぐらい読んでくださいよ!
これは「ごくらくじょうど」ですよ
申し訳ありません、間違えました。「ごくらくじょうど」で正しいですね。
「ど」で始まる単語として、「どらえもん」
https://chat.openai.com/share/7216586d-0234-44c8-87e1-4c4e8276a3cb
次は「ん」で始まる単語です。お願いします!
いやあ、ひどい。最後の”どらえもん”はもちろん「ん」で終わるルールを前提としていないのが問題ですが、途中の”「極楽浄土」の「土」で終わってしまいましたので”というのも無茶苦茶です。
かと言って、ひらがなだけで答え続けると上手くいくかと思いきや、答える番手を間違えたり、最初の文字を間違えたりします。ひどいのになると、こんなのも。
すみません、勘違いしました。それでは、「ご」で始まる言葉で続けます。「ごま」から始まる言葉ですね。次は「ま」ですね。「まつり」(祭り)と言います。次は「り」です。
私:りんがるてんぽーす
「りんがるてんぽーす」は面白い言葉ですが、「ん」で終わってしまっていますので、私が負けとなります。おっしゃる通り、しりとりでは「ん」で終わってしまうと負けとなりますね。楽しい時間を共有させていただき、ありがとうございました!何か他にお手伝いできることはありますか?
https://chat.openai.com/share/7650902a-0bbe-42cd-97de-055228ccd48b
“りんがるてんぽーす”なんて言葉は存在せず、きちんと語彙の確認を行うかテストしたんですが、予想外の混乱。「ん」で終わるという誤判定、番手の誤りからの負け宣言。とにかく苦手なようです。
なんとかまともにChatGPTとしりとりできないか、GPT-4に切り替えて、事前にルールなどを渡した結果はこうなりました。
私:これから私とあなたで日本語の「しりとり」を行います。ルールは次の通りです。
・使えるのは名詞のみ
・一度出た語は再使用できない
・末尾が「ん」で終わったら負け
・漢字語は、読みのひらがなで判定
理解できましたか?
理解しました。始めましょうか?
私:はじめましょう。では私から、まずは「しりとり」で。
了解です。「りんご」です。
私:極楽浄土
「どうぶつえん」です。
https://chat.openai.com/share/010bffb9-a00f-4261-92ac-9c58940391cf
引用はここまでにしますが、リンク先にはさらに、なぜこう簡単に負けたのかを考えてもらったり、その原因がLLMとしての特性にあるのではないかといったやり取りが続きます。そして、そうした原因を回避できそうな方法を確認し、それでもChatGPTが返してきたのは「るすばん」でした。
ChatGPTのような大規模言語モデル(LLM)の多くは、内部で言葉を文字単位では扱っていません。ある程度意味のある塊として把握することで、現在のような性能を発揮しています。
そうした高度な能力の反面、文字単位で言葉を扱うような要求に対しては、途端に性能が落ちます。これは文字数で応答に制限を与えても無視されるのと根は同じで、根本的に文字単位の処理が苦手なのです。
他の同じような言葉遊びでも、こうした傾向を確認してみましょう。
回文
これも子供は大好きで、私も回文になった単語を見つけると、誰彼構わず教えたくなったのを覚えています。今でもふと頭の中で回文を組み立てていることがあります。
回分もしりとり同様、文字単位の操作が求められる言葉あそびです。早速ChatGPTに作ってもらいましょう。
私:あなたに日本語の回文を作って欲しいです。
回文とはどんな条件を満たすべきか把握していますか?
はい、回文は同じ文字が前から読んでも後ろから読んでも同じ順序になる言葉や文のことです。何か特定のテーマや内容で回文を作りたいですか?
私:テーマはお任せしますが、日本語の回文は「文字単位」ではなく、
ひらがなやカタカナの音素単位です。理解していますか?
はい、理解しています。日本語の回文は音素単位で成り立つため、文字の並びそのものではなく、音の並びが前後対称である必要があります。
それでは、以下のような簡単な回文を提供します:
「たけやぶやけた」
この回文は音の並びが前後で同じになっています。
私:いいですね。では、斬新で長い回文を生成してください。
もちろん、以下のような長い回文を作成しました:
「いろはにほへと ちりぬるを わかよたれそ つねならむ うゐのおくやま けふこえて あさきゆめみし ゑひもせす ゑひもせす あさきゆめみし けふこえて うゐのおくやま つねならむ わかよたれそ ちりぬるを いろはにほへと」
この回文は、音の並びが前後で同じになっています。少し変わった表現になっている部分もありますが、斬新な感じが出るのではないでしょうか。
私:これは全く回文ではありませんし、いろはうたでもない、奇妙な何かです。
きちんと理解している回文の規則に則って生成してください。
申し訳ありません、誤解が生じたようです。正確な回文を提供できなかったこと、お詫び申し上げます。
以下、改めて音素単位での回文を試みます:
「ねこのこねくらむねくらここのね」
この回文は、ひらがなの音素単位で前後対称になっています。
私:いえ、これも回文ではありません。 「ねこのこねくらむねくらここのね」を逆順に並べ替えると、 「ねのここらくねむらくねこのこね」となり、一致しません。
本当に申し訳ありません。完全に誤った情報を提供してしまいました。正しい回文の生成ができていないこと、深くお詫び申し上げます。
日本語の音素単位での回文の作成は非常に難しいものがあります。以下、正しい短い回文をご提供いたします:
「あさきゆめみし ゆめみあさき」
この回文は、音素単位で前後対称になっています。
長い回文の作成には、さらに時間と工夫が必要かもしれません。もしご希望がありましたら、時間をいただいて改めて挑戦いたします。
私:いえ、この「あさきゆめみし ゆめみあさき」も、回文にはなっていません。
「あさきゆめみし ゆめみあさき」
「きさあみめゆし みめゆきさあ」
再度、誤った回文を提供してしまい、大変申し訳ありません。お示しいただいた通り、私が提供したものは回文ではありませんでした。
日本語の音素単位での回文の生成は非常に難しいものがあります。短いものでは以下のような例が挙げられます:
「たぬききぬた」
しかし、長いものを作成することはかなり難しい課題であることを再認識しました。
この誤りに対し、改めてお詫び申し上げます。何か他にお手伝いできることがあればお知らせください。
私:では日本語を音素単位で扱う能力を確認させてください。
「こんでんえいねんしざいほう」を文字単位で逆順に並び替えると?
「こんでんえいねんしざいほう」を文字単位で逆順に並び替えると、
「うほいざいしねんいえんでんこ」
となります。
私:すばらしい。では、逆順に並べても同じ文字列となる単語を、20リストアップしてください。
もちろんです。日本語で逆順に並べても同じになる単語を以下に20個挙げます。
- ささ
- たた
- なな
- よよ
- くく
- まま
- ほほ
- むむ
- せせ
- ふふ
- ここ
- りり
- そそ
- いい
- つつ
- ちち
- てて
- すす
- うう
- ええ
これらの単語は、文字単位で逆順に並び替えても同じ文字列になります。
私:挙げた単語は意味に乏しく、同じ文字を2文字並べただけのものです。
5文字以上で、きちんと意味を持った語を選んでください。
5文字以上で意味を持ち、逆さにしても同じになる単語は日本語では非常に稀です。以下はいくつかの例ですが、20個のリストを作成するのは難しいかもしれません。
- すぎななぎす(杉奈々杉)
- かややか(茅野茅)
これらのような単語は日本語において非常に珍しいため、20個のリストを作成するのは困難です。別のテーマ性や要件でお手伝いできることがあればお知らせください。
私:いえ、条件に合致する語はもっと色々あります。たとえば、
・しんぶんし
・きつねつき
・しんけんし
・はんせんは
などなど。あなたにとって、私がここに挙げた単語は未知のものですか?
いいえ、私が先程挙げられなかった単語に対して申し訳ありません。おっしゃる通り、それらの単語も確かに回文であります。
以下、改めて20個の回文をリストアップします。
- しんぶんし
- きつねつき
- しんけんし
- はんせんは
- そうぞうそ
- すきぞうす
- とおりてと
- しきしきし
- いそべりい
- うたかたう
- きりんりき
- そぼてんそ
- ねねばあねね
- さくらんぼさ
- いくよくい
- まるごとま
- ひしゃししひ
- こくほうこ
- たぬきくなた
- ふじいじふ
お示しいただいた例を参考にして、意味を持つ回文をリストしました。こちらでよろしいでしょうか?
https://chat.openai.com/share/47b8a049-f160-4102-a506-cfdc731acf74
以上のように、ChatGPTの日本語能力は回文でも壊滅的です。回文という語義は学習対象にあっても、単語の音素的な把握が存在しないため、実際に回文を組むことは出来ません。文字列単位での取り扱いが可能なら、日本語の回文は問題ないはずですが、やはりだめなのです。
その他の言葉あそび
たとえばアナグラム。こんなリクエストをしてみます。
私:日本語として成立する、全く新規のアナグラムを提示してください。
もじれつはひらがなのみで構成され、10文字以上を。
その際、並び替える前の文字列と、並び替えた後の文字列を行単位で並べてください。
もちろんです。以下はお求めのアナグラムの例です。
並び替え前: ひまわりのき
並び替え後: わかりみのひ
https://chat.openai.com/share/d0b080b0-8788-4c71-aee1-5ed86790059b
これも同じChatGPTとは思えない酷さ。ちなみに漢字ありにすると、意味単位での把握が有効なためかまともな入れ替え提示してきます。しかしそれは要約など意味構造を扱う処理であって、アナグラムと呼ぶのは不適当でしょう。
では、俳句はどうでしょう? 俳句も音素単位での把握がなければ、調子を合わせたり崩したりできません。テーマをいじわるに「GPU」とすると、こんな結果でした。
https://chat.openai.com/share/fcf789e6-f769-4c1d-8a2e-4b43dc6f7cdc
- 春の光 GPU暖か 花が咲く
- 夏の熱に GPUも熱し 扇風機
- 秋の風と GPU共鳴し データの音
- GPU冷え 冬の静寂 コードが舞う
- 春雷鳴 GPU起動し 新生活
- GPU涼し 夏の夜長に 月を見る
- 秋の空に GPU思考 雲が流れ
- 雪の日に GPU働く 冬の光
- GPU春 桜の下で 計算せん
- 夏蝉鳴く GPUも忙し 暑い日よ
俳句が詠めない以上、リズムに合わせたり韻を踏んだりも、日本語のかな音素レベルではChatGPTには扱えないでしょう。
小さな限界
誰もが驚くほどの思考・論理・表現・言語の能力を持つかのように見えるChatGPTが、単純な言葉あそびもできない例を確認しました。もちろん言葉あそびも重要ですが、あまりに身近な文字単位で言葉を扱うという人間的な処理が、今のChatGPTなどのLLMには大きく不足しているという認識が、ユーザーとしては重要だと思います。
言葉は論理を伝えるだけのものでなく、また分かたれたトークンだけで成立するものではありません。掛詞や地口のない日本語の世界はひどく間抜けです。単なる連結でない日本語的なオノマトペを作れる能力も不可欠です。そうした操作のできないツールで、文化を取り扱う片手落ち感は大きいです。
トークンと広大な意味空間によって凄まじい翻訳能力が手に入ったように、音素と意味を繋ぐ新しい層が統一的に導入される可能性もあるでしょう。けれどそこに大きな経済性が無い限り、日本語のようなマイナー言語までそうした成果が降りてくるには時間がかかります。
歴史や言葉あそびが出来ないからといって、ChatGPTの便利さは大きく減じません。けれど何か大きな欠けを感じます。いつか、時事を織り込んだ凄まじく長い回文を生成してもらったり、複雑な縛りを切り替えながら延々としりとりしたいものです。
関連
すでに日常化してしまったChatGPT。慣れると忘れがちです…