What ML feature stores require and how ScyllaDB fits in as fast, scalable online feature store Trong bài đăng blog này, chúng tôi sẽ khám phá vai trò của các cửa hàng tính năng trong các ứng dụng học máy thời gian thực (ML) và tại sao ScyllaDB là một lựa chọn mạnh mẽ cho dịch vụ tính năng trực tuyến. Chúng tôi sẽ bao gồm những điều cơ bản của các tính năng, cách các cửa hàng tính năng hoạt động, lợi ích của chúng, các yêu cầu khối lượng công việc khác nhau, và làm thế nào độ trễ đóng vai trò quan trọng trong các ứng dụng ML. Chúng tôi sẽ kết thúc bằng cách xem xét các khuôn khổ cửa hàng tính năng phổ biến như Feast và làm thế nào để bắt đầu với ScyllaDB như cửa hàng tính năng trực tuyến của bạn. Một tính năng trong Machine Learning là gì? Một tính năng là một thuộc tính có thể đo lường được được sử dụng để đào tạo hoặc phục vụ một mô hình học máy. Các tính năng có thể là các điểm dữ liệu thô hoặc các giá trị được thiết kế bắt nguồn từ dữ liệu thô. Ví dụ, trong một ứng dụng truyền thông xã hội như ShareChat, các tính năng có thể bao gồm: Số lượt thích trong 10 phút qua Số lượng cổ phiếu trong 7 ngày qua Chủ đề của bài viết Ảnh: Ivan Burmistrov và Andrei Manakov (ShareChat) Những điểm dữ liệu này giúp dự đoán kết quả như sự tham gia của người dùng hoặc đề xuất nội dung. Một vector tính năng chỉ đơn giản là một tập hợp các tính năng liên quan đến một nhiệm vụ dự đoán cụ thể. Ví dụ, đây là những gì một vector tính năng có thể trông giống như cho một ứng dụng điểm tín dụng. Chọn các điểm dữ liệu có liên quan và chuyển đổi chúng thành các tính năng chiếm một phần đáng kể của công việc trong các dự án học máy. Nó cũng là một quá trình liên tục để tinh chỉnh và tối ưu hóa các tính năng để mô hình được đào tạo trở nên chính xác hơn theo thời gian. Kiến trúc Store Architectures Để làm việc hiệu quả với các tính năng, bạn có thể tạo một vị trí trung tâm để quản lý các tính năng có sẵn trong tổ chức của bạn. Một quy trình tiêu chuẩn để tạo ra các tính năng mới Lưu trữ các tính năng để truy cập đơn giản Khám phá và tái sử dụng các tính năng trên các nhóm Dịch vụ các tính năng cho cả đào tạo mô hình và kết luận Hầu hết các kiến trúc phân biệt giữa hai kho / cơ sở dữ liệu: Cửa hàng ngoại tuyến cho đào tạo người mẫu (bulk writes/reads) Cửa hàng trực tuyến cho kết luận (thời gian thực, viết / đọc chậm trễ thấp) Một đường ống lưu trữ tính năng điển hình bắt đầu với việc hấp thụ dữ liệu thô (từ hồ dữ liệu hoặc luồng dữ liệu), thực hiện kỹ thuật tính năng, lưu các tính năng trong cả hai cửa hàng, và sau đó phục vụ chúng thông qua hai đường ống riêng biệt: một cho đào tạo và một cho kết luận. Lợi ích của một Central Feature Store Các cửa hàng tính năng tập trung cung cấp một số lợi thế: Tránh trùng lặp: Nhóm có thể tái sử dụng các tính năng hiện có Truy cập tự phục vụ: các nhà khoa học dữ liệu có thể tạo và truy vấn các tính năng một cách độc lập Các đường ống thống nhất: mặc dù khối lượng công việc đào tạo và kết luận rất khác nhau, chúng vẫn có thể được truy vấn bằng cùng một lớp trừu tượng Điều này dẫn đến lặp lại nhanh hơn, nhất quán hơn và hợp tác tốt hơn trên các dòng công việc ML. Khác nhau Workloads in Feature Stores Chúng ta hãy phá vỡ hai yêu cầu khối lượng công việc rất khác nhau tồn tại trong một cửa hàng tính năng: đào tạo mô hình và suy luận thời gian thực. Cửa hàng ngoại tuyến (Offline Store) Để đưa ra dự đoán, trước tiên bạn cần đào tạo một mô hình học máy. Đào tạo đòi hỏi một tập dữ liệu lớn và chất lượng cao. Bạn có thể lưu trữ tập dữ liệu này trong một cửa hàng tính năng ngoại tuyến. Dưới đây là một bản tóm tắt các tính năng quan trọng nhất đối với khối lượng công việc đào tạo mô hình: Sự chậm trễ: Không phải là ưu tiên Khối lượng: cao (từ hàng triệu đến hàng tỷ bản ghi) Tần suất: Thường xuyên, công việc theo lịch trình Mục đích: Lấy một phần lớn dữ liệu lịch sử Về cơ bản, các cửa hàng ngoại tuyến cần lưu trữ dữ liệu khổng lồ một cách hiệu quả. Real-time inference (cửa hàng trực tuyến) Một khi bạn có một mô hình sẵn sàng, bạn có thể chạy kết luận thời gian thực. Kết luận thời gian thực lấy đầu vào do người dùng cung cấp và biến nó thành một dự đoán. Latency: ưu tiên cao Khối lượng: Nhỏ mỗi yêu cầu nhưng công suất cao (lên đến hàng triệu hoạt động / giây) Tần số: liên tục, được kích hoạt bởi hành động của người dùng (ví dụ: đặt hàng thực phẩm) Mục đích: Cung cấp các tính năng cập nhật để đưa ra dự đoán nhanh chóng Ví dụ, hãy xem xét một ứng dụng phân phối thực phẩm. nội dung giỏ hàng gần đây của người dùng, tuổi tác và vị trí có thể được chuyển thành các tính năng và được sử dụng ngay lập tức để đề xuất các mặt hàng khác để mua. Tại sao sự chậm trễ quan trọng Sự chậm trễ (trong bối cảnh của bài viết này) đề cập đến thời gian giữa việc gửi truy vấn và nhận câu trả lời từ cửa hàng tính năng. Đối với các ứng dụng ML thời gian thực - đặc biệt là những ứng dụng hướng tới người dùng - độ trễ thấp là rất quan trọng đối với sự thành công. Hãy tưởng tượng một người dùng khi thanh toán được hiển thị các mặt hàng thực phẩm có liên quan. Nếu đề xuất này mất quá nhiều thời gian để tải do một cửa hàng trực tuyến chậm, cơ hội bị mất. Nhập dữ liệu mới nhất Yêu cầu các tính năng liên quan Inference chạy Trở lại dự đoán Phải xảy ra trong milliseconds. Chọn một giải pháp Store Feature Một khi bạn quyết định xây dựng một cửa hàng tính năng, bạn sẽ nhanh chóng thấy rằng có hàng chục frameworks và nhà cung cấp, cả nguồn mở và thương mại, để lựa chọn: Feast (mã nguồn mở): Cung cấp hỗ trợ cơ sở dữ liệu linh hoạt (ví dụ: Postgres, Redis, Cassandra, ScyllaDB) Hopsworks: Kết nối chặt chẽ với hệ sinh thái của riêng mình AWS SageMaker: Kết nối với AWS Stack (ví dụ: S3, DynamoDB) Và nhiều người khác Các yếu tố như chuyên môn kỹ thuật của nhóm của bạn, yêu cầu độ trễ và tích hợp yêu cầu với stack hiện có của bạn đều đóng một vai trò. Nếu bạn lo lắng về khả năng mở rộng và hiệu suất của cửa hàng tính năng trực tuyến của bạn, thì tính linh hoạt của cơ sở dữ liệu nên là một cân nhắc quan trọng. Có các cửa hàng tính năng (ví dụ: AWS SageMaker, GCP Vertex, Hopsworks, v.v.) cung cấp công nghệ cơ sở dữ liệu của riêng họ như cửa hàng trực tuyến. Mặt khác, điều này có thể thuận tiện để bắt đầu vì mọi thứ được xử lý bởi một nhà cung cấp. Hãy tưởng tượng chọn một nhà cung cấp như thế này với yêu cầu độ trễ P99 nghiêm ngặt (ví dụ, <15ms P99). Yêu cầu này được đáp ứng thành công trong quá trình chứng minh khái niệm (POC). nhưng sau đó bạn sẽ trải qua đỉnh độ trễ – có lẽ vì yêu cầu của bạn thay đổi hoặc có sự gia tăng người dùng mới trong ứng dụng của bạn hoặc một số lý do không thể đoán trước. Vấn đề là bạn không thể... ít nhất là không dễ dàng. bạn bị mắc kẹt với giải pháp tích hợp sẵn. Không thể di chuyển ra khỏi chỉ là phần cửa hàng trực tuyến của kiến trúc của bạn vì mọi thứ đều bị khóa. Nếu bạn muốn tránh những tình huống này, bạn có thể xem xét các công cụ linh hoạt liên quan đến cửa hàng ngoại tuyến và trực tuyến backend. công cụ như Feast hoặc FeatureForm cho phép bạn mang lại backend cơ sở dữ liệu của riêng bạn, cả cho các cửa hàng trực tuyến và ngoại tuyến. Đây là một cách tuyệt vời để tránh khóa nhà cung cấp và làm cho việc di chuyển cơ sở dữ liệu trong tương lai ít đau đớn hơn trong trường hợp thời gian trễ xảy ra hoặc chi phí tăng. ScyllaDB như một cửa hàng tính năng trực tuyến ScyllaDB là một cơ sở dữ liệu NoSQL hiệu suất cao có API tương thích với Apache Cassandra và DynamoDB API. , và bao gồm , làm cho nó lý tưởng cho các ứng dụng cửa hàng tính năng độ trễ thấp, công suất cao. kiến trúc shard-per-core Hệ thống cache tích hợp Tại sao lại là ScyllaDB? Độ trễ thấp (hiệu suất Millisecond P99 đơn số) High Availability và Resilience High throughput at scale (sự triển khai quy mô petabyte) Không khóa nhà cung cấp (chạy on-prem hoặc trong bất kỳ đám mây nào) Drop-in thay thế cho cài đặt Cassandra/DynamoDB hiện có Dễ dàng di chuyển từ các cơ sở dữ liệu NoSQL khác (Cassandra, DynamoDB, MongoDB, v.v.) Tích hợp với feature store framework Feast ScyllaDB tỏa sáng trong các trường hợp sử dụng cửa hàng tính năng trực tuyến, nơi hiệu suất thời gian thực, tính sẵn có và khả năng dự đoán độ trễ là rất quan trọng. ScyllaDB + Feast tích hợp Feast là một framework cửa hàng tính năng mã nguồn mở phổ biến hỗ trợ cả cửa hàng trực tuyến và ngoại tuyến. Một trong những điểm mạnh của nó là khả năng kết nối nguồn cơ sở dữ liệu của riêng bạn, bao gồm ScyllaDB. . ScyllaDB + Feast tích hợp trong các tài liệu Bắt đầu với một Feature Store Tutorial Muốn thử sử dụng ScyllaDB như cửa hàng tính năng trực tuyến của bạn? Xem hướng dẫn của chúng tôi mà hướng dẫn bạn qua quá trình tạo ra một cụm ScyllaDB và xây dựng một ứng dụng kết luận thời gian thực. Tutorial: Ứng dụng dự đoán giá kết luận với ScyllaDB Ứng dụng thời gian thực với Feast & ScyllaDB Feast + ScyllaDB tích hợp GitHub: ScyllaDB như một mẫu mã cửa hàng tính năng Có câu hỏi hoặc muốn giúp đỡ thiết lập nó?Gửi ! Một bài viết trong forum Tôi vừa hoàn thành một hội thảo phát triển với người duy trì Feast, Francisco Javier Arceo: Bạn có thể xem theo yêu cầu ngay bây giờ. Update: Xây dựng ứng dụng ML thời gian thực với Python, Feast & NoSQL