17 điểm bởi GN⁺ 2026-03-13 | 1 bình luận | Chia sẻ qua WhatsApp
  • bitnet.cpp của Microsoft là khung suy luận chính thức cho mô hình ngôn ngữ lớn (LLM) 1 bit, hỗ trợ suy luận nhanh và không mất mát trên CPU và GPU
  • Đạt tăng tốc 1.37~5.07 lầngiảm 55.4~70% điện năng tiêu thụ trên CPU ARM, cùng tăng tốc 2.37~6.17 lầngiảm 71.9~82.2% điện năng tiêu thụ trên CPU x86
  • Bổ sung triển khai kernel song song và lượng tử hóa embedding, mang lại cải thiện hiệu năng thêm 1.15~2.1 lần so với trước đây
  • Có thể chạy mô hình BitNet b1.58 ở tốc độ 5~7 token/giây trên một CPU đơn lẻ, mở rộng khả năng vận hành mô hình siêu lớn trong môi trường cục bộ
  • Được phát triển dựa trên llama.cppT-MAC, góp phần mở rộng hệ sinh thái mã nguồn mở nhằm tối ưu hiệu quả suy luận LLM low-bit

Tổng quan về bitnet.cpp

  • bitnet.cpp là khung suy luận chính thức dành cho LLM 1 bit (ví dụ: BitNet b1.58), cung cấp kernel tối ưu hóa cho CPU và GPU
    • Hỗ trợ NPU sẽ được bổ sung trong tương lai
  • Bản phát hành đầu tiên hỗ trợ suy luận trên CPU và đã chứng minh cải thiện tốc độ lẫn hiệu quả năng lượng trên cả kiến trúc ARM và x86
    • CPU ARM: tăng tốc 1.37~5.07 lần, giảm 55.4~70% điện năng tiêu thụ
    • CPU x86: tăng tốc 2.37~6.17 lần, giảm 71.9~82.2% điện năng tiêu thụ
  • Có thể chạy mô hình BitNet b1.58 100B tham số ở tốc độ 5~7 token/giây trên một CPU đơn lẻ

Tối ưu hóa mới nhất

  • Đã bổ sung triển khai kernel song song, cùng các tính năng cấu hình tiling và lượng tử hóa embedding, đạt tăng tốc bổ sung 1.15~2.1 lần so với trước đây
  • Xác nhận cải thiện hiệu năng trên nhiều nền tảng phần cứng và workload khác nhau
  • Nội dung kỹ thuật chi tiết được cung cấp trong tài liệu optimization guide

Demo và mô hình chính thức

  • Cung cấp demo chạy mô hình BitNet b1.58 3B trên Apple M2
  • Mô hình chính thức BitNet-b1.58-2B-4T đã được công bố trên Hugging Face và được hỗ trợ trên CPU x86 và ARM
  • Các mô hình được hỗ trợ gồm bitnet_b1_58-large(0.7B), bitnet_b1_58-3B(3.3B), Llama3-8B-1.58, Falcon3, và dòng Falcon-E

Cài đặt và build

  • Yêu cầu: Python 3.9 trở lên, CMake 3.22 trở lên, Clang 18 trở lên
    • Người dùng Windows cần cài đặt Visual Studio 2022
    • Người dùng Debian/Ubuntu được cung cấp script cài đặt tự động
  • Khuyến nghị sử dụng môi trường Conda, và có thể thiết lập môi trường mô hình bằng setup_env.py
  • Sau khi tải mô hình từ Hugging Face, có thể chạy bằng đường dẫn cục bộ

Cách dùng và benchmark

  • Dùng run_inference.py để chạy suy luận mô hình đã lượng tử hóa
    • Các tham số chính: đường dẫn mô hình (-m), prompt (-p), số luồng (-t), kích thước ngữ cảnh (-c), nhiệt độ (-temp)
  • Có thể đo hiệu năng bằng script e2e_benchmark.py bằng cách chỉ định số token, độ dài prompt, số luồng
  • Nếu không có mô hình công khai, có thể dùng generate-dummy-bitnet-model.py để tạo mô hình giả rồi benchmark

Chuyển đổi mô hình và FAQ

  • Cung cấp script để chuyển đổi checkpoint .safetensors sang định dạng gguf
  • Trong FAQ có hướng dẫn cách xử lý lỗi build llama.cpp (liên quan đến std::chrono)thiết lập môi trường clang trên Windows
    • Cần khởi tạo môi trường từ Visual Studio Developer Command Prompt hoặc PowerShell

1 bình luận

 
GN⁺ 2026-03-13
Ý kiến từ Hacker News
  • Microsoft thực tế đang dùng 2 bit chứ không phải 1.58 bit
    Trong trường hợp này có thể biểu diễn bốn giá trị -1, 0, 1, 2
    Xét việc các khớp thần kinh ức chế chiếm 20~30%, tôi nghĩ cấu trúc này khá phù hợp với cấu trúc của não sinh học

    • Tôi muốn được giải thích thêm về câu thứ ba, tức đoạn “các khớp thần kinh ức chế chiếm 20~30%”
  • Tôi thường tự hỏi một “LLM tối thiểu đủ dùng” sẽ trông như thế nào
    Tức là một mô hình chỉ có lượng thông tin tối thiểu, còn lại có thể bù bằng cách tìm trên Google mà vẫn đưa ra câu trả lời đủ hợp lý
    Nếu những nơi như Encyclopedia Britannica bán dữ liệu cho LLM và cung cấp dịch vụ xác minh kết quả, có lẽ sẽ tạo ra khác biệt lớn
    Wikipedia cũng tốt, nhưng đáng tiếc là có nhiều sai sót và thiên kiến của con người

    • Video ngắn của Andrej Karpathy có nói về chủ đề này
      Các LLM nhỏ đang phát triển theo hướng đó, và dù thiếu kiến thức phổ thông, khả năng dùng công cụ (ví dụ: tìm Google) đang ngày càng tốt hơn
      Tuy nhiên, việc phân biệt rõ cái gì mình biết và không biết vẫn là một vấn đề khó
    • Điều tôi hình dung không hẳn là “LLM tối thiểu đủ dùng”, mà là một LLM giỏi ngôn ngữ nhưng gần như không có kiến thức
      Giống như một kỹ sư không biết về một thiết bị cụ thể: có khả năng giải quyết vấn đề nhưng thiếu kiến thức chi tiết
      Tôi không chắc mô hình như vậy có thể giải quyết đơn thuần bằng tìm Google hay tra wiki hay không, nhưng kiến trúc edge LLM có lẽ sẽ trở thành tiêu chuẩn trong tương lai
    • Năng lực suy luận rốt cuộc vẫn phụ thuộc vào lượng thông tin trong quá trình học
      Thông tin càng có trong dữ liệu huấn luyện thì việc tìm lại và diễn giải càng dễ
      Vì vậy, huấn luyện theo kiểu dựa vào bộ nhớ ngoài (tìm kiếm v.v.) thay vì ghi nhớ nội bộ có thể sẽ thực dụng hơn
    • Lo ngại về sai sót và thiên kiến của Wikipedia nhưng đồng thời lại cho rằng một LLM có thể truy cập web sẽ tốt hơn thì có vẻ mâu thuẫn
      Cá nhân tôi lại nghĩ ngược lại
    • Kết quả có lẽ sẽ khác tùy vào việc cụm “câu trả lời hợp lý” cụ thể ám chỉ mức độ nào
  • Theo bài báo gốc (pdf), cần khoảng 4~5 lần số tham số so với mô hình fp16
    Có thể tự build thử, nhưng vì phải huấn luyện từ đầu nên lựa chọn khá hạn chế
    Dù vậy, dự kiến tốc độ suy luận sẽ nhanh hơn các mô hình lượng tử hóa 4 bit·8 bit mới nhất

  • Điểm cốt lõi thật sự là hiệu quả tiết kiệm năng lượng
    Người ta nói rằng có thể giảm 70~82% khi suy luận trên CPU
    Nếu mô hình 1 bit trở nên đủ tốt, sẽ có thể chạy LLM trên phần cứng phổ thông mà không cần GPU, và điều đó sẽ thay đổi cục diện khả năng tiếp cận

  • Dù bitnet.cpp được gọi là framework suy luận chính thức cho 1-bit LLM (BitNet b1.58 v.v.),
    vẫn có sự nhầm lẫn giữa “1 bit hay 1 trit”

    • “1-bit LLM” gần như là một thuật ngữ marketing, còn thực tế nó dùng 3 trạng thái (-1, 0, 1) nên tương ứng với 1.58 bit
    • Vì log₂(3)≈1.58, đây không phải mô hình 2 trạng thái (1 bit) mà là mô hình 3 trạng thái (1.58 bit)
      Trộn lẫn hai khái niệm này gây ra nhầm lẫn
  • Thật vui khi thấy dự án này vẫn tiếp tục được phát triển
    Năm ngoái tôi đã đọc bài viết liên quan và thấy có tiềm năng, nhưng tiếc là không có mô hình mới nào xuất hiện

    • Nhưng cách tiếp cận này rốt cuộc vẫn chỉ là lượng tử hóa mô hình chính xác cao, nên suy luận có nhanh hơn nhưng huấn luyện thì không
      Điều thực sự thú vị là hướng huấn luyện trực tiếp mô hình nhị phân mà không cần phép toán số thực dấu chấm động
      Có bài báo liên quan tại NeurIPS 2024
  • Việc nói “có thể chạy 100B BitNet” không có nghĩa là mô hình đó tồn tại, mà là framework suy luận cho nó là khả thi

    • Có vẻ họ thực ra đã dùng mô hình giả lập
      Dù tìm “1-bit 100b model” cũng không có mô hình nào có thể tải về
  • Chất lượng đầu ra của mô hình gần với kiểu lẩm bẩm ở mức GPT-2, và lặp lại nguyên cả đoạn văn
    Thậm chí nó còn liên tục tái sử dụng những trích dẫn giả như (Jenkins, 2010)

    • Tuy vậy, đây là một mô hình nền 3B tham số từ 2 năm trước, phiên bản nghiên cứu chỉ được huấn luyện với 100B token
  • Tiêu đề gây hiểu nhầm
    Thực tế đây không phải mô hình 100B đã được huấn luyện, mà là framework suy luận có thể xử lý nó
    Tôi đang chạy mô hình lượng tử hóa 70B trên M2 Max 96GB bằng llama.cpp + LiteLLM, và băng thông bộ nhớ là nút thắt cổ chai
    Cách tiếp cận 1.58 bit có cấu trúc biến nhân ma trận thành phép cộng, nên trên CPU nó có mô hình tính toán khác về bản chất
    Nếu có thể chạy mô hình cỡ 100B ở tốc độ 5~7 token mỗi giây trên một lõi CPU duy nhất, đó sẽ là bước ngoặt của suy luận on-device
    Framework đã sẵn sàng, giờ chỉ còn cần ai đó thực sự huấn luyện mô hình

    • Nếu Microsoft trong 2 năm mà vẫn chưa tự huấn luyện được mô hình, tôi thấy khó tin hoàn toàn vào tuyên bố của họ
    • Dù nói là “mô hình mới”, nhưng trọng số trên Hugging Face đã được đăng từ 11 tháng trước và chỉ ở mức 2B tham số
      Thành quả thực tế khá nghèo nàn so với mức độ quảng bá
    • Phép toán 2 bit có chi phí triển khai phần cứng rất rẻ, nên nếu làm chip chuyên dụng thì có thể suy luận mạnh mà không cần GPU
      Dù huấn luyện vẫn cần GPU, phần cứng dành cho suy luận có thể trở nên đơn giản hơn nhiều
    • Tốc độ 5~7 token mỗi giây vẫn chậm hơn tốc độ đọc thực tế
      Tôi từng dùng mô hình xuất ra ở mức 7 token/giây, và có cảm giác bực bội như đang đi sau một người đi chậm
      Trong môi trường local, nên nhắm ít nhất từ 10 token/giây trở lên
    • Tôi có chút nghi ngờ với nhận định rằng “mô hình tính toán trên CPU khác về bản chất”
      Lệnh FMA (Fused Multiply-Add) trên CPU hiện đại có throughput gần như tương đương với phép cộng đơn giản
  • Tôi tò mò khi nào các PC tích hợp NPU mới thật sự bắt đầu cho ra kết quả rõ rệt
    AMD đang có kết quả tốt với các kernel suy luận lai NPU/iGPU
    Nếu các mô hình lớn như thế này chạy được trên NPU, hiệu quả điện năng sẽ tốt hơn CPU rất nhiều

    • Gần đây tôi chạy OpenAI Whisper trên CPU, rồi thử bản tối ưu cho Intel NPU thì thấy nhanh hơn 6 lần và êm hơn hẳn
      Từ đó tôi thành fan của NPU. Tất nhiên nó không phải cỡ RTX 5090, nhưng hiệu quả hơn CPU rất nhiều
    • Ngay cả trên NPU của SBC Rockchip RK3588 cũng đã có thể chạy LLM nhỏ
      Hệ sinh thái phần mềm còn chưa ổn định, nhưng nó hoạt động với mức sử dụng CPU/GPU gần như bằng 0
    • Tuy vậy, tôi vẫn nghi ngờ liệu NPU có thực sự mạnh đến thế không
      Tôi vẫn nghĩ chúng được thiết kế chủ yếu cho mức điện năng thấp