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à hình thứ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 mẫu và mối quan hệ trong một tập dữ liệu 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 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 một giao diện dễ sử dụng 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 nhờ 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 này sẽ được gửi đến một mô hình ngôn ngữ lớn (LLM), chẳng hạn như Gemini, rồi hiển thị câu trả lời cho người dùng.

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

What are the features included in Interop 24?

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

  • Người dùng đã cung cấp cho LLM ít ngữ cảnh cho câu hỏi, do đó, LLM dễ trả về câu trả lời sai hoặc ảo giác hơn.
  • 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 LLM được quyết định, vì vậy, LLM không biết thông tin đó.

Mặc dù LLM có thể tìm thấy thông tin mới hơn, nhưng tập dữ liệu huấn luyện 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

Kỹ thuật câu lệnh là một tập hợp các kỹ thuật để có được kết quả tốt nhất từ LLM.

Một kỹ thuật là cung cấp thêm ngữ cảnh trong câu lệnh, giúp LLM có nhiều khả năng xuất ra nội dung liên quan đến ngữ cảnh đó.

Tiếp tục với ví dụ về khả năng tương tác, bước đầu tiên của chúng ta là cung cấp toàn bộ nội dung của bài viết dưới dạng ngữ cảnh. Sau đó, hãy thêm câu hỏi làm thông tin đầu vào để LLM 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ể thấy Gemini xuất ra 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 trả lời cho 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 một câu hỏi về một bài viết, chúng ta muốn LLM trả lời nhiều câu hỏi hơn về web.dev, 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ể xảy ra đối với các trang web nhỏ hơn, nhưng với cửa sổ ngữ cảnh 1 triệu mã thông báo của Gemini 1.5, các câu lệnh lớn hơn sẽ chậm hơntốn kém hơn để chạy.

Độ 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à một cách để thể hiện một trình tự phổ biến gồm các ký tự có trong dữ liệu nhập văn bản. Số lượng mã thông báo thường 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ừ, được 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 đều cung cấp một API hoặc điểm cuối để tính số lượng mã thông báo cho hoạt động 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 câu lệnh LLM. Bạn nên chia nhiệm vụ này thành hai 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 kiếm nội dung cho các bài viết liên quan đến "Interop 2024 có những tính năng nào?".

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

Dữ liệu đầu vào 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 cho 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 nhận đượ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 hiệu quả với phương pháp tìm kiếm toàn bộ văn bản thông thường, nhưng phương pháp này vẫn 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 các từ khoá khớp chính xác. Tuy nhiên, LLM không thể xác định ý nghĩa dự định đằng sau truy vấn của người dùng. Điều này có thể dẫn đến kết quả 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ụm từ tìm kiếm sử dụng từ đồng nghĩa. Ví dụ: từ khoá "ngân hàng" (tổ chức tài chính so với bờ sông) có thể dẫn đến 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ể đưa ra kết quả tình cờ 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 theo 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 những khía cạnh chính sau:

  • Ý định của người tìm kiếm: Cố gắng tìm hiểu lý do tại sao người dùng lại tìm kiếm nội dung nào đó. Họ đang cố gắng tìm kiếm hoặc thực hiện điều gì?
  • Ý nghĩa theo bối cảnh: Phương thức này diễn giải các từ và cụm từ liên quan đến văn bản xung quanh, cũng như các yếu tố khác như vị trí 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ìm kiếm ngữ nghĩa sử dụng sơ đồ tri thức (mạng lớn các thực thể có liên quan) và công nghệ xử lý ngôn ngữ tự nhiên để hiểu cách các từ và ý tưởng liên kết với nhau.

Do đó, khi bạn xây dựng các công cụ có 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. Tính năng này cũng có thể loại bỏ các kết quả có từ đó nhưng có nghĩa khác.

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

Trích 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 để bật LLM (mô hình ngôn ngữ lớn) nhằm cung cấp câu trả lời liên quan đến nội dung mà mô hình này chưa từng 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 phương pháp này từ các bài viết riêng lẻ đến toàn bộ kho nội dung bằng kỹ thuật Tạo nội dung tăng cường bằng tính năng truy xuất (RAG). Bạn đã tìm hiểu cách 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 vào sản phẩm của bạn.

Một vấn đề đã biết là các công cụ AI tạo sinh có thể "ảo tưởng", khiến chúng tốt nhất là đôi khi không đáng tin cậy hoặc tệ nhất là gây hại cho một doanh nghiệp. Với các 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ể tạo dựng niềm tin vào kết quả của các ứng dụng này.