以下の内容はhttps://ryozi.hatenadiary.jp/entry/2024/09/29/044744より取得しました。


GitHub Copilotの裏の処理をOllamaにするプロキシ、Ollama Copilotを試した&コンテナ化

初LLMです。

背景

VSCodeでローカルLLMを使った補完を使いたかった。ざっくり探すと以下のようなものがあった。

ただ、VSCode機能拡張はこのご時世もあり、あまり入れたくないな、という感じなのと、そもそもGitHub Copilotがあるのだから、それをそのまま使えないのだろうか?と思った。

調べると通信先としてプロキシを通させるオプションがあり、それを利用したものを探したところ以下が見つかった。

FauxPilotはOllamaに対応してなさそうということで、Ollama Copilotを試してみた。あとコード量も時間を書ければ全然読めるレベルだったので変なもん入ってもすぐにわかりそう、という安心感があった。

しかし、こちらもバイナリの配布はなかったのと、ollamaの用意とかも面倒だった。

コンテナ化

ということでコンテナにしてみた。

github.com

Dockerイメージもあげてあります。

https://hub.docker.com/r/ryozitn/ollama-copilot

Linuxな環境(特にWSL)でdocker or podmanがある環境なら compose upすれば使えるはず。WSLで動かせばWindows(ホスト)のVSCodeからでも通信できる。devcontainerからは試してない…(`--add-host="host.docker.internal:host-gateway"みたいなオプションを与えれば行けるかもしれない?)

つたないREADME_ja.mdでも読んでください。

最近はPodmanに凝っているのでPodmanでも動作するように頑張った(PodmanはRUN --mount=type=bind回りにバグがあるっぽいので2回目以降のビルドはうまくいかないかも)

(人のもんを勝手にDockerコンテナ化して配るってどうなんですかね)

動かしてみた

コード補完が動いた。Chatは無効化されていたりコミットメッセージの補完は動かなかった。やはり簡単にはいかないのか。

youtu.be

codellama:codeは無から補間されるコードはイマイチっぽかった。httpサーバでrecv(BUFSIZE)なんてしたら永久に待ってしまう可能性があるので。これは与えたタスクが悪いというのはあるかもしれない…

あとは謎の補完が出たりすることがあるのが気になる。

他気になってるところ。

  • TLSの通信が失敗するログがしばしば出るのが気になる。Microsoft宛てっぽい。自分の環境だけかもしれない?
  • GPUを使わないととんでもないCPU使用率になってタイムアウトした
  • 初動はモデルのロードがあるからか少し時間がかかる

でもローカルLLMが発展してくれればollamaを通して恩恵が得られるはず。凄い人たち頑張ってくれー

ちなみにGitHub Copilot自体は全く使ったことがない。(コード補完以外にどういった機能があるかわかってない)




以上の内容はhttps://ryozi.hatenadiary.jp/entry/2024/09/29/044744より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14