0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

生成AIAdvent Calendar 2024

Day 15

言語モデルを使った文章生成、ただし人力

Last updated at Posted at 2024-12-14

言語モデル

言語モデルって、単語列を見せたときに次に来る単語は?の出現確率で~とかなんとかを説明するためのスライドを書いていたときに、こう動きのないスライドで一例を図示するよりいろいろなパターンを見せて分からせたいよね……それじゃアプリ作るか!って勢いで作ったところ、ハルシネーションってこう起こるんだって体感したり、ChatGPTとかたまに変なこと言い出したりする理由が分かったとか、ポチポチ単語を選択するだけで文章が作られていくのが面白いとか、結構好評だったので、ついでにアドベントカレンダーのネタにもしようと。

ちなみにコードはこちら用に新規に適当に書き起こしました。
https://amanorox.github.io/llmplay/

image.png

プログラム概要

誰でも気軽に試せて、言語モデルを動かすコストがかからないようにウェブブラウザ内ですべて処理が完結するようにしました。

使用ライブラリなど

採用言語モデルのこと

日本語1文字が複数トークンに分割されていたり、1トークン1文字だけだったりするモデルでは次の語の候補に1文字のものしか出てこないっていうのは面白くないと、日本語をよくサポートしてくれるモデルとして Qwen を、あとはブラウザ内で処理できて軽量なところでと、0.5Bの極小サイズのモデルを採用しました。

いろいろなモデルを試したところ、0.5Bモデルはやっぱり性能が低くて7Bくらいあると様々な文章作るのに楽しい感じがあるなと思います(先発で作成したものは専用の言語モデルサーバーを用意してそっちで大きいモデルを使って推論してました)。

7Bモデルを4ビット量子化してもさほど性能低下は感じないですが、0.5Bモデルの量子化はだいぶ違うと、まともそうな fp16 を選んでいます。デフォルトの量子化モデルをロードして次語の確率表を出すと、日本語の続きにどうして英語の候補が羅列されるの……ってなります。数(パラメータ数)の暴力で性能低下がカバーされてるのかなって思っています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?