Joy to the world

とある中小企業のしがない技術者でクリスチャンな人が書く日記。実はメビウス症候群当事者だったり、統合失調症のパートナーがいたりする。

ローカルLLM環境メモ

ここ数日で色々と構築してきた結果をメモっておく。会社で同じ環境を再現する必要があるので。

LM Studio

LM Studioについては特筆する設定項目はなし。

とりあえず入れているモデルは下記の通り。

ランタイムについては色々と調べてみたけど、Vulkan使っておけばとりあえずいいのではという結論に至った。なぜかCUDAを使うと遅くなったりする場合もあるのでよく分からない。

Speculative Decodingを使えば、7Bくらいのモデルならなんとか動くかなと。多分、CPUが強ければもう少し効果が出てくるのかもしれない。 10トークン/secくらい出たら、ローカルLLMとしては上出来と思う程度の期待値がいいのかなとは思う。上を見ても仕方がないので・・・。

あと上記に載ってないインデックスモデルは、「text-embedding-multilingual-e5-large-instruct」を使っている。Smallでもいいかもしれないけどよく分からない。

一応MCPの設定ファイルを置いておく

{
  "mcpServers": {
    "github.com/marcopesani/mcp-server-serper": {
      "command": "npx",
      "args": [
        "-y",
        "serper-search-scrape-mcp-server"
      ],
      "env": {
        "SERPER_API_KEY": "API_KEY"
      }
    }
  }
}

AnythingLLM

これはDockerで入れたほうがいい。レスポンスがデスクトップ版とぜんぜん違う。

docs.anythingllm.com

LM Studioへの接続は「http://host.docker.internal:1234/v1」を使う。

AnythingLLMは色々と便利なので使えると思う。特にRAGは使いやすい。Obsidianもインポートできるから結構良いと思う。

一応MCP設定もおいておく

{
  "mcpServers": {
    "Context7": {
      "command": "npx",
      "args": ["-y", "@upstash/context7-mcp"]
    },
    "microsoft.docs.mcp": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://learn.microsoft.com/api/mcp"
      ]
    }
  }
}

Obsidian

Obsidian Copilotを使えばローカルLLMを使うことができる。ただ、自分が使ってる量子化してるLLMではVault QAはまともに動かなかった。ObsidianをRAG的に使いたい場合はAnythingLLMを使ったほうがいいと思う。

右クリックでコマンド実行ができるので、それだけでも使えたら結構便利だと思う。

こうやって書くと簡単に思えるけど、この環境を構築するまでにかなり時間がかかった。大変だった・・・。