トークンとは
トークンとは、AIのべりすとが認識する言葉の最小単位である。
例えば「国王が即位する」という文をトークンに分けると、「国王/が/即位/する」という分け方になり、4トークンということになる。
一方「国王が即位した」という文の場合、「即位した」で1トークンであるため、「国王/が/即位した」の3トークンということが分かる。
このようにトークン一覧を参照することで、AIがどのように言葉を認識しているかを確認することができる。
またAIの出力についても、このトークン内に限られる。つまりこのトークン一覧内の言葉を組み合わせて作成できる言葉しか、AIは出力してくれない。
よくある質問#u5ebb8ffでの「AIが正しく真似してくれない文字がある」というのは、この一覧に存在しない文字である。
もし出力してくれない言葉があるなら、この一覧に書かれているか確認してみよう。
よく使われる文字(英数字、仮名、常用漢字など)はおおむね1文字だけのトークンとして登録されているので、熟語がトークンになっていなくても1文字のトークンを組み合わせて認識/出力してくれる。
例えば「古式」はトークン一覧にないが、「古」と「式」は一覧にあるので2トークンで表現できる。
なお、このトークン一覧はAIモデルが更新する際に差し替わる可能性がある。今のところ各AIモデルが使用しているトークン一覧は「とりんさま・でりだ」、「Neuman」、「やみおとめ・スーパーとりんさま」で異なるようだ。
一覧の中の特殊な文字について
- <unk>
- トークンにない文字が入力されたとき、その字が<unk>に置き換えられる。例えば「咀嚼」はトークンにないので「咀」と「<unk>」の2トークンとして解釈される。
ここで重要なのは<unk>になった文字は出力されないが、その場所に<unk>があったということは学習している可能性があるということである。どういうことかというと、学習元コーパスに「咀嚼して飲み込んだ」とか「咀嚼し嚥下する」のような文があるとすると、AIは「咀<unk>というトークンの並びの後には『飲み込む』や『嚥下』というトークン列が来ることが多い」のような学習をする(かもしれない)。
その結果、入力文に「咀嚼(咀<unk>)」と手で書いておけば、その続きには正しく「咀嚼」に繋がる言葉が出てくるようになる。
- トークンにない文字が入力されたとき、その字が<unk>に置き換えられる。例えば「咀嚼」はトークンにないので「咀」と「<unk>」の2トークンとして解釈される。
- \n
- 改行を表す文字。半角/全角スペースは改行と同じトークンとして扱われる。
AIの推論時には▁(U+2581)という文字で処理される。出力時には半角スペースに置換され、括弧の前後や句点の直後など状況に応じて改行(<br>)になる。
禁止ワードに指定する際は\nと表記する必要がある。スクリプトでの改行の表記についてはこちらを参照。
- 改行を表す文字。半角/全角スペースは改行と同じトークンとして扱われる。
- 線の地上駅
- 認識はするが出力はされない。特殊なのはこのトークンだけなので、「~線の」、「地上駅」といった単語は問題なく出力される。