- RustGPT là một mô hình ngôn ngữ dựa trên Transformer được triển khai chỉ bằng Rust thuần và
ndarray, không dùng framework machine learning bên ngoài
- Được thiết kế để học kiến thức dựa trên sự kiện và các mẫu hội thoại thông qua pre-training và instruction tuning
- Cấu trúc đi theo kiến trúc LLM điển hình: tokenizer → embedding → transformer block → output projection
- Cung cấp cấu trúc mã nguồn mô-đun hóa và mã kiểm thử, giúp có thể hiểu chi tiết quá trình huấn luyện, suy luận và tối ưu hóa
- Là tài liệu tham khảo quan trọng cho các nhà phát triển hoặc người học trong hệ sinh thái Rust muốn tự triển khai LLM từ đầu mà không phụ thuộc framework
Tổng quan dự án
- RustGPT là một dự án mã nguồn mở triển khai LLM chỉ với ngôn ngữ Rust thuần và thư viện đại số tuyến tính (ndarray), không cần framework machine learning bên ngoài hay phụ thuộc phức tạp
- Mục tiêu chính là tự triển khai các thành phần cốt lõi của LLM hiện đại như transformer, attention, embedding, tối ưu hóa... và hiểu rõ quá trình huấn luyện
- Không giống nhiều LLM phổ biến khác, dự án trực tiếp thiết kế toàn bộ cấu trúc transformer, backpropagation, tokenizer, optimizer... bằng mã Rust, cho phép nhà phát triển và nhà nghiên cứu Rust hiểu và mở rộng nguyên lý deep learning từ gốc
- Điểm khác biệt là xử lý phép toán ma trận bằng ndarray và không phụ thuộc vào các gói machine learning bên ngoài như PyTorch hay TensorFlow
- Nhờ tính mô-đun và độ bao phủ kiểm thử tốt, dự án phù hợp cho nhiều thí nghiệm và cải tiến, đồng thời cũng thích hợp cho mục đích giáo dục kiểu "LLM tự xây từ đầu (From Scratch)"
Tính năng chính và cách triển khai
- Kiến trúc transformer: văn bản đầu vào → token hóa → embedding → transformer block → dự đoán cuối cùng
- Văn bản đầu vào được chuyển thành vector embedding sau quá trình token hóa
- Embedding đi qua Transformer Block (multi-head attention + feedforward network)
- Cuối cùng, Output Projection Layer tạo ra phân phối xác suất trên từ vựng để thực hiện dự đoán
Cấu trúc triển khai
main.rs: pipeline huấn luyện, chuẩn bị dữ liệu, chạy chế độ tương tác
llm.rs: logic forward pass, backward pass và huấn luyện cho toàn bộ LLM
transformer.rs, self_attention.rs, feed_forward.rs: các transformer block cốt lõi
embeddings.rs, output_projection.rs: embedding và tầng đầu ra cuối cùng
adam.rs: triển khai optimizer Adam
- Mỗi mô-đun đều bao gồm mã kiểm thử tương ứng (
tests/) để xác minh chức năng
Cách huấn luyện, kiểm thử và luồng dữ liệu
- Quy trình huấn luyện
- Tạo từ vựng → pre-training (100 epoch, dữ liệu câu mang tính sự kiện) → instruction tuning (100 epoch, dữ liệu hội thoại)
- Ví dụ pre-training: "The sun rises in the east and sets in the west"
- Ví dụ instruction tuning: "User: How do mountains form? Assistant: ..."
- Hỗ trợ chế độ tương tác
- Sau khi huấn luyện xong, có thể kiểm thử hội thoại theo dạng prompt-response
- Ví dụ: "How do mountains form?" → "Mountains are formed through tectonic forces or volcanism..."
Cấu hình kỹ thuật chi tiết
- Kích thước từ vựng: thiết lập động dựa trên dữ liệu huấn luyện
- Chiều embedding: 128, hidden layer: 256
- Độ dài chuỗi tối đa: 80 token
- Kiến trúc: 3 transformer block + embedding + tầng đầu ra
- Thuật toán huấn luyện: optimizer Adam, gradient clipping (giới hạn L2 norm 5.0)
- Learning rate: pre-training 0.0005, instruction tuning 0.0001
- Hàm mất mát: cross-entropy loss
Đặc điểm của mô hình và mã nguồn
- Tokenizer tùy chỉnh (xử lý dấu câu)
- Sinh văn bản dựa trên greedy decoding
- Cấu trúc tầng mô-đun và giao diện rõ ràng
- Độ bao phủ kiểm thử: có mã unit test cho từng tầng và từng chức năng
- Phụ thuộc: chỉ dùng ndarray (phép toán ma trận), rand/ rand_distr (khởi tạo ngẫu nhiên), không dùng ML bên ngoài như PyTorch/TensorFlow
- Giá trị giáo dục: rất phù hợp để học cấu trúc bên trong và nguyên lý huấn luyện của LLM hiện đại tiêu biểu
Tiềm năng phát triển
- Bổ sung kiến trúc nâng cao: multi-head attention, RoPE, positional encoding...
- Tối ưu hiệu năng: SIMD, huấn luyện song song, cải thiện hiệu quả bộ nhớ
- Hỗ trợ lưu/tải mô hình
- Thêm các phương pháp sampling nâng cao (beam search, Top-k/Top-p) và chỉ số đánh giá
Ý nghĩa
- Là dự án phục vụ học tập và thử nghiệm, cho thấy có thể tự triển khai LLM trực tiếp chỉ bằng Rust mà không phụ thuộc vào các framework như PyTorch hay TensorFlow vốn dựa trên Python
- Là tài liệu tham khảo hữu ích cho các nhà phát triển muốn hiểu nguyên lý vận hành bên trong của LLM và xây dựng hệ thống ML trong môi trường Rust
Chưa có bình luận nào.