18 điểm bởi xguru 2024-04-09 | 1 bình luận | Chia sẻ qua WhatsApp
  • Mã huấn luyện LLM đơn giản do Andrej Karpathy viết bằng C/CUDA thuần
  • Không cần PyTorch/cPython
  • Có thể huấn luyện GPT-2 (CPU, fp32) chỉ với một tệp khoảng 1000 dòng
    • Lý do chọn GPT-2 làm ví dụ hoạt động đầu tiên là vì đây là “ông tổ” của các LLM nơi stack hiện đại lần đầu được kết hợp
  • Biên dịch và chạy ngay lập tức, đồng thời khớp chính xác với bản triển khai tham chiếu PyTorch
  • Những nội dung hiện đang được thực hiện
    • Triển khai CUDA trực tiếp nhanh hơn rất nhiều và có lẽ sẽ tiệm cận PyTorch
    • Tăng tốc phiên bản CPU bằng lệnh SIMD, AVX2 trên x86 / NEON trên ARM (ví dụ: Apple Silicon)
    • Các kiến trúc hiện đại hơn (ví dụ: Llama2, Gemma, v.v.)

1 bình luận

 
xguru 2024-04-09

Ý kiến trên Hacker News

  • Bày tỏ sự thán phục với dự án, đồng thời chỉ ra rằng phần CUDA hiện vẫn chưa được triển khai. Mã GPU vẫn chưa có trong kho lưu trữ.

    Hy vọng khi dự án ổn định hơn, sẽ có một video chi tiết về cách xây dựng nó.

  • Sau khi thấy nano GPT được triển khai bằng JAX, giờ muốn thấy phiên bản triển khai bằng C/CUDA. Tò mò liệu nano GPT có thể làm được bằng Mojo hay không. Đồng thời thừa nhận Python có nhiều tiện ích thuận tiện hơn so với các ngôn ngữ khác.

  • Bày tỏ kỳ vọng rằng việc tự triển khai CUDA sẽ nhanh hơn PyTorch rất nhiều. Xét đến giá GPU-RAM, họ tò mò mức cải thiện tốc độ phía CPU sẽ là bao nhiêu. Cũng đặt câu hỏi liệu có trở ngại kỹ thuật nào khiến dòng RTX không thể bổ sung khe SO-DIMM để mở rộng RAM theo nhu cầu hay không.

  • Hỏi liệu có ví dụ nào về cách áp dụng GPT-2 cho dữ liệu chuỗi thời gian hay không, đặc biệt là trong trường hợp có bao gồm biến đồng biến (covariates). Cho rằng việc LLM dự đoán token tiếp theo từ các token trước đó khá giống với dự báo chuỗi thời gian.

  • Nghĩ rằng tên gọi có thể được lấy từ dự án llm.f90 của họ. Dự án đó dựa trên llama2.c của Karpathy và đã đổi tên để hỗ trợ các kiến trúc khác. Có lẽ chỉ là trùng hợp.

  • Nhắc rằng khi Lex trò chuyện với Andre, Andre đã thể hiện sự ám ảnh tích cực với vấn đề và nói rằng “thứ này nhất định phải tồn tại”. Dự án này có lẽ là một trong những kết quả như vậy.

  • Hỏi rằng nếu bắt đầu từ con số không thì nên tham khảo tài liệu nào để hiểu đoạn mã này làm gì và nên đọc nó như thế nào. Kiến thức về LLM còn rất hạn chế, đồng thời cũng thắc mắc liệu cách đặt tên biến ngắn gọn có phải là chuẩn phổ biến trong lĩnh vực LLM hay không.

  • Cho rằng sẽ rất tốt nếu có một hướng dẫn giải thích dự án này và cách chạy huấn luyện thử nghiệm. Việc huấn luyện một mô hình “thực sự” trên phần cứng cá nhân là không thực tế, nhưng vẫn cần một trải nghiệm học tập mang tính thực hành.

  • Bày tỏ sự tò mò liệu CUDA có còn là lựa chọn duy nhất cho việc chạy AI hay không, hay hỗ trợ cho AMD/Intel/các phương thức chạy AI khác đang ngày càng tăng.