TScale, một framework mới để huấn luyện và suy luận transformer được viết bằng C++ và CUDA, đã tạo ra cuộc thảo luận giữa các nhà phát triển đang xem xét chất lượng mã nguồn và các lựa chọn triển khai của nó. Dự án này nhằm mục đích làm cho việc huấn luyện mô hình ngôn ngữ lớn (LLM) trở nên dễ tiếp cận hơn trên phần cứng tiêu dùng, nhưng phản hồi ban đầu từ cộng đồng cho thấy nó có thể đã được phát hành quá sớm.
Kho mã nguồn, vốn hứa hẹn kiến trúc transformer được tối ưu hóa với khả năng hội tụ nhanh hơn và giảm chi phí chú ý, đã thu hút sự chú ý nhờ những tuyên bố đầy tham vọng về khả năng huấn luyện. Theo tài liệu của nó, TScale có thể huấn luyện một mô hình 1,5 tỷ tham số với chi phí khoảng 500 đô la Mỹ bằng cách sử dụng một số spot instance với GPU NVIDIA 4090. Nó cũng giới thiệu một kỹ thuật chỉ mục 1T thú vị, được cho là đạt được sự giảm perplexity đáng kể với các mô hình nhỏ hơn.
Các tính năng chính của TScale:
- Kiến trúc transformer được tối ưu hóa với khả năng hội tụ nhanh hơn và giảm chi phí attention khoảng 2 lần
- Hỗ trợ độ chính xác fp8 và int8 cho trọng số và kích hoạt mô hình
- Được tối ưu hóa cho GPU NVIDIA tiêu dùng với khả năng huấn luyện độ chính xác giảm nhanh
- Offload CPU để giảm yêu cầu bộ nhớ GPU
- Đồng bộ huấn luyện phân tán trên các máy chủ cùng cấu hình
- Nén gradient 1-bit cho kết nối ethernet thông thường
- Huấn luyện phân tán bất đồng bộ trên các máy chủ tùy ý với lưu lượng mạng tối thiểu
Hiệu suất được tuyên bố:
- Huấn luyện mô hình 1.5B: 2 ngày với chi phí 500 USD trên các instance spot với GPU 4090
- Mô hình 125M với chỉ mục 1T: Giảm độ phức tạp từ 19.02 xuống 2.28
Thách thức về Hệ thống Build
Một trong những vấn đề ngay lập tức được cộng đồng nêu ra là sự vắng mặt của tệp hệ thống build được đề cập trong tài liệu. Một người dùng đã báo cáo rằng fo.cpp, trình tạo tệp giải pháp/build nhẹ được mô tả trong hướng dẫn thiết lập, thực tế không tồn tại trong kho mã nguồn, khiến không thể tuân theo quy trình build như đã nêu.
Tôi đang cố gắng chạy cái này nhưng fo.cpp không tồn tại trong kho mã nguồn. Tôi đã tạo một issue xem https://github.com/Foreseerr/TScale/issues/1
Sự khác biệt này cho thấy dự án có thể đã được công bố trước khi nó hoàn toàn sẵn sàng cho việc sử dụng công khai, với một số nhà phát triển suy đoán rằng đây có thể là một dự án cuối tuần được chia sẻ quá sớm.
Phát minh lại bánh xe
Một điểm tranh cãi khác giữa các nhà phát triển là việc TScale triển khai các thành phần cơ bản như trình phân tích cú pháp tệp cấu hình key-value, điều mà nhiều người cho là không cần thiết khi đã có sẵn các thư viện ổn định. Điều này đã dẫn đến một cuộc thảo luận rộng hơn về quản lý phụ thuộc trong các dự án C/C++.
Một số nhà phát triển lập luận rằng xu hướng tự tạo các tiện ích thay vì sử dụng thư viện hiện có đã ăn sâu vào văn hóa C/C++, không nhất thiết do hạn chế kỹ thuật mà là do sở thích văn hóa. Mặc dù các công cụ hiện đại như CMake đã làm cho việc quản lý phụ thuộc dễ dàng hơn, nhưng việc giảm thiểu phụ thuộc bên ngoài vẫn còn phổ biến.
Một nhà phát triển đã gợi ý rằng cách tiếp cận này có thể bị ảnh hưởng bởi những lo ngại về chuỗi phụ thuộc:
Các phụ thuộc có xu hướng có phụ thuộc riêng của chúng (và những phụ thuộc đó lại có...). Không phải là quá khó khăn mà chính là nhận thức về điều đó khiến tôi giảm thiểu phụ thuộc của mình xuống mức tối thiểu.
Những người khác suy đoán rằng một số mẫu mã có thể là triệu chứng của việc lập trình có sự hỗ trợ của LLM, nơi các công cụ AI đôi khi triển khai các giải pháp phức tạp cho các vấn đề có thể được giải quyết bằng thư viện hiện có.
Chỉ mục 1T bí ẩn
Việc dự án đề cập đến kỹ thuật chỉ mục 1T đã tạo ra sự tò mò. TScale tuyên bố cách tiếp cận này cho phép huấn luyện một mô hình 1T tại nhà bằng cách xây dựng một mô hình với chỉ mục 1T mà chúng ta tra cứu cho mỗi token để đưa ra dự đoán với mô hình nhỏ hơn nhiều. Theo tài liệu, cách xây dựng này đạt được kết quả ấn tượng về mặt log loss và perplexity, với báo cáo giảm perplexity 8 lần khi sử dụng mô hình 125 triệu tham số với chỉ mục.
Các thành viên cộng đồng đã bày tỏ sự quan tâm muốn hiểu rõ hơn về kỹ thuật này, với một số người suy đoán rằng nó có thể liên quan đến việc lập chỉ mục thuật ngữ tương tự như các phương pháp được mô tả trong tài liệu học thuật về lập luận tự động, có thể được triển khai dưới dạng cấu trúc cây tiền tố giúp nhận biết các khái quát hóa.
![]() |
---|
Biểu đồ đường này minh họa các xu hướng trong dữ liệu có thể tương quan với các tuyên bố về hiệu suất của kỹ thuật chỉ mục 1T của TScale |
Nút thắt cổ chai mạng trong Suy luận phân tán
Các cuộc thảo luận cũng đề cập đến những thách thức của suy luận phân tán, đặc biệt là liên quan đến nút thắt cổ chai mạng. Mặc dù TScale đề cập đến khả năng huấn luyện phân tán, bao gồm cả huấn luyện phân tán bất đồng bộ trên các máy chủ phân tán về mặt địa lý, cộng đồng lưu ý rằng giới hạn mạng vẫn là một thách thức đáng kể đối với bất kỳ hệ thống LLM phân tán nào.
Như một người bình luận đã tóm tắt ngắn gọn: bất kỳ đường ống huấn luyện hoặc suy luận LLM tiên tiến nào cuối cùng đều nhận ra rằng nút thắt cổ chai thực sự là mạng!
Tóm lại, mặc dù TScale đưa ra những ý tưởng thú vị để làm cho việc huấn luyện LLM dễ tiếp cận hơn trên phần cứng tiêu dùng, phản hồi ban đầu từ cộng đồng cho thấy nó có thể cần phát triển thêm trước khi có thể thực hiện được những lời hứa của mình. Các cuộc thảo luận làm nổi bật cả những thách thức kỹ thuật trong việc tạo ra các framework huấn luyện LLM hiệu quả và các khía cạnh văn hóa của phát triển phần mềm trong hệ sinh thái C/C++.
Tham khảo: TScale