LMstudioをローカルマシン上で使ってみる

大規模言語モデルを、ローカルマシン上で簡単に使えるLM studioを試してみました。
ほんと、ガチで普通のノートPC。OA用というか、庶民用というか。

# TL;DR
- LM studio、簡単、使いやすい、でも商業不可。
- ふつうのノートPCでも動くが、量子化モデルなので精度はいまいち。
    - Gemini 2B(量子化）とSwallow 7B(量子化）を試した。

# 環境
専門のGPUなど載っていない、なんの変哲もない普通のノートPCです。Dynabook。
CPU:Intel(R) Core(TM) i7-10510U CPU @ 1.80GHz   2.30 GHz
メモリ：16GB
OS:Windows 10 Pro　64bit
グラフィックカード：Intel UHD Graphics

# LMstudioのダウンロード＆インストール
LMstudioは、gguf系のモデルを簡単に試せるGUIツール。
以下からダウンロードできます。Windows上で使いたいので、Download LM studio for Windowsをクリック。
https://lmstudio.ai/

ダウンロードされたLM-Studio-0.2.16-Setup.exeを実行。

あっさりと立ち上がりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106215/f5cd255e-5368-0e91-b18c-11e8adbf688c.png)

# ライセンス
商業利用不可です。
商業利用したいときは、メールで連絡してお願いする必要があります。コストがかかるかどうかは不明です。
この記事は、趣味で書いてます。

# モデルの準備
とりあえず、gemmaを試してみます。軽そうなので「gemma-2b-it-q4_k_m.gguf」を選択。1.5GBと、容量がわかるのは便利ですね。
DL状況も画面下部に表示されてわかりやすいです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106215/552d16ab-d2e9-2a34-b289-ea79a7250d75.png)

ちなみに、モデル名の右側に、モデルがそのマシンで動くかどうかが記載されてます。
私のマシンでは、7Bのモデルの場合だと、量子化具合によって「FULL GPU OFFLOAD POSSIBLE」と「PARTIAL GPU OFFLOAD POSSIBLE」「Likely too large for this machine」の３パターンが表示されました。ためしに、「Likely too large for this machine」と書かれたモデルを試してみましたが動かず。ノートPCが苦しそうな音を出しただけでした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106215/855a771d-e668-195b-702a-e2098ad7a213.png)

# 試してみる
DLが終わったら、さっそくチャット画面から試します。
PresetでGoogle Gemma Instructを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106215/2e18ef24-232e-e7df-4e63-b9d1c768f0e8.png)


Accept New System Promptをクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106215/d386e17e-71aa-8940-8a47-6d82d799a053.png)

Select a model to loadから、gemmaを選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106215/8f7db2ee-bffd-bc97-a5d0-c25296aa57b1.png)

話しかけてみます。思ったより全然早いですね。てか、絵文字もうてるんかい。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106215/fb66cdd2-5bcc-adec-9bba-d3e7cc0cc2a0.png)

そのままだと、日本語は話さないようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106215/2959827b-f854-82ea-dc5c-5a52083f5f19.png)

右側で設定できるSystem Promptに「あなたは日本語で応対するアシスタントです」といれてみると、日本語っぽいものを話してくれました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106215/226d2a28-c747-2828-97ee-a4643b06a1e4.png)

System promptを英語(You are an assistant who responds in Japanese.)にしてみると、日本語の文法は正しくなりましたが、応答としてはおかしいですね。2Bだし日本語だし、こんなものか、という感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106215/91b35747-d27c-3a7d-1bba-6c7c29b22e14.png)

# Swallowで試してみる
出たばかりなのでGemma試しましたが、やはり日本語モデルを試したいもの。
Swallowの7B(TheBloke/swallow instruct 7B Q5_0)で試してみます。Hugging faceにあるGGUF形式のモデルなら気軽に試せるのがよいですね。

System Promptまわりの設定はこんな感じ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106215/83ce152a-c604-74e0-16c7-1a71e533b350.png)

会話してみましたが、すごく投げやりな感じになってしまっている。当たり前ですが生成スピードは、Gemma 2Bよりだいぶ遅いです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106215/542c7dd5-2574-b8ce-9213-9cefab10a1b2.png)

FAQには答えてくれますね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106215/056a6f85-4a44-2c3d-cb7b-a888a0c76291.png)

他にもいくつか試しましたが、創作系は難しいようです。
精度はまだまだですが、普通にローカルのノートPCで動いてくれるのは、いろいろ可能性を感じてよいですね。

以上