Tối qua, tôi đã dạy nanochat d32 cách đếm chữ 'r' trong từ dâu tây (hoặc các biến thể tương tự). Tôi nghĩ đây sẽ là một ví dụ tốt/vui về cách thêm khả năng cho nanochat và tôi đã viết một hướng dẫn đầy đủ ở đây: Điều này được thực hiện thông qua một nhiệm vụ tổng hợp mới `SpellingBee` tạo ra các ví dụ về một người dùng yêu cầu loại vấn đề này, và một giải pháp lý tưởng từ một trợ lý. Sau đó, chúng tôi sẽ huấn luyện giữa/finetune SFT trên những điều này để trang bị cho LLM khả năng, hoặc huấn luyện thêm với RL để làm cho nó mạnh mẽ hơn. Có nhiều chi tiết cần phải chính xác, đặc biệt là ở các kích thước mô hình nhỏ hơn và hướng dẫn sẽ đi qua chúng. Như một cái nhìn tổng quan ngắn gọn: - Bạn phải đảm bảo sự đa dạng trong các lời nhắc/yêu cầu của người dùng - Đối với các mô hình nhỏ như nanochat, đặc biệt, bạn phải rất cẩn thận với các chi tiết phân tách từ để làm cho nhiệm vụ dễ dàng cho LLM. Cụ thể, bạn phải cẩn thận với khoảng trắng, và sau đó bạn phải phân bổ việc tính toán lý luận qua nhiều token của giải pháp một phần: trước tiên chúng tôi chuẩn hóa từ vào dấu ngoặc kép, sau đó chúng tôi đánh vần nó (để phân tách các token), sau đó chúng tôi lặp lại và giữ một bộ đếm rõ ràng, v.v. - Tôi đang khuyến khích mô hình giải quyết mô hình theo hai cách riêng biệt: một cách thủ công (tính toán trong đầu) và cũng thông qua việc sử dụng công cụ của trình thông dịch Python mà nanochat có quyền truy cập. Điều này có chút "khói và gương" vì mọi giải pháp hiện tại đều "sạch", không có sai sót. Một người có thể điều chỉnh nhiệm vụ để mô phỏng sai sót và chứng minh sự phục hồi bằng ví dụ, hoặc chạy RL. Có khả năng, sự kết hợp của cả hai sẽ hoạt động tốt nhất, trong đó cái trước đóng vai trò là prior cho RL và cung cấp cho nó những thứ để làm việc. Nếu nanochat là một mô hình lớn hơn nhiều, bạn sẽ mong đợi hoặc hy vọng khả năng này sẽ dễ dàng "nổi bật" vào một thời điểm nào đó. Nhưng vì "bộ não" của nanochat d32 có kích thước như một ~con ong mật, nếu chúng tôi muốn nó đếm chữ r trong từ dâu tây, chúng tôi phải làm điều đó bằng cách đại diện quá mức trong dữ liệu, để khuyến khích mô hình học nó sớm hơn. Nhưng nó hoạt động! :)