Hướng dẫn Tinh chỉnh Qwen3 với LoRA Sử dụng NVIDIA NeMo AutoModel: Quy trình làm việc hoàn chỉnh trên Google Colab với một GPU
Trong hướng dẫn này, chúng tôi xây dựng một quy trình làm việc NVIDIA NeMo AutoModel hoàn chỉnh trong Google Colab và sử dụng một GPU duy nhất để khám phá cùng kiến trúc huấn luyện dựa trên cấu hình có khả năng mở rộng đến môi trường đa GPU phân tán. Chúng tôi xác minh phần cứng CUDA khả dụng và hỗ trợ độ chính xác, cài đặt NeMo AutoModel trực tiếp từ kho lưu trữ nguồn, tải một công thức tinh chỉnh LoRA Qwen3-0.6B chính thức, và điều chỉnh lập trình các thiết lập về độ chính xác, kích thước batch, điểm kiểm tra và bộ lập lịch cho môi trường Colab có giới hạn tài nguyên. Sau đó, chúng tôi khởi chạy tinh chỉnh hiệu quả tham số thông qua giao diện dòng lệnh automodel, định vị và tải lại điểm kiểm tra LoRA đã tạo, và so sánh đầu ra từ mô hình gốc và mô hình đã tinh chỉnh. Cuối cùng, chúng tôi sử dụng NeMoAutoModelForCausalLM thông qua API Python để minh họa cách NeMo AutoModel tích hợp các đường thực thi tối ưu hóa của NVIDIA trong khi vẫn giữ giao diện mô hình Hugging Face quen thuộc.
Chúng tôi nhập các thư viện Python cốt lõi cần thiết cho xử lý tệp, thực thi tiến trình, quản lý đường dẫn và đầu ra định dạng. Chúng tôi xác định các thư mục kho lưu trữ, làm việc và điểm kiểm tra được sử dụng trong toàn bộ quy trình. Chúng tôi cũng tạo một hàm lệnh shell có thể tái sử dụng để truyền trực tiếp đầu ra lệnh và báo lỗi khi thực thi thất bại.
Chúng tôi xác minh rằng môi trường Colab cung cấp GPU hỗ trợ CUDA và kiểm tra tên, dung lượng bộ nhớ và hỗ trợ bfloat16 của nó. Chúng tôi sao chép kho lưu trữ NVIDIA NeMo AutoModel khi chưa có sẵn và cài đặt gói trực tiếp từ nguồn. Sau đó, chúng tôi cài đặt các thư viện hỗ trợ YAML và PEFT và xác nhận rằng gói NeMo AutoModel được nhập chính xác.
Chúng tôi định vị một công thức PEFT chính thức, tải cấu hình YAML của nó và kiểm tra các thiết lập huấn luyện gốc. Chúng tôi điều chỉnh đệ quy các tham số độ chính xác và kích thước batch để phù hợp với công thức trên một GPU Colab duy nhất trong khi vẫn giữ cấu trúc ban đầu. Chúng tôi cũng giới hạn thời gian huấn luyện, cấu hình đầu ra điểm kiểm tra, lưu công thức đã vá và trích xuất định danh mô hình Hugging Face.
Chúng tôi khởi chạy tinh chỉnh LoRA Qwen3-0.6B trên tập dữ liệu HellaSwag thông qua giao diện dòng lệnh NeMo AutoModel. Chúng tôi tắt các tính năng truyền tải và song song tokenizer không cần thiết của Hugging Face để giữ cho quá trình chạy Colab ổn định hơn. Chúng tôi cũng bao gồm một lệnh dự phòng hỗ trợ cú pháp CLI NeMo AutoModel cũ hơn khi lệnh gọi chính thất bại.
Chúng tôi tải tokenizer và mô hình ngôn ngữ nhân quả cơ bản, tạo ra một phản hồi xác định và thiết lập một đường cơ sở để so sánh. Chúng tôi tìm kiếm trong các thư mục đầu ra huấn luyện để tìm điểm kiểm tra LoRA hoặc tệp adapter mới nhất được tạo trong quá trình tinh chỉnh. Sau đó, chúng tôi gắn adapter với PEFT, tạo phản hồi đã tinh chỉnh và giải phóng bộ nhớ GPU sau khi đánh giá.
Chúng tôi minh họa giao diện Python trực tiếp bằng cách tải mô hình thông qua NeMoAutoModelForCausalLM và chạy một ví dụ sinh thêm. Chúng tôi xử lý các lỗi phiên bản cụ thể hoặc phần cứng một cách linh hoạt để notebook vẫn có thể hoàn thành thành công. Chúng tôi kết luận bằng cách trình bày các danh mục công thức khả dụng, cú pháp ghi đè mô hình, tùy chọn mở rộng phân tán và đường dẫn tài liệu chính thức.
Tóm lại, chúng tôi đã thiết lập một quy trình NeMo AutoModel thực tế bao gồm xác thực môi trường, cài đặt nguồn, kiểm tra công thức, vá cấu hình, huấn luyện LoRA, khôi phục điểm kiểm tra, đánh giá mô hình và suy luận API Python trực tiếp. Chúng tôi đã thấy cách NeMo AutoModel tách chiến lược huấn luyện phân tán khỏi mã ứng dụng bằng cách chỉ định mô hình
, dataset, optimizer, precision, parallelism và hành vi checkpoint thông qua các công thức YAML có thể tái sử dụng. Mặc dù chúng tôi chạy quy trình làm việc trên một GPU Colab duy nhất, chúng tôi vẫn giữ nguyên cấu trúc hướng SPMD được sử dụng cho các triển khai FSDP2, tensor-parallel, context-parallel, sequence-parallel và pipeline-parallel lớn hơn. Điều này mang lại cho chúng tôi một điểm khởi đầu có cơ sở kỹ thuật để điều chỉnh thêm các công thức mô hình ngôn ngữ, thị giác-ngôn ngữ, tiền huấn luyện và khuếch tán, đồng thời mở rộng quy trình làm việc từ thử nghiệm đến hạ tầng NVIDIA đa nút.
Xem mã đầy đủ tại đây. Ngoài ra, hãy theo dõi chúng tôi trên Twitter và đừng quên tham gia SubReddit 150k+ ML của chúng tôi và Đăng ký Nhận bản tin. Chờ đã! Bạn có dùng telegram không? Bây giờ bạn cũng có thể tham gia cùng chúng tôi trên telegram.
Cần hợp tác với chúng tôi để quảng bá GitHub Repo hoặc Hugging Face Page hoặc Product Release hoặc Webinar của bạn? Hãy kết nối với chúng tôi.
Sana Hassan, thực tập sinh tư vấn tại Marktechpost và sinh viên song bằng tại IIT Madras, đam mê ứng dụng công nghệ và AI để giải quyết các thách thức thực tế. Với sự quan tâm sâu sắc đến việc giải quyết các vấn đề thực tiễn, anh mang đến một góc nhìn mới mẻ về sự giao thoa giữa AI và các giải pháp đời sống.


