Feature Store
Feature store định nghĩa, lưu trữ và cung cấp các feature ML để quá trình huấn luyện và dự đoán trực tiếp sử dụng cùng giá trị, với kho offline và online.
Feature store là hệ thống dữ liệu định nghĩa, tính toán, lưu trữ và cung cấp các đặc trưng đầu vào của model học máy, đảm bảo model nhận cùng giá trị đặc trưng trong quá trình huấn luyện và khi đưa ra dự đoán trực tiếp. Một đặc trưng là một đầu vào của model, chẳng hạn số giao dịch trong giờ vừa qua của một thẻ, điểm đánh giá trung bình của một sản phẩm hoặc embedding của một ảnh. Feature store lưu định nghĩa của từng đặc trưng cùng toàn bộ lịch sử trong offline store để tạo tập huấn luyện, và giá trị mới nhất trong online store để tra cứu nhanh tại thời điểm dự đoán. Uber mô tả feature store dùng chung trong bài viết năm 2017 về nền tảng học máy Michelangelo. Sau đó là Feast, một feature store mã nguồn mở do Gojek khởi xướng cùng Google Cloud, cùng các feature store được quản lý trong Amazon SageMaker, Google Vertex AI, Azure Machine Learning và Databricks.
Cách feature store hoạt động#
Đặc trưng bắt đầu từ các sự kiện và bảng dữ liệu thô; các pipeline biến chúng thành đầu vào cho model thông qua kỹ thuật đặc trưng, chẳng hạn đếm giao dịch của thẻ trong cửa sổ trượt một giờ, hoặc thông qua trích xuất đặc trưng bằng mạng nơ-ron. Feature store tổ chức công việc đó thành một số thành phần:
- Danh mục đặc trưng: Tên, khóa thực thể (khách hàng, thẻ, sản phẩm hoặc camera mà đặc trưng mô tả), kiểu dữ liệu, mã chuyển đổi, chủ sở hữu và phiên bản của từng đặc trưng; có thể tìm kiếm để các nhóm tái sử dụng đặc trưng thay vì xây dựng lại.
- Offline store: Mọi giá trị lịch sử cùng dấu thời gian sự kiện, được lưu trong kho dữ liệu hoặc data lake, dùng để tạo tập huấn luyện và chấm điểm theo lô.
- Online store: Giá trị mới nhất cho từng thực thể trong cơ sở dữ liệu khóa-giá trị như Redis hoặc DynamoDB, được đọc trong vài mili giây khi suy luận.
- Vật chất hóa: Các job theo lô hoặc luồng tính toán giá trị mới và sao chép những giá trị mới nhất từ offline store sang online store.
Khi dự đoán, một dịch vụ như kiểm tra gian lận gửi ID thẻ, nhận các đặc trưng hiện tại của thẻ từ online store rồi chuyển chúng cho model, giữ độ trễ suy luận đủ thấp để suy luận thời gian thực trong lúc thanh toán.
Tính chính xác tại thời điểm#
Mỗi hàng dữ liệu huấn luyện phải sử dụng các giá trị đặc trưng tại thời điểm sự kiện được gán nhãn xảy ra. Giá trị được tính sau đó mang thông tin từ tương lai, một dạng rò rỉ dữ liệu khiến model có vẻ chính xác khi đánh giá ngoại tuyến nhưng thất bại trong môi trường production. Feature store ngăn tình trạng này bằng phép nối tại thời điểm, ghép mỗi nhãn với giá trị đặc trưng mới nhất tại hoặc trước dấu thời gian của nhãn cho cùng một thực thể. Hàm pandas merge_asof thực hiện phép nối tương tự:
import pandas as pd
# Kho ngoại tuyến: số giao dịch của mỗi thẻ trong một giờ qua, được ghi lại theo thời gian
features = pd.DataFrame(
{
"card_id": ["A", "B", "A", "A"],
"time": pd.to_datetime(["2026-10-01 09:00", "2026-10-01 10:00", "2026-10-01 12:00", "2026-10-01 15:00"]),
"txn_count_1h": [1, 2, 4, 9],
}
)
# Các sự kiện được gán nhãn để huấn luyện: mỗi giao dịch có phải là gian lận không?
labels = pd.DataFrame(
{
"card_id": ["B", "A"],
"time": pd.to_datetime(["2026-10-01 11:00", "2026-10-01 13:30"]),
"is_fraud": [0, 1],
}
)
# Phép nối tại thời điểm: mỗi nhãn nhận giá trị đặc trưng mới nhất của thẻ tại hoặc trước thời điểm sự kiện
training_rows = pd.merge_asof(labels, features, on="time", by="card_id")
print(training_rows)Nhãn gian lận của thẻ A lúc 13:30 nhận số lượng 4 được ghi nhận lúc 12:00; số lượng 9 được ghi nhận lúc 15:00, sau giao dịch, không được đưa vào tập huấn luyện. Nhãn của thẻ B lúc 11:00 nhận giá trị riêng là 2, vì đối số by ghép các hàng theo khóa thực thể.
Độ lệch giữa huấn luyện và phục vụ#
Độ lệch giữa huấn luyện và phục vụ là khoảng cách giữa các đặc trưng mà model được huấn luyện và các đặc trưng nhận được trong môi trường production. Hiện tượng này xuất hiện khi một tác vụ SQL xử lý theo lô tính các đặc trưng huấn luyện, trong khi mã ứng dụng được viết riêng tính các đặc trưng phục vụ; hai bên có thể khác nhau về múi giờ, ranh giới cửa sổ, đơn vị hoặc cách điền giá trị thiếu. Quy tắc học máy của Google dành riêng một mục cho độ lệch này và khuyến nghị ghi nhật ký các đặc trưng được dùng khi phục vụ để những lần huấn luyện sau có thể sử dụng chính xác các giá trị đó. Feature store loại bỏ đường dẫn mã trùng lặp bằng cách tính mỗi đặc trưng một lần từ cùng một định nghĩa cho cả hai mục đích, đồng thời ghi nhận độ mới, giá trị thiếu và độ trôi dữ liệu của từng đặc trưng để giám sát model có thể truy nguyên mức giảm độ chính xác về một đầu vào bị lỗi.
Feature Store và các hệ thống liên quan#
- Data lake: Lưu trữ các tệp thô và đã xử lý ở mọi định dạng. Nhiều kho ngoại tuyến nằm bên trong data lake; feature store bổ sung khóa thực thể, dấu thời gian, khả năng truy xuất tại thời điểm và phục vụ trực tuyến lên trên.
- Cơ sở dữ liệu vector: Tìm các embedding được lưu trữ có độ tương đồng cao nhất với vector truy vấn. Feature store tra cứu giá trị theo ID thực thể và có thể lưu embedding như một đặc trưng bên cạnh số lượng, giá trị trung bình và danh mục.
- Registry model: Quản lý phiên bản model đã huấn luyện cùng metadata của chúng, còn feature store quản lý phiên bản các đầu vào mà những model đó sử dụng.
- Phục vụ model: Chạy model phía sau API và gọi kho trực tuyến để lấy các đặc trưng cho từng yêu cầu.
Đặc trưng từ thị giác máy tính#
Phân tích video chuyển luồng hình ảnh từ camera thành các đặc trưng phục vụ dự báo, phát hiện bất thường và mô hình hóa dự đoán: số lượt khách mỗi giờ tại lối vào cửa hàng, độ dài hàng chờ ở quầy thanh toán hoặc tỷ lệ lỗi trên mỗi dây chuyền sản xuất, mỗi giá trị được gắn khóa camera hoặc ID dây chuyền cùng dấu thời gian. Trong lĩnh vực bán lẻ, đếm người cung cấp dữ liệu cho các model nhân sự và nhu cầu; trong lĩnh vực sản xuất, số lỗi theo ca cung cấp dữ liệu cho các model bảo trì. Tính năng đếm đối tượng của Ultralytics YOLO tạo trực tiếp các giá trị như vậy: tính năng này theo dõi từng đối tượng được phát hiện qua các frame và trả về tổng in_count và out_count được cập nhật liên tục cùng số lượng theo lớp khi đối tượng đi qua một đường hoặc vùng, sẵn sàng ghi vào feature store dưới dạng các giá trị có dấu thời gian cho mỗi camera.










