Nâng cấp tính năng tìm kiếm trên trang web: Đưa ra câu trả lời theo ngữ cảnh bằng AI tạo sinh

AI tạo sinh là việc sử dụng trí tuệ nhân tạo để tạo ra nội dung mới, chẳng hạn như văn bản, hình ảnh, nhạc, âm thanh và video. AI tạo sinh dựa vào mô hình học máy (ML) để tìm hiểu các quy luật và mối quan hệ trong một tập dữ liệu gồm nội dung do con người tạo.

Công nghệ này đã cho thấy những khả năng đáng kinh ngạc thông qua các ứng dụng như Gemini. Có thể bạn sẽ thắc mắc làm cách nào để triển khai các công cụ AI tạo sinh vào các sản phẩm web của mình?

Một trường hợp sử dụng phổ biến là cung cấp cho người dùng giao diện tốt hơn để đặt câu hỏi về nội dung của trang web. Bạn có thể cải thiện đáng kể kết quả tìm kiếm của người dùng với sự trợ giúp của công nghệ học máy.

Bạn có thể tạo một giao diện để người dùng viết câu hỏi, sau đó câu hỏi đó được gửi đến một mô hình ngôn ngữ lớn (LLM), chẳng hạn như Gemini, và sau đó hiển thị câu trả lời cho người dùng.

Giả sử một tính năng như vậy tồn tại trên trang web này. Người dùng muốn biết API nào có trong Interop 2024 và họ sẽ nhập truy vấn sau:

What are the features included in Interop 24?

Rất tiếc, kết quả có thể không chính xác vì một số lý do:

  • Người dùng đã cung cấp ít ngữ cảnh cho câu hỏi của LLM, do đó, LLM dễ trả về câu trả lời sai hoặc ảo tưởng.
  • LLM có thể đã được huấn luyện trước khi Interop 2024 được tạo hoặc các tính năng của mô hình này quyết định nên không biết thông tin đó.

Mặc dù các LLM có thể tìm thêm thông tin mới nhất, nhưng các tập dữ liệu huấn luyện các LLM vốn đã lỗi thời. Việc duy trì kết quả mới có thể tốn rất nhiều thời gian và chi phí.

Sử dụng kỹ thuật câu lệnh

Nhắc nhở kỹ thuật là một tập hợp các kỹ thuật để đạt được kết quả tốt nhất từ một LLM.

Có một kỹ thuật là cung cấp ngữ cảnh bổ sung trong câu lệnh, giúp LLM tăng khả năng đưa ra nội dung có liên quan đến ngữ cảnh đó.

Tiếp tục với ví dụ về Interop, bước đầu tiên của chúng tôi là cung cấp toàn bộ nội dung của bài viết dưới dạng ngữ cảnh. Sau đó, thêm câu hỏi làm dữ liệu đầu vào để LM trả lời. Ví dụ:

Context:
Following on from the success of Interop 2022 and Interop 2023, we
are excited about the opportunity to collaborate once again with
all key browser vendors and other relevant stakeholders...
(trimmed to fit in this article)

Input:
What are the features included in Interop 2024?

Bạn có thể dự kiến Gemini sẽ xuất nội dung như sau:

The features included in Interop 24 are Accessibility, CSS Nesting, Custom
Properties, Declarative Shadow DOM, font-size-adjust, HTTPS URLs for
WebSocket, IndexedDB, Layout, Pointer and Mouse Events, Popover, Relative
Color Syntax, requestVideoFrameCallback, Scrollbar Styling, @starting-style
and, transition-behavior, Text Directionality, text-wrap: balance,URL

Câu trả lời này có thể tốt hơn nhiều so với câu lệnh không có ngữ cảnh, vì câu trả lời dựa trên ngữ cảnh được cung cấp.

Mở rộng quy mô bằng RAG

Ví dụ: thay vì trả lời câu hỏi về một bài viết, chúng tôi muốn LLM trả lời thêm câu hỏi về web.dev bằng cách sử dụng bất kỳ bài viết nào làm ngữ cảnh bổ sung. Mặc dù điều này có thể áp dụng cho các trang web nhỏ, với cửa sổ theo bối cảnh gồm 1 triệu mã thông báo của Gemini 1.5, nhưng việc chạy các lời nhắc lớn sẽ chậm hơntốn kém hơn.

Độ dài đầu vào và đầu ra của các LLM được đo lường và tính phí bằng mã thông báo. Đây là cách biểu thị một chuỗi ký tự phổ biến được tìm thấy trong mục nhập văn bản. Số lượng mã thông báo thường sẽ lớn hơn số lượng từ. Ví dụ: dữ liệu đầu vào trong ví dụ đầu tiên có 775 từ, biểu thị bằng 1097 mã thông báo. Các LLM khác nhau có thể tính toán mã thông báo theo cách khác nhau và hầu hết các LLM đều cung cấp API hoặc một điểm cuối để tính số lượng mã thông báo cho việc nhập văn bản.

Một giải pháp là cung cấp các bài viết liên quan đến lời nhắc của mô hình ngôn ngữ lớn (LLM). Tác vụ này nên bao gồm 2 phần:

  1. Thêm nội dung của các bài viết hàng đầu làm ngữ cảnh khi nhắc LLM.
  2. Tìm nội dung trong các bài viết liên quan đến "Interop 2024 có những tính năng nào?".

Chúng ta muốn kết quả Gemini trả về nội dung dựa trên các bài viết sau:

Nội dung nhập sẽ có dạng như sau:

Context:
Article 1:
Over the past two years... (trimmed)

Article 2:
At the end of last year Interop 2023 wrapped up. This effort... (trimmed)

Article 3:
Following on from the success of Interop 2022... (trimmed)

Input:
What are the features included in Interop 2024?

Ngữ cảnh này tạo ra kết quả dự kiến.

* Accessibility * CSS Nesting * Custom Properties
* Declarative Shadow DOM * font-size-adjust
* HTTPS URLs for WebSocket * IndexedDB * Layout
* Pointer and Mouse Events * Popover * Relative Color Syntax
* requestVideoFrameCallback * Scrollbar Styling
* @starting-style and transition-behavior * Text Directionality
* text-wrap: balance * URL

Đối với những người đã quen thuộc với các kỹ thuật AI, phương pháp này sử dụng RAG, một phương pháp phổ biến để cải thiện khả năng có câu trả lời thực tế từ các công cụ AI tạo sinh.

Mặc dù kỹ thuật RAG có thể hoạt động với tính năng tìm kiếm toàn bộ văn bản thông thường, nhưng phương pháp này có một số hạn chế.

  • Tính năng tìm kiếm toàn bộ văn bản giúp AI tìm thấy từ khoá khớp chính xác. Tuy nhiên, các LLM không thể xác định ý nghĩa đằng sau cụm từ tìm kiếm của người dùng. Điều này có thể khiến dữ liệu đầu ra không đầy đủ hoặc không chính xác.
  • Có thể xảy ra vấn đề khi từ có nhiều nghĩa hoặc các truy vấn sử dụng từ đồng nghĩa. Ví dụ: "ngân hàng" (tổ chức tài chính so với bờ sông) có thể dẫn đến các kết quả không liên quan.
  • Tính năng tìm kiếm toàn bộ văn bản có thể cho ra những kết quả có chứa từ khoá nhưng không phù hợp với mục tiêu của người dùng.

Tìm kiếm ngữ nghĩa là một kỹ thuật giúp cải thiện độ chính xác của kết quả tìm kiếm bằng cách tập trung vào các khía cạnh chính sau:

  • Ý định của người tìm kiếm: Nó cố gắng hiểu lý do tại sao người dùng tìm kiếm nội dung nào đó. Họ đang cố gắng tìm kiếm hoặc đạt được điều gì?
  • Ý nghĩa theo ngữ cảnh: Giải pháp này diễn giải các từ và cụm từ có liên quan đến văn bản xung quanh, cũng như các yếu tố khác như vị trí của người dùng hoặc nhật ký tìm kiếm của người dùng.
  • Mối quan hệ giữa các khái niệm: Tính năng Tìm kiếm ngữ nghĩa sử dụng biểu đồ tri thức (mạng lưới rộng lớn gồm các thực thể có liên quan) và khả năng xử lý ngôn ngữ tự nhiên để hiểu mối liên hệ giữa các từ và ý tưởng.

Do đó, khi bạn xây dựng các công cụ dựa trên tính năng tìm kiếm ngữ nghĩa, kết quả tìm kiếm sẽ dựa vào mục đích tổng thể của cụm từ tìm kiếm thay vì từ khoá. Điều này có nghĩa là một công cụ có thể xác định các tài liệu có liên quan, ngay cả khi không có từ khoá chính xác. Hàm này cũng có thể tránh các kết quả chứa từ đó, nhưng có một nghĩa khác.

Hiện tại, bạn có thể triển khai 2 công cụ tìm kiếm sử dụng tính năng tìm kiếm theo ngữ nghĩa: Vertex AI SearchAlgolia AI Search.

Rút ra câu trả lời từ nội dung đã xuất bản

Bạn đã tìm hiểu cách sử dụng kỹ thuật câu lệnh để cho phép một LLM cung cấp câu trả lời liên quan đến nội dung mà nó chưa từng nhìn thấy bằng cách thêm ngữ cảnh vào câu lệnh. Ngoài ra, bạn đã tìm hiểu cách mở rộng quy mô phương pháp này từ từng bài viết thành toàn bộ tập hợp nội dung bằng kỹ thuật Tạo truy xuất-tăng cường (RAG). Bạn đã tìm hiểu cách tính năng tìm kiếm ngữ nghĩa có thể cải thiện thêm kết quả cho các cụm từ tìm kiếm của người dùng, triển khai RAG hiệu quả hơn cho sản phẩm của bạn.

Có một vấn đề đã biết mà các công cụ AI tạo sinh có thể "ảo tưởng", khiến những công cụ này ở trạng thái tốt nhất, đôi khi không đáng tin cậy, hoặc tệ nhất là gây hại cho doanh nghiệp. Bằng những kỹ thuật này, cả người dùng và nhà phát triển đều có thể cải thiện độ tin cậy và có thể là tạo dựng lòng tin vào kết quả của những ứng dụng này.