20230928
この記事を閲覧するにはアカウントが必要です。
書くことが本当に一切ない。西尾維新でも文字に起こすのに苦労するくらいの平々凡々さだと思う。
十三機兵の三浦編を読んでいると外来語を縛った喋り方みたいなのを会得したいなとなんとなく思った。普通にやってたら使いまくってしまうので。今しがたも「会得」を「マスター」と書こうとした。
英語をやっていると語彙の絨毯が敵性語で埋め尽くされていき、日本語は棚の隅の方に押しやられていく。外来語縛りは一種の別言語として覚えても良いかも知れない。いい頭の運動になりそう。そういえばそんな芸人もいたか。「彩り眼被せ」の方が「目玉の親父の衣替え」より良いと思うんだけどなあ。良いというか、方向性が違うというか。あの芸人の指針としては前者で正解だと思う。
今日は先日話した言語模型『japaneseStableLM』をGPTQやggufに変換する試みで丸一日が潰れた。特定の環境でなら使用できるのだが、家の環境では電算機の性能が足りずうまく読み込めなかったのだ。
しかし潰した甲斐はあり、なんとか4bitの量子化には成功した。どうも本模型は相当に珍妙な構成をしているらしく、原本となっているGPT-NeoXを乱雑に改造しているせいでどの変換機構も量子化に対応していない。一から仕様書の中身を覗いて書き換える必要があった。まったく骨が折れた。
成功した正確な手順はおぼえていないが、最低限以下の部分を処理しないと失敗します。
GPTQを生成する際
実行コード本体
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, GPTQConfig, LlamaTokenizer
tokenizer = LlamaTokenizer.from_pretrained("novelai/nerdstash-tokenizer-v1", additional_special_tokens=['▁▁'])
quantization_config = GPTQConfig(
bits=4,
dataset="c4",
tokenizer=tokenizer,
)
model = AutoModelForCausalLM.from_pretrained(
"stabilityai/japanese-stablelm-instruct-alpha-7b",
trust_remote_code=True,
device_map="auto",
quantization_config=quantization_config,
)
model.save_pretrained("japaneseStableLM-GPTQ-4bit")
tokenizer.save_pretrained("japaneseStableLM-GPTQ-4bit")
[!attention]
そもそもこれを実行する上で大量の容量とVRAM(おそらく20GB以上)が必要になるので、元環境で動かないならGPTQ化自体が無理です。
・optimum/gptq/constants.py
BLOCK_PATTERNS = [
"transformer.h",
"model.decoder.layers",
"gpt_neox.layers",
"transformer.layers", # この部分を追加
"model.layers",
]
text-generation-webuiで読み込む際
・生成されたGPTQフォルダのconfig.jsonに以下の記述を追加。
"model_type": "gpt_neox",
accelerate/utils/modeling.py
if value is not None:
if old_value.shape != value.shape:
# ここがraise ValueErrorになっているので以下のようにwarningに変える
logger.warning(
f'Trying to set a tensor of shape {value.shape} in "{tensor_name}" (which has shape {old_value.shape}), this look incorrect.'
)
いかに模型が複雑怪奇かは以下にも記した。困った時に見るがよい。
https://github.com/ggerganov/llama.cpp/issues/3373
[!note] Private
mazikat@na-cat.com, Etomniavanitasで以下から落とせる
https://huggingface.co/Elizezen/japanese-stablelm-instruct-alpha-7b-GPTQ-4bit
前回は演算結果を見せそびれたが、本模型がどれほどすぐれているのかを少しお見せしようと思う。
時に1914年夏、戦争という名の狂気の嵐が、欧州全土を切り裂いた。新興国家ドイツは、オーストリアやトルコとともに同盟国を結成し、フランス、ロシアといった超大国と対決せざるを得なくなったのだ。
ドイツ参謀本部のシュリーフェン将軍は、一世一代の大戦略を提言した。すなわち、東部ロシア国境をがら空きにして、ドイツ全軍を西部フランスに一極集中し、まず/これを殲滅して首都パリへ進撃する作戦である。しかし、この奇抜な戦法は、フランスをはじめとする連合国には全く通用しなかった。逆に、フランスの猛攻に耐えかねたドイツ軍は総崩れとなり、敗走に次ぐ敗走を重ねたのである。
かくて、第一次世界大戦の勝者は連合国となった。ドイツの敗北から2年目の春を迎える頃、ヨーロッパは再び大きく変動していた。まず、大戦勃発前からの懸案であったオスマン帝国の解体問題が決着を見た。次に、ドイツとロシアの間に結ばれていた秘密条約(独露再保障条約)が発効し、両国の間には相互不可侵条約が締結された。そして何より重要なのは、ベルサイユ講和会議において、ヴェルサイユ平和条約と呼ばれる国際条約が成立したことだった。
この条約により、世界中の領土・勢力圏は、驚くほど正確に確定していった。もちろん日本も例外ではなかった。その内容は、以下のとおりである。
「/」で区切った部分以降がすべて本言語模型の生成物である。
内容の史実性はどうでもよい。重要なのは文章の整合性である。これはどうしても容易に非人間の仕業であると見抜ける代物ではない。あまりにも整っている。英語模型ならばこの程度の精度はいくらでも見られるが、こと日本語に特化した模型においてこれほどまでの精度を叩き出せるのは異次元の正確性といえる。
しかもこれは量子化した模型で行った演算なので、本来の性能より幾分か劣る生成物であるはずである。ということは完全な状態で演算を行った場合はこれ以上に精度の良いものを容易に、そして無限に生成できるのだ。
「情報」として正しいか、という意味での正確性ではChatGPTやその他模型におおいに劣るであろうが、「AIのべりすと」のような用途を想定する場合は、議論の余地なく二◯二三年九月現時点で最もすぐれた言語模型といえる。つまり、想像性に富む。
私は端から人工知能に情報提供媒体としての性能を求めていない。そんなものは検索機関を用いれば四半世紀前には叶っていたことだ。特に電脳網への接続権がなく事実確認が出来ない模型に関してはつゆほどの価値もない。
私が人工知能に求めていたのははじめからこの手の「創造補助」の力である。ずっと世界に遅れを取ってきた日本語特化型の言語模型が、ついに実用段階まで追いついてきたことを喜ばしく思う。
また、前回も少し話したが本模型はRP(ERP含む)性能も飛び抜けて優秀である。これ一本でなんでも叶う。まさしく夢の機械だ。惜しむらくはこれを造ったのが日本人ではなく外国の会社だということか。結局祖国は人工知能競争で首位に躍り出られなかった。りんなの性能の粗悪さを見ると悲しくなる。
余談だが、余興的な楽しみ方として生成の設定をめちゃくちゃにするとめちゃくちゃな文章が作れるので楽しい。
「ある日、小さな村に突然サイが襲って来た!」。それをチャンスに発展したモノ“おつまみウスターソース!」日本にはないカルチャーがこのメーカーを設立したらしい、、、ココでもう買いますネエネサンに渡すので丁度イイレックネスになってますソールの接写から甲が見えなくともアッパーにはフィット度十分.カラー:ネイビーベースにアクセントブラックこんなかんじかなサインは入りてんですがフイリハンズベリートをイメージしているのでホっとタブルですね一
●関連商品♪エスルジナシーダマサルコンクリノマキイチ カラカント二ライコスメイラスト二トラニーノイチ (税別6985円(本体値9205/+ヤニックワッキ ンのスドント3つのルールカラ1 .足を自然に前に出せること)ブーツ のカタチではないブーつテにするたシニョするフラボスコアのデヒルトラインで作るデザインです前記コネルから二
Comments ( 0 )
No comments yet.