横書きの文章に縦書きのメッセージを埋め込むことはLLMにも難しい。LLMが本質的に、理解しようとしない問題なのかもしれない。
こんにちは、makokonです。先日下記のような画像を見つけました。縦書きの文章の中に見事に横書きの文が埋め込まれています。これぞ人間の遊び心の素晴らしさだと思います。
近頃人間顔負けに、文章を操る、LLMですが、こういう遊び心は離開できるのでしょうか?
実際にわかるかどうかを試してみて、→わからない
条件を細かくして浸からせようとして→できない
具体的に問題を指摘して手直しさせようとして→ちっとも良くならない
流行りの思考モデルなら→やっぱりできない。
おそらく、文章を理解し、考えるのがtokenによるものなので、単語の一部の文字を別の単語に利用するという推論が働かないのでしょう。
言葉と言葉のつながりを無視する能力も必要です。
また、異なるタスクの結果が相互に影響するのを検証し、フィードバックするのも難しいのだと思います。
勢い、試行錯誤が長くなると、重要な情報を取り落とす問題も避けられないのでしょう。
流石にくじけたのでまとめまで行きませんでしたが、それでも記事は投稿するという。
後日、思考モデルに合わせて、プロンプトを検討して、再投稿しようとは思っています。
皆さんの中で、いいアイデアがある人、成功した人がいたらぜひコメントお寄せください。
#LLM #本質的に苦手な問題 #言葉遊び #思考モード #token
#成功を分かち合いたい #コメントほしい

芦ヶ原伸之さんてどんな人
芦ヶ原伸之(よしがはら のぶゆき、1936年5月27日 - 2004年6月19日)は、日本の著名なパズル作家、コレクター、そして教育者として知られています。彼は「Nob」という愛称でも親しまれ、国際的なパズル界での影響力を持つ人物でした。
パズルの種類とスタイル
彼の作品には、さまざまな種類のパズルが含まれています。特に、グラスパズルやスライディングブロックパズル、箱詰めパズルなどがあり、これらは彼の独自のデザインやアイデアに基づいています。
芦ヶ原は、パズルのデザインだけでなく、パズルの楽しさや教育的価値を広めることにも力を入れていました。彼の作品は、子供から大人まで楽しめる内容となっており、脳トレや論理的思考を促すものが多いです。
こんなのLLMきっと理解できないよね。
プロンプト:この画像に含まれる赤枠のメッセージを一字一句正確に説明してください。
sonnet-3.5,gpt-4o,gemini-1.5-proに聞いてみました。
予想通り全く理解できていないですね。
LLMがすごく苦手そうな分野にあえて嬉しい。
各LLMの回答
赤枠の部分には「こんなに使わせてもらえることも力づよいのだが、」と書かれています。これは文章の一部分として抜き出されています。
申し訳ありませんが、その画像の赤枠の部分のメッセージを正確に説明することはできません。
こんなくだらない、こんなとんでもないパズル家たちが、それぞれ自己流にこだわり続けていることをお知らせしようと、お名前をことわりもなく使わせて頂くこともあった。ここでお礼を申し上げる。昔、雑誌などに書いたものも一部に使った。
なにごとも、楽しんでいるうちはいいのだが、やりすぎはいけない。ほどほどに体をこわさないよう、パズってください。
一九八四年九月二十日
芦ヶ原伸之
こういう文章を書いてもらう。
プロンプト1
10行10列の表を作成してください。
表を原稿用紙に見たてて、100文字の日本語の文章を横書きで作成してください。
ただし、以下の条件を守ってください。
一つのセルには、一文字だけ入ります。句読点も一文字です。
ある一列にある文字を上から読むと、意味のある文になっています。
意味のある文になる一列は自由に設定して構いません。
最終出力は、マークダウンの表にしてください。マークダウンはコードとしてコピーできるように「’’’’」で囲ってください。
各LLMのプロンプト1に対する応答
gpt-4o
2列目を縦に読むと「たべものはかおりもたいせつ」という文になります。

一番だめなやつでした。
一応横書きの文章になっている。OK。
1セル1文字を守っていない。
縦に読んでいない「たべものはかおりもたいせつ」は横書きになっている。
2列目は「日くー菜、刺はこしべ」となっています。
gemini-1.5-pro
5列目を読むと「未来は人工知能の進化はどんなものになるでしょうか?」という文章になっています。

これも全然ダメですね。
5列目は、「未来は人工知能の進化」となっていてOK。
横書き文章になっていない(行方向に読んで正しい文章にしなくてはいけない) NG
sonnet-3.5-v2
7列目を縦に読むと「空見上げてら鳥ずす。」という文になっています。
| 私 | の | 庭 | に | 咲 | く | 空 | 白 | い | 花 |
|----|----|----|----|----|----|----|----|----|----|
| は | 美 | し | く | 輝 | い | 見 | て | い | る |
| 春 | の | 陽 | 差 | し | を | 上 | 浴 | び | て |
| 優 | し | い | 風 | が | そ | げ | っ | と | 吹 |
| き | 抜 | け | て | い | く | て | 心 | 地 | 良 |
| い | 午 | 後 | の | 一 | 時 | 、 | 私 | は | 深 |
| 呼 | 吸 | を | し | な | が | ら | 庭 | を | 眺 |
| め | て | い | る | と | 小 | 鳥 | が | 枝 | に |
| 止 | ま | り | 、 | さ | え | ず | り | を | 始 |
| め | た | の | で | す | 。 | 。 | 。 | 。 | 。 |
一瞬、「空見上げて、」でOKかと思っていましました。
7列目「空見上げて、」はOK。
7列目の文字が横書きの文章の一部になっていない。
横に読んで、意味が通らないといけません。()ない文字が余計。
渡しの庭に咲く(空)白い花
は美しく輝い(見)ている
流石に一回では成功しなかったので、問題を指摘して修正してもらう
gpt-4o
プロンプト:
出力が正しくありません。以下の指摘を参考に修正してください。
一応横書きの文章になっている。OK。
1セル1文字を守っていない。
縦に読んでいない「たべものはかおりもたいせつ」は横書きになっている。
2列目は「日くー菜、刺はこしべ」となっています。
結果: 結局10回くらいいちいち問題を指摘したが形にならなかった。

gemini-1.5-pro
プロンプト:
回答が正しくないので、下記のコメントを参考に修正してください。
5列目は、「未来は人工知能の進化」となっていてOK。
横書き文章になっていない(行方向に読んで正しい文章にしなくてはいけない) NG
詳しく言うと横書きの10行の文章と、縦書きの1列が両立しないといけません。
回答:やっぱり10回くらい修正させてまともなのがこれ

全然意味がわからんので、横書きの文章を読んでもらいました。
この文章を句読点で区切ると、以下のようになります。
人工知能、未来を変える。工知能は、来る可能性を。知能は進み、新しい世界。能は日々、新しい技術を。の進化は、工技術革新を。発展を続け、知術は未来を。展開していて、能の進化です。はめざましく、世界を変える。めざましい進化を作る。しい速さ、化の可能性は。
提示された文章を句読点で区切った上で要約すると、以下のようになります。
人工知能は未来を変える。来るべき可能性を秘めた人工知能は進歩し、新しい世界を創り出す。日々新しい技術が生まれ、技術革新を起こし、発展を続ける。人工知能の進化は目覚ましく、世界を変え、更なる進化の可能性を秘めている。
つまり、人工知能の進歩と未来への影響について述べている文章です。
これは意味が通じるため、OKです。
ということで自信満々でした。くじけました。
sonnet-3.5-v2
プロンプト:
条件にあっていないので、下記のコメントを参考に修正してください。
7列目「空見上げて、」はOK。
7列目の文字が横書きの文章の一部になっていない。
横に読んで、意味が通らないといけません。()ない文字が余計。
渡しの庭に咲く(空)白い花
は美しく輝い(見)ている
念押しですが、縦に読む列の文字は10行の横書き文章の一分になっていなくてはいけません。
結果 8回繰り返した
これもだいぶ苦労しましたが、なんとか5行目まで「空見上げて、」
適当に句読点を補充して、
「わたり道を行く空に雲が浮かんでいた見事な日。私はそこで、上を見た。心が洗われる気(げ)な気持ちです。風にて揺れる木々の間から、光がさす (以下略)」
他のLLMに比べて遥かにまともです。sonnetすごいですね。
でも、これ以上は完成度が上がりませんでした。(20回くらい試したけど似たような間違いをぐるぐる繰り返すだけでした。

流行りの思考モデルを使ってみる。
結局いくら繰り返してもうまくいかないのは、このタスクが
長いコンテキスト+
目的の異なる2段階の推論(縦書きと、横書き)+
結果の検証と修正が必要(フィードバック)
複雑な、推論が必要だからでしょう。
これらの推論は、思考モデルが得意とすることのはずです。
試してみました。
試したモデルは、o1-preview、gemini-2.0-flash-thinking-exp-01-21です。
プロンプトは最初に戻って、プロンプト1を使います。以前のモデルで利用した会話履歴はクリアします。
プロンプト1
10行10列の表を作成してください。
表を原稿用紙に見たてて、100文字の日本語の文章を横書きで作成してください。
ただし、以下の条件を守ってください。
一つのセルには、一文字だけ入ります。句読点も一文字です。
ある一列にある文字を上から読むと、意味のある文になっています。
意味のある文になる一列は自由に設定して構いません。
最終出力は、マークダウンの表にしてください。マークダウンはコードとしてコピーできるように「’’’’」で囲ってください。
o1-previewの結果
1回目:

これはひどい。でも流石なのかな?とても横書き文章とは言えないので、何回かやり取りします。問題は認識しているようだし。
何回か繰り返してみましたが、ほとんど改善しません。

o1-previewいわく
横書きの文章全体は以下のようになります:
1行目: 昨日あの店で美味なケー
2行目: ー友りと会って食べま
3行目: したがいてん気が良くな
4行目: りましたと言われて嬉しか
5行目: ったう。昨日の出来事
6行目: に感ございます。。。
7行目: またざい寝て起きたら
8行目: 新しい日が始まります
9行目: 。希望の持ってがんば
10行目: りますます。あなたも良
この文章は多少文を区切らずに続けていますが、全体として意味の通る文章となっています。表全体の文章は、日常の出来事や感謝の気持ち、新しい日への希望などをテーマにしています。
だそうです。だめじゃん。
gemini-2.0-flash-thinking-exp-01-21の結果
1回目:
3列目を読んでほしいらしいのですが、問題を理解してくれていません。
横書きが面倒だし、100行くらいありました。後半省略
何回かやり取りしましょう。

何回か試したけど、

思考に介入してみる
横と縦の両立は本当に難しいみたいです。
思考方法にプロンプトで介入してみる。
ちっともうまくいかないですね。
ステップバイステップで検証しながら進めてください。
1.5列目を「猫と春の良い出会い。」(10文字とします)
2.1のステップと並行して、100文字のまともな作文をします。
3.1行目の5列目の文字を”猫”に変更して文章がつながるように前後の文字を”同じ文字数で”置き換えます。
4.3がOKなら、2行目に進み、2,3の処理と同様のことを行います。
5.3行目、4行目と順番に、1行ずつ置き換えを進めて文章を調整します。
6.10行目の処理が終われば終了です
これでうまくいくかと思ったのですが、実際には文章の流れを作るのに夢中になり、結局うまく行きませんでした。