Rạng sáng ngày 14 tháng 10, Andrej Karpathy, một chuyên gia có tiếng trong lĩnh vực AI, đã phát hành một dự án mã nguồn mở mới mang tên "nanochat". Ông mô tả đây là một trong những dự án "không bị ràng buộc" và "điên rồ" nhất mà ông từng viết.
Không giống như nanoGPT trước đây chỉ bao gồm đào tạo trước, nanochat mới là quy trình đào tạo/suy luận tối giản, đầy đủ từ đầu, cho phép xây dựng hoàn chỉnh phiên bản ChatGPT đơn giản thông qua một cơ sở mã duy nhất với các phụ thuộc tối thiểu.
Quá trình sử dụng nanochat rất đơn giản: bạn chỉ cần thuê một máy chủ GPU đám mây, chạy một tập lệnh duy nhất và chỉ trong vòng 4 giờ, bạn có thể giao tiếp với mô hình ngôn ngữ lớn (LLM) mà bạn đã đào tạo trong giao diện web tương tự như ChatGPT.
Nanochat là gì?
Dựa trên các nguyên tắc do Kapathy cung cấp, Nanochat gói gọn tất cả các bước và công cụ cần thiết để xây dựng một chatbot từ đầu, trong đó:
1. Chuẩn bị dữ liệu: Bắt đầu với văn bản web thô (chẳng hạn như dữ liệu FineWeb), hãy tạo một trình phân tích cú pháp để chuyển đổi một lượng lớn văn bản thành số mà mô hình có thể hiểu được.
2. Tiền huấn luyện mô hình: Huấn luyện mô hình Transformer cơ bản trên dữ liệu quy mô lớn để nó có thể học ngữ pháp ngôn ngữ, các sự kiện và lập luận cơ bản. Đây là bước cốt lõi và tốn thời gian nhất.
3. Tinh chỉnh căn chỉnh:
- a. Tinh chỉnh hướng dẫn: Sử dụng dữ liệu trả lời câu hỏi và hội thoại chất lượng cao để dạy mô hình cách làm theo hướng dẫn và giao tiếp với mọi người như một trợ lý.
- b. Học tăng cường: (Tùy chọn) Cải thiện hơn nữa hiệu suất của mô hình đối với nhiệm vụ cụ thể (như giải bài toán) thông qua phần thưởng và hình phạt.
4. Lý luận mô hình: Cung cấp một công cụ hiệu quả cho phép bạn trò chuyện theo thời gian thực với mô hình đã được đào tạo của mình trên dòng lệnh hoặc giao diện web tương tự như ChatGPT.
5. Đánh giá( Sau khi quá trình đào tạo hoàn tất, hệ thống sẽ tự động tạo ra một "báo cáo" chi tiết cho thấy hiệu suất của mô hình trên nhiều bài kiểm tra tiêu chuẩn (như toán học, mã hóa và lập luận thông thường).
Dự án trước đây của Karpathy, nanoGPT , tập trung vào bước 2: tiền huấn luyện mô hình . Đây là một mã huấn luyện mô hình GPT tối giản, được thiết kế cho mục đích giáo dục, giúp mọi người hiểu cách huấn luyện các mô hình lớn.
Nanochat là một dự án đầy đủ không chỉ bao gồm phần tiền đào tạo của nanoGPT mà còn hoàn thành tất cả các bước quan trọng tiếp theo (điều chỉnh lệnh, học tăng cường, lý luận và giao diện người dùng), cuối cùng là cung cấp một chatbot thực sự có thể tham gia vào cuộc trò chuyện.
Tất cả những điều này đạt được chỉ với 8.000 dòng mã do Kapasi gõ.
Ý nghĩa của việc Kapasi tạo ra nanochat này là gì?
Đầu tiên, nó cung cấp giáo dục và học tập. Hiện tại, đây là nguồn tài nguyên tốt nhất để hiểu cách xây dựng ChatGPT từ đầu. Nó cho phép các nhà phát triển và nhà nghiên cứu thông thường tạo ra các mô hình trò chuyện nhỏ của riêng họ với chi phí tương đối thấp, cho phép họ trải nghiệm toàn bộ quy trình từ văn bản thô đến trợ lý đàm thoại thông minh.
Thứ hai, nó cung cấp một nền tảng nghiên cứu và thử nghiệm. Nó cung cấp cho các nhà nghiên cứu một nền tảng thử nghiệm nhẹ, có thể kiểm soát và tái tạo. Họ có thể sử dụng nền tảng này để nhanh chóng kiểm tra các kiến trúc mô hình, phương pháp huấn luyện hoặc kỹ thuật căn chỉnh mới mà không cần sử dụng các tài nguyên tính toán quy mô lớn tốn kém.
Cuối cùng, cư dân mạng trên X cũng phát hiện ra những khả năng mới của nó. Anh cho rằng hệ thống này có thể trở thành chuẩn mực mới cho đánh giá phần cứng.
Thật tuyệt vời! Điều này sẽ trở thành chuẩn mực mới cho đánh giá phần cứng – tất cả những gì chúng ta phải làm là báo cáo một bộ ba có thứ tự:
● Tổng chi phí đào tạo toàn diện (USD)
● Tổng thời gian đào tạo từ đầu đến cuối (phút)
● Hiệu suất tổng thể trên một bộ kiểm tra cụ thể
Và toàn bộ quá trình này có khả năng tái tạo cao.
100 đô la để đào tạo AI từ đầu
Vậy Nanochat có thể tiết kiệm được bao nhiêu tiền?
● Chỉ với khoảng 100 đô la (~4 giờ đào tạo trên nút 8XH100), bạn có thể đào tạo một bản sao ChatGPT nhỏ có thể thực hiện các cuộc trò chuyện cơ bản, viết truyện và thơ, cũng như trả lời các câu hỏi đơn giản
(Giao diện web hiển thị cuộc trò chuyện với mô hình nanochat kéo dài bốn giờ và có giá 100 đô la. Nó đã có thể viết thơ.)
(Báo cáo nanochat cho thấy một số chỉ báo tóm tắt được tạo ra bởi cuộc chạy tốc độ 100 đô la lần . Nhìn chung, nó khá tốt.)
● Cần khoảng 12 giờ đào tạo để vượt qua GPT-2 về chỉ báo CORE
● Nếu ngân sách được tăng lên khoảng 1.000 đô la (41,6 giờ đào tạo), mô hình sẽ trở nên mạch lạc hơn, có khả năng giải các bài toán và lập trình đơn giản, cũng như vượt qua các bài kiểm tra trắc nghiệm. Ví dụ, một mô hình độ sâu 30 có thể đạt điểm 40 trên MMLU, hơn 70 trên ARC-Easy và hơn 20 trên GSM8K sau 24 giờ đào tạo (tải tính toán tương đương với GPT-3 Small 125M hoặc 1/1000 của GPT-3).
Kapasi đích thân tiết lộ công nghệ đằng sau nó
Trên nền tảng X, Kapasi đã tham gia vào cuộc đối thoại hỏi đáp với cư dân mạng, tiết lộ những chi tiết phát triển hậu trường và các công nghệ liên quan của nanochat.
Sau đây là những câu hỏi và câu trả lời được chọn lọc:
H: Mô hình đào tạo/cơ sở hạ tầng của mô hình này dựa trên thiết kế nào?
Kapathy: Kiến trúc mô hình của nanochat về cơ bản tương tự như mô hình Meta Llama, nhưng có một số điểm đơn giản hóa và một số ý tưởng thiết kế từ phiên bản cải tiến của nó, dự án modded-nanoGPT. Mục tiêu của dự án là thiết lập một "cơ sở vững chắc" cho các mô hình ở quy mô này.
Các đặc điểm kiến trúc chính bao gồm:
● Máy biến áp dày đặc
● Nhúng quay (mã hóa vị trí quay), không có nhúng vị trí rõ ràng
● QK Norm (chuẩn hóa các vectơ truy vấn và Key)
● Tỷ trọng nhúng và hủy nhúng không được chia sẻ (trọng số không liên kết)
● Thực hiện chuẩn hóa sau khi nhúng mã thông báo
● MLP sử dụng hàm kích hoạt ReLU²
● Không có tham số nào có thể học được trong RMSNorm
Các lớp tuyến tính không có độ lệch
● Áp dụng Chú ý nhiều truy vấn (MQA)
● Lớp đầu ra sử dụng công nghệ Logit Softcap
Bộ tối ưu hóa sử dụng tổ hợp Muon + AdamW, chịu ảnh hưởng lớn từ modded-nanoGPT. Kapathy cho biết ông dự định sẽ thử loại bỏ Muon trong tương lai bằng cách điều chỉnh cẩn thận tốc độ học của từng mô-đun trong bộ tối ưu hóa Adam, nhưng công việc này vẫn chưa hoàn thành.
H: Tôi có thể đào tạo nó bằng dữ liệu của riêng mình không? Giống như tất cả các ghi chú Notion, dữ liệu sức khỏe của tôi và các cuộc trò chuyện của tôi với các mô hình lớn khác? Giống như việc xây dựng một chatbot cá nhân thực sự hiểu tôi?
Kapathy: Tôi không nghĩ cơ sở mã nguồn này phù hợp cho mục đích này. Hãy coi những mô hình thu nhỏ này như những đứa trẻ rất nhỏ (như trẻ mẫu giáo); chúng không thực sự có trí thông minh bẩm sinh như những mô hình lớn hơn. Nếu bạn tinh chỉnh/huấn luyện chúng trên dữ liệu của riêng mình, bạn có thể nhận được một số phản hồi thú vị có vẻ giống với phong cách viết của bạn, nhưng kết quả cuối cùng sẽ rất thô sơ.
Để đạt được kết quả mong muốn, trước tiên bạn có thể cần sắp xếp dữ liệu gốc, viết lại dữ liệu với lượng lớn dữ liệu tổng hợp (bước này khá phức tạp, độ không chắc chắn cao và là một lĩnh vực nghiên cứu), sau đó tinh chỉnh một mô hình mã nguồn mở lớn hàng đầu. Quá trình này cũng có thể yêu cầu kết hợp lượng lớn dữ liệu đã được đào tạo trước để tránh làm mất đi trí tuệ ban đầu của mô hình trong quá trình tinh chỉnh.
Vì vậy, thành thật mà nói, việc thực hiện quy trình này một cách hoàn hảo vẫn là một nghiên cứu tiên tiến.
Hiện tại, giải pháp phi kỹ thuật khả thi nhất là nhập toàn bộ dữ liệu của bạn vào một công cụ như NotebookLM. Công cụ này xử lý dữ liệu của bạn bằng công nghệ RAG (Truy xuất Tham khảo theo Khối). Thông tin của bạn được truyền đến mô hình thông qua một cửa sổ ngữ cảnh, nhưng tỷ trọng của mô hình vẫn không đổi. Mặc dù mô hình sẽ không thực sự "hiểu bạn", nhưng đây có lẽ là cách tính gần đúng dễ thực hiện nhất.
H: Bạn đã viết tay bao nhiêu phần mã này?
Kapathy: Mã nguồn chủ yếu được viết tay (với tính năng tự động hoàn thành dựa trên tab). Tôi đã thử sử dụng các trợ lý mã hóa AI như Claude và Codex lần, nhưng chúng hoàn toàn không hiệu quả và nhìn chung không hữu ích. Có lẽ phong cách của cơ sở mã nguồn của tôi quá khác biệt so với phong cách của dữ liệu huấn luyện.
Bài viết này được trích từ Tencent Technology , tác giả: Jinlu và được 36Kr xuất bản với sự cho phép.