Semantic Search
Khám phá cách tìm kiếm ngữ nghĩa sử dụng AI và các embedding để hiểu ý định người dùng. Tìm hiểu cách xây dựng các hệ thống tìm kiếm hình ảnh với Ultralytics YOLO26 và Nền tảng của chúng tôi.
Tìm kiếm ngữ nghĩa là một kỹ thuật truy xuất thông tin tinh vi nhằm hiểu ý định và ngữ nghĩa theo bối cảnh của truy vấn người dùng thay vì chỉ khớp các từ cụ thể. Bằng cách tận dụng những tiến bộ trong Xử lý ngôn ngữ tự nhiên (NLP) và Học máy (ML), công nghệ này cho phép các hệ thống diễn giải ngôn ngữ con người với sắc thái tinh tế hơn. Đây là nền tảng của các ứng dụng Trí tuệ nhân tạo (AI) hiện đại, cho phép các tương tác trực quan hơn giữa con người và máy móc bằng cách thu hẹp khoảng cách giữa các truy vấn mơ hồ của người dùng và dữ liệu liên quan.
Link to this sectionCách thức hoạt động của Tìm kiếm ngữ nghĩa#
Về cơ bản, tìm kiếm ngữ nghĩa vượt xa việc khớp ký tự theo nghĩa đen để phân tích mối quan hệ giữa các khái niệm. Các công cụ tìm kiếm truyền thống có thể thất bại nếu người dùng tìm kiếm "feline" (họ nhà mèo) nhưng tài liệu chỉ chứa từ "cat" (mèo). Tìm kiếm ngữ nghĩa giải quyết vấn đề này bằng cách chuyển đổi dữ liệu phi cấu trúc—chẳng hạn như văn bản, hình ảnh hoặc âm thanh—thành các biểu diễn toán học được gọi là embeddings.
Các embedding này là những vectơ nhiều chiều được đặt trong một "không gian ngữ nghĩa". Trong không gian này, các mục có nghĩa tương tự được đặt gần nhau. Ví dụ, vectơ cho "xe hơi" sẽ gần về mặt toán học với "ô tô" và "đường phố" hơn là với "quả chuối". Khi người dùng gửi truy vấn, hệ thống chuyển đổi truy vấn đó thành một vectơ và tìm các điểm dữ liệu gần nhất trong cơ sở dữ liệu vectơ. Quá trình này dựa vào các mô hình học sâu (DL) để thực hiện trích xuất đặc trưng, xác định các đặc điểm thiết yếu của dữ liệu.
Mã Python sau đây minh họa cách tạo các embedding này bằng cách sử dụng mô hình Ultralytics YOLO26, đây là bước nền tảng để kích hoạt tìm kiếm ngữ nghĩa trực quan.
from ultralytics import YOLO
# Load a pre-trained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Generate feature embeddings for an image
# This converts the visual content into a numerical vector
results = model.embed("https://ultralytics.com/images/bus.jpg")
# Output the shape of the embedding vector (e.g., length 1280)
print(f"Embedding vector shape: {results[0].shape}")Link to this sectionCác ứng dụng trong thực tế#
Tìm kiếm ngữ nghĩa đã cách mạng hóa cách người dùng khám phá thông tin trên nhiều lĩnh vực, giúp các hệ thống trở nên thông minh và hiệu quả hơn.
- Thương mại điện tử và Khám phá trực quan: Trong thế giới AI trong bán lẻ, tìm kiếm ngữ nghĩa cung cấp sức mạnh cho các tính năng "mua theo phong cách". Khách hàng có thể tải lên một bức ảnh giày thể thao hoặc tìm kiếm "phong cách vintage mùa hè". Hệ thống sử dụng thị giác máy tính (CV) để hiểu phong cách trực quan và truy xuất các sản phẩm phù hợp với thẩm mỹ đó, ngay cả khi mô tả sản phẩm không chứa chính xác các từ khóa đó. Điều này thường liên quan đến các Mô hình đa phương thức có thể hiểu được cả đầu vào văn bản và hình ảnh.
- Quản lý tri thức và RAG: Các tổ chức lớn sử dụng tìm kiếm ngữ nghĩa để giúp nhân viên tìm kiếm tài liệu nội bộ. Thay vì ghi nhớ chính xác tên tệp, nhân viên có thể đặt câu hỏi như "Làm thế nào để đặt lại máy chủ?". Hệ thống sử dụng Truy xuất tăng cường thế hệ (RAG) để tìm các tài liệu chính sách liên quan nhất dựa trên ý nghĩa và cung cấp chúng cho Mô hình ngôn ngữ lớn (LLM) để tạo ra câu trả lời chính xác.
- Đề xuất nội dung: Các nền tảng phát trực tuyến sử dụng hiểu biết ngữ nghĩa để cải thiện hệ thống đề xuất của họ. Bằng cách phân tích tóm tắt cốt truyện và các bản đồ đặc trưng trực quan của các bộ phim mà người dùng yêu thích, nền tảng có thể gợi ý các tiêu đề khác có chung chủ đề hoặc tâm trạng, giúp người dùng gắn bó lâu hơn.
Link to this sectionTìm kiếm ngữ nghĩa so với các khái niệm liên quan#
Để nắm bắt đầy đủ tiện ích của tìm kiếm ngữ nghĩa, việc phân biệt nó với các thuật ngữ liên quan trong bối cảnh khoa học dữ liệu là rất hữu ích.
- Tìm kiếm vectơ: Mặc dù thường được sử dụng thay thế cho nhau, nhưng có một sự khác biệt về kỹ thuật. Tìm kiếm vectơ là phương pháp toán học để tính khoảng cách giữa các vectơ (thường sử dụng độ tương đồng cosin). Tìm kiếm ngữ nghĩa là ứng dụng rộng hơn sử dụng tìm kiếm vectơ để đạt được mục tiêu hiểu ý định người dùng.
- Tìm kiếm từ khóa: Đây là phương pháp truyền thống dựa vào việc khớp chuỗi chính xác. Nó rẻ hơn về mặt tính toán nhưng thiếu linh hoạt; nó gặp khó khăn với từ đồng nghĩa và đa nghĩa (các từ có nhiều nghĩa). Tìm kiếm ngữ nghĩa đòi hỏi nhiều sức mạnh tính toán hơn nhưng mang lại độ liên quan cao hơn đáng kể.
- Học không cần ví dụ (Zero-Shot Learning): Điều này đề cập đến khả năng của một mô hình trong việc phân loại dữ liệu mà nó chưa từng thấy trong quá trình huấn luyện. Các công cụ tìm kiếm ngữ nghĩa thường thể hiện khả năng zero-shot vì chúng có thể ánh xạ một truy vấn mới, chưa từng thấy vào các cụm khái niệm đã biết trong không gian embedding mà không cần huấn luyện lại.
Việc triển khai tìm kiếm ngữ nghĩa thường yêu cầu một quy trình mạnh mẽ để quản lý tập dữ liệu và huấn luyện mô hình. Nền tảng Ultralytics đơn giản hóa điều này bằng cách cung cấp các công cụ để chú thích dữ liệu, huấn luyện mô hình và triển khai chúng một cách hiệu quả. Đối với các nhà phát triển muốn xây dựng các hệ thống này, việc khám phá hướng dẫn tìm kiếm tương đồng của Ultralytics cung cấp các bước thực tế để tích hợp các khả năng mạnh mẽ này vào ứng dụng.






