- Tabby là một trợ lý lập trình AI tự lưu trữ, được cung cấp như giải pháp thay thế mã nguồn mở và on-premises cho GitHub Copilot, hướng tới mô hình vận hành không cần dịch vụ đám mây
- Máy chủ nhấn mạnh cấu hình tự đóng gói, không cần DBMS hay dịch vụ đám mây, đồng thời được thiết kế với giao diện OpenAPI để dễ tích hợp với hạ tầng hiện có như Cloud IDE
- Môi trường chạy hỗ trợ GPU cấp độ người dùng phổ thông, và có thể khởi chạy máy chủ bằng một lệnh Docker duy nhất với mô hình mã
StarCoder-1B và mô hình chat Qwen2-1.5B-Instruct
- Các bản cập nhật gần đây gồm v0.30 hỗ trợ lập chỉ mục GitLab Merge Request làm ngữ cảnh, v0.29 cho phép thêm tài liệu riêng qua REST API, và v0.28 chuyển thông điệp Answer Engine thành Pages có thể chia sẻ
- Có sẵn tài liệu về tiện ích mở rộng IDE/Editor, cài đặt, cấu hình và hướng dẫn đóng góp; nếu chuẩn bị môi trường Rust và một số phụ thuộc, có thể tự build trực tiếp bằng
cargo build
Vai trò và đặc điểm cơ bản của Tabby
- Tabby là một trợ lý lập trình AI tự lưu trữ, là giải pháp thay thế mã nguồn mở và on-premises cho GitHub Copilot
- Có thể tóm tắt các đặc điểm chính thành ba điểm
- Vì là tự đóng gói, nên không cần DBMS hay dịch vụ đám mây
- Cung cấp giao diện OpenAPI, giúp dễ tích hợp với hạ tầng hiện có như Cloud IDE
- Hỗ trợ GPU cấp độ người dùng phổ thông
- Dự án cung cấp các liên kết tới tài liệu, Slack, và lộ trình
- Có thể mở bản demo trực tiếp trên website Tabby
Các thay đổi gần đây
- 2025-12-12: Có
vscode@0.20.0, cho phép liên kết GitHub issue với tác vụ Pochi để triển khai, đồng thời tạo PR từ sidebar cùng với phân tích kết quả CI/Lint/Test
- 2025-07-02: v0.30 hỗ trợ lập chỉ mục GitLab Merge Request làm ngữ cảnh
- 2025-05-25: Có thông báo tham gia hàng chờ private preview của Agent
- 2025-05-20: Trong v0.29, có thể thêm tài liệu riêng vào Tabby thông qua REST API
- 2025-05-01: v0.28 chuyển thông điệp Answer Engine thành Pages bền vững và có thể chia sẻ
- 2025-03-31: v0.27 làm phong phú hơn menu
@ trong panel chat bên cạnh
Phạm vi tính năng thể hiện qua các bản cập nhật trước
- Answer Engine được giới thiệu từ v0.13.0 như một công cụ tri thức trung tâm cho các nhóm kỹ thuật nội bộ, cung cấp câu trả lời bằng cách tích hợp với dữ liệu nội bộ của đội phát triển
- Tabby đã liên tục bổ sung các tính năng tích hợp và cấu hình như GitLab SSO, GitHub/GitLab tự lưu trữ, tích hợp HTTP API, và repo-context trong Code Browser
- Luồng plugin IDE bao gồm các bản cập nhật cho VSCode/Vim/IntelliJ, panel chat bên cạnh trong VSCode, chỉnh sửa thông qua lệnh chat, nhiều lựa chọn cho inline completion, và thông điệp commit tự sinh
- Hoàn thành mã sử dụng snippet liên quan cục bộ như khai báo LSP cục bộ và mã vừa được chỉnh sửa gần đây; trong v0.3.0, hoàn thành mã dựa trên RAG đã được bật mặc định
- Về hỗ trợ mô hình, dự án đề cập đến CodeGemma, CodeQwen, Codestral, hỗ trợ thử nghiệm CodeLlama 7B, và hỗ trợ suy luận Metal trên Apple M1/M2
Cách bắt đầu và ví dụ chạy
- Tài liệu bắt đầu có tại Getting Started
- Cách chạy máy chủ dễ nhất là dùng lệnh Docker
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
- Các tùy chọn bổ sung gồm những thiết lập như loại suy luận và mức độ song song, có thể xem trong trang tài liệu riêng
Đóng góp và build
- Hướng dẫn đóng góp đầy đủ có tại CONTRIBUTING.md
- Mã nguồn được clone cùng cả submodule
git clone --recurse-submodules https://github.com/TabbyML/tabby
cd tabby
- Nếu đã clone sẵn repository, có thể lấy toàn bộ submodule bằng lệnh
git submodule update --recursive --init
- Các bước chuẩn bị trước khi build như sau
- Thiết lập môi trường Rust
- macOS:
brew install protobuf
- Ubuntu/Debian:
apt install protobuf-compiler libopenblas-dev
- Công cụ hữu ích trên Ubuntu:
apt install make sqlite3 graphviz
- Sau khi chuẩn bị xong, có thể build Tabby bằng
cargo build
- Quy trình đóng góp tiếp tục bằng việc gửi Pull Request sau khi hoàn tất thay đổi
1 bình luận
Các ý kiến trên Hacker News
Demo hoàn thiện hàm
findMaxElementtrên trang chủ có vẻ là một ví dụ cho thấy diện mạo sắp tới, hoặc có lẽ đã phản ánh khá đúng tình trạng hiện tại6 dòng Python được đề xuất cho hàm đó có thể thay bằng đúng
return max(arr), và dù nó chạy được, đó hoàn toàn là mã ở trình độ juniorBản thân thứ mã kinh khủng như vậy đã đáng sợ, nhưng còn lo hơn là những người mù quáng tự động hoàn thành nó có thể sẽ ngừng phát triển kỹ năng
Có thể kiếm được story point, nhưng liệu có thật sự tiến bộ hơn với tư cách lập trình viên hay không thì là điều đáng nghi
Nhưng để hiểu 20% đó thì cũng phải hiểu cả 80% mà LLM đã xử lý, nên tôi không quá lo, xét ở điểm LLM không thể thay mình triển khai đến tận production
Giống như mã máy → assembly → C → Python → LLM (ngôn ngữ tự nhiên), tức là biên dịch prompt của con người thành mã trung gian như Python
Các phiên bản đầu của CPython hẳn cũng không hoàn hảo, và các kỹ sư chắc cũng từng bất an. Nếu may mắn, “trình biên dịch” mới này cũng sẽ ngày càng tốt hơn và hiệu quả hơn, nhưng sẽ không hoàn hảo
Dù vậy, có thể chúng ta sẽ phải trả một cái giá tương tự như cái giá con người đã chấp nhận để không phải trực tiếp xử lý assembly
Giờ có AI, ta bắt đầu hỏi nó làm hộ, và rốt cuộc chẳng còn biết gì cũng chẳng còn làm được gì
Tôi không ngờ dự án của chúng tôi lại lên trang nhất HN vào Chủ nhật
Tabby đã phát triển rất nhiều kể từ khi ra mắt 2 năm trước https://www.tabbyml.com, và hiện đã trở thành một nền tảng AI cho lập trình viên toàn diện với hoàn thành mã và chat với codebase
Cho nhu cầu nhóm/doanh nghiệp, nó cũng hỗ trợ SSO, kiểm soát truy cập và xác thực người dùng https://demo.tabbyml.com/search/how-to-add-an-embedding-api-...
Những người dùng đã triển khai nhận thấy Tabby là nền tảng duy nhất trong mô hình cung cấp on-premises có onboarding self-service hoàn chỉnh; hiệu năng cũng có thể sánh với các lựa chọn khác trên thị trường, nên nếu tò mò thì khuyên bạn nên thử
https://www.reddit.com/r/LocalLLaMA/s/lznmkWJhAZ
https://www.linkedin.com/posts/kelvinmu_last-week-i-introduc...
Từ góc độ một người không rành AI chạy local nhưng muốn dùng thử, tôi tò mò “run tabby in 1 minute” https://github.com/TabbyML/tabby#run-tabby-in-1-minute ở mức nào nếu so, chẳng hạn, với bản miễn phí ChatGPT 4o-mini
Tôi muốn biết nếu chạy lệnh Docker dưới đây trên một chiếc MacBook Pro cấu hình trung bình thì có thể dùng một AI có tốc độ và năng lực tương tự không, hay hiện vẫn chưa đạt đến mức đó
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-InstructXem ra có một trang hướng dẫn riêng cho MacBook và có thêm ngữ cảnh https://tabby.tabbyml.com/docs/quick-start/installation/appl...
Trong đó viết rằng “năng lực tính toán của M1/M2 có giới hạn nên có thể đủ cho sử dụng cá nhân, nhưng nếu cần một instance dùng chung cho nhóm thì hãy cân nhắc hosting Docker dựa trên CUDA hoặc ROCm”
Các mô hình rất nhỏ như 1.5B khá ngốc nên không phù hợp để sinh code theo kiểu đối thoại, nhưng ngay cả các mô hình dưới 3B cũng có thể làm khá tốt việc gợi ý hoàn thành bằng phím Tab
Cũng có các mô hình “mở” lớn hơn có thể chạy local, và các mô hình trong khoảng 32B–70B có thể tốt hơn gpt-4o-mini rất nhiều ở hầu hết mọi mặt, bao gồm cả viết code. Ví dụ
llama3.3-70b-instructvàqwen2.5-coder-32b-instructkhá ổnNếu thật sự thiếu RAM,
qwen2.5-coder-7b-instructhoặccodegemma-7b-itcũng có thể dùng được cho các tác vụ đơn giảnChỉ nói “MacBook Pro cấu hình trung bình” là chưa đủ; điều quan trọng là có bao nhiêu RAM. Theo kinh nghiệm, cần khoảng 1GB RAM cho mỗi 1B tham số
Nếu lượng tử hóa mạnh thì khoảng 500MB, còn mô hình không lượng tử hóa thì khoảng 2GB, nhưng lượng tử hóa 8-bit thường vào khoảng 1GB và nhìn chung ổn
“Nút bật/tắt telemetry của IDE / extension” không tắt được trong Community Edition. Tôi tò mò dữ liệu đo từ xa này bao gồm những gì
struct HealthState {model: String,chat_model: Option,device: String,arch: String,cpu_info: String,cpu_count: usize,cuda_devices: Vec,version: Version,webserver: Option,}https://tabby.tabbyml.com/docs/administration/usage-collecti...
Tôi đang dùng Continue.dev và ollama cho mục đích tương tự, nên lúc nào cũng vui khi thấy có thêm công cụ trong lĩnh vực này
Tuy nhiên, như thường lệ, để chạy một mô hình thực sự tốt, chẳng hạn Qwen2.5-coder 32B, thì cần phần cứng khá mạnh
Các ví dụ đều là những đoạn mã vốn thường có thể tìm thấy trong thư viện, và chất lượng của một số đoạn mã cũng đáng nghi
Có phải LLM sẽ trở thành bot spam cho codebase không?
Theo phần “cách tận dụng nhiều GPU NVIDIA”, Tabby chỉ hỗ trợ một GPU duy nhất; nếu muốn dùng nhiều GPU thì cần chạy nhiều instance Tabby rồi thiết lập
CUDA_VISIBLE_DEVICEScho CUDA, hoặcHIP_VISIBLE_DEVICEScho ROCmVậy tôi thắc mắc liệu việc dùng 2 GPU nối với nhau bằng NVLink để inference có không được hỗ trợ hay không, hay đây là một trường hợp khác vì NVLink khiến hai GPU được xử lý như một GPU
Có thể xem ví dụ tại https://tabby.tabbyml.com/docs/references/models-http-api/vl...
Dự án rất hay. Tôi đặc biệt thích ý tưởng không phải gửi dữ liệu cho các công ty lớn rồi phải tin vào điều khoản của họ
Hiệu quả của trợ lý lập trình tỷ lệ trực tiếp với độ dài context, trong khi các mô hình mở có thể chạy trên máy cá nhân thường nhỏ hơn rất nhiều
Sẽ tốt nếu có dữ liệu định lượng cho thấy nó hữu ích đến mức nào trên các codebase phức tạp hơn
Tôi tò mò về phần cứng khuyến nghị. Có cần GPU không? Liệu có thể chạy ổn trên Ryzen APU cũ (Zen 3 và đồ họa Vega 7) không?
Có đồ họa tích hợp hay không cũng không khác biệt nhiều; nếu chỉ chạy bằng CPU thì mô hình vẫn sẽ chạy rất chậm như nhau
Lý do Mac chạy LLM tương đối ổn là vì băng thông bộ nhớ của Apple Silicon cao một cách khác thường, nhưng vẫn còn kém xa tốc độ của GPU cao cấp với VRAM rất nhanh
Nếu là mô hình rất nhỏ dùng cho gợi ý hoàn thành khi nhấn tab thì CPU AMD cũ có lẽ vẫn xử lý được khá ổn
Rất tuyệt. Đặc biệt vui vì có client Eclipse https://github.com/TabbyML/tabby/tree/3bd73a8c59a1c21312e812...
Tuy nhiên, phải lục khá kỹ mới tìm được thông tin về client Eclipse. Nó không có trong README chính, cũng không có trong danh sách extension IDE của tài liệu
Không rõ đây chỉ là thiếu sót, hay là nó vẫn chưa sẵn sàng để “công bố chính thức”