4 ポイント 投稿者 GN⁺ 2025-01-13 | 1件のコメント | WhatsAppで共有
  • TabbyはGitHub Copilotのオープンソース・オンプレミス代替として提供されるセルフホスト型AIコーディングアシスタントであり、クラウドサービスなしで運用するワークフローを目指している
  • サーバーはDBMSやクラウドサービスが不要な自己完結型構成を掲げており、OpenAPIインターフェースによりCloud IDEのような既存インフラと統合しやすいよう設計されている
  • 実行環境はコンシューマー向けGPUをサポートし、Dockerコマンド1つでStarCoder-1BコードモデルとQwen2-1.5B-Instructチャットモデルを使ってサーバーを立ち上げられる
  • 最近のアップデートには、GitLab Merge Requestをコンテキストとしてインデックス化するv0.30、REST APIで独自ドキュメントを追加するv0.29、Answer Engineのメッセージを共有可能なPagesに変換するv0.28などが含まれる
  • IDE/Editor拡張、インストール、設定ドキュメントとコントリビューションガイドが提供されており、Rust環境と一部依存関係を用意すればcargo buildで直接ビルドできる

Tabbyの役割と基本的な特徴

  • Tabbyはセルフホスト型AIコーディングアシスタントで、GitHub Copilotのオープンソースかつオンプレミスな代替である
  • 主な特徴は3つに整理できる
    • 自己完結型のためDBMSやクラウドサービスが不要
    • OpenAPIインターフェースを提供し、Cloud IDEのような既存インフラと統合しやすい
    • コンシューマー向けGPUをサポート
  • プロジェクトはドキュメントSlackロードマップへのリンクを提供している
  • ライブデモはTabbyのWebサイトで開ける

最近の変更点

  • 2025-12-12: GitHub IssueをPochiのタスクに結び付けて実装し、サイドバーでCI/Lint/Test結果の分析とあわせてPRを作成できるvscode@0.20.0が提供された
  • 2025-07-02: v0.30がGitLab Merge Requestをコンテキストとしてインデックス化する機能をサポート
  • 2025-05-25: Agentの非公開プレビュー待機列への参加案内が提供された
  • 2025-05-20: v0.29でREST APIを通じて独自ドキュメントをTabbyに追加できる
  • 2025-05-01: v0.28がAnswer Engineのメッセージを永続的かつ共有可能なPagesへ変換
  • 2025-03-31: v0.27がチャットサイドパネルの@メニューをより充実させた

以前のアップデートから見える機能範囲

  • Answer Engineはv0.13.0で社内エンジニアリングチーム向けの中央知識エンジンとして紹介され、開発チーム内部のデータと統合して回答を提供する
  • TabbyはGitLab SSO、セルフホスト版GitHub/GitLab、HTTP API統合、Code Browserのrepo-contextのような統合・設定機能を追加してきた
  • IDEプラグインの流れには、VSCode/Vim/IntelliJのアップデート、VSCodeチャットサイドパネル、チャットコマンドによる編集、インライン補完の複数候補、自動生成コミットメッセージが含まれる
  • コード補完はローカルLSP宣言や最近修正されたコードなどのローカル関連スニペットを活用し、v0.3.0ではRAGベースのコード補完がデフォルトで有効化された
  • モデル対応の面では、CodeGemma、CodeQwen、Codestral、CodeLlama 7Bの実験対応、Apple M1/M2 Metal推論対応などが言及されている

始め方と実行例

docker run -it \
  --gpus all -p 8080:8080 -v $HOME/.tabby:/data \
  tabbyml/tabby \
  serve --model StarCoder-1B --device cuda --chat-model Qwen2-1.5B-Instruct
  • 追加オプションには推論タイプや並列性などの設定が含まれ、別のドキュメントページで確認できる

コントリビュートとビルド

  • 完全なコントリビューションガイドはCONTRIBUTING.mdにある
  • ソースコードはサブモジュールを含めてクローンする
git clone --recurse-submodules https://github.com/TabbyML/tabby
cd tabby
  • すでにリポジトリをクローン済みなら、git submodule update --recursive --initコマンドですべてのサブモジュールを取得できる
  • ビルド前の準備事項は以下のとおり
    • Rust環境のセットアップ
    • macOS: brew install protobuf
    • Ubuntu/Debian: apt install protobuf-compiler libopenblas-dev
    • Ubuntuで便利なツール: apt install make sqlite3 graphviz
  • 準備ができたらcargo buildでTabbyをビルドできる
  • コントリビューションの流れは、変更後にPull Requestを提出する形となる

1件のコメント

 
GN⁺ 2025-01-13
Hacker Newsの意見
  • ホームページの findMaxElement 関数完成デモは、これから来る姿、あるいはもしかするとすでに現状をよく示している例かもしれない
    その関数に提案された Python 6行は、単に return max(arr) に置き換え可能で、動きはするが完全に ジュニアレベルのコード
    こうしたひどいコード自体も恐ろしいが、これを盲目的に 自動補完 する人たちが実力の伸びを止めてしまいそうなことの方がもっと心配だ
    ストーリーポイントは稼げるかもしれないが、実際に開発者として前進したのかは疑問だ

    • これは 自己修正 される問題だと思う。この程度の品質のコードは製品として出せないし、結局テストを通すには LLM ができない最後の 20〜30% の細部を理解しなければならない
      しかしその 20% を理解するには LLM が処理した 80% も理解する必要があるので、LLM がデプロイまで代行することはできないという点であまり心配していない
    • 逆に、これが次の 抽象化レイヤー になる可能性もある
      機械語 → アセンブリ → C → Python → LLM(自然言語)という流れのように、人間のプロンプトを Python のような中間コードへコンパイルしているようなものだ
      CPython の初期バージョンも完璧ではなかったはずだし、エンジニアたちも不安だっただろう。運が良ければこの新しい「コンパイラ」も次第に改善されて効率的になるだろうが、完璧にはならないだろう
      それでも、人々がアセンブリを直接扱わないことの代償としてすでに払っているのと似たコストを支払うことになるかもしれない
    • Cursor の提案を受けるたび、ほとんど毎回続けて「もっと良い方法はある?」と尋ねるのは過小評価されている習慣だ
    • 昔は何かを知っていた。Google ができてからはただ調べるようになったが、それでも自分でできてはいた
      今は AI ができて代わりにやってくれと頼むようになり、結局は知っていることもなく、できることもなくなってしまった
    • その例は、そのコードをホームページのデモに選んだ 会社の判断 をより強く示しているように思える
  • 自分たちのプロジェクトが日曜に HN のトップページに載るとは思っていなかった
    Tabby は2年前のリリース以降大きく進化し https://www.tabbyml.com、今ではコード補完とコードベースチャットを備えた総合的な AI開発者プラットフォーム になっている
    チーム/エンタープライズ用途に合わせて、SSO、アクセス制御、ユーザー認証もサポートしている https://demo.tabbyml.com/search/how-to-add-an-embedding-api-...
    導入したユーザーは、Tabby がオンプレミス提供方式の中で完全な セルフサービス型オンボーディング を提供する唯一のプラットフォームであり、性能も市場の他の選択肢に見劣りしないことに気づいているので、興味があれば試してみてほしい
    https://www.reddit.com/r/LocalLLaMA/s/lznmkWJhAZ
    https://www.linkedin.com/posts/kelvinmu_last-week-i-introduc...

    • MSVC 向けプラグインがあるのか気になる
    • Nvidia と Apple でしか互換性がないのか? AMD GPU でも動くのか気になる
  • ローカル AI をあまり知らないが使ってみたい立場としては、“run tabby in 1 minute” https://github.com/TabbyML/tabby#run-tabby-in-1-minute が、たとえば ChatGPT 無料版の 4o-mini と比べてどの程度なのか気になる
    ミドルレンジの MacBook Pro で以下の Docker コマンドを実行すれば、速度や能力が似た AI を使えるのか、それともまだそこまでではないのか知りたい
    docker run -it --gpus all -p 8080:8080 -v $HOME/.tabby:/data tabbyml/tabby serve --model StarCoder-1B --device cuda --chat-model Qwen2-1.5B-Instruct
    見ると、MacBook 向けの別案内ページがあり、文脈ももう少しある https://tabby.tabbyml.com/docs/quick-start/installation/appl...
    「M1/M2 の演算能力は限られているため個人利用には十分かもしれないが、チーム向けの共有インスタンスが必要なら CUDA または ROCm ベースの Docker ホスティングを検討せよ」と書かれている

    • gpt-4o-mini は、コードにおいて優れた LLM が何をできるかを判断する基準としては最適ではないかもしれない: https://aider.chat/docs/leaderboards/#aider-polyglot-benchma...
      1.5B のような非常に小さいモデルはかなり賢くなく、対話的にコードを生成するには向いていないが、3B 以下のモデルでも タブ補完の提案 はかなりうまくできる
      ローカルで動かせるより大きな「オープン」モデルもあり、32B〜70B クラスのモデルはコード作成を含むほぼすべての面で gpt-4o-mini よりはるかに優れている可能性がある。たとえば llama3.3-70b-instructqwen2.5-coder-32b-instruct はかなり良い
      RAM が本当に不足しているなら、qwen2.5-coder-7b-instructcodegemma-7b-it も簡単な作業には使えるかもしれない
      「ミドルレンジの MacBook Pro」という表現だけでは不十分で、RAM がどれだけあるかが重要だ。経験則として、パラメータ 1B あたり約 1GB RAM が必要になる
      強く量子化すれば 500MB、非量子化モデルなら 2GB 程度だが、8ビット量子化なら通常 1GB 前後で、たいてい問題ない
    • 追加の質問として、オープンソースモデルは非公開モデルより「賢さ」で劣る傾向があるが、関連する技術文書を問い合わせて文脈に入れるといった形で より良いコンテキスト を与えて補う計画があるのか気になる
  • 「IDE / 拡張機能の telemetry トグル」はCommunity Editionでは無効にできない。このテレメトリデータに何が含まれるのか気になる

  • 似た用途で Continue.dev と ollama を使っているが、この分野でツールがさらに増えるのはいつでも歓迎
    ただし、いつものように実際に良いモデル、たとえば Qwen2.5-coder 32B を動かすにはかなり強力なハードウェアが必要

  • 例はどれも本来ならライブラリで見つかりそうなコードばかりで、一部のコードは品質も怪しい
    LLM はコードベース向けのスパムボットになるのだろうか?

  • 「複数の NVIDIA GPU を活用する方法」によると、Tabby は単一 GPU のみをサポートし、複数 GPU を使うには Tabby インスタンスを複数立ち上げたうえで、CUDA では CUDA_VISIBLE_DEVICES、ROCm では HIP_VISIBLE_DEVICES を設定するとある
    だとすると、NVLink で接続された GPU 2 枚を推論に使うことはサポートされていないのか、それとも NVLink が 2 枚の GPU を 1 枚のように扱うので別の話なのかが気になる

  • すばらしいプロジェクト。大企業にデータを送って利用規約を信じる必要がないという発想が特に気に入っている
    コーディングアシスタントの効果はコンテキスト長に直接比例するが、個人のコンピュータで動かせるオープンモデルはたいていずっと小さい
    より複雑なコードベースでどれくらい有用かを定量化した資料があるとよい

    • 100% ローカルなコーディングアシスタントが広く普及してほしいが、現状では「$10K+ の GPU で最もうまく動作する」という推奨が障壁になっており、結局は大企業のものを使わざるを得ない
  • 推奨ハードウェアが気になる。GPU は必要なのか? 古い Ryzen APU(Zen 3 と Vega 7 グラフィックス)でもそこそこ動くだろうか?

    • セルフホスト LLM の一般的なボトルネックはメモリ帯域幅
      内蔵グラフィックスの有無で大きな違いはなく、CPU だけで動かすとモデルは同じように非常に遅く実行される
      Mac が LLM にそこそこ向いている理由は Apple Silicon のメモリ帯域幅が異常に高いからだが、非常に高速な VRAM を持つハイエンド GPU の速度には遠く及ばない
      タブ補完に使う非常に小さなモデルであれば、古い AMD CPU でもおそらくそれなりに処理できる
    • 3090 でローカル構成した例は https://www.reddit.com/r/LocalLLaMA/s/lznmkWJhAZ で見られる
  • とても良い。特にEclipse クライアントがあるのはうれしい https://github.com/TabbyML/tabby/tree/3bd73a8c59a1c21312e812...
    ただ、Eclipse クライアントの情報を見つけるには少し掘る必要があった。メインの README にも、ドキュメントの IDE 拡張一覧にも載っていなかった
    単なる記載漏れなのか、まだ「本格公開」する準備ができていないのかは分からない