堺風の頭部

徘徊、カメラ、PC、その他。

PC雑記12月 LANとかLLMとか

 今月。

 

ネットワークを色々試してみたいのだけど

 会社の情シスマンという立場上、情報セキュリティマネジメントくらいは取ろうということで勉強してるのだけど、ネットワークまわりなんかは自分でやってみておいたほうが身につくかな、と思うとこ。
 Ubuntu Serverとか変なシンクライアントをいじってみたりしてるのもその一環。

 

 でまあ、今家に来てる光回線が、1Gbpsマンションタイプで実測800Mbps出てる大当たりなので、もっと高速なサービスが開始されたら切り替える前提で、宅内を2.5Gbpsにしちゃう準備をしておいてもいいかな。どうだろ。

 さしあたり1GHzのままとしても、YAMAHAの業務用ルーターでも入れて、VLANを分けるかファイアウォールが2段になるようにして、学習用に公開サーバー作ってみるか。
 いっそIPoEルーター自体を自作しちゃうか。ただ光ファイバー来てる部屋が現状では寝室になってるから、よほど静音でないと嫌だな。NICが2枚いると思うからデスクトップPCいるだろうし。

 

 まあ考えはするけど、あんまり雑にやるとやり直しが増えてコストばかり無駄にかかっちゃいそうだから、ちゃんと計画してやらんといかんな。

 

 

文章生成AIもやってみる

 勤め先ではChatGPT使用禁止令が出ているのだけれど、なにか社長が「でもこれからは使っていかなきゃいかんのでは」と興味を持ちだしたそうで、「いくらか予算取るけどどう?」という話が。

 私はあんまりChatGPTに凝ってる方ではないけれど、まあ振られたからには。

 会社で禁止令が出たのが、例によって情報流出を気にしてのことだから、ローカル実行のを用意すれば安心かと思う。

 

 でまあ、どうやるのかなと調べると、Stable DiffusionでいうAutomatic1111みたいなものがあり、これをとりあえず自宅のPCに入れてみる。

github.com

 

 使い方については、インプレスの以下の記事がよかった。

internet.watch.impress.co.jp

 

 Text Generation WebUIは色々なモデルを扱えるようだけど、Hugging Faceのmomonga氏が配布している日本語モデルが扱いやすそうだった。

huggingface.co

 うちのGPUはRTX3060 12GBだけれど、VRAM不足でダメということはないようだった。

 

qiita.com

 モデルによって変なエラーが出て読み込めないのがあったけれど、これはWindows側の設定変更で解消した。
 GPTQのモデルがことごとく読めなくて困ったけど、これでいけた。

 

Chatしてみる

 モデルはChatとInsturctがあり、1行ずつ質問する形が適するのがChat、まとめた質問文を渡すのがいいのがInstructであるとのこと。

 

huggingface.co

 使ってみた感じ、明らかにGPTQモデルだと速いし精度もよかったので、GPTQがあるサイバーエージェントのCalm2-7Bで。

 

 で、AIのキャラ付けを行っておかないと、英語で喋りだしたりする(というかデフォルトが英語設定らしい)。

 ユーザーとAIの名前、「Context」、それから最初の挨拶文を設定できる。
 Contextには上のように日本語で設定しておいた。

 これがなかなか返事が速い。すらすら答える。2400bpsのモデムでテキスト受信してるくらいの速度感か。わからんわ。いや私も28800bpsの目で追えないパソコン通信しか知らない。

 問答も、奈良県と聞いてるのに奈良市の回答をしてきたとか、まんとくんせんとくんの別名だと思ってるらしいとか、しかしその程度の間違いしかしていない。鹿の個体名が本当かは知らないが。

 サイバーエージェントのモデルが優秀っぽくて、他の英語モデルに日本語を追加学習させる形のものは、けっこう回答の質が落ちるように見えた。

 

 チャットAIの面白いところって多分、プロンプトで回答傾向を作り込んでキャラ付けしていくところかな、という予感がある。

honeshabri.hatenablog.com

 こういう。

 ただ別に私はお姉ちゃんも今泉巡査も片倉小十郎も特にほしいと思ってないから、どういうキャラ付けをすると面白いか悩ましい。

 

VBAのコードを書かせてみる

huggingface.co

 CodeLlamaのGPTQモデルもあったのでこれを使ってみよう。

 これはChatじゃなくInstructのモデルなので、Text Generation WebUIの「Default」タブで実行する。

 

以下に説明する内容のVBAコードを書いてください。

### 内容:
A列をキーにして、アクティブシート全体をソートする


### コード:
```vba
Sub sort_all()
    Range("A1").Select
    Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header _
        :=xlYes
End Sub
```

(以後なにかウェブのQ&Aサイトを引っ張ってきたような関係ない文章がずらずら)

 ### コード: までをInputとしてGenerateしたら、Outputに続きが書かれた。

 セル範囲の指定おかしくないか、と思ったけど、これでソートされるなあ。4行のコードで私よりAIの方が理解が深かった……

 

 CSVファイルをアップロードして、このファイルをこれこれこうしろ、みたいな指定までできればいい感じなんだけどな。さて。諸々使い方を探ってみるか。