paint-brush
Cách mạng hóa sự phát triển AI: Apache Cassandra giới thiệu Tìm kiếm Vectortừ tác giả@datastax
1,967 lượt đọc
1,967 lượt đọc

Cách mạng hóa sự phát triển AI: Apache Cassandra giới thiệu Tìm kiếm Vector

từ tác giả DataStax7m2023/05/22
Read on Terminal Reader

dài quá đọc không nổi

Tính năng tìm kiếm vectơ mạnh mẽ, kết hợp với Apache Cassandra, cơ sở dữ liệu có khả năng mở rộng nhất thế giới, là yếu tố thay đổi cuộc chơi cho các ứng dụng AI.
featured image - Cách mạng hóa sự phát triển AI: Apache Cassandra giới thiệu Tìm kiếm Vector
DataStax HackerNoon profile picture


Không có trí tuệ nhân tạo nếu không có dữ liệu. Và khi dữ liệu của bạn nằm rải rác khắp nơi, bạn sẽ mất nhiều thời gian hơn để quản lý quá trình triển khai thay vì tập trung vào điều quan trọng nhất: xây dựng ứng dụng. Các ứng dụng nổi bật nhất trên thế giới đã sử dụng Apache Cassandra, vì vậy việc tăng hiệu quả dữ liệu là một mục tiêu ngày càng quan trọng. AI là tất cả về quy mô và việc đưa tính năng tìm kiếm theo véc tơ — một thành phần quan trọng trong việc sử dụng các mô hình AI — vào Cassandra sẽ giúp các tổ chức cắt giảm chi phí, hợp lý hóa việc quản lý dữ liệu của họ và chắt lọc từng giọt giá trị cuối cùng từ dữ liệu của họ.


Tính năng tiên tiến này, gần đây đã được phác thảo trong một đề xuất cải tiến của Cassandra ( CEP-30 ), là bằng chứng nữa về cam kết của cộng đồng Cassandra trong việc xây dựng các tính năng đáng tin cậy một cách nhanh chóng. Nó cũng là minh chứng cho sức hấp dẫn ngày càng tăng của Cassandra đối với các nhà phát triển AI và các tổ chức đang vật lộn với các tập dữ liệu khổng lồ, cung cấp cho họ các công cụ để tạo các ứng dụng dựa trên dữ liệu tiên tiến.


Tìm kiếm vectơ là gì?

Khái niệm tìm kiếm văn bản đã có từ rất lâu. Nó liên quan đến việc tìm kiếm một từ khóa cụ thể trong các tài liệu. Nhưng dữ liệu quan trọng có thể được tìm thấy không chỉ ở văn bản: âm thanh, hình ảnh và video (hoặc một số kết hợp) cũng chứa thông tin liên quan yêu cầu phương pháp tìm kiếm. Đó là nơi tìm kiếm véc tơ xuất hiện. Nó đã được sử dụng trong một thời gian bây giờ và nó đã được chứng minh là khá có giá trị trong các ứng dụng khác nhau, đặc biệt là trong lĩnh vực AI và máy học.


Còn được gọi là tìm kiếm tương tự véc tơ, có hai phần cần thiết để nâng cao trò chơi tìm kiếm của bạn.


Đầu tiên, dữ liệu thô phải được lập chỉ mục thành biểu diễn véc-tơ (một mảng số) dùng làm mô tả toán học.


Thứ hai, dữ liệu vectơ cần được lưu trữ theo cách mà các nhà phát triển có thể đặt câu hỏi, "Cho một thứ, những thứ khác tương tự là gì?" Nó đơn giản và mạnh mẽ cho các nhà phát triển, thách thức để triển khai trên quy mô lớn ở phía máy chủ. Đây là nơi Cassandra sẽ thực sự tỏa sáng bằng cách liên tục phục vụ dữ liệu ở mọi quy mô trên toàn thế giới với khả năng phục hồi mang lại sự an tâm.


Không có nghĩa là điều này có nghĩa là đi sâu hoàn toàn vào tìm kiếm vectơ, mà giải thích thêm về những gì nó có thể làm cho ứng dụng của bạn bằng cách tạo ra một chiều dữ liệu hữu ích hoàn toàn mới để giảm độ phức tạp của mã và đưa vào sản xuất nhanh hơn với các tính năng người dùng muốn.


Các ví dụ thực tế trong thế giới thực về tìm kiếm vectơ bao gồm:

  • Truy xuất hình ảnh dựa trên nội dung, trong đó các hình ảnh tương tự trực quan được xác định dựa trên các vectơ đặc trưng của chúng. Sử dụng một thư viện như img2vec , bạn có thể chuyển đổi tệp hình ảnh thành 512 số nhận dạng duy nhất có thể được sử dụng để tìm kiếm sự tương đồng.


  • Hệ thống đề xuất, trong đó các sản phẩm hoặc nội dung được đề xuất cho người tiêu dùng dựa trên sự tương đồng với các mặt hàng mà họ đã tương tác trước đó.


  • Các ứng dụng xử lý ngôn ngữ tự nhiên, trong đó các điểm tương đồng về ngữ nghĩa giữa nội dung văn bản có thể được xác định và tận dụng cho các tác vụ như phân tích tình cảm, phân cụm tài liệu và lập mô hình chủ đề. Điều này thường được thực hiện bằng cách sử dụng các công cụ như từ2vec và có thể yêu cầu quy mô mà Cassandra mang lại.


  • Sử dụng ChatGPT? Tìm kiếm véc-tơ rất quan trọng đối với trường hợp sử dụng Mô hình ngôn ngữ lớn (LLM) vì nó cho phép lưu trữ và truy xuất hiệu quả các nhúng véc-tơ, thể hiện kiến thức chắt lọc thu được trong quá trình đào tạo LLM. Bằng cách thực hiện các tìm kiếm tương tự, tìm kiếm véc-tơ có thể nhanh chóng xác định các phần nhúng có liên quan nhất tương ứng với lời nhắc của người dùng.


    Điều này giúp các LLM tạo ra các phản hồi chính xác hơn và phù hợp với ngữ cảnh đồng thời cung cấp một dạng bộ nhớ dài hạn cho các mô hình. Về bản chất, tìm kiếm vectơ là cầu nối quan trọng giữa LLM và cơ sở tri thức rộng lớn mà họ được đào tạo.


Điều gì đang đến với Cassandra?

Dự án Cassandra đang thực hiện một nhiệm vụ không bao giờ kết thúc để biến Cassandra trở thành cường quốc tối cao trong vũ trụ cơ sở dữ liệu. Như đã đề cập trước đây, sau khi bạn chuyển đổi dữ liệu của mình thành dạng nhúng vectơ, bạn sẽ cần một nơi để lưu trữ và sử dụng chúng. Những khả năng đó đang được thêm vào Cassandra, được thể hiện một cách đơn giản nhưng mạnh mẽ.


Kiểu dữ liệu vectơ

Để hỗ trợ lưu trữ các vectơ chiều cao, chúng tôi giới thiệu một loại dữ liệu mới, ` VECTOR<type, dimension> `. Điều này sẽ cho phép xử lý và lưu trữ phao32 nhúng, thường được sử dụng trong các ứng dụng AI. Điều này đã dẫn đến các cuộc thảo luận để thêm Cassandra vào các thư viện AI như LangChain . Trong ví dụ này, hãy tưởng tượng việc tạo ra một vectơ từ mô tả để kích hoạt tìm kiếm sự tương đồng về ngữ nghĩa.



CREATE TABLE products(

id UUID PRIMARY KEY,

name varchar,

description varchar,

item_vector VECTOR<float, 3>

);



chỉ mục tìm kiếm ANN

Chúng tôi sẽ thêm một chỉ mục gắn liền với bộ nhớ (SAI) mới có tên là “VectorMemtableIndex”, chỉ mục này sẽ hỗ trợ chức năng tìm kiếm hàng xóm gần nhất (ANN) gần đúng. Chỉ mục này sẽ hoạt động cùng với kiểu dữ liệu mới và thư viện Thế giới nhỏ có thể điều hướng theo cấp bậc (HNSW) của Apache Lucene để kích hoạt khả năng tìm kiếm vectơ hiệu quả trong Cassandra.


CREATE CUSTOM INDEX item_ann_index ON product(item_vector)

USING 'VectorMemtableIndex';


Toán tử ANN trong CQL

Để giúp người dùng thực hiện tìm kiếm ANN trên dữ liệu của họ dễ dàng hơn, chúng tôi sẽ giới thiệu toán tử Ngôn ngữ truy vấn Cassandra (CQL) mới, ANN OF. Toán tử này sẽ cho phép người dùng thực hiện tìm kiếm ANN trên dữ liệu của họ một cách hiệu quả bằng cú pháp truy vấn đơn giản và quen thuộc. Tiếp tục ví dụ, các nhà phát triển có thể yêu cầu cơ sở dữ liệu cung cấp thứ gì đó tương tự như véc-tơ được tạo từ mô tả.


SELECT * FROM product WHERE item_vector ANN OF [3.4, 7.8, 9.1]



Làm nổi bật khả năng mở rộng của Cassandra

Khi Cassandra 4.0 được phát hành, một trong những điểm nổi bật dễ bị bỏ qua là khái niệm tăng khả năng cắm. Chức năng tìm kiếm vectơ mới trong Cassandra được xây dựng như một phần mở rộng cho khung SAI hiện có, tránh việc viết lại công cụ lập chỉ mục cốt lõi. Nó sử dụng nổi tiếng và được sử dụng rộng rãi chức năng HNSW trong Lucene, nơi cung cấp một giải pháp nhanh chóng và hiệu quả để tìm gần đúng những người hàng xóm gần nhất trong không gian nhiều chiều.


Phần bổ sung mới của Cassandra 4 làm nổi bật tính mô-đun và khả năng mở rộng vượt trội của nó. Với việc tích hợp HNSW Lucene và mở rộng khung SAI, giờ đây các nhà phát triển có thể truy cập nhiều tính năng sẵn sàng sản xuất nhanh hơn nhiều. Các nhà phát triển có quyền truy cập vào nhiều cơ sở dữ liệu vectơ và nhiều người trong số họ thích xây dựng một công cụ lập chỉ mục vectơ trước khi thêm bộ nhớ. Cassandra đã giải quyết thành công vấn đề đầy thách thức về lưu trữ dữ liệu trên quy mô lớn trong hơn một thập kỷ. Chúng tôi rất tin tưởng rằng việc đưa tính năng tìm kiếm véc-tơ vào Cassandra sẽ cung cấp nhiều tính năng sẵn sàng sản xuất đặc biệt hơn nữa.


Trường hợp sử dụng mới

Cassandra không phải là người mới đối với khối lượng công việc máy học và AI. Người dùng Cassandra lâu năm đã sử dụng Cassandra như một kho tính năng nhanh và hiệu quả trong nhiều năm. Thậm chí còn có tin đồn rằng OpenAI sử dụng Cassandra rất nhiều trong việc xây dựng LLM. Tất cả các trường hợp sử dụng này đều sử dụng chức năng hiện có của Cassandra. Sẽ có nhiều cách để sử dụng tìm kiếm vectơ mới. Sẽ rất thú vị khi xem những gì cộng đồng của chúng tôi nghĩ ra nhưng chúng có thể sẽ phù hợp với hai loại:


Nâng cao trường hợp sử dụng hiện có với tìm kiếm ANN

Nếu bạn đã có một ứng dụng được xây dựng trên Cassandra, bạn có thể nâng cao khả năng của nó bằng cách kết hợp tìm kiếm ANN (“xấp xỉ hàng xóm gần nhất”). Ví dụ: nếu bạn có hệ thống đề xuất nội dung, bạn có thể sử dụng tìm kiếm ANN để tìm các mục tương tự và cải thiện mức độ liên quan của các đề xuất của bạn. Danh mục sản phẩm có thể không chuẩn hóa các tính năng thành các vectơ nhúng được lưu trữ trong cùng một bản ghi. Phát hiện gian lận có thể được tăng cường hơn nữa bằng cách ánh xạ các hành vi tới các tính năng. Hãy nghĩ về một trường hợp sử dụng và nó có thể có liên quan.

Xây dựng một cái gì đó mới cần tìm kiếm vector

Nếu bạn đang bắt đầu một dự án mới yêu cầu khả năng tìm kiếm tương tự nhanh, tính năng tìm kiếm vectơ mới của Cassandra sẽ là lựa chọn tuyệt vời để lưu trữ và truy xuất dữ liệu. Biết rằng bạn có thể tăng từ gigabyte lên petabyte trên cùng một hệ thống sẽ cho phép bạn tập trung vào việc xây dựng ứng dụng của mình và không phải lo lắng về sự đánh đổi. Ngoài việc lưu trữ các phần nhúng vectơ, bạn sẽ có toàn bộ sức mạnh của CQL và bộ lưu trữ dạng bảng của cơ sở dữ liệu đầy đủ tính năng, tất cả đều được đưa vào.


Tuy nhiên, bạn sử dụng Cassandra, tất cả các tùy chọn này sẽ khả dụng. Nếu đó là triển khai của riêng bạn bằng Cassandra nguồn mở, thì triển khai trong Kubernetes bằng cách sử dụng K8ssandra hoặc trên đám mây với các dịch vụ như DataStax Astra DB , bạn sẽ nhận được cùng một hệ thống tuyệt vời. Sự tự do mà bạn có được với mã nguồn mở là sự tự do lựa chọn cách bạn xây dựng các ứng dụng của mình.


Được xây dựng bởi và dành cho các nhà phát triển

Khi chúng tôi tiếp tục đổi mới và mở rộng khả năng của Cassandra, chúng tôi vẫn cam kết luôn đi đầu trong những gì bạn cần trong quản lý dữ liệu. Việc giới thiệu tìm kiếm véc tơ là một trường hợp sử dụng mới thú vị sẽ làm cho các ứng dụng dựa trên dữ liệu của bạn trở nên mạnh mẽ và linh hoạt hơn. Điều này, với một số tính năng tiên tiến khác như phân phối Giao dịch ACID ở quy mô , sẽ biến Cassandra 5.0 thành bản nâng cấp quan trọng nhất mà bạn có thể thực hiện. Chúng tôi cũng không dừng lại ở đây. Các công ty và nhà phát triển hỗ trợ Cassandra đang nỗ lực nghĩ ra nhiều cách hơn để hợp nhất dữ liệu của bạn, đơn giản hóa việc quản lý và tiết kiệm tiền.


Chúng tôi tin tưởng rằng sự bổ sung này sẽ giúp không chỉ các nhà phát triển AI mà cả các tổ chức quản lý các tập dữ liệu lớn có thể hưởng lợi từ tìm kiếm tương đồng nhanh chóng. Vì vậy, hãy chú ý đến bản phát hành alpha của Cassandra với chức năng tìm kiếm véc-tơ, dự kiến sẽ ra mắt vào quý 3. Chúng tôi mong muốn được thấy những ứng dụng tuyệt vời mà bạn sẽ xây dựng bằng tính năng mới này và chúng tôi rất vui nếu bạn chia sẻ các trường hợp sử dụng của mình với cộng đồng tại Hành tinh Cassandra .



Cũng được xuất bản bởi Patrick McFadin, DataStax tại đây.