画像生成AIの情報を纏めるWikiです。

×
なんJLLM部過去ログ

テンプレ

赤ちゃん向け「とりあえずエロ文が出てくるようになるまで」

1. Geforceで動かすなら最新ドライバインストール(LLM動かすのに必要な最新のCUDAがこれで入る)
2. LMStudio入れる
3. LMStudio上でVRAM/メモリ容量に合うモデルを落としてくる
VRAM/メモリ容量おすすめモデル
〜8GB誰か書いて😭
〜12GB誰か書いて😭
〜16GBMuXodious/gpt-oss-20b-RichardErkhov-heresy-GGUF iQ4_XS (Geforce5000以降なら)MXFP4
〜24GBmradermacher/gemma-4-31B-it-heretic-GGUF IQ4_XS
〜32GBmradermacher/gemma-4-31B-it-heretic-GGUF Q6_K
4. 動かす🤗

上記モデルはモデルが全部VRAMもしくはメモリに乗り切るものをリストアップしとる
VRAMとメモリ両方にモデルを載せてある程度の速度で動かしたりもできるで
そのあたり知りたい場合は↓を読んどくれ
(なおメインメモリだけに載せる(≒CPUだけで演算する)のは死ぬほど遅いで)

LLMを動かすツール

よくわからんニキはとりあえずLMStudio入れたらええ
一番使われとる
ツール名GGUFGUI概要
LMStudioツールの中でモデルダウンロードできてそのままチャットできる。GUI上で全部できるので楽
Llama.cpp個人が利用するLLMツールとしては一番技術的に先行しとる。GGUFを動かすツールの中では最も最新モデルへの対応が早い。GGUFフォーマットの開発元
koboldcppもともとあったKoboldAI(更新停止済み)にインスパイアを受けて、Llama.cppをベースに作り直されたもの。小説作成やキャラなりきりなどをさせるための機能が備わっている。知らんけど
ollama名前の通りllama.cppベース。もともとmac向けのLLM実行ツールとしてスタートしてるらしくmacの人はいいのかもわからん。しらんけど
vLLM△(実質×)×企業でLLMを動かす際のデファクトスタンダード。基本的にsafetensors形式のモデルを動かす。GGUFは動くものの正式対応ではない。GGUFを動かすツールたちと違い、vLLMでsafetensorsを動かすと同時に数十アクセスとかされても謎技術によりスループットが落ちない(GGUFだとだめ)。なので個人でLLMを立ち上げる際も同時に何アクセスもさせるような場合はvLLMでsafetensorsを動かした方がええ。GUIを持ってないのでOpenAI互換API経由で別ツールからvLLMに接続して使う。vLLMはCPU+GPUでの動作には非対応

モデルの形式

よくわからんニキはとりあえず
「大きなモデルを動かすにはCPU(メインメモリ)+GPU(VRAM)で動かしたい。その時はGGUF(≒LMStudio、Llama.cpp系)を使う」
「同じモデルである限りは、ファイルサイズがでかいほうが精度高い」
と覚えておけばOKや
技術レイヤ名前概要
モデルファイル形式GGUFLlama.cppの開発者が開発した。CPU+GPUで動かしたい場合はこれ一択≒LMStudio、Llama.cpp系で動かすならこれ
ptPyTorchというLLMで使われるライブラリでもともと使われてた方式。セキュリティ上の問題があり、safetensorsに置き換わった。今は使われていない。
safetensorsセキュリティを確保した方式。vLLMでモデルを動かすとなったら基本これ。モデルが公開されるとき、まずはsafetensorsのfp16で公開されることがほとんど。これが公開された後に有志が様々な量子化モデルやGGUFなど出してくれとる
量子化手法fp32, fp16, bf16量子化してない素のもの
fp8特にこれといった工夫をしてない量子化やが、あまり劣化もなくVRAMの豊富な環境ではよう使われる。fp8のTensorCoreを積んでるGPUなら高速化する
int8あまり見たことないけどあるにはある。精度は知らん(けど多分fp8とあまり変わらんのでは?)
fp4, mxfp4, nvfp4特にこれといった工夫をしてない4bitの量子化で精度の悪化はどうしてもある。fp4のTensorCoreを積んでるGPU(Geforce5000シリーズ以降)では高速化する。fp4の中でもそれぞれ小数点の扱いが違っていて精度も違く、nvfp4が一番高く、nvfp4>mxfp4>fp4と言われる。知らんけど
int4あまり見たことないけどあるにはある。精度は知らん(けど多分fp4とあまり変わらんのでは?)
q8,q6,q5,q4,iq4,iq3,iq2,iq1この量子化だけGGUF専用の量子化。量子化名の後に量子化手法もつらつらと書かれる。"q4_k_m"とか。
q/iq:qは通常盤、iqは低bit数向け版。
数値部分:主に量子化bit数を指すが、実際にはq8が9bitくらいあったり、q4が4.5bitくらいあったりと実際は表記よりも重い。
量子化名の後の0/1/K:0より1の方が新しい手法で一番いいのがK。
XXS/XS/S/M/L/XL:例えば同じq4の中でも複数サイズラインナップされることがある。そのサイズ分け。もちろん大きいほうが精度は良い。
これらの手法が組み合わさって同じモデルですごいたくさんのモデルファイルが出てくるが、結局同じモデル内において精度はファイルサイズに比例するので、自分のVRAMに合ったものを利用すればいい。演算は16bitなので例えばiq1であっても高速化はしない。
AWQsafetensorsでよく使われる4bit量子化。GGUFでもあるにはある。なんか工夫されててただのfp4量子化よりは精度がいい(はず)。演算は16bitなので高速化はしない。世間的にはGPTQよりAWQの方が精度がよいといわれる
GPTQsafetensorsでよく使われる4bit量子化。GGUFでもあるにはある。なんか工夫されててただのfp4量子化よりは精度がいい(はず)。演算は16bitなので高速化はしない。
AutoRoundintelが開発した量子化手法でintelのhuggingfaceのページで著名モデルをAutroundで配布してる。ファイル形式はsafetensorsもGGUFも対応している模様。利点とかは知らん。誰か知ってたら書いて
bnbbits and bytesという方式で結構古くからあるらしい。詳しいこと知っとる人おったら書いて
W4A16正確には量子化名ではない。4bitに圧縮され、実行時に16bitで演算されるものを指す。ので、AWQやGPTQはW4A16である、という言い方になる。

基本用語解説

パラメータ:そのモデルの規模。でかければでかいほど精度は高くなるんやが、モデルファイルも大きくなり動作させるのにそれだけ大量のメモリを必要とする。また演算量も増えるのでどんどん推論速度が遅くなる(文字が出てくる速度が遅くなる)。1パラメータが人間の脳でいうところの1ニューロンと思ってくれたらええ。英語のBillionが単位に使われ、例えば10B→10billion→100億パラメータという意味や。極小モデルはmillion(100万)のMや、逆に巨大モデルはtrillion(1000億)のTが使われることもある。

量子化:通常モデルは1パラメータを16bit(=2byte)で表現するから10Bのモデルだと20GBのファイルサイズとなる。これ正直でかすぎなので量子化という1パラメータのサイズを16bitから減らすことをやる。単純にビット数を減らすと精度はどうしても下がる(モデルが馬鹿になる)んやが、いろいろ工夫を入れて精度悪化をできるだけ防ごうとしとる手法が色々出とる

トークン:LLMにおいては1単語を数値に変換して処理する。これをトークンという。LLMは大体128k(131072)トークンとか、256k(262144)トークン、1M(1048576)トークン入力できるようになっとる。1単語とは言うものの、実際に1単語を1tokenに変換できとるのは英語ぐらいなもので、最近のモデルで日本語の場合はほぼ1token=1.5文字くらいやな。どの単語を1tokenとするかはhuggingfaceでモデルの配布ディレクトリに行ってtokenizer.json見たらわかるでな。

コンテキスト:直訳すると「状況」という言葉やが、LLMにおいては演算時にLLMへ入れるテキスト全文を指すでな。なので、あるモデルに入れることのできる最大のテキスト量のことを「最大コンテキスト長」と言ったり、モデルを動作させてるときに入力するテキスト量が増えてきたことを「コンテキスト量が大きくなってきた」なんて言うでな。LLMはテキストを出力するために、それに必要な情報すべてを入力する必要があって、例えばLLMにチャットさせるときはそれまでの会話履歴も全部入れる必要があんねん。だから、チャットが長引くとコンテキスト量が増えていっていつかは最初の頃の会話を削らなあかんくなる。ChatGPTなんかでも長くチャットしすぎると最初の頃の会話忘れるんやが原因はこれや

KVキャッシュ:LLMは1回の推論内で、例えば後半の演算時に前半の演算結果を参照する必要があんねん。その演算結果のキャッシュのことをKVキャッシュという。1回の演算の中で前半の結果を後半の演算で参照せなあかんから、KVキャッシュは実質必須やねん。なくても動くんやがこの世とは思えないほど演算が遅くなるでな。つまり、メモリは「モデルのファイルサイズ」だけではなく「KVキャッシュサイズ」が必要になんねん。このKVキャッシュサイズはコンテキスト数分必要になる。結構な量になるで。

DenseとMOE

通常例えば10Bのモデルがあったとすると10B分のモデルを全部メモリに載せて全部演算する必要がある。これをDenseモデルというんやが、ぶっちゃけ「通常版」とか「MOEじゃないモデル」とか言われることのが多いでな。
それに対し、2025年以降主流なのがMOEというモデルや。詳しい解説は全部省いちゃって端的に言うと入力された文字に対して最も関連すると思われる一部のパラメータでだけ演算するモデルや。例えばMOEモデルは10B-A3Bなどと書くんやが、この場合総パラメータ数は10Bやが、演算は3Bしか行わないということになる。こうするとメモリは10B分必要やけど、演算は3B分しかないので高速に動く(文字が早く出てくる)んや。入力された文字に対して関連する部分を動かすようにしとるから精度悪化はわりかし低いんやが、それでも同じ10BのDenseモデルと10B-A3BのMOEモデルで比較した場合は明らかにMOEの方が精度は劣る。
Qwen3.5でいうと、Denseの27BとMOEの122B-A10Bで比較すると122B-A10Bの方がチョイ精度ええなって感じ。メモリ使用量は数倍やが、演算量が数分の1というトレードオフになっとる。
MOEモデルはCPU+GPUという構成で推論させるのと相性が良いというのもあってローカルでもMOEモデルが使われることのが多いんや。Denseはちょっとでもメインメモリにモデルが乗ると激烈に遅くなるんやが、MOEモデルは大部分をメインメモリに置いていてもまぁまぁの速度で動かせるんや。

エロ系行けるようにしたモデルの見つけ方

大企業が出してくるモデルは基本的にエロ系が出ないよう調整されたモデルや。
それを出るように改造して出してくれとる人がおる。
ファイル名に「NSFW」「uncensored」「abliterated」「heretic」が入っているものがそれや。
方式としてはhereticが一番新しい方式やが、それが一番性能がいいとは限らへんから
複数使ってしっくりくるもの使うしかあらへん。

また、過去のチャットのやり取りを改変できるツールを使って、一度エロの出力を断られた後に
断られた文面をエロい文面に差し替えてしまうとその後普通にエロ出てくるということもあるでな

Uncensored General Intelligence Leaderboard
https://huggingface.co/spaces/DontPlanToEnd/UGI-Le...
各種モデルの検閲除去レベルをスコアでランキングしとるページや
"UGI"という値が高ければ検閲がそれだけないということや
このボードの中の"NSFW"という項目は「特に指示しない際に勝手にNSFWの話題を出してくる度合」みたいなもののようで、
この値が低くてもUGIが高ければ指示することでNSFWが出てくるので、NSFW値はあまり気にせんでええ
モデル選ぶときに最優先すべきはUGI値が高いもの、あとは文章力のWrite値が高いものや。

GPU+CPUで演算させる(≒モデルをVRAMとメインメモリ両方に分割して載せる)

LMStudioやllama.cpp系やとGPU+CPUで演算できんねん。
チップ二つで演算するから早くなるかと思いきや、遅くなんねん。
じゃあ何が嬉しいかというと、VRAM+メインメモリという構成にすることでVRAMだけで動かすよりも
大きなモデルが使えるようになんねん。

メインメモリに載せた分がCPU、VRAMに載せた分がGPUで演算されるということなんやけど、
まず注意事項としてDenseモデルやとメインメモリにちょっとでもモデル乗っただけで劇遅になるでな。
遅くてもええって人はそれでええんやが、基本的にGPU+CPUはMOEモデルでやるでな。

あともう一つ注意事項。WindowsのGeforceドライバは、VRAMが枯渇してくると自動的に
メインメモリにVRAMの内容を退避するという挙動をする。これは絶対に回避せなあかん。
この状況はGPUでメインメモリの内容を演算するということでCPUで演算するよりもさらに遅くなるでな。
タスクマネージャでGPUメモリってのが満タンで「共有GPUメモリ」ってのが増えてたら
VRAMからメインメモリに退避されとるっちゅーことや。設定を見直してVRAM使用量を何としてでも減らすんや。

設定でこの機能オフにしちゃうのも手や(VRAM枯渇したらエラーするようになってまうが)
NVIDIAコントロールパネル→3D設定→3D設定の管理→CUDAシステムメモリフォールバックポリシー
を"システムメモリフォールバックなしを優先"に変更

CPU+GPU設定方法
以下はとりあえずllama.cppでの設定例や
lmstudioや他のllama.cppでも類似の設定項目あるはずや
MoEの場合の設定
n-gpu-layersはモデルの層以上のとりあえず1000とか大きな数値を設定する
n-cpu-moeがCPU+GPUでMoEモデルを高速に動かす肝や
この数値を大きくするとメインメモリの使用率が上がる。0を設定するとすべてVRAMに載る。
なお、cpu-moeという設定項目もあるが、n-cpu-moeを設定せずにcpu-moeを設定すると
n-cpu-moeを最大値に設定したのと同じになるでな
つまりVRAMをほぼ使わずメインメモリに最大限モデルを載せるっちゅーことになるわけやが
それでもMoEの重要部分はVRAMで動いとって数token/sくらいは出るでな
これがメインメモリさえ潤沢にあればMoEモデルなら8GB VRAMでも大型LLMが動かせるっちゅー仕組みや
設定項目設定する数値
n-gpu-layersモデルのレイヤー数以上を設定。面倒なら1000とか入れちゃってよし
n-cpu-moeMoEモデルの重要部分以外をどれだけメインメモリに載せるか。0にするとすべてVRAMに載せる。
cpu-moen-cpu-moeを設定せずにこれだけ設定するとMoEモデルの重要部分だけVRAMに乗せ他をメインメモリに載せる(n-cpu-moeに最大値を設定したのと同じ)。その場合速度は数token/s程度になるもののVRAM8GBでも動くには動く
Denseの場合の設定
行うべき設定はn-gpu-layersだけや
モデルのレイヤーを何層VRAMに載せるかという設定なので、この数値を高めれば高めるほど
VRAM使用量が上がって早くなる。モデルがレイヤー何層なのかはhuggingfaceのモデル配布ページなんかに書いてある
それ以上の数値を設定すればモデルを全部VRAMの載せるっちゅーことになるで
設定項目設定する数値
n-gpu-layers0を設定するか、そもそもこの設定を設定しない場合はすべてメインメモリ上にモデルが乗る。上げれば上げるほどVRAM使用量が増える。

KVキャッシュの量子化

モデルと同じようにKVキャッシュも量子化できんねん。量子化すると使用VRAM量が減る。うれしい。
vLLMやとfp8とかfp4、llama.cpp系やとq8_0とかq4_0に量子化することになるんやが、vLLMはfp8とかfp4やから使用VRAM量は減るし(GPUによっては)高速化するんやが、llama.cppやとq8とかq4やから、VRAM使用量は減るんやけど、token/sは多少落ちてまうでな
vLLMでもllama.cppどちらでもfp8、もしくはq8_0であればそう劣化は感じないというのが業界の一般的な認識になっとって、業務用でもfp8で使うのが当たり前になっとる
fp4、q4_0まで行ってまうと明確に劣化を感じるレベルになるで
以下はllama.cppでの指定の仕方や
--cache-type-k q8_0 --cache-type-v q8_0

あとここについでに書いておくんやが、llama.cppはデフォルトでは「同時8アクセスに耐えられる設定」で起動するようになっとる。これ一人で使う分には意味なくてVRAMを余計につこうてしまうから必ず以下を指定するんやで!
--parallel 1

GGUFで画像入力

執筆中・・・ mmprojをあーしてこうすればええんや!

チャットテンプレートについて

執筆中・・・

旧テンプレ

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu

table拡張js

どなたでも編集できます

広告募集中

メンバー募集!