Nanocode: Cách xây dựng trợ lý lập trình AI kiểu Claude chỉ với 200 USD

05 tháng 4, 2026·4 phút đọc

Salman Mohammadi đã giới thiệu nanocode, một thư viện mã nguồn mở giúp huấn luyện mô hình AI viết mã từ đầu đến cuối. Sử dụng hoàn toàn JAX và tối ưu hóa cho TPU, dự án cho phép tạo ra một mô hình 1,3 tỷ tham số với chi phí chỉ khoảng 200 USD. Đây là bước tiến thú vị trong việc dân chủ hóa việc phát triển các tác nhân AI (AI Agents) lập trình.

Nanocode: Cách xây dựng trợ lý lập trình AI kiểu Claude chỉ với 200 USD

Trong bối cảnh bùng nổ của các mô hình ngôn ngữ lớn (LLM) và công cụ lập trình hỗ trợ bởi AI, một dự án mới mang tên nanocode đang thu hút sự chú ý của cộng đồng công nghệ. Được phát triển bởi Salman Mohammadi, nanocode là một thư viện mã nguồn mở hướng dẫn cách huấn luyện một trợ lý lập trình (coding assistant) tương tự Claude Code của Anthropic từ đầu đến cuối.

Điều đặc biệt nhất của dự án này là toàn bộ quá trình được xây dựng dựa trên JAX—khung công cụ tính toán đại số tuyến tính nổi tiếng của Google—và được thiết kế để chạy trên các bộ xử lý TPU (Tensor Processing Unit).

Training progressTraining progress

Hiệu quả chi phí với JAX và TPU

Lấy cảm hứng từ dự án "nanochat" của Andrej Karpathy, nanocode tập trung vào sự đơn giản và hiệu quả về chi phí. Salman Mohammadi đã chia sẻ rằng nhờ tối ưu hóa cho TPU và sử dụng chương trình Google TRC (Track Research Cloud), người dùng có thể tiếp cận phần cứng mạnh mẽ với chi phí thấp.

Cụ thể, để tái tạo mô hình nanocode-d24 với 1,3 tỷ tham số (1.3B parameters), thời gian huấn luyện kéo dài khoảng 9 tiếng trên hệ thống TPU v6e-8 với chi phí khoảng 200 USD. Nếu chọn phiên bản nhỏ hơn là nanocode-d20 (477 triệu tham số), chi phí chỉ giảm xuống còn 34 USD và hoàn tất trong khoảng 1,5 tiếng.

Dưới đây là bảng so sánh hiệu suất của các phiên bản mô hình:

Kích thướcTham sốĐiểm COREChi phíThời gianMFU
d12135M0.090$39 phút17.4%
d20477M0.170$301.4 giờ45.2%
d241.3B0.227$2009.3 giờ52.5%

Mặc dù dự án cũng hỗ trợ GPU NVIDIA, nhưng tác giả khẳng định nanocode được tối ưu hóa sâu cho TPU nên sẽ đạt hiệu suất tốt nhất trên nền tảng này.

Định hình nhân cách với Constitutional AI

Một điểm thú vị của nanocode là việc áp dụng phương pháp Constitutional AI (CAI)—kỹ thuật được Anthropic sử dụng để huấn luyện các mô hình Claude. Thay vì chỉ tập trung vào kiến thức, nanocode hướng đến việc tạo ra một "linh hồn" (SOUL) cho mô hình.

Tệp SOUL.md trong dự án định nghĩa tính cách của nanocode: thân thiện, vui vẻ, sử dụng chữ thường (lowercase), nhưng tuân thủ nghiêm ngặt các chỉ dẫn lập trình. Quá trình huấn luyện bao gồm hai giai đoạn chính:

  1. Constitutional Supervised Fine-tuning (SFT): Sử dụng dữ liệu tổng hợp để dạy mô hình cách sử dụng các công cụ lập trình. Mô hình sẽ tự đánh giá và sửa đổi câu trả lời dựa trên tiêu chuẩn SOUL.
  2. Direct Preference Optimisation (DPO): Giai đoạn tinh chỉnhPreferences giúp mô hình phân biệt được đâu là câu trả lời tốt nhất phù hợp với tính cách đã định.

Interface conceptInterface concept

Khả năng tương tác và Công cụ (Agentic Tools)

Nanocode được thiết kế để hoạt động như một tác nhân (agent) có thể tương tác với môi trường UNIX. Để làm được điều này, mô hình được trang bị 4 công cụ cốt lõi:

  • Read: Đọc nội dung file.
  • Edit: Chỉnh sửa file dựa trên chuỗi cũ/mới (old_string/new_string).
  • Grep: Tìm kiếm pattern trong codebase.
  • Bash: Thực thi lệnh hệ thống.

Thay vì bắt mô hình học cú pháp shell phức tạp, nanocode cung cấp các template đặc biệt để gọi các công cụ này. Điều này giúp mô hình tập trung vào logic lập trình thay vì cú pháp hệ điều hành.

Kết luận và Tiềm năng cho cộng đồng

Dù nanocode vẫn là một dự án trong giai đoạn phát triển và mô hình 1,3B tham số có thể gặp khó khăn với các tác vụ sửa lỗi phức tạp, nó mang lại giá trị giáo dục rất lớn. Mã nguồn của dự án chỉ khoảng 5.500 dòng, đủ nhỏ để các nhà phát triển có thể nghiên cứu, tùy chỉnh và học hỏi về cách JAX hoạt động cũng như quy trình đào tạo một AI Agent thực thụ.

ResultsResults

Salman Mohammadi hy vọng dự án này sẽ khuyến khích nhiều người tạo ra các phiên bản trợ lý lập trình riêng biệt với những tính cách và công cụ được tùy biến theo nhu cầu cụ thể. Bạn có thể tìm hiểu thêm và xem mã nguồn tại kho GitHub của dự án.

Bài viết được tổng hợp và biên soạn bằng AI từ các nguồn tin tức công nghệ. Nội dung mang tính tham khảo. Xem bài gốc ↗