Microsoft đã mở mã cho thư viện tìm kiếm vector được sử dụng bởi Bing

Microsoft được phát hành mã nguồn thư viện máy học SPTAG (Cây phân vùng không gian và đồ thị) với việc thực hiện thuật toán gần đúng tìm kiếm hàng xóm gần nhất. Thư viện đã phát triển trong bộ phận nghiên cứu của Microsoft Research và trung tâm phát triển công nghệ tìm kiếm (Microsoft Search Technology Center). Trong thực tế, SPTAG được công cụ tìm kiếm Bing sử dụng để xác định các kết quả phù hợp nhất dựa trên ngữ cảnh của truy vấn tìm kiếm. Mã được viết bằng C++ và phân phối bởi theo giấy phép MIT. Hỗ trợ xây dựng cho Linux và Windows. Có một ràng buộc cho ngôn ngữ Python.

Mặc dù thực tế là ý tưởng sử dụng lưu trữ vectơ trong các công cụ tìm kiếm đã xuất hiện từ khá lâu, nhưng trên thực tế, việc triển khai chúng bị cản trở bởi cường độ tài nguyên cao của các hoạt động với vectơ và các hạn chế về khả năng mở rộng. Việc kết hợp các phương pháp học máy sâu với các thuật toán tìm kiếm lân cận gần nhất đã giúp mang lại hiệu suất và khả năng mở rộng của hệ thống vectơ đến mức có thể chấp nhận được đối với các công cụ tìm kiếm lớn. Ví dụ: trong Bing, đối với chỉ mục vectơ có hơn 150 tỷ vectơ, thời gian tìm nạp kết quả phù hợp nhất là trong vòng 8 mili giây.

Thư viện bao gồm các công cụ để xây dựng chỉ mục và tổ chức tìm kiếm vectơ, cũng như một bộ công cụ để duy trì hệ thống tìm kiếm trực tuyến phân tán bao gồm các bộ sưu tập vectơ rất lớn. Cung cấp các mô-đun sau: trình tạo chỉ mục để lập chỉ mục, trình tìm kiếm để tìm kiếm bằng cách sử dụng chỉ mục được phân phối trong một cụm gồm nhiều nút, máy chủ để chạy trình xử lý trên các nút, Bộ tổng hợp để kết hợp nhiều máy chủ thành một và máy khách để gửi truy vấn. Hỗ trợ việc đưa các vectơ mới vào chỉ mục và xóa các vectơ một cách nhanh chóng.

Thư viện ngụ ý rằng dữ liệu được xử lý và trình bày trong bộ sưu tập được định dạng dưới dạng các vectơ liên quan có thể so sánh dựa trên Euclide (L2) hoặc cô sin khoảng cách Truy vấn tìm kiếm trả về các vectơ có khoảng cách giữa chúng và vectơ ban đầu là tối thiểu. SPTAG cung cấp hai phương pháp tổ chức không gian vectơ: SPTAG-KDT (Cây K chiều (cây kd) Và đồ thị lân cận tương đối) và SPTAG-BKT (cây k-nghĩa (cây k-nghĩa và đồ thị lân cận tương đối). Phương pháp đầu tiên yêu cầu ít tài nguyên hơn khi làm việc với chỉ mục và phương pháp thứ hai thể hiện độ chính xác cao hơn của kết quả tìm kiếm đối với các tập hợp vectơ rất lớn.

Đồng thời, tìm kiếm vectơ không giới hạn ở văn bản và có thể được áp dụng cho thông tin và hình ảnh đa phương tiện, cũng như trong các hệ thống tự động tạo đề xuất. Ví dụ: một trong những nguyên mẫu dựa trên khung PyTorch đã triển khai hệ thống vectơ để tìm kiếm dựa trên sự giống nhau của các đối tượng trong hình ảnh, được xây dựng bằng dữ liệu từ một số bộ sưu tập tham chiếu có hình ảnh động vật, mèo và chó, được chuyển đổi thành bộ vectơ . Khi một hình ảnh đến được nhận để tìm kiếm, nó sẽ được chuyển đổi bằng mô hình học máy thành một vectơ, dựa trên đó các vectơ giống nhau nhất được chọn từ chỉ mục bằng thuật toán SPTAG và kết quả là các hình ảnh liên quan sẽ được trả về.

Nguồn: opennet.ru

Thêm một lời nhận xét