- Tabby เป็นผู้ช่วยเขียนโค้ด AI แบบโฮสต์เองที่นำเสนอเป็น ทางเลือกแบบโอเพนซอร์สและออนพรีมิส แทน GitHub Copilot โดยมุ่งเน้นเวิร์กโฟลว์ที่ดำเนินงานได้โดยไม่ต้องใช้บริการคลาวด์
- เซิร์ฟเวอร์ชูจุดเด่นด้านการเป็นระบบแบบครบในตัวที่ ไม่ต้องใช้ DBMS หรือบริการคลาวด์ และออกแบบมาให้ผสานกับโครงสร้างพื้นฐานเดิมอย่าง Cloud IDE ได้ง่ายผ่านอินเทอร์เฟซ OpenAPI
- สภาพแวดล้อมการรันรองรับ GPU ระดับผู้บริโภค และสามารถสั่งเปิดเซิร์ฟเวอร์ด้วยคำสั่ง Docker เพียงคำสั่งเดียว โดยใช้โมเดลโค้ด
StarCoder-1B และโมเดลแชต Qwen2-1.5B-Instruct
- อัปเดตล่าสุดรวมถึง v0.30 ที่อินเด็กซ์ GitLab Merge Request เป็นคอนเท็กซ์, v0.29 ที่เพิ่มเอกสารของตนเองผ่าน REST API และ v0.28 ที่เปลี่ยนข้อความ Answer Engine ให้เป็น Pages ที่แชร์ได้
- มีเอกสารสำหรับส่วนขยาย IDE/Editor, การติดตั้ง, การตั้งค่า และคู่มือการมีส่วนร่วม พร้อมทั้งสามารถบิลด์เองด้วย
cargo build ได้เมื่อเตรียมสภาพแวดล้อม Rust และ dependency บางส่วนแล้ว
บทบาทและคุณสมบัติพื้นฐานของ Tabby
- Tabby เป็นผู้ช่วยเขียนโค้ด AI แบบโฮสต์เอง และเป็นทางเลือกแบบโอเพนซอร์สและออนพรีมิสแทน GitHub Copilot
- คุณสมบัติหลักสรุปได้เป็นสามข้อ
- เป็นระบบ ครบในตัว จึงไม่ต้องใช้ DBMS หรือบริการคลาวด์
- มี อินเทอร์เฟซ OpenAPI ทำให้ผสานกับโครงสร้างพื้นฐานเดิมอย่าง Cloud IDE ได้ง่าย
- รองรับ GPU ระดับผู้บริโภค
- โปรเจกต์มีลิงก์ เอกสาร, Slack, โรดแมป
- สามารถเปิดไลฟ์เดโมได้จากเว็บไซต์ Tabby
การเปลี่ยนแปลงล่าสุด
- 2025-12-12: มี
vscode@0.20.0 ซึ่งเชื่อม GitHub issue เข้ากับงาน Pochi เพื่อทำการพัฒนา และสามารถสร้าง PR จากไซด์บาร์พร้อมการวิเคราะห์ผล CI/Lint/Test ได้
- 2025-07-02: v0.30 รองรับฟีเจอร์อินเด็กซ์ GitLab Merge Request เป็นคอนเท็กซ์
- 2025-05-25: มีคำแนะนำสำหรับเข้าร่วมคิวรอพรีวิวแบบปิดของ Agent
- 2025-05-20: ใน v0.29 สามารถเพิ่มเอกสารของตนเองเข้าไปใน Tabby ผ่าน REST API ได้
- 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 และ repo-context ของ Code Browser
- เวิร์กโฟลว์ปลั๊กอิน IDE รวมถึงอัปเดตสำหรับ VSCode/Vim/IntelliJ, แผงแชตด้านข้างของ VSCode, การแก้ไขผ่านคำสั่งแชต, ตัวเลือกหลายแบบสำหรับ inline completion และข้อความคอมมิตที่สร้างอัตโนมัติ
- การเติมโค้ดอัตโนมัติใช้ สแนปเป็ตที่เกี่ยวข้องในเครื่อง เช่น declaration ของ LSP ในเครื่องและโค้ดที่เพิ่งแก้ไข และใน v0.3.0 ได้เปิดใช้การเติมโค้ดแบบอิง RAG เป็นค่าเริ่มต้น
- ด้านการรองรับโมเดล มีการกล่าวถึง CodeGemma, CodeQwen, Codestral, การรองรับแบบทดลองสำหรับ CodeLlama 7B และการรองรับ inference บน Apple M1/M2 Metal
วิธีเริ่มต้นและตัวอย่างการรัน
- เอกสารเริ่มต้นมีให้ที่ Getting Started
- วิธีรันเซิร์ฟเวอร์ที่ง่ายที่สุดคือใช้คำสั่ง 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
- ตัวเลือกเพิ่มเติมรวมถึงการตั้งค่าอย่างประเภทการทำ inference และ parallelism ซึ่งดูได้ในหน้าเอกสารแยกต่างหาก
การมีส่วนร่วมและการบิลด์
- คู่มือการมีส่วนร่วมฉบับเต็มอยู่ใน CONTRIBUTING.md
- โคลนซอร์สโค้ดพร้อม submodule ทั้งหมด
git clone --recurse-submodules https://github.com/TabbyML/tabby
cd tabby
- หากโคลน repository ไว้แล้ว สามารถดึง submodule ทั้งหมดด้วยคำสั่ง
git submodule update --recursive --init
- สิ่งที่ต้องเตรียมก่อนบิลด์มีดังนี้
- ตั้งค่าสภาพแวดล้อม Rust
- macOS:
brew install protobuf
- Ubuntu/Debian:
apt install protobuf-compiler libopenblas-dev
- เครื่องมือที่มีประโยชน์สำหรับ Ubuntu:
apt install make sqlite3 graphviz
- เมื่อเตรียมเสร็จแล้วสามารถบิลด์ Tabby ด้วย
cargo build
- เวิร์กโฟลว์การมีส่วนร่วมคือแก้ไขแล้วส่ง Pull Request
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
เดโมการเติมฟังก์ชัน
findMaxElementบนหน้าแรกดูเหมือนเป็นตัวอย่างที่สะท้อนภาพอนาคต หรือบางทีอาจสะท้อนสภาพปัจจุบันได้ดีอยู่แล้วPython 6 บรรทัดที่ถูกเสนอให้ฟังก์ชันนั้นสามารถแทนด้วย
return max(arr)ได้เลย และถึงจะทำงานได้ แต่มันเป็น โค้ดระดับจูเนียร์ อย่างสมบูรณ์โค้ดแย่ ๆ แบบนี้น่ากลัวก็จริง แต่ที่น่ากังวลกว่านั้นคือคนที่ autocomplete มันแบบไม่คิดอาจหยุดพัฒนาฝีมือไปเลย
อาจเก็บ story point ได้ก็จริง แต่ก็น่าสงสัยว่าในฐานะนักพัฒนาแล้วเก่งขึ้นจริงหรือไม่
แต่การจะเข้าใจ 20% นั้น ก็ต้องเข้าใจ 80% ที่ LLM จัดการไปด้วย ดังนั้นผมจึงไม่กังวลมากนัก ตราบใดที่ LLM ไม่สามารถทำแทนไปจนถึงการ deploy ได้
เหมือนภาษาเครื่อง → assembly → C → Python → LLM(ภาษาธรรมชาติ) กล่าวคือคอมไพล์ prompt ของมนุษย์ให้เป็นโค้ดตัวกลางแบบ Python
CPython เวอร์ชันแรก ๆ ก็คงไม่ได้สมบูรณ์แบบ และวิศวกรก็คงรู้สึกไม่สบายใจเช่นกัน ถ้าโชคดี “คอมไพเลอร์” ตัวใหม่นี้ก็จะค่อย ๆ ดีขึ้นและมีประสิทธิภาพมากขึ้น แต่ก็คงไม่สมบูรณ์แบบ
ถึงอย่างนั้น ผู้คนก็อาจต้องจ่ายต้นทุนคล้ายกับที่เราจ่ายไปแล้วเพื่อแลกกับการไม่ต้องจัดการ assembly โดยตรง
ตอนนี้มี AI แล้วก็เริ่มถามให้มันทำแทน สุดท้ายก็ไม่เหลือทั้งสิ่งที่รู้และสิ่งที่ทำได้
ไม่คิดเลยว่าโปรเจกต์ของเราจะขึ้นหน้าแรก HN ในวันอาทิตย์
Tabby พัฒนามาไกลมากตั้งแต่เปิดตัวเมื่อ 2 ปีก่อน https://www.tabbyml.com และตอนนี้กลายเป็น แพลตฟอร์มนักพัฒนา AI แบบครบวงจรที่มีทั้งการเติมโค้ดและแชตกับ codebase
สำหรับการใช้งานในทีม/องค์กร ยังรองรับ SSO, การควบคุมการเข้าถึง และการยืนยันตัวตนผู้ใช้ด้วย https://demo.tabbyml.com/search/how-to-add-an-embedding-api-...
ผู้ใช้ที่นำไปใช้งานพบว่า Tabby เป็นแพลตฟอร์มเดียวที่ให้ self-service onboarding แบบครบถ้วนในรูปแบบ on-premises และประสิทธิภาพก็เทียบได้กับตัวเลือกอื่น ๆ ในตลาด ถ้าสนใจก็แนะนำให้ลองดู
https://www.reddit.com/r/LocalLLaMA/s/lznmkWJhAZ
https://www.linkedin.com/posts/kelvinmu_last-week-i-introduc...
ในฐานะคนที่ไม่ค่อยรู้เรื่อง AI แบบโลคัลแต่ก็อยากลองใช้ อยากรู้ว่า “run tabby in 1 minute” https://github.com/TabbyML/tabby#run-tabby-in-1-minute อยู่ในระดับไหนเมื่อเทียบกับ ChatGPT ฟรี 4o-mini เป็นต้น
ถ้ารันคำสั่ง Docker ด้านล่างบน MacBook Pro สเปกระดับกลาง จะได้ใช้ 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 มีจำกัด จึงอาจเพียงพอสำหรับการใช้งานส่วนบุคคล แต่ถ้าต้องการอินสแตนซ์แบบแชร์สำหรับทีม ให้พิจารณาโฮสต์ด้วย Docker ที่ใช้ CUDA หรือ ROCm”
โมเดลเล็กมากอย่าง 1.5B ค่อนข้างโง่ จึงไม่ดีนักสำหรับการสร้างโค้ดแบบสนทนา แต่แม้โมเดลไม่เกิน 3B ก็ทำ ข้อเสนอการเติมด้วย Tab ได้ค่อนข้างดี
ยังมีโมเดล “open” ขนาดใหญ่กว่าที่รันในเครื่องได้ด้วย และโมเดลช่วง 32B~70B อาจดีกว่า gpt-4o-mini มากในแทบทุกด้าน รวมถึงการเขียนโค้ด เช่น
llama3.3-70b-instructและqwen2.5-coder-32b-instructถือว่าใช้ได้ทีเดียวถ้า RAM น้อยจริง ๆ
qwen2.5-coder-7b-instructหรือcodegemma-7b-itก็ยังพอใช้กับงานง่าย ๆ ได้แค่คำว่า “MacBook Pro สเปกระดับกลาง” ยังไม่พอ สิ่งสำคัญคือมี RAM เท่าไร ตามหลักคร่าว ๆ ต้องใช้ RAM ประมาณ 1GB ต่อพารามิเตอร์ 1B
ถ้า quantize หนัก ๆ ก็ราว 500MB ส่วนโมเดลไม่ quantize จะประมาณ 2GB แต่การ quantize 8 บิตมักอยู่ราว 1GB และโดยรวมก็ใช้ได้ดี
“ปุ่มเปิด/ปิด telemetry ของ IDE / ส่วนขยาย” ไม่สามารถปิดได้ใน Community Edition เลยสงสัยว่าข้อมูล telemetry ระยะไกลนี้มีอะไรบ้าง
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...
ตอนนี้ใช้ Continue.dev กับ ollama สำหรับงานลักษณะคล้ายกันอยู่ และการมีเครื่องมือในสายนี้เพิ่มขึ้นก็เป็นเรื่องน่ายินดีเสมอ
แต่เหมือนเดิม ถ้าจะรันโมเดลดี ๆ จริง ๆ เช่น Qwen2.5-coder 32B ก็ต้องใช้ฮาร์ดแวร์ที่ค่อนข้างแรง
ตัวอย่างทั้งหมดเป็นโค้ดที่ปกติน่าจะหาได้จากไลบรารีอยู่แล้ว และโค้ดบางส่วนก็ดูน่าสงสัยเรื่องคุณภาพ
LLM กำลังจะกลายเป็น บอตสแปม สำหรับ codebase หรือเปล่า?
ตามหัวข้อ “วิธีใช้ NVIDIA GPU หลายตัว” ระบุว่า Tabby รองรับ GPU เดี่ยวเท่านั้น และถ้าจะใช้ GPU หลายตัว ให้เปิด Tabby หลายอินสแตนซ์ แล้วตั้งค่า
CUDA_VISIBLE_DEVICESสำหรับ CUDA และHIP_VISIBLE_DEVICESสำหรับ ROCmถ้าอย่างนั้นก็สงสัยว่าไม่รองรับการใช้ GPU 2 ตัวที่เชื่อมกันด้วย NVLink สำหรับ inference ใช่ไหม หรือกรณีนี้ต่างออกไปเพราะ NVLink ทำให้สอง GPU ถูกจัดการเหมือนเป็นตัวเดียว
ดูตัวอย่างได้ที่ https://tabby.tabbyml.com/docs/references/models-http-api/vl...
เป็นโปรเจกต์ที่ยอดเยี่ยม โดยเฉพาะชอบไอเดียที่ไม่ต้องส่งข้อมูลไปให้บริษัทใหญ่ ๆ และต้องเชื่อใจเงื่อนไขการใช้งานของเขา
ประสิทธิผลของ coding assistant แปรผันโดยตรงกับ ความยาวคอนเท็กซ์ แต่โมเดลเปิดที่รันบนคอมพิวเตอร์ส่วนตัวได้มักจะเล็กกว่ามาก
ถ้ามีข้อมูลเชิงปริมาณว่ามันมีประโยชน์แค่ไหนกับ codebase ที่ซับซ้อนกว่านี้ก็คงดี
สงสัยเรื่องฮาร์ดแวร์ที่แนะนำ ต้องมี GPU ไหม? บน Ryzen APU รุ่นเก่า (Zen 3 กับกราฟิก Vega 7) จะรันได้พอใช้หรือเปล่า?
จะมีกราฟิกในตัวหรือไม่ก็ไม่ได้ต่างกันมาก และถ้ารันด้วย CPU อย่างเดียว โมเดลก็จะทำงานช้ามากเหมือนกัน
เหตุผลที่ Mac พอใช้กับ LLM ได้ก็เพราะ Apple Silicon มีแบนด์วิดท์หน่วยความจำที่สูงผิดปกติ แต่ก็ยังห่างไกลจากความเร็วของ GPU ระดับสูงที่มี VRAM เร็วมาก
ถ้าเป็นโมเดลขนาดเล็กมากสำหรับใช้กับ tab completion CPU AMD รุ่นเก่าก็น่าจะรับมือได้พอสมควร
เจ๋งมาก โดยเฉพาะดีใจที่มี ไคลเอนต์ Eclipse https://github.com/TabbyML/tabby/tree/3bd73a8c59a1c21312e812...
แต่ต้องค้นอยู่พักหนึ่งถึงจะเจอข้อมูลไคลเอนต์ Eclipse ไม่มีอยู่ทั้งใน README หลัก และในรายการส่วนขยาย IDE ของเอกสาร
ไม่แน่ใจว่าเป็นแค่ตกหล่น หรือยังไม่พร้อมจะ “เปิดตัวจริงจัง”