GuppyLM: Xây dựng chiếc LLM nhỏ xíu "nghĩ" như một con cá trong 5 phút
GuppyLM là một dự án mã nguồn mở cung cấp một mô hình ngôn ngữ chỉ với 9 triệu tham số, được viết gọn trong khoảng 130 dòng mã PyTorch. Dự án nhằm mục đích giáo dục, giúp các nhà phát triển hiểu rõ cơ chế hoạt động của Transformer thông qua việc huấn luyện một nhân vật AI có tính cách độc đáo của chú cá Guppy.

GuppyLM là một minh chứng sống động cho việc học hỏi không nhất thiết phải bắt đầu từ những thứ quá phức tạp. Trong bối cảnh các mô hình ngôn ngữ lớn (LLM) ngày càng khổng lồ và đòi hỏi tài nguyên tính toán khổng lồ, một nhà phát triển đã tạo ra GuppyLM — một mô hình nhỏ gọn chỉ với khoảng 9 triệu tham số, có khả năng "suy nghĩ" và trò chuyện như một chú cá.
GuppyLM Logo
Mục tiêu của dự án này rất rõ ràng: phi huyền bí hóa cách thức vận hành của các mô hình ngôn ngữ. Không cần bằng tiến sĩ, không cần cụm GPU đắt tiền, tất cả những gì bạn cần là một tài khoản Google Colab miễn phí và khoảng 5 phút để huấn luyện mô hình từ đầu.
Tính cách "hợp chủng" của chú cá
Điểm thú vị nhất của GuppyLM không nằm ở hiệu năng xử lý văn bản phức tạp, mà nằm ở tính cách được "đúc kết" trong trọng số của nó. Guppy được xây dựng để mô phỏng một con cá nhỏ ngây thơ, luôn lạc quan và suy nghĩ đơn giản. Nó chỉ quan tâm đến nước, thức ăn, nhiệt độ và bể cá.
Dưới đây là một đoạn cuộc trò chuyện mẫu với Guppy:
Bạn: chào guppy Guppy: chào nhé. mình vừa tìm thấy một chỗ đẹp gần tảng đá. nhiệt độ cảm giác dễ ợt.
Bạn: có đói không Guppy: có. lúc nào cũng có. mình sẽ bơi lên trên ngay bây giờ. hứa là sẽ ăn hết tất cả.
Bạn: ý nghĩa của cuộc sống là gì Guppy: thức ăn. đáp án luôn là thức ăn.
Bạn: kể một câu chuyện cười đi Guppy: con cá nói gì khi đập vào tường. đập.
Kiến trúc kỹ thuật tối giản
Sự đơn giản là ưu tiên hàng đầu trong thiết kế của GuppyLM. Nó sử dụng kiến trúc Transformer cơ bản (vanilla transformer) bỏ qua các kỹ thuật tối ưu hóa phức tạp thường thấy trong các mô hình hiện đại như GQA (Grouped Query Attention), RoPE (Rotary Positional Embeddings) hay SwiGLU.
Các thông số kỹ thuật chính bao gồm:
Dữ liệu huấn luyện
Mô hình
- Tham số: 8,7 triệu
- Lớp (Layers): 6
- Kích thước ẩn (Hidden dim): 384
- Đầu (Heads): 6
- Vocabulary: 4.096 (BPE - Byte Pair Encoding)
- Độ dài chuỗi tối đa: 128 token
Với kích thước này, mô hình đủ nhẹ để chạy trực tiếp trên trình duyệt web mà không cần máy chủ mạnh.
Dữ liệu và Huấn luyện
GuppyLM không được huấn luyện trên dữ liệu thực tế từ internet để tránh sự lộn xộn. Thay vào đó, nó sử dụng 60.000 cuộc hội thoại tổng hợp (synthetic conversations) được tạo ra từ các khuôn mẫu (templates), bao phủ 60 chủ đề khác nhau như: lời chào, cảm xúc, nhiệt độ, thức ăn, bọt khí, ánh sáng, sự cô đơn, và cả "ý nghĩa của cuộc sống".
Quá trình huấn luyện được thiết kế để bất kỳ ai cũng có thể thực hiện:
Huấn luyện trên Colab
Bạn có thể chọn tải xuống mô hình đã được huấn luyện sẵn để trò chuyện ngay, hoặc chạy toàn bộ quy trình từ khâu tạo dữ liệu, huấn luyện tokenizer, xây dựng kiến trúc mô hình cho đến huấn luyện (training loop) và suy luận (inference). Toàn bộ mã nguồn nằm gọn trong một file Jupyter Notebook.
Tại sao GuppyLM lại quan trọng?
Đối với cộng đồng lập trình viên và những người quan tâm đến AI, GuppyLM mở ra cánh cửa để hiểu sâu hơn về "hộp đen" của công nghệ Transformer.
- Hiểu bản chất: Nó cho người dùng thấy rõ cách mô hình chuyển đổi từ văn bản thô thành các vector số học, quá trình lan truyền ngược (backpropagation) và cách các trọng số (weights) thay đổi để nắm bắt "tính cách".
- Tùy biến cao: Vì mô hình nhỏ và dữ liệu đơn giản, bạn có thể dễ dàng thay thế tính cách của Guppy bằng một nhân vật khác và tự tạo ra phiên bản LLM riêng của mình.
- Giáo dục: Đây là công cụ hoàn hảo để giảng dạy và học tập về cơ chế hoạt động của Deep Learning mà không bị ngợp bởi các chi tiết kỹ thuật rườm rà của các mô hình quy mô lớn.
Dự án được cấp phép MIT, cho phép mọi người tự do sử dụng, nghiên cứu và đóng góp mã nguồn.



