1 điểm bởi GN⁺ 1 giờ trước | 1 bình luận | Chia sẻ qua WhatsApp
  • Needle là một mô hình thử nghiệm chưng cất Gemini 3.1 thành Simple Attention Network với 26 triệu tham số, thậm chí có thể tinh chỉnh cục bộ trên Mac/PC
  • Mục tiêu là định nghĩa lại AI nhỏ dùng trên thiết bị tiêu dùng như điện thoại, đồng hồ, kính, và tập trung vào gọi công cụ thực thi đơn cho AI cá nhân
  • Trong môi trường production, nó chạy trên Cactus và đạt prefill 6000 toks/sec, decode 1200
  • Trọng số được công khai đầy đủ tại Cactus-Compute/needle, đồng thời cũng công bố cả phần tạo bộ dữ liệu
  • Tiền huấn luyện được thực hiện trong 27 giờ với 16 TPU v6e trên 200B token, và huấn luyện tiếp theo diễn ra trong 45 phút với bộ dữ liệu 2B token cho gọi hàm thực thi đơn
  • Với gọi hàm thực thi đơn, mô hình được giới thiệu là tốt hơn FunctionGemma-270m, Qwen-0.6B, Graninte-350m, LFM2.5-350m, nhưng các mô hình đó có phạm vi rộng hơn, dung lượng lớn hơn và mạnh ở thiết lập hội thoại
  • Vì mô hình nhỏ có thể khó xử lý, nhóm phát triển khuyến nghị dùng web UI được cung cấp để thử với công cụ của riêng bạn và tinh chỉnh tùy chỉnh chỉ bằng cách bấm nút
  • needle playground mở web UI tại http://127.0.0.1:7860, và trọng số sẽ được tự động tải xuống để dùng cho thử nghiệm và tinh chỉnh
  • Khi dùng Python, bạn có thể truyền truy vấn và schema công cụ bằng SimpleAttentionNetwork, load_checkpoint, generate, get_tokenizer để tạo JSON gọi công cụ như get_weather
  • CLI cung cấp playground, finetune, run, train, pretrain, eval, tokenize, generate-data, tpu để xử lý suy luận, huấn luyện, đánh giá, tạo dữ liệu và quản lý TPU
  • Cấu hình mô hình là d=512, 8H/4KV, BPE=8192, sử dụng encoder 12 lớp và decoder 8 lớp, cùng GQA+RoPE, cross attention, gated residual, tied linear, shared embedding

1 bình luận

 
Ý kiến trên Hacker News
  • Tò mò không biết có ví dụ hay dữ liệu nào về khả năng phân biệt của mô hình dùng công cụ không
    Ví dụ kiểu như “thời tiết ở San Francisco thế nào”, còn công cụ được truyền vào là cỡ tools='[{"name":"get_weather","parameters":{"location":"string"}}]'
    Hơn 10 năm trước tôi từng làm một thứ[1] có thể xử lý bài toán này bằng SPARQL và knowledge graph
    Điều tôi thực sự tò mò là nó xử lý độ mơ hồ tốt đến mức nào
    Nếu gửi một tin nhắn như “mai 10 giờ gặp nhau uống cà phê nhé” và một lệnh như “lưu cái này lại”, liệu nó có thể chọn hành động “thêm lịch” trong số vài chục công cụ khả dĩ, dù không đến hàng trăm, hay không
    [1] https://github.com/nlothian/Acuitra/wiki/About

    • Tôi đã thử với bản Hugging Face được liên kết bên dưới nhưng không thấy ấn tượng
      Prompt là “tôi phải báo với sếp là mình sẽ đến muộn”, và kết quả là 20mins [{"name":"set_timer","arguments":{"time_human":"20 minutes"}}]
      Nó không dùng công cụ email, và tôi cũng thử hỏi theo 2–3 cách khác nhưng kết quả tương tự
  • Tò mò không biết có lo ngại phản ứng từ Google không
    Được biết Google phản ứng với các nỗ lực chưng cất bằng “các biện pháp phòng vệ chủ động theo thời gian thực có thể làm giảm hiệu năng của mô hình học sinh”
    Nếu bị phát hiện, có thể họ đã cố tình cho ăn một biến thể Gemini ngu hơn nhưng vẫn có vẻ hợp lý: https://cloud.google.com/blog/topics/threat-intelligence/dis...
    Tuy vậy, mô hình này nhỏ và chỉ tập trung vào dùng công cụ, nên về lượng token tiêu thụ có lẽ còn chưa chạm tới mức của những người muốn chưng cất cả một mô hình đầy đủ

    • Cũng có thể chưng cất từ mô hình Gemma chạy local, hoặc từ các mô hình khác có khả năng dùng công cụ
    • Xét từ góc độ dữ liệu huấn luyện thì cũng hơi giống kiểu ăn trộm của kẻ trộm
  • Có thể sắp trở nên khả thi để tạo những thứ như chương trình dòng lệnh cho phép chỉ định tham số một cách chọn lọc bằng ngôn ngữ tự nhiên
    Tất nhiên sẽ có nhiều người phản đối việc thêm 14MB và thêm tính toán chỉ để “parse”, và nếu ai cũng bắt đầu làm vậy thì có thể sẽ khá tệ
    Dù vậy, việc giờ đây điều đó đã khả thi thật sự rất thú vị
    Có thể đóng gói kèm một mô hình được fine-tune để hiểu cách dùng chương trình
    Ví dụ > toolcli what can you do sẽ chạy toolcli --help summary, còn toolcli add tom to teamfutz group sẽ thành toolcli --gadd teamfutz tom

    • Needle được huấn luyện cho INT4, và thứ bạn thấy trong playground cũng là INT4 nên chỉ có 14MB
      Tuy nhiên bài toán cốt lõi vẫn còn đó
  • Sẽ hay nếu công khai demo trực tiếp của “needle playground”
    Nó nhỏ như vậy thì chi phí chạy ở đâu đó trên một VPS nhỏ có vẻ cũng khá rẻ

    • Có lẽ cũng có thể làm nhanh và dễ bằng WebGPU
    • Vấn đề chỉ là khả năng mở rộng, và hạ tầng sẵn sàng dùng ngay vẫn chưa có
      Dù vậy ai cũng có thể làm được, và chạy ngay trên laptop cũng rất dễ
      Tôi cũng sẽ thử hướng VPS
    • Tôi sẽ đưa cái này lên chonklm.com
  • Nhận định “các tác vụ truy xuất không cần FFN” khá thú vị
    Nếu tri thức nằm trong ngữ cảnh thì gần như đó là lập luận rằng trọng số FFN là dư thừa cho tác vụ đó
    Tò mò không biết điều này có khái quát được sang gọi công cụ nhiều lượt nơi phải theo dõi trạng thái qua nhiều lần gọi hay không, hay là sẽ vỡ ở đó
    Gọi một lần là trường hợp dễ

  • Thú vị, và cũng khớp với quan sát tôi từng thấy khi dùng Claude Code thời kỳ đầu
    Sonnet thường gọi công cụ rất nhanh để thu thập thêm ngữ cảnh, còn Opus thì hay suy luận lâu hơn với ngữ cảnh sẵn có để giải quyết vấn đề
    Điều này tạo ra nhiều hàm trùng lặp và làm chậm phát triển, nhưng ở các model mới như GPT-5.5 và Opus 4.6 thì có vẻ vấn đề này đã giảm bớt
    Kết luận của tôi là model “ngu hơn”, tức nhỏ hơn, có thể lại tốt hơn để làm lớp vỏ thực thi agent, hoặc ít nhất là thực tế hơn khi chạy rẻ và nhanh cho nhiều bài toán
    Tôi không thấy Gemini đặc biệt giỏi ở những chuỗi gọi công cụ dài
    Sẽ thú vị nếu chưng cất từ các dấu vết có chuỗi gọi công cụ dài giữa các truy vấn người dùng, giống như các phiên Codex hay Claude Code thực tế
    Cá nhân tôi muốn có một mô hình lớn hơn chút, nhưng vẫn chạy dễ dàng trên thiết bị như M2 MacBook Pro 32GB, với mục tiêu chính là học tăng cường cho gọi công cụ
    Các mô hình trọng số mở như Kimi hay Qwen đang tiến gần tới đó, nhưng việc lượng tử hóa cần thiết để vừa với thiết bị nhỏ có vẻ làm giảm hiệu năng khá nhiều

    • Điểm cốt lõi là không chạy LLM trong vòng lặp lặp lại
      Trào lưu framework agent hiện nay là ngớ ngẩn, và theo tôi phần lớn tồn tại để tăng doanh thu cho các công ty LLM
      LLM nói chung có ích khá hạn chế, nhưng khi kết hợp với một lần dùng công cụ thì trở nên hữu ích và đáng tin cậy hơn nhiều
      Tôi tự xây một bộ công cụ rất cụ thể cho các tác vụ riêng trên API openrouter
      Kiểu nhấn nút để LLM làm một việc hữu ích, chứ không phải nhấn nút rồi hy vọng LLM chạy vòng lặp gọi công cụ trong 5 phút và xử lý đúng thứ tự
      Nếu cần nhiều lần gọi công cụ, tôi nối chúng một cách tất định trong code
      Có thể kiểm tra đầu ra của A rồi mới đi tiếp sang B hoặc C, nên đáng tin hơn nhiều, đồng thời hiệu quả hơn về thời gian và token
      Tôi xem các vòng lặp agent gần như là một trò lừa khổng lồ
    • Tôi ước các công ty AI khổng lồ đừng phí thời gian vá những lỗ hổng trong chính “công cụ” của họ như thế này
      Tôi không hiểu vì sao chúng ta lại phải cố xoay xở để làm cho nó “chạy được” bằng mọi giá
      Google, MS, Meta, OpenAI và các bên khác giờ còn lén gọi công cụ của họ là “Intelligence”, thậm chí chẳng phải “Artificial Intelligence”, vậy thì tại sao nó không thông minh và tại sao nó không hoạt động
      Hơn 1 nghìn tỷ USD đã được đổ vào mà chúng ta vẫn phải nghĩ ra những câu thần chú prompt và cấu hình tối ưu chỉ để một máy tạo rác xuất ra thứ gì đó nửa vời còn tạm dùng được
      Trong khi một số lãnh đạo công nghệ còn công khai đe dọa bắt chúng ta quy phục trong những viễn cảnh “nền văn minh” kỳ quặc của họ
      Tôi nghĩ bộ não tốt hơn của chúng ta còn có chỗ để dùng, thay vì tự hạ mình thành trợ tá bất lực cho một thần dụ ma thuật
  • Kết quả thí nghiệm Cactus cho thấy “chừng nào mô hình còn phụ thuộc vào nguồn tri thức bên ngoài thì có thể loại bỏ hoàn toàn MLP khỏi mạng transformer” nghe rất thú vị
    Tình cờ là hôm nay một sinh viên của tôi cũng vừa trình bày kết quả nghiên cứu xác nhận điều này
    Khi loại bỏ MLP khỏi Qwen, mô hình vẫn còn làm được các tác vụ biến đổi trên đầu vào, nhưng mất tri thức

  • Sự khác biệt giữa M và B quá dễ gây nhầm
    Tôi đề xuất viết là 0.026B

    • Cách ghi “M” đã có từ ít nhất thời BERT và T5/FLAN
      Dù các nhà phát triển LLM ngày nay quen hơn với mô hình hàng tỷ tham số, cách ghi này vẫn hợp lệ
    • Tôi đã thấy rất nhiều bình luận trong bài này quá khó hiểu, và nhờ vậy mới nhận ra là một số người đọc nó thành 26B nên bình luận mới trở nên vô nghĩa
  • Rất đáng mong đợi, làm tốt lắm
    Các model edge của Gemma4 từng được hứa hẹn là tốt cho use case agent, nhưng trong mọi bài test tôi thử thì thực sự rất thất vọng
    Nó thất bại ngay cả ở những kịch bản dùng công cụ cơ bản nhất
    Tò mò không biết bạn đã chạy benchmark dùng công cụ cho Needle chưa, hoặc có kế hoạch làm không
    Nếu có thì sẽ rất hay nếu thêm kết quả vào repo

  • Tôi vừa thử đặt báo thức và thêm đồ vào danh sách mua sắm, và nó làm tốt hơn Siri