Calm2-7B-Chatを完全オフラインで使う
自宅では気づかないのですが、会社だと気になることがあります。
それは、以下の記事で紹介した生成AI「Calm2-7B-Chat」
Calm2-7B-ChatのGPTQ版をうちの低メモリーGPU環境で動かしてみた: EeePCの軌跡
を使う度に、都度、huggin faceのサイトにモデルを参照しているということ。
会社ではプロキシの関係で、ちょっと接続の際にはややこしいことをしなきゃいけないので、これが結構煩わしい。
ということで、このCalm2-7B-Chatのモデルをダウンロードし、完全にオフラインな状態でも使えるようにしたいと思いまして、ちょっと調べてみました。
で、生成AIのモデルをダウンロードするコードを以下のように作成。
snapshot_download(
repo_id="mmnga/cyberagent-calm2-7b-chat-GPTQ-calib-ja-1k",
revision="main", repo_type="model", local_dir="./model",
local_dir_use_symlinks=False,)
これを実行すると、このコードと同じ場所に「model」というフォルダが作られて、その中に4GBほどのファイルが収まってるはずです。
その後、
from transformers import AutoTokenizer, TextStreamer
model_name_or_path = "./model"
tokenizer = AutoTokenizer.from_pretrained(model_name_or_path, trust_remote_code=True)
model = AutoGPTQForCausalLM.from_quantized(model_name_or_path, use_safetensors=True, device="cuda:0")
streamer = TextStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)
output = ""
i = 1
while True:
user_input = input("ユーザー入力" + str(i) + ":")
if user_input=="":
break
prompt = output + "USER: " + user_input + "\nASSISTANT: "
output = tokenizer.decode(model.generate(**tokenizer(prompt, return_tensors="pt").to(model.device),
max_length=1000,
streamer=streamer)[0]).replace("<|endoftext|>","") + "\n"
i +=1
を実行すると、前回の記事と同様のチャットモードになります。
モデルの名前が「./model」となっているのがミソ。つまり、このフォルダ内にあるモデルを読み込んで実行しているということを意味します。
で、一度ダウンロードした後、Wi-Fiを切った状態でも動きました。つまり、完全にオフライン動作していることに。
もっとも、モデルがマイナーアップデートされた際などは反映されなくなるので注意。その際は、再び一つ目のコードを実行するのみですが。
社内で〇秘のデータを扱いたい場合などは安心ですね。
« Calm2-7B-Chatで小説のテキストファイルを読ませてあらすじを書かせてみた (メインメモリー64GB+GTX1650Ti) | トップページ | 16インチのモバイルモニター買った »
「数値解析系」カテゴリの記事
- 生成AI解説書籍「ChatGPT & 生成AI」という本を買った(2024.12.08)
- Googleの生成AI「Gemini Advanced」に入ってみた(2024.12.01)
- Tanuki-8Bの4ビット量子化ggufモデルでRAGをやってみました(2024.09.14)
- 純日本産なローカルLLM「Tanuki-8B」を試してみた(2024.09.02)
コメント
« Calm2-7B-Chatで小説のテキストファイルを読ませてあらすじを書かせてみた (メインメモリー64GB+GTX1650Ti) | トップページ | 16インチのモバイルモニター買った »
前回の話でCOBOLの云々をコメントしましたが
アレの場合、セキュリティ上の問題でクローズドな開発環境が
前提だったりしたので、単独動作出来るのであれば
そういう会社に提案したら効率よくなりそうです。
今でも金融の根っこ部分ではCOBOLソースで開発が
残ってると思われますし、今までのソースをご破算にして
新規に作るなんて出来ませんから
(だから全銀システムのような問題もあるんですが
投稿: mokekyo | 2023年11月11日 (土) 20時38分
> mokekyoさん
似たような事情?がFORTRANにもあるようでして、私が以前関わっていた解析業務用のソフトは、今でもFORTRANだそうです。
このため、新しいアルゴリズムやハードウェアの進化についていけないところがあるみたいですが、かといってコードの大幅変更は解析精度を落としたり、これまでのノウハウが使えなくなったりとで、おいそれとはいかないようです。
そういえば学生時代はFORTRAN使いでしたけど、今はもうすっかり忘れてしまいました。とはいえ、あの言語から学んだことはたくさんあって今があると思ってます。ああ、さらにいえば、論文作成にはLaTeXっていう、これまたプログラム的なものを使ってましたが、あれもまだ現役で使われてるみたいです。古い言語だからと言って、必要な人は必要なのだと感じます。
投稿: ディープタイピング | 2023年11月12日 (日) 07時38分