Chuyển đến nội dung chính
Hướng dẫn AI

Chạy Naive-N0.5-Flash cục bộ với Transformers

Tìm hiểu điều gì khiến Naive-N0.5-Flash phù hợp cho lập trình và nghiên cứu AI, khám phá kiến trúc SWA–DSA lai, cài đặt các phần phụ thuộc Transformers cần thiết và tạo văn bản bằng trọng số FP8 đã phát hành.

Chạy Naive-N0.5-Flash cục bộ với Transformers

Naive-N0.5-Flash là gì?

Naive-N0.5-Flash là một mô hình Mixture-of-Experts có trọng số mở, được thiết kế cho việc lập trình và nghiên cứu, phát triển AI. Mô hình có tổng cộng 309 tỷ tham số, trong đó 15,5 tỷ tham số hoạt động, đồng thời hỗ trợ cửa sổ ngữ cảnh gốc lên đến 1 triệu token.

Trọng số mô hình và mã suy luận được phát hành theo Giấy phép MIT. Bạn có thể tìm mô hình trên Hugging Face và dự án mã nguồn trên GitHub.

Tính năng chính

  • Ngữ cảnh gốc 1 triệu token: Mô hình sử dụng sự kết hợp giữa Sliding-Window Attention (SWA) và DeepSeek Sparse Attention (DSA), không cần các lớp attention đầy đủ.
  • Hiệu quả của MoE: Mặc dù mô hình có tổng cộng 309 tỷ tham số, chỉ 15,5 tỷ tham số hoạt động cho mỗi token.
  • Tập trung vào lập trình và R&D AI: Mô hình được huấn luyện để cải thiện năng lực kỹ thuật phần mềm, nghiên cứu và tối ưu hóa hệ thống.
  • Suy luận FP8: Checkpoint được phát hành hỗ trợ suy luận độ chính xác hỗn hợp trên GPU NVIDIA tương thích FP8.
  • Suy luận thông lượng cao: Hệ thống suy luận NaiveRT kết hợp hợp nhất mega-kernel, Programmatic Dependent Launch và giải mã suy đoán. README cho biết hệ thống đạt tối đa 50 token mỗi giây cho mỗi người dùng ở chế độ Standard và tối đa 2.000 token mỗi giây ở chế độ Ultrafast.

Tìm hiểu thiết kế Attention lai

Naive-N0.5-Flash sử dụng 48 lớp transformer: 39 lớp SWA và 9 lớp DSA. SWA giới hạn attention cục bộ trong cửa sổ 128 token, trong khi DSA sử dụng bộ lập chỉ mục để chấm điểm toàn bộ lịch sử và chọn 2.048 token hàng đầu cho attention của backbone.

Mô hình được tổ chức thành tám module, mỗi module gồm sáu lớp. Một module điển hình chứa năm lớp SWA tiếp theo là một lớp DSA, trong khi lớp đầu tiên của module đầu tiên cũng được thay thế bằng DSA. DSA sử dụng attention truy vấn theo nhóm với bốn nhóm key-value, được gọi là GQA4, và bộ lập chỉ mục có 16 đầu truy vấn.

Thiết kế này giữ cho phần lớn phép tính attention mang tính cục bộ, đồng thời cho phép thông tin được chọn từ ngữ cảnh dài ảnh hưởng đến quá trình sinh văn bản. Toàn bộ bộ nhớ đệm key-value vẫn được giữ lại, nhưng backbone chỉ attention đến các token DSA đã được chọn.

Yêu cầu về phần cứng và cài đặt

Naive-N0.5-Flash yêu cầu GPU NVIDIA tương thích FP8. Trọng số mô hình chiếm khoảng 315 GB, và bạn nên dành thêm bộ nhớ GPU cho quá trình suy luận.

README cung cấp hướng dẫn bắt đầu nhanh dựa trên Transformers. Hãy cài đặt phiên bản Transformers gần đây cùng với PyTorch và các kernel cần thiết:

pip install "transformers[torch,kernels]>=5.17.0"

Chạy mô hình với Transformers

Sau khi cài đặt các phần phụ thuộc và bảo đảm có đủ tài nguyên GPU cần thiết, hãy tải checkpoint FP8 từ Hugging Face. Ví dụ sau tạo tokenizer, tải mô hình, định dạng tin nhắn của người dùng và sinh phản hồi:

from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "NaiveAI/Naive-N0.5-Flash-FP8"
tokenizer = AutoTokenizer.from_pretrained(
    model_id,
    trust_remote_code=True,
)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    trust_remote_code=True,
    dtype="auto",
    device_map="auto",
)

inputs = tokenizer.apply_chat_template(
    [{"role": "user", "content": "Hello!"}],
    add_generation_prompt=True,
    return_dict=True,
    return_tensors="pt",
).to(model.device)

output = model.generate(
    **inputs,
    max_new_tokens=2048,
)
response = tokenizer.decode(
    output[0, inputs["input_ids"].shape[1]:],
    skip_special_tokens=True,
)
print(response)

Ví dụ hoạt động như thế nào

  1. Chọn checkpoint: NaiveAI/Naive-N0.5-Flash-FP8 xác định mô hình FP8 trên Hugging Face.
  2. Tải tokenizer: trust_remote_code=True cho phép sử dụng mã Transformers tùy chỉnh của kho mô hình.
  3. Tải mô hình: dtype="auto" cho phép Transformers sử dụng kiểu dữ liệu phù hợp của checkpoint, trong khi device_map="auto" phân bổ các thành phần mô hình trên những thiết bị hiện có.
  4. Định dạng cuộc hội thoại: apply_chat_template chuyển tin nhắn của người dùng sang định dạng mà mô hình yêu cầu và thêm lời nhắc sinh văn bản.
  5. Sinh văn bản: max_new_tokens=2048 giới hạn số token mới được sinh.
  6. Chỉ giải mã phản hồi: Phần cắt bắt đầu sau độ dài đầu vào sẽ loại bỏ lời nhắc ban đầu trước khi in văn bản được sinh.

Cài đặt sinh văn bản được khuyến nghị

Đối với mục đích sử dụng thông thường, dự án khuyến nghị đặt temperature=1.0 và top_p=0.95. Các giá trị này không có trong ví dụ README tối giản, nhưng bạn có thể truyền chúng vào generate khi muốn chỉ rõ hành vi lấy mẫu:

output = model.generate(
    **inputs,
    max_new_tokens=2048,
    temperature=1.0,
    top_p=0.95,
)

Hãy sử dụng giá trị max_new_tokens phù hợp với tác vụ. Giới hạn lớn hơn có thể tạo ra câu trả lời dài hơn và cần nhiều thời gian, bộ nhớ hơn để sinh.

Các lưu ý khi sử dụng nâng cao

Sử dụng ngữ cảnh dài có chủ đích

Cửa sổ ngữ cảnh 1 triệu token được hỗ trợ nguyên bản thông qua kiến trúc SWA–DSA lai. Đối với các codebase lớn, tài liệu nghiên cứu hoặc tác vụ nhiều tệp, hãy cung cấp ngữ cảnh liên quan theo cách có cấu trúc và giữ hướng dẫn rõ ràng. Kiến trúc này được thiết kế để duy trì chi tiết cục bộ thông qua SWA, đồng thời chọn lọc lịch sử quan trọng thông qua DSA.

Lập kế hoạch dung lượng GPU trước khi tải

Checkpoint chiếm khoảng 315 GB trước khi tính đến bộ nhớ suy luận bổ sung. Hãy xác minh rằng thiết lập GPU NVIDIA hỗ trợ FP8 của bạn có đủ dung lượng trước khi khởi chạy mô hình. Tính năng tự động phân bổ thiết bị thông qua device_map="auto" có thể phân phối mô hình trên các thiết bị khả dụng, nhưng không làm giảm tổng bộ nhớ mà checkpoint và thời gian chạy yêu cầu.

Cân nhắc suy luận được tối ưu hóa

README mô tả NaiveRT là hệ thống suy luận được tối ưu hóa của dự án. Các kỹ thuật của hệ thống gồm hợp nhất mega-kernel, Programmatic Dependent Launch và giải mã suy đoán. Nếu bạn cần thông lượng cao hơn một triển khai Transformers cơ bản, hãy tham khảo blog kỹ thuật của dự án để xem nghiên cứu tình huống về NaiveRT và thông tin chi tiết về cách triển khai.

Xem xét bối cảnh benchmark

Các đánh giá được công bố bao quát hoạt động lập trình, kỹ thuật phần mềm, tác vụ tác nhân, nghiên cứu AI và tối ưu hóa hệ thống. Nhìn chung, kết quả được đánh giá bằng Claude Code 2.1.207, cửa sổ ngữ cảnh 1M token, temperature 1.0, top-p 0.95 cùng các công cụ I/O tệp và Bash cơ bản, trừ khi có ghi chú khác. Hãy xem các so sánh benchmark là phụ thuộc vào harness và quy trình đánh giá được nêu rõ.

Giấy phép và tài nguyên bổ sung

Naive-N0.5-Flash được phát hành theo Giấy phép MIT. Để xem các bản phát hành mô hình và dự án liên quan, hãy truy cập tổ chức NaiveAI trên GitHub hoặc trang hồ sơ NaiveAI trên Hugging Face. Thông tin kỹ thuật nền tảng về kiến trúc, quy trình huấn luyện và các tối ưu hóa suy luận có trên blog kỹ thuật của dự án.

Kết luận

Naive-N0.5-Flash kết hợp thiết kế MoE với 309B tham số, trong đó 15.5B tham số được kích hoạt, cơ chế attention SWA–DSA lai và cửa sổ ngữ cảnh gốc 1M token. Để dùng thử cục bộ, hãy cài đặt Transformers cùng các kernel cần thiết, sử dụng phần cứng NVIDIA hỗ trợ FP8 với khoảng 315 GB cho trọng số, tải checkpoint trên Hugging Face và tạo phản hồi bằng các thiết lập lấy mẫu được khuyến nghị.