GitHub Copilotがローカルでも動けば楽しいので、Gigazineでtabbyというのが紹介されてたので試したけど動きませんでした・・・
というか、最近はGigazineの後追い追試みたいになりがち・・・
ローカルPCでセルフホストできてGithub Copilotのように使えるコーディング補助AI「tabby」、Dockerイメージありなので早速使ってみたレビュー - GIGAZINE
毎回ちゃんと自分の環境にインストールして動かしてるのすごいなーと思います。
tabbyのリポジトリはこちら。ここにDockerのコマンドがあるので、パスを適当に修正すればOKです。
https://github.com/TabbyML/tabby
Gigazineでは触れられてないけどイメージが32GBくらいあるので注意。
起動したけど、ぜんぜん補完してくれない。
SwaggerからAPIを叩いても、メモリばっかり食ってだめですね。
あきらめて、Dockerイメージは消しました。
けど、TabbyML/J-350M
というモデルを使ってるっぽく、Hugging Faceで試すとなんとなく動いている。
https://huggingface.co/TabbyML/J-350M
で、これがSalesforce/codegen-350M-multi
に由来してるって書いてあるので、Saleceforceのところに行くと動かすスクリプトがあるので試してみると動いた。
https://huggingface.co/Salesforce/codegen-350M-multi
from transformers import AutoTokenizer, AutoModelForCausalLM # model = "Salesforce/codegen-350M-multi" # model = "Salesforce/codegen-2B-multi" model = "TabbyML/J-350M" device = "cuda:0" # device = "cpu" tokenizer = AutoTokenizer.from_pretrained(model) model = AutoModelForCausalLM.from_pretrained(model).to(device) text = "def quickSort(array):\n" input_ids = tokenizer(text, return_tensors="pt").to(device).input_ids generated_ids = model.generate(input_ids, max_length=128) print(tokenizer.decode(generated_ids[0], skip_special_tokens=True))
けど、あまりいい感じのものが出ない・・
ただ、TabbyMLのreadme見てると必ずコメントを入れているので# sort array by Quick sort
というコメントを含めるとそれっぽくなりました。
モデルはそんなにメモリも食わずに動くのに、Dockerのは何をしているんだろうか・・・
SalesforceのところにSalesforce/codegen-2B-multi
というのがあるので、これだとコメントなしでもいい感じのコードが出てくれます。
ただVRAM8GBではGPUで動かなかったのでCPUで。TabbyML/NeoX-1.3B
はブラウザ落とすとGPUで動きました。6.5GBくらいGPU使う感じ。