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.
Semantic search là một kỹ thuật truy xuất thông tin tinh vi nhằm hiểu ý định và ngữ nghĩa theo ngữ cảnh của truy vấn người dùng thay vì chỉ đơn thuần khớp các từ cụ thể. Bằng cách tận dụng các tiến bộ trong Natural Language Processing (NLP) và Machine Learning (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 độ tinh tế cao hơn. Đây là nền tảng của các ứng dụng Artificial Intelligence (AI) hiện đại, cho phép 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 có liên quan.
Cách thức hoạt động của Tìm kiếm ngữ nghĩa#
Về cốt lõi, semantic search vượt ra ngoài 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" nhưng tài liệu chỉ chứa từ "cat". Semantic search giải quyết vấn đề này bằng cách chuyển đổi unstructured data—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 gọi là embeddings.
Các embedding này là các vector 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ụ, vector cho "car" sẽ có khoảng cách toán học gần với "automobile" và "road" hơn là với "banana". Khi người dùng gửi truy vấn, hệ thống chuyển đổi truy vấn đó thành một vector và tìm các điểm dữ liệu gần nhất trong vector database. Quá trình này dựa vào các model deep learning để thực hiện feature extraction, xác định các đặc điểm thiết yếu của dữ liệu.
Đoạn mã Python sau đây minh họa cách tạo các embedding này bằng cách sử dụng model Ultralytics YOLO26, đây là bước nền tảng để kích hoạt semantic search 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}")Cá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.
- E-Commerce and Visual Discovery: Trong thế giới của AI in retail, semantic search cung cấp năng lượng cho các tính năng "shop the look". 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 "vintage summer vibes". Hệ thống sử dụng computer vision để 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 các từ khóa chính xác đó. Điều này thường liên quan đến các Multi-Modal Models có thể hiểu cả đầu vào bằng văn bản và hình ảnh.
- Knowledge Management and RAG: Các tổ chức lớn sử dụng semantic search để giúp nhân viên tìm kiếm tài liệu nội bộ. Thay vì ghi nhớ tên tệp chính xác, nhân viên có thể đặt câu hỏi như "How do I reset the server?". Hệ thống sử dụng Retrieval-Augmented Generation (RAG) để tìm các tài liệu chính sách phù hợp nhất dựa trên ý nghĩa và đưa chúng vào Large Language Model (LLM) để tạo ra một câu trả lời chính xác.
- Content Recommendation: Các nền tảng phát trựcstreaming tận dụng sự hiểu biết ngữ nghĩa để cải thiện recommendation system của họ. Bằng cách phân tích tóm tắt cốt truyện và các feature maps trực quan của các bộ phim mà người dùng thích, nền tảng có thể đề xuất các tựa phim khác có chung chủ đề hoặc tâm trạng, giúp người dùng gắn bó lâu hơn.
Tì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 semantic search, việc phân biệt nó với các thuật ngữ liên quan trong bối cảnh data science là rất hữu ích.
- Vector Search: Mặc dù thường được sử dụng thay thế cho nhau, nhưng có sự phân biệt về mặt kỹ thuật. Vector search là phương pháp toán học tính toán khoảng cách giữa các vector (thường sử dụng cosine similarity). Semantic search là ứng dụng rộng hơn sử dụng vector search để đạt được mục tiêu hiểu ý định người dùng.
- Keyword Search: Đây là phương pháp truyền thống dựa trên việc khớp chuỗi chính xác. Nó rẻ hơn về mặt tính toán nhưng dễ lỗi; nó gặp khó khăn với synonyms và tính đa nghĩa (các từ có nhiều nghĩa). Semantic search đò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ể.
- Zero-Shot Learning: Điều này đề cập đến khả năng của model 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ụ semantic search 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 hiện có trong không gian embedding mà không cần huấn luyện lại.
Việc triển khai semantic search thường yêu cầu một pipeline mạnh mẽ để quản lý các dataset và huấn luyện model. Ultralytics Platform đơn giản hóa việc này bằng cách cung cấp các công cụ để chú thích dữ liệu, huấn luyện model 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á Ultralytics similarity search guide cung cấp các bước thực tế để tích hợp các tính năng mạnh mẽ này vào các ứng dụng.






