- マルコフ連鎖は次の単語を選ぶ単純な統計モデルだが、意味を完全には捉えきれないそのねじれのため、LLMよりも面白い出力を生みやすい
- ユーモアは 軽くて予想外の驚き から生まれ、なじみのあるパターンを作ってから期待を裏切る「snap」がジョークを強くする
- LLMは大量の文脈と確率計算によって最ももっともらしい次のトークンを見つけるため、性能が上がるほど 平均的で予測可能な文 に近づく
- ChatGPT 3.5と、King James Bible・コンピュータサイエンス教科書で学習したマルコフ連鎖の比較では、マルコフ連鎖はほとんど意味が通るまま最後に 突飛な意味転換 を起こす
- 現在のLLMは創作やジョーク生成にあまり向いておらず、こうした作業のための言語モデルは今のLLMとは カテゴリー的に異なる形 であるべき
マルコフ連鎖がより面白く見える理由
- King James Bibleとコンピュータサイエンス教科書のデータセットで学習した マルコフ連鎖 の例は、聖書文体とプログラミング用語を混ぜて、「ほとんど意味が通るが最後で崩れる」文を作る
- ChatGPT 3.5には似た出力を作るよう指示したが、結果はより整っていて意味の安定した文に近い
- どちらの例も選別された事例だが、両者とも良い候補を選んだ比較である
- マルコフ連鎖の文は奇妙な意味を帯び、文末に近づくほど 無意味な方向転換 を起こす
マルコフ連鎖は「とても愚かなLLM」に近い
- LLMが広く説明され始めた頃は「とても賢いマルコフ連鎖」にたとえられることもあったが、今ではマルコフ連鎖を「とても愚かなLLM」のように見てもよい
- ChatGPTはLLM、すなわち Large Language Model の一種である
- 300GBを超える非常に大きなモデルもあれば、10GB未満のモデルもある
- 小さくても通常は「small language model」ではなく小型のLLMと呼ばれる
- マルコフ連鎖も現在の文脈に基づいて次の単語を予測するが、意味論・次元性・専用のベクトル数学を考慮しない 単純な統計モデル である
- 携帯電話キーボード上部の次単語候補機能は一般にマルコフ連鎖で作られ、実行コストが低く、利用者の文字スタイルに合わせて簡単に更新できる
- 特定の目標を持つ文を生成する必要があるならLLMのほうがうまく機能することが多いが、正確さがそのまま面白さにつながるわけではない
ユーモアは「軽くて予想外の驚き」
- ユーモアは unserious surprise、つまり深刻ではない驚きとしてまとめられる
- 良いジョークには楽しくて明確な「snap」がある
- 「snap」は punchline という語の意味的な重さを避けるために使っている表現である
- 驚きが少ないほど面白さも減る
- 同じジョークを何度も聞くと面白くなくなるのは、驚きが減るからである
- 「ランダム」なユーモアが面白く感じられないことがあるのは、単語自体は予測不能でも、予測不能であるはずだという期待 がすでに予測可能だからである
- なじみのあるパターンを再利用した後で期待を裏切ると、snapは強くなる
- 「banana, apple, orange, vehicular manslaughter」は、一語の果物リストというパターンを作ってから、犯罪表現で期待を破る
- ジョークを書くことは、概して パターン破り に近い
情景が鮮明なほどsnapも強くなる
- より独創的または描写的な言葉を使うと、情景がより現実のように感じられ、snapも強くなりうる
- 単に「he was shot」と書くより、「he was pierced by a 35mm」と書くほうが情景は具体化される
- 「he fell」ではなく「his face met the ground」のように表現すると、情景はより鮮明になる
- 情景の途中から始めるやり方も効果的である
- 「a urinal cake? I’m not falling for that one again」は、その前に何があったのか想像させ、場面の実在感を高める
- 良いジョーク作りと良い文章作りは、目標の一部が重なっている
- クリシェは情景を 実現されないまま にしてしまうため、言葉を無駄にする
ユーモアが機能する条件
- 何が「軽くて予想外の驚き」かは普遍的ではないため、ユーモアは主観的である
- 下品なユーモアは深刻に受け取られすぎて面白くならないこともあれば、逆に予想通りすぎて失敗することもある
- anti-jokeは、ジョークの構造自体が予測可能なときにだけ面白くなりうる
- 不条理主義は、それを受け入れる準備ができていてこそ機能する
- 文化的規範を破ることはできても、その逸脱が 深刻ではないもの と理解される必要がある
- 英語しか話さないアメリカ人である筆者も、英語ではない環境で「no」を文化的に予想外な形で使い、成功したジョークを作れたことがある
LLMは予測可能性に向けて最適化される
- 文をうまく予測するには多くの文脈が必要で、LLMはその文脈を活用する
- 複雑な計算によって最も可能性の高い次のトークンを探すのがLLMの基本動作である
- コーパスが合理的な言葉で構成されているなら、より優れたLLMほど、より 予測可能な出力 を生むことになる
- この性質のため、LLMは創作に向かない選択肢になりうる
- 多くのプロンプトエンジニアリングなしに生成した段落は、LLMが書いたものだとすぐ分かることがある
- 結果は、文脈上ありうる最も平均的な文のように感じられる
- 「独創的な発想」をLLMに求めることはほとんど矛盾であり、LLMはそもそもそうしたことをしないよう作られた道具である
現在のLLMはジョーク生成に向いていない
- ジョークを作るには、ありふれた表現を予想外の方法でひねって意味を変える必要がある
- 優れたLLMは、まさにそのような逸脱を避けるよう最適化されている
- コメディがアルゴリズムで生成できないという主張には同意しない
- コメディは分析し、測定できる
- 十分に大きな支援があれば、オンデマンドのコメディ生成も可能かもしれない
- 可能だからといって、やるべきだという意味ではない
- 現在のLLMはこの作業に適した道具ではない
- 初期段階のLLMのほうがより面白く、画像生成も初期段階のほうがより面白かった
- Dall-e mini の「trail cam」画像のような例がある
- システムが良くなるほど、ユーモアは消えていった
より優れた予測機械と芸術表現の緊張関係
- 非常に優秀な 予測機械 は、芸術的表現にはあまり役立たないかもしれない
- LLMには今でも多くの用途があるが、創造的作業の完璧な道具ではない
- LLMは、幼い子どもでも簡単に出せるような興味深い概念を見落とすことがある
- この枠組みを踏まえれば、別種の言語モデルを作ることはできるかもしれない
- そのモデルは現在のLLMと カテゴリー的に異なって いなければならない
- 十分に異なるため、LLMとは呼ばれない可能性がある
LLM出力に現れる抽象化の漏れ
- この議論は「霊的な人間対機械」の論争ではない
- LLMが進歩しても繰り返し現れる欠陥があり、人間らしく見せようとする過程で内部構造が露出する 漏れる抽象化 に近い
- ChatGPTのあらゆるメッセージが高校のエッセイのように読めるのは、最も平均的な出力を再生産しているからである
- LLMの出力は、個性が取り除かれ、学術的厳密さで固められた 平板な企業風文体 のように見えることがある
- 偽のAmazonレビューは、「自分はこんなふうに書くだろうか?」と考えると見抜きやすい
- Oxiclean dish wipes の使用経験に序論と結論を付けるだろうか、という疑問が生じる
- メーカーに感謝し、顧客サービスへの献身を認める文は、実際の利用者体験のようには見えないことがある
- LLM検知モデルは、画面上のCAPTCHAのように、やがて 個性 を判別しなければならなくなるかもしれない
参考リンク
1件のコメント
Hacker Newsの意見
数年前、サイドプロジェクトをしていて同じ結論に至った。
LLMが登場する前、偽の AWS Blog Posts を生成するサイト https://totes-not-amazon.com/ を作り、それまでのAWSのお知らせ記事すべてでマルコフ連鎖ジェネレーターを学習させたうえで、AWSブログのHTML/CSSをコピーしてPython+JSで組み合わせた。
AWSブログに慣れている人でも、数文読んでからようやく単語のスープだと気づくほどで、かなり笑えた。
GPTが出たばかりのころ、Minimaxirのgpt-2-simpleでAWSコンテンツに基づくブログ記事を生成してアップグレードしようとしたが、結果があまりにもそれらしくて面白さがずっと減ってしまった。本物のブログ記事のように読めるが、事実だけが間違っている文章だった。
結局、初期のマルコフ生成物のユーモアは、数語または数文のあとで全体がまったくナンセンスだと気づく不条理さにあった。今のLLMはその点ではうますぎる。間違うことはあっても、笑えるほど意味不明になることはまれだ。
マルコフ連鎖のコンテンツは「子どもが突拍子もないことを言う」ように間違い、現代のLLMは「基礎的な地理も知らないおじさん」のように間違える。
https://github.com/cemulate/the-mlab
これは圏論と高次圏論の共同WikiであるnLabのパロディ。nLabを見たことがある人なら分かると思うが、初心者には専門用語がほとんど解読不能なほどなので、このプロジェクトのアイデアが生まれた。
このプロジェクトは、Nearley文法を効率的で制御可能なフェイクテキスト生成器に変換する nearley-generator パッケージを使っており、文法ファイルは
/src/grammar/nlab.neにある。大半は意味不明だったり、面白くない誇張(「このヒーローは防御力が500になる」)だったりしたが、たいてい少なくとも5〜6行はかなり笑えたし、ときには予言のように当たるものもあった。たとえば「Fiend's Gripが追加の幻影を1/2/3体生成する」といった具合だ。
ところがLLMのせいで状況が壊れた。主要なサブレディットがAIコンテンツをすべて禁止したのだが、それは無邪気なユーザーやボットが投稿する退屈なMidjourneyコンテンツが多すぎたからだ。リーチがなくなると興味も失われ、もうマルコフ連鎖を作らなくなった。
今週LLMチャットボットをたくさん使ってみたが、そのおじさんが単に嘘を自信満々に言うだけでなく、自己評価能力まで欠いているなら、もう殺されているはずだ。
Claude 3.5 Sonnetに「最近のエッセイとHacker Newsの議論を踏まえて、エッセイの著者が言ったような形で、笑える短いジョークを10個書いて」とプロンプトを入れた。
Claudeは、マルコフ連鎖がLLMより面白いというテーマで、「真面目ではない驚き」と予想されるパターンの破れを狙ったジョークを作る、と答えた。
例は「LLMとマルコフ連鎖がバーに入った。LLMは統計的にそれらしい飲み物を注文し、マルコフ連鎖はチーズでできたランプシェードを注文した」「電球を替えるのにLLMはいくつ必要か? 1つでいいが、まず最適な電球交換プロセスを20分説明する」「マルコフ連鎖はなぜ良いカウンセラーになれないのか? アドバイスがいつも『そして感情をバナナして帽子になるまで』だから」といったものだった。
単に何でもランダムにくっつけているわけではない。マルコフ連鎖は、ある種の意味を作る可能性が高いが、その意味の種類が間違っている。
たとえば「LLM、マルコフ連鎖、GPT-4がバーに入った。バーテンダーが『君たちのような種類はお断りだ』と言うと、GPT-4は立ち去り、LLMは倫理について議論するために残り、マルコフ連鎖はクーデターを注文した」のほうが合っている。
大学時代、友人たちが学校新聞の「警察報告」欄にマルコフ連鎖ジェネレーターを走らせた。
3トークン生成器から出てきた結果の上位10%は、これまで見た機械生成テキストの中でも最も笑える部類で、現代のLLMが高水準の意味的一貫性を作ろうとして避けるタイプの不条理さがあった。
当時、図書館で露出行為をする人物がいたことも、良い素材になったのだと思う。
新聞はThe Daily Utah Chronicleで、記憶では友人たちは個人広告欄にもマルコフ連鎖ジェネレーターをかけて、かなり良い結果を得ていた。
一方でマルコフ連鎖は、同音異義語ベースの言い間違いのようなつながりによって各文がランダムに引っ張られ、不条理ギャグに偶然たどり着く。
実証的な証拠が欲しいなら、
/r/SubredditSimulatorはマルコフベースのRedditパロディで、/r/SubSimulatorGPT2はLLMベースのいとこのようなものマルコフ版のほうがはるかに多くの推薦を受けていて、単純により笑える
何年かにわたってRedditに「AIが書いた偽のXYZ」を何度か投稿したが、反応が一番良かったモデルは GPT-2 だった
マルコフ連鎖は1、2文以上興味を保つには不十分で、GPT-3以降はきれいすぎて退屈
GPT-2は文法をおおむね正しく扱い、まとまったアイデアを維持できる一方で、さまざまなトピックの細部をまだ十分に知らないため、文脈上筋の通った結果は作れないという、完璧な中間地点にある
普段のIRCチャンネルにボットをデプロイして、人々がボットだと気づくまでにどれくらいかかるか見ようとした。誰かがメッセージを送ると直近10件のメッセージをLLMに送り、結果が特定のプレフィックスで始まっていれば、そのメッセージをチャンネルに送る方式だった
残念ながらGPT-2は十分に良くなく、少し一貫していて話題には合っているが、意味不明な内容を生成した
システムを作り直した後は、7Bモデルをファインチューニングしてみるつもり
AI Weirdness ブログ(https://www.aiweirdness.com/)のここ数年の変化を見ると、この考えをある程度裏づけている
ただし著者はLLMでも笑える結果をたくさん得ていて、主にGPT-3までの初期モデルとGPT-3のより小さな派生版だった
たとえばGPTのAda版が生成したシリアル名は、Da Vinci版よりはるかに笑えた: https://www.aiweirdness.com/new-breakfast-cereals-from-ai/
温度値 を上げればいいのでは?
マルコフ連鎖は言語理解がより粗い。LLMの温度、つまりランダム性を上げれば、同じように粗い近似に到達できる
それに筆者はChatGPT-3.5を使っていた。ChatGPTはできるだけ一般的に聞こえるようRLHFが入っているし、3.5は4よりユーモア理解も低い
この記事の論旨には納得できない
残念ながらアカウントはもうないが、約10年前に学校に通っていたころ、次の2つの資料で学習した マルコフTwitterボット を作った
1つは直前1年間にLinus TorvaldsがLKMLに送ったすべてのメール、もう1つはKing James Bibleに出てくるイエスの直接引用だった
本当に笑えた。2つの学習セットがほとんど重ならなかったので、連鎖が片方のセットに長く「閉じ込められる」ほど、もう片方のセットの選択肢をより強く重み付けするヒューリスティックを追加する必要があった
https://www.tumblr.com/kingjamesprogramming
約20年にわたって IRCマルコフ連鎖ボット を運用してきた
ここ数年はローカルLLMも一緒に動かしている。まだマルコフ連鎖ボットのほうを好む人もいるが、大多数はLLMを呼び出す
ただし、自分がChatGPTのようなサービス型LLMみたいに賢くロックされていて温度の低いモデルではなく、Mistral-7Bのファインチューニングのような、幻覚が多く拒否が少なくて笑えるモデルを選んだからかもしれない
LLMとマルコフボットを並べて見ると、マルコフボットの「ユーモア」が、偶然の出力に人間がどれほど意味を重ねた結果なのか、より強く感じる。それでもマルコフの「学習」能力は今でもはるかに優れている
自分のボットはそんなに長く持ったことがない。一度、ユーザーたちのLiveJournalをスクレイピングしてランダムテキストを生成したことがあった: https://hewgill.com/journal/entries/68-new-lj-toy.html
Twitchチャットでマルコフ連鎖ボットを動かしていて、ときどき見事な瞬間が出る。しばらくLLMも使ってみて、最近のチャットをプロンプトに入れたが、特にユーモラスに感じられる結果はあまり出なかった
どんなジョークを作るか具体的に指示するプロンプトエンジニアリングも試したが、LLMはいつも同じ形式に従う傾向があった
非公開Discordサーバーにボットが2つある
1つは全チャット履歴で学習した基本的な マルコフ連鎖ボット で、もう1つは末尾の一定トークンだけで学習したちゃんとしたLLM。どちらも時々チャット中にランダムに割り込んでくる
マルコフ連鎖ボットのほうがいつもはるかに笑える
割り込むかどうかを決めるときは、他のメッセージの後に単純な確率(例: 25%)で1件送るようにしたのか、それともタイマーで回したのかも気になる