MarkTechPost
88

Sản phẩm

Reflex ra mắt XY: Thư viện vẽ biểu đồ Python siêu tốc bằng Rust, xử lý mượt mà 100 triệu điểm dữ liệu

(giờ Việt Nam)

Tóm tắt AI

Reflex giới thiệu XY, thư viện vẽ biểu đồ 2D tương tác mã nguồn mở sử dụng lõi Rust và WebGL2, cho phép hiển thị và tương tác mượt mà với tập dữ liệu lên tới 100 triệu điểm chỉ trong 0,08 giây.

Bản dịch AI

Reflex Open Sources XY: A Rust-Backed Super-Fast Python Charting Library That Keeps 100 Million Point Charts Interactive

Reflex AI vừa ra mắt XY, một thư viện biểu đồ Python theo giấy phép Apache-2.0 dành cho trực quan hóa 2D tương tác. Hầu hết các bộ thư viện biểu đồ Python tạo ra một đối tượng có thể vẽ cho mỗi hàng, vì vậy khi vượt quá vài trăm nghìn điểm, tốc độ render, di chuột và thu phóng sẽ bị suy giảm. XY chuyển công việc này vào một lõi Rust nguyên bản, gửi các bộ đệm nhị phân có kiểu dữ liệu (typed binary buffers) đến trình duyệt thay vì JSON, và vẽ bằng WebGL2. Theo kết quả benchmark, XY duy trì tốc độ 0,071 giây ở mức 10.000 điểm và 0,081 giây ở mức 100 triệu điểm. Thư viện này được cài đặt qua lệnh `pip install xy` và yêu cầu Python 3.11 trở lên.

Có thể triển khai được không?

XY hiện đang ở giai đoạn alpha sớm với phiên bản 0.0.1. Thư viện được cài đặt qua lệnh `pip install xy` và yêu cầu Python 3.11 trở lên.

Điều đó xác định rõ phạm vi triển khai. Các startup và đội ngũ dữ liệu quy mô vừa có thể áp dụng ngay cho phân tích nội bộ, notebook và các sản phẩm có thể chia sẻ. Các doanh nghiệp trong lĩnh vực được quản lý chặt chẽ nên thử nghiệm thay vì đưa vào quy trình quan trọng hướng tới khách hàng. XY phù hợp nhất ở những nơi số lượng hàng là nút thắt cổ chai thực sự: tài chính định lượng (dữ liệu tick), hệ gen và tin sinh học (biểu đồ Manhattan, quét tần số alen), khả năng quan sát và đo lường từ xa, thiên văn học và phân tích không gian địa lý. Dưới đây là cách cài đặt chỉ với 1 dòng lệnh.

Giải thích

Cách thức hoạt động của thang biểu diễn

XY lưu giữ các cột f64 chuẩn trong một ColumnStore trong Python và chọn một biểu diễn đã render cho mỗi trace. Các thiết lập mặc định hiện tại bắt đầu áp dụng kỹ thuật giảm mẫu (decimation) M4 trên 10.000 hàng đối với các đường kẻ dài có thứ tự, và mật độ phân tán tự động trên 200.000 điểm. Các lưới mật độ mặc định là 512×384 ô. Tài liệu nêu rõ rằng đây là các ngưỡng chính sách trước phiên bản 1.0, không phải là cam kết API.

Vì các giá trị chính xác vẫn nằm trong Python, các tính năng di chuột, lựa chọn và pick vẫn giải quyết được các hàng gốc khi tầng hoạt động có ánh xạ chính xác. Thu phóng vào một cửa sổ hẹp sẽ trả về các điểm hiển thị chính xác cho một cửa sổ căn chỉnh có đệm, và các thao tác lia máy gần đó sẽ render từ cửa sổ đã lưu trong bộ nhớ đệm mà không cần yêu cầu thêm. Reflex rất cẩn trọng để không thổi phồng: mật độ được phân nhóm (binned) nguyên bản và render bằng GPU, không phải là một pipeline nạp dữ liệu hoàn toàn bằng GPU, và việc nạp, phân nhóm và giảm mẫu vẫn tỷ lệ thuận với số lượng hàng nguồn.

Hiệu năng

Bài kiểm tra benchmark chạy mọi thư viện thông qua một trình duyệt thực và chỉ dừng đồng hồ khi canvas được xác minh là chính xác và ổn định qua 10 khung hình giống hệt nhau về byte. Các phép đo được thực hiện từ một máy Apple M5 Pro, mỗi ô chạy một lần.

Đây là mức tăng tốc được công bố là 34 lần ở 10 triệu điểm và 177 lần ở 50 triệu điểm. Bộ nhớ đỉnh phía Python ở mức 10 triệu điểm là 0,32 GiB đối với XY so với 0,84 GiB của Matplotlib và 1,86 GiB của Plotly. Với density=False, XY vẫn vẽ 100 triệu điểm đánh dấu chính xác trong 1,343 giây với 5,26 GiB. Reflex cũng báo cáo việc render toàn bộ tập dữ liệu OpenStreetMap — 10 tỷ điểm.

Một biểu đồ phân tán tương tác 10 triệu điểm xuất ra 258 KiB HTML, so với mức 259 MiB được công bố cho biểu đồ tương đương của Plotly. Dung lượng tải vẫn duy trì ở mức gần 258 KiB từ 1 triệu đến 100 triệu hàng.

Bề mặt API và tích hợp

Các biểu đồ được cấu tạo một cách khai báo từ các dấu hiệu (marks), trục, chú giải, chú thích công cụ và chú thích. Mười bốn họ biểu đồ được cung cấp hiện nay, bao gồm scatter, line, area, histogram, box, violin, ECDF, heatmap, hexbin và contour. Việc tạo kiểu chấp nhận các lớp CSS và Tailwind thông qua các DOM slot ổn định. Để di chuyển, lệnh `import xy.pyplot as plt` chạy mã pyplot thông thường của Matplotlib, mặc dù hướng dẫn tương thích lưu ý rằng không phải mọi thứ đều được hỗ trợ. Một bộ chuyển đổi reflex-xy riêng biệt biến bất kỳ biểu đồ nào thành một thành phần Reflex mà không cần JavaScript hoặc iframe.

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

Hãy xem GitHub Repo và các chi tiết kỹ thuật. Ngoài ra, đừng ngần ngại 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? Bây giờ bạn cũng có thể tham gia cùng chúng tôi trên Telegram.

Cần hợp tác với chúng tôi để quảng bá GitHub Repo HOẶC trang Hugging Face HOẶC 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.

Asif Razzaq là CEO của Marktechpost Media Inc.. Là một doanh nhân và kỹ sư có tầm nhìn, Asif cam kết khai thác tiềm năng của Trí tuệ nhân tạo vì lợi ích xã hội. Nỗ lực gần đây nhất của ông là ra mắt Nền tảng truyền thông Trí tuệ nhân tạo, Marktechpost, nổi bật với việc đưa tin chuyên sâu về học máy và học sâu, vừa đảm bảo tính kỹ thuật vừa dễ hiểu đối với đông đảo khán giả. Nền tảng này tự hào với hơn 2 triệu lượt xem hàng tháng, minh chứng cho sự phổ biến của nó đối với độc giả.

PythonRustTrực quan hóa dữ liệuThư viện AIHiệu năng cao
Đọ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.