MarkTechPost
85

Sản phẩm

Nhóm phát triển Qwen ra mắt zg: Công cụ tìm kiếm cục bộ kết hợp ripgrep, BM25 và vector

(giờ Việt Nam)

Tóm tắt AI

Đội ngũ Qwen vừa phát hành mã nguồn mở zg, một công cụ tìm kiếm cục bộ tích hợp ripgrep, BM25 và tìm kiếm vector vào một giao diện duy nhất, hỗ trợ chạy mượt mà không cần GPU.

Bản dịch AI

Qwen Developers Open-Sources zg (zvec-grep): A Local-First Search Layer Unifying ripgrep, BM25, and Vector Search

Các coding agent tiêu tốn một phần lớn ngân sách công cụ của chúng cho việc tìm kiếm. Khi mục tiêu là một ký hiệu (symbol) đã biết, ripgrep sẽ trả về kết quả chính xác. Khi mục tiêu là một hành vi được mô tả bằng ngôn ngữ tự nhiên, việc khớp từ khóa thường không hiệu quả, và agent buộc phải quay sang đoán các thuật ngữ, đọc toàn bộ tệp tin và tự lắp ghép ngữ cảnh theo cách thủ công. Mỗi bước đường vòng như vậy đều tiêu tốn các lệnh gọi công cụ, token và thời gian thực tế.

Đội ngũ Qwen Developer đã công bố zg (zvec-grep), một lớp tìm kiếm cục bộ (local-first) mã nguồn mở, tích hợp tìm kiếm ngữ nghĩa (semantic search), BM25 và ripgrep vào một giao diện duy nhất cho cả con người và agent. Mã nguồn được phát hành dưới tổ chức zvec-ai trên GitHub với giấy phép Apache 2.0.

Có thể triển khai được không? Có, ngay bây giờ. Nó được cài đặt từ npm dưới tên @zvec/zvec-grep, yêu cầu Node.js 22 trở lên trên macOS, Linux hoặc Windows, không cần GPU với mô hình mặc định và giấy phép Apache 2.0 cho phép sử dụng cho mục đích thương mại.

Một chỉ mục, bốn lộ trình truy xuất

zg lập chỉ mục workspace một lần và sau đó cung cấp nhiều cách để truy vấn. Tài liệu về pipeline truy xuất xác định bốn lộ trình: mặc định kết hợp ý định (intent) với các neo từ vựng (lexical anchors), --fts cho các thuật ngữ chính xác được xếp hạng theo BM25, --vector cho sự tương đồng về khái niệm mà không cần xếp hạng từ vựng, và --rg cho việc khớp ký tự hoặc regex toàn diện. Ba lộ trình đầu tiên đọc từ chỉ mục. Lộ trình --rg không cần chỉ mục, điều này rất quan trọng khi repository chưa được lập chỉ mục.

Chỉ mục workspace ẩn nằm tại <root>/.zvec-grep/. Cả.git và.zvec-grep đều luôn bị loại trừ, cùng với các thư mục dependency, build, cache và log thông thường, cộng với bất kỳ thứ gì bị loại trừ bởi các quy tắc ignore của chính repository đó. Việc chạy lại zg index sẽ cập nhật theo kiểu tăng dần; thay đổi mô hình embedding yêu cầu một lệnh --rebuild rõ ràng vì không gian vector từ các mô hình khác nhau không tương thích ngay cả khi có cùng số chiều.

Các kết quả được lập chỉ mục sẽ báo cáo trạng thái độ mới là fresh (mới) hoặc possibly_stale (có thể đã cũ), vì vậy agent có thể hành động dựa trên một kết quả "đủ tốt" thay vì phải chạy kiểm tra trạng thái trước đó.

Giao diện MCP mà các agent thực sự nhìn thấy

zg install tự động phát hiện Codex, Claude Code, Cursor và OpenCode trên máy và thiết lập tích hợp MCP cục bộ. Server sử dụng giao thức Streamable HTTP MCP trên endpoint loopback tại http://127.0.0.1:7999/mcp, với tùy chọn xác thực bearer.

Một quyết định thiết kế đáng chú ý là sự tiết chế. Theo hướng dẫn của MCP, bộ công cụ mặc định của agent chỉ cung cấp đúng hai công cụ: zvec_grep_search khi đã biết ý định nhưng chưa biết chuỗi ký tự chính xác, và zvec_grep_rg khi đã biết ký hiệu, đường dẫn hoặc regex. Vòng đời của chỉ mục nằm ở CLI. Một bộ tương thích gồm sáu công cụ bổ sung các tính năng tạo, xóa, kiểm tra trạng thái chỉ mục và trạng thái server tồn tại dưới dạng tùy chọn thông qua zg server --mcp-toolset full, và tài liệu nêu rõ rằng agent không bao giờ được tự ý tạo, xây dựng lại hoặc xóa chỉ mục cố định.

Đầu ra được định hình để tối ưu hóa ngữ cảnh. Kết quả trả về được nhóm theo tệp tin với các đoạn dòng, và các bản xem trước nguồn được lập chỉ mục sẽ bị lược bỏ theo mặc định trừ khi được yêu cầu. zg cũng từ chối các cờ ripgrep làm thay đổi đầu ra như --json, --count, -l và --vimgrep để giữ định dạng kết quả gọn nhẹ.

Embeddings chạy trên thiết bị theo mặc định

Danh mục embedding hiện liệt kê mười mô hình cục bộ và ba endpoint Qwen từ xa. Mặc định cho khởi động nhanh, local/potion-code-16m-v2, là một mô hình tĩnh Model2Vec với đầu ra 256 chiều và giới hạn đầu vào 8.192 token; vì nó sử dụng tra cứu vector tĩnh, việc chọn GPU không làm tăng tốc độ xử lý. Các tùy chọn cục bộ nặng hơn bao gồm jina-embeddings-v2-base-code, embeddinggemma-300m và qwen3-embedding-0.6b. Các tùy chọn từ xa bao gồm qwen/qwen3.7-text-embedding với 128.000 token đầu vào và mô hình đa phương thức qwen/qwen3-vl-embedding.

Việc sử dụng từ xa được kiểm soát. Việc cấu hình thông tin xác thực nhà cung cấp không cho phép truyền dữ liệu; điều đó yêu cầu hoặc --allow-remote cho một lệnh đơn lẻ hoặc một quyền workspace đã ký thông qua zg auth grant, có thể thu hồi bằng zg auth revoke. Bài viết ra mắt đề cập đến mười một mô hình trên thiết bị so với mười mô hình trong tài liệu hiện tại, một sự khác biệt nhỏ đáng lưu ý.

Các con số benchmark nói lên điều gì

Các con số đánh giá xuất hiện trong bài viết ra mắt, không phải trong repository, nơi phần benchmarks vẫn chỉ là một chỗ trống. Cả hai lần chạy đều là các bài kiểm tra A/B có đối chứng, giữ cố định các ràng buộc về agent, mô hình, prompt, runtime và tác vụ, với điều kiện zg chỉ bổ sung thêm chỉ mục được xây dựng sẵn, các công cụ MCP và hướng dẫn sử dụng. Chi phí xây dựng chỉ mục bị loại trừ khỏi các bảng.

Trên mẫu 20 câu hỏi của SWE-QA-Bench, zg đã cắt giảm hơn một nửa số lệnh gọi công cụ và gần một nửa số token đầu vào, đồng thời nâng điểm Judge thêm 1,50 điểm. Trên mẫu 80 câu hỏi của BrowseComp-Plus, độ chính xác tăng từ 98,67% lên 99,00% trong khi token đầu vào giảm 37,56%, lệnh gọi công cụ giảm 43,52% và thời gian của agent giảm 38,58%. Ngoài ra, việc lập chỉ mục repository Django (3.457 tệp) được báo cáo là hoàn thành trong dưới 30 giây trên Apple M4 Pro.

Kích thước mẫu 20 và 80 câu hỏi là nhỏ, và các mức giảm được báo cáo đến từ các lần chạy của chính nhà cung cấp, vì vậy việc kiểm chứng độc lập là bước tiếp theo cần thiết.

Trình giải thích tương tác

Những điểm chính cần lưu ý

Hãy xem qua zvec-ai/zvec-grep, bài viết ra mắt của Qwen Developers và Roadmap. Ngoài ra, hãy theo dõi chúng tôi trên Twitter và đừng quên tham gia SubReddit ML 150k+ của chúng tôi và đăng ký nhận Bản tin. Khoan đã! bạn có dùng Telegram không? giờ đây bạn cũng có thể tham gia cùng chúng tôi trên Telegram.

Bạn cần hợp tác với chúng tôi để quảng bá GitHub Repo, trang Hugging Face, bản phát hành sản phẩm hoặc hội thảo trực tuyến, v.v.? Hãy kết nối với chúng tôi.

Michal Sutter là một chuyên gia khoa học dữ liệu với bằng Thạc sĩ Khoa học Dữ liệu từ Đại học Padova. Với nền tảng vững chắc về phân tích thống kê, học máy và kỹ thuật dữ liệu, Michal xuất sắc trong việc chuyển đổi các tập dữ liệu phức tạp thành những thông tin chi tiết có thể hành động được.

Đọc bài gốc

Bài viết được AI dịch và tổng hợp tự động từ MarkTechPost. Liên kết bài gốc ở phía trên. Dữ liệu đồng bộ qua API công khai được ghi nguồn tại AI HOT (canonical) ↗. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.