Feature Store
Tìm hiểu feature store là gì, cách các store offline và online ngăn chặn hiện tượng lệch giữa huấn luyện và phục vụ (training-serving skew), và lý do tại sao quản lý feature lại quan trọng đối với MLOps có khả năng mở rộng.
Feature store là một hệ thống tập trung dùng để quản lý, lưu trữ, khám phá và phục vụ các đặc trưng dữ liệu (data feature) được sử dụng bởi các model machine learning. Hệ thống này giúp các đội ngũ áp dụng cùng một định nghĩa đặc trưng trong quá trình training và inference trên production, qua đó giảm thiểu công sức trùng lặp và tính không nhất quán. Ví dụ, thay vì xây dựng lại giá trị “số lần mua hàng trong 30 ngày qua” của khách hàng ở nhiều pipeline khác nhau, các đội ngũ có thể định nghĩa một lần, duy trì lịch sử và truy xuất giá trị mới nhất của nó khi model đưa ra dự đoán.
Cách thức hoạt động của Feature Store#
Một đặc trưng (feature) là một đầu vào có thể đo lường được của model, chẳng hạn như độ tuổi tài khoản, giá trị giao dịch trung bình, số lượng đối tượng được phát hiện, hoặc một image embedding. Dữ liệu thô trở thành đầu vào có ích cho model thông qua feature engineering hoặc feature extraction tự động.
Một feature store điển hình phối hợp nhiều thành phần:
- Định nghĩa đặc trưng (Feature definitions): Các schema mô tả tên, kiểu dữ liệu, chủ sở hữu, logic biến đổi, khóa thực thể (entity key) và phiên bản của từng đặc trưng. Các đặc trưng có liên quan có thể được tổ chức thành các nhóm đặc trưng (feature group) hoặc view, như được mô tả trong tài liệu Amazon SageMaker Feature Store concepts.
- Offline store: Các giá trị lịch sử hỗ trợ việc khám phá, training, validation và batch inference. Tài liệu Feast offline store documentation giải thích cách các đặc trưng dạng chuỗi thời gian (time-series) lịch sử được truy xuất từ các nguồn dữ liệu bên dưới.
- Online store: Các giá trị mới nhất được lưu giữ trong một cơ sở dữ liệu có độ trễ thấp để phục vụ các dự đoán thời gian thực. Chẳng hạn, một Feast online store thường lưu trữ giá trị mới nhất cho mỗi khóa thực thể.
- Materialization: Một tiến trình theo lịch trình hoặc streaming sẽ chuyển các giá trị đặc trưng đã được tính toán vào online store.
- Registry và metadata: Các định nghĩa có thể tìm kiếm giúp các đội ngũ khám phá, quản trị, quản lý phiên bản và tái sử dụng các đặc trưng.
Một thực thể (entity) xác định đối tượng mà đặc trưng đang mô tả. Đó có thể là ID khách hàng, ID sản phẩm, ID máy móc, hoặc ID camera. Timestamp của sự kiện ghi lại thời điểm giá trị có hiệu lực chứ không phải thời điểm nó được ghi xuống.
Tại sao Feature Store lại quan trọng#
Một lợi ích lớn là tính nhất quán giữa quá trình training và phục vụ (serving). Nếu một model được train với một công thức tính toán nhưng lại nhận được công thức tính toán hơi khác khi ở production, hiện tượng lệch training-serving (training-serving skew) có thể làm giảm chất lượng dự đoán. Các định nghĩa tập trung và logic truy xuất chung giúp giảm thiểu khả năng xảy ra điều này.
Truy xuất có nhận thức thời gian (time-aware retrieval) cũng quan trọng không kém. Một dòng dữ liệu training chỉ nên chứa thông tin tồn tại tại thời điểm sự kiện dự đoán xảy ra. Point-in-time joins in Feast tái tạo lại các giá trị lịch sử đó, giúp ngăn chặn hiện tượng data leakage từ các thông tin trong tương lai. Hướng dẫn feature-serving guidance của Google Cloud cũng nhấn mạnh tầm quan trọng của timestamp và các tra cứu theo điểm thời gian (point-in-time lookup) đối với các đặc trưng nhạy cảm về thời gian.
Feature store cũng hỗ trợ:
- Tái sử dụng (Reuse): Nhiều model có thể sử dụng các đặc trưng đáng tin cậy mà không cần phải xây dựng lại các pipeline.
- Tính cập nhật (Freshness): Các bản cập nhật streaming có thể giữ cho các đầu vào thời gian thực luôn mới.
- Quản trị (Governance): Quyền sở hữu, nguồn gốc dữ liệu (lineage), kiểm soát truy cập và các phiên bản giúp việc kiểm toán các đặc trưng trở nên dễ dàng hơn.
- Giám sát (Monitoring): Các đội ngũ có thể phát hiện các giá trị bị thiếu, bản ghi cũ, thay đổi schema và data drift.
Những tính năng này biến feature store thành một phần quan trọng trong MLOps trên production, đặc biệt khi có nhiều model và đội ngũ cùng phụ thuộc vào dữ liệu chia sẻ.
So sánh Feature Store với các hệ thống liên quan#
Một feature store không đơn thuần chỉ là một cơ sở dữ liệu khác.
- Một data lake chứa khối lượng lớn dữ liệu thô hoặc đã qua xử lý, trong khi feature store bổ sung thêm các định nghĩa hướng model, timestamp, logic truy xuất và các giao diện phục vụ.
- Một vector database chuyên về tìm kiếm độ tương đồng trên các vector. Feature store có thể quản lý các embedding, nhưng nó cũng có thể chứa các đặc trưng dạng vô hướng (scalar), phân loại (categorical), tổng hợp (aggregate) và chuỗi thời gian (time-series).
- Một pipeline feature-engineering thực hiện việc tính toán các đặc trưng; còn feature store quản lý và phục vụ các giá trị kết quả đó.
- Một model registry quản lý các phiên bản model và artifact, trong khi feature store quản lý các đầu vào của model.
Các hệ thống được quản lý (managed system) có thể kết hợp một số trách nhiệm này. Ví dụ, Azure Machine Learning managed feature stores cung cấp các tính năng khám phá đặc trưng, quản lý phiên bản, materialization và truy xuất lịch sử.
Các ứng dụng trong thực tế#
Phát hiện gian lận (Fraud detection): Một model thanh toán có thể sử dụng tốc độ giao dịch, số tiền mua trung bình, độ tuổi tài khoản và số lần thanh toán thất bại gần đây. Offline store tái tạo lại các giá trị lịch sử để training, trongขณะ online store cung cấp các giá trị hiện tại trong vòng vài mili-giây khi một giao dịch mới xuất hiện.
Kiểm tra bằng thị giác máy tính (Computer vision inspection): Một hệ thống sản xuất có thể lưu trữ số lượng lỗi luỹ kế, trạng thái thiết bị, metadata ca làm việc và các visual embedding được gán nhãn theo dây chuyền sản xuất và timestamp. Các đặc trưng lịch sử hỗ trợ việc retraining, trong khi các giá trị hiện tại giúp model đã triển khai diễn giải các phát hiện mới. Các đội ngũ có thể quản lý hình ảnh, annotation, quá trình training, triển khai và giám sát với Ultralytics Platform, trong khi một feature store riêng biệt sẽ phục vụ các đầu vào vận hành.
Ultralytics YOLO26 có thể tạo ra các đặc trưng hình ảnh mà sau đó có thể được đăng ký với các ID thực thể, timestamp và metadata phiên bản:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
images = [
"https://ultralytics.com/images/bus.jpg",
"https://ultralytics.com/images/zidane.jpg",
]
embeddings = model.embed(images)
first_image_features = embeddings[0]
print(len(embeddings))
print(first_image_features.shape)Ví dụ này thực hiện trích xuất đặc trưng (feature extraction), chứ không phải quản lý toàn bộ feature store. Một quy trình làm việc trên production sẽ cần validate các vector, liên kết chúng với các bản ghi và thời điểm sự kiện, lưu trữ các phiên bản lịch sử, đồng thời giám sát độ mới và chất lượng bằng cách sử dụng các phương pháp như trong tài liệu Google Cloud ML quality guidelines.






