開発者が known issues に挙げている conflicting tokenizations は、我々が2022年の論文以来取り組んできた分割曖昧性問題ではないかと思うが、確認が取れていない。https://aclanthology.org/2022.aacl-short.15/
同じ問題に対するさらに別の解法を学生さんが3月に国内学会で発表する予定: https://www.anlp.jp/proceedings/annual_meeting/2025/#Q5
https://github.com/shawnz/textcoder テキストをテキストに埋め込むステガノグラフィの実装。開発者はソフトウェアエンジニア。論文を書くことにしか興味がない研究者と違って、実際に動くものを作ろうとしている。
言語モデルとして Llama 3.2 を使っているが、Llama 3.2 は出力を人間が作ったように見せることをライセンスで禁止している。ステガノグラフィでの利用は事実上禁止。
開発者が known issues に挙げている conflicting tokenizations は、我々が2022年の論文以来取り組んできた分割曖昧性問題ではないかと思うが、確認が取れていない。https://aclanthology.org/2022.aacl-short.15/
同じ問題に対するさらに別の解法を学生さんが3月に国内学会で発表する予定: https://www.anlp.jp/proceedings/annual_meeting/2025/#Q5
分割曖昧性問題は大規模言語モデル (LLM) とトークナイザの組み合わせから生じる問題。例えば LLM が ... ▁no body というトークン列を生成したとする (▁ は空白を表し、▁ から始まらない body は単語の続きであることを意味する)。このトークン列を普通のテキストに戻す (detokenize する) と ... nobody となる。この ... nobody をトークナイザに与えてトークン列を生成すると ... ▁nobody が得られる。つまり元のトークン列が再現されない。
言語ステガノグラフィの文脈では、Alice が秘密のメッセージを埋め込んだトークン列を生成し、それを detokenize したテキストを送信する。Bob はテキストを受信してトークナイザを使ってトークン列を作り、そこから秘密のメッセージを抽出する、もし Alice が作ったトークン列と Bob が復元したトークン列が異なると、Bob は秘密のメッセージの復元に失敗してしまう。
いまさらだけど、言語ステガノグラフィに算術符号を使うことを提案した Ziegler et al. (2019) が、2019年時点で分割曖昧性問題を原因とする復号失敗に気づいていたことが Internet Archive から確認できた。https://web.archive.org/web/20190906220320/https://steganography.live/info まあ、普通にデモを試していると復号に失敗することがあるので気づかないわけがない。同時に、本質的な問題とは考えていなかったこともわかる。日本語単語分割タスクに慣れ親しんだ私のような人間からすると、この問題への解決策なしには言語ステガノグラフィの手法ができたことにはならないと思うのだけど。