- 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
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ó 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 dosẽ chạytoolcli --help summary, còntoolcli add tom to teamfutz groupsẽ thànhtoolcli --gadd teamfutz tomTuy 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ẻ
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
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
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 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
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ệ
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