Cải thiện kết quả tìm kiếm cho AI bằng cách sử dụng Amazon OpenSearch Service như một vector database với Amazon Bedrock

by Jon Handler on 21 FEB 2025 in Amazon Bedrock, Amazon OpenSearch Service, Artificial Intelligence

Artificial Intelligence (AI) đã thay đổi cách con người tương tác với thông tin theo hai cách chính – ứng dụng tìm kiếm và generative AI. Các ứng dụng tìm kiếm bao gồm website thương mại điện tử, tìm kiếm kho tài liệu, tổng đài hỗ trợ khách hàng, quản lý quan hệ khách hàng, ghép cặp trong game và tìm kiếm ứng dụng. Các trường hợp sử dụng generative AI bao gồm chatbot với Retrieval-Augmented Generation (RAG), phân tích log thông minh, tạo code, tóm tắt tài liệu và trợ lý AI. AWS khuyến nghị sử dụng Amazon OpenSearch Service as a vector database for Amazon Bedrock như các thành phần cơ bản để vận hành giải pháp cho các workload này.

Trong bài viết này, bạn sẽ học cách sử dụng OpenSearch Service và Amazon Bedrock để xây dựng các ứng dụng tìm kiếm và generative AI được hỗ trợ bởi AI. Bạn sẽ tìm hiểu cách hệ thống tìm kiếm được hỗ trợ bởi AI sử dụng foundation models (FMs) để nắm bắt và tìm kiếm ngữ cảnh và ý nghĩa trong văn bản, hình ảnh, âm thanh và video, mang lại kết quả chính xác hơn cho người dùng. Bạn sẽ học cách hệ thống generative AI sử dụng các kết quả tìm kiếm này để tạo ra các phản hồi gốc cho câu hỏi, hỗ trợ cuộc hội thoại tương tác giữa con người và máy móc.

Bài viết giải đáp các câu hỏi phổ biến như:

  1. Vector database là gì và nó hỗ trợ ứng dụng generative AI như thế nào?
  2. Tại sao Amazon OpenSearch Service được khuyến nghị làm vector database cho Amazon Bedrock?
  3. Vector database giúp ngăn chặn AI hallucination như thế nào?
  4. Vector database có thể cải thiện hệ thống đề xuất như thế nào?
  5. Khả năng mở rộng của OpenSearch với tư cách là vector database là gì?

Vector database hoạt động trong quy trình AI như thế nào

Khi xây dựng tìm kiếm, FMs và các mô hình AI khác chuyển đổi các loại dữ liệu khác nhau (văn bản, hình ảnh, âm thanh và video) thành biểu diễn toán học gọi là vector. Khi sử dụng vector để tìm kiếm, bạn mã hóa dữ liệu thành vector và lưu trữ các vector đó trong vector database. Bạn tiếp tục chuyển đổi truy vấn thành vector và sau đó truy vấn vector database để tìm các mục liên quan bằng cách giảm thiểu khoảng cách giữa các vector.

Khi xây dựng cho generative AI, bạn sử dụng FMs như large language models (LLMs) để tạo văn bản, video, âm thanh, hình ảnh, code và nhiều thứ khác từ một prompt. Prompt có thể chứa văn bản, chẳng hạn như câu hỏi của người dùng, cùng với các phương tiện khác như hình ảnh, âm thanh hoặc video. Tuy nhiên, các mô hình generative AI có thể tạo ra hallucination – kết quả có vẻ thuyết phục nhưng chứa lỗi thực tế. Để giải quyết thách thức này, bạn sử dụng vector search để truy xuất thông tin chính xác từ vector database. Bạn thêm thông tin này vào prompt trong một quy trình gọi là Retrieval-Augmented Generation (RAG).

Tại sao Amazon OpenSearch Service là vector database được khuyến nghị cho Amazon Bedrock?

Amazon Bedrock là dịch vụ được quản lý hoàn toàn cung cấp FMs từ các công ty AI hàng đầu và các công cụ để tùy chỉnh các FM này với dữ liệu của bạn để cải thiện độ chính xác. Với Amazon Bedrock, bạn có được giải pháp serverless, không rắc rối để áp dụng FM đã chọn và sử dụng nó cho ứng dụng generative AI của bạn.

Amazon OpenSearch Service là dịch vụ được quản lý hoàn toàn mà bạn có thể sử dụng để triển khai và vận hành OpenSearch trên AWS Cloud. OpenSearch là giải pháp tìm kiếm, phân tích log và vector database mã nguồn mở, bao gồm công cụ tìm kiếm và vector database; và OpenSearch Dashboards, giải pháp phân tích log, quan sát, phân tích bảo mật và tạo dashboard. OpenSearch Service có thể giúp bạn triển khai và vận hành cơ sở hạ tầng tìm kiếm với khả năng vector database tích hợp sẵn, mẫu được xây dựng sẵn và thiết lập đơn giản. Các cuộc gọi API và mẫu tích hợp hợp lý hóa kết nối với Amazon Bedrock FMs, trong khi công cụ vector của OpenSearch Service có thể mang lại độ trễ thấp đến mức một chữ số mili giây cho tìm kiếm trên hàng tỷ vector, khiến nó lý tưởng cho các ứng dụng AI thời gian thực.

OpenSearch là một loại công nghệ cơ sở dữ liệu chuyên biệt ban đầu được thiết kế để tối ưu hóa độ trễ và thông lượng cho việc khớp và truy xuất các khối văn bản phi cấu trúc lớn và nhỏ với kết quả được xếp hạng. OpenSearch xếp hạng kết quả dựa trên thước đo độ tương đồng với truy vấn tìm kiếm, trả về các kết quả tương tự nhất. Việc khớp độ tương đồng này đã phát triển theo thời gian. Trước FMs, các công cụ tìm kiếm sử dụng hệ thống tính điểm tần suất từ gọi là term frequency/inverse document frequency (TF/IDF). OpenSearch Service sử dụng TF/IDF để tính điểm tài liệu dựa trên mức độ hiếm của các thuật ngữ tìm kiếm trong tất cả tài liệu và tần suất xuất hiện của các thuật ngữ tìm kiếm trong tài liệu đang được tính điểm.

Với sự phát triển của AI/ML, OpenSearch đã thêm khả năng tính toán điểm tương đồng cho khoảng cách giữa các vector. Để tìm kiếm với vector, bạn thêm vector embeddings được tạo ra bởi FMs và các công nghệ AI/ML khác vào tài liệu của mình. Để tính điểm tài liệu cho một truy vấn, OpenSearch tính toán khoảng cách từ vector của tài liệu đến vector từ truy vấn. OpenSearch còn cung cấp lọc và khớp dựa trên trường và tìm kiếm hybrid vector and lexical search, mà bạn sử dụng để kết hợp các thuật ngữ trong truy vấn của mình. Tìm kiếm hybrid của OpenSearch thực hiện truy vấn từ vựng và vector song song, tạo ra điểm tương đồng với chuẩn hóa điểm tích hợp và trộn để cải thiện độ chính xác của kết quả tìm kiếm so với chỉ tương đồng từ vựng hoặc vector.

OpenSearch Service hỗ trợ ba công cụ vector: Facebook AI Similarity (FAISS), Non-Metric Space Library (NMSLib) và Apache Lucene. Nó hỗ trợ exact nearest neighbor search, and approximate nearest neighbor (ANN) search with either hierarchical navigable small world (HNSW), or Inverted File (IVF) engines. OpenSearch Service supports vector quantization methods, including disk-based vector quantization để bạn có thể tối ưu hóa chi phí, độ trễ và độ chính xác truy xuất cho giải pháp của mình.

Use case 1: Cải thiện kết quả tìm kiếm với AI/ML

Để cải thiện kết quả tìm kiếm với AI/ML, bạn sử dụng mô hình ML tạo vector, thường xuyên nhất là LLM hoặc mô hình đa phương thức tạo embeddings cho đầu vào văn bản và hình ảnh. Bạn sử dụng Amazon OpenSearch Ingestion hoặc công nghệ tương tự để gửi dữ liệu của mình đến OpenSearch Service với OpenSearch Neural Plugin để tích hợp mô hình, sử dụng ID mô hình, vào OpenSearch ingest pipeline. Pipeline nhập gọi Amazon Bedrock để tạo vector embeddings cho mọi tài liệu trong quá trình nhập.

Để truy vấn OpenSearch Service như một vector database, bạn sử dụng OpenSearch neural query để gọi Amazon Bedrock tạo embedding cho truy vấn. Truy vấn neural sử dụng vector database để truy xuất các láng giềng gần nhất.

Dịch vụ cung cấp các CloudFormation templates được xây dựng sẵn để tạo tích hợp OpenSearch Service để kết nối với các foundation model của Amazon Bedrock cho suy luận từ xa. Các mẫu này đơn giản hóa việc thiết lập connector mà OpenSearch Service sử dụng để liên hệ với Amazon Bedrock.

Sau khi đã tạo tích hợp, bạn có thể tham chiếu đến model_id khi thiết lập pipeline nhập và tìm kiếm của mình.

Use case 2: Amazon OpenSearch Serverless như một cơ sở kiến thức Amazon Bedrock

Amazon OpenSearch Serverless cung cấp vector database tự động mở rộng, hiệu suất cao mà bạn có thể sử dụng để xây dựng với Amazon Bedrock cho RAG và AI agents mà không cần quản lý cơ sở hạ tầng vector database. Khi sử dụng OpenSearch Serverless, bạn tạo một collection – tập hợp các chỉ mục cho nhu cầu tìm kiếm, vector và ghi log của ứng dụng của bạn. Đối với các trường hợp sử dụng vector database, bạn gửi dữ liệu vector của mình đến các chỉ mục của collection và OpenSearch Serverless tạo vector database cung cấp độ tương đồng và truy xuất vector nhanh chóng.

Khi sử dụng OpenSearch Serverless làm vector database, bạn chỉ trả tiền cho việc lưu trữ vector và tính toán cần thiết để phục vụ truy vấn của mình. Khả năng tính toán serverless được đo bằng OpenSearch Compute Units (OCUs). Bạn có thể triển khai OpenSearch Serverless bắt đầu từ chỉ một OCU cho workload phát triển và kiểm thử với khoảng 175$/tháng. OpenSearch Serverless tự động mở rộng lên và xuống để đáp ứng workload nhập và tìm kiếm của bạn.

Với Amazon OpenSearch Serverless, bạn có được autoscaled, performant vector database that is seamlessly integrated with Amazon Bedrock as a knowledge base cho giải pháp generative AI của bạn. Bạn sử dụng bảng điều khiển Amazon Bedrock để tự động tạo vector từ dữ liệu của mình trong tối đa năm kho dữ liệu, bao gồm bucket Amazon Simple Storage Service (Amazon S3) và lưu trữ chúng trong collection Amazon OpenSearch Serverless.

Khi bạn đã cấu hình nguồn dữ liệu và chọn mô hình, hãy chọn Amazon OpenSearch Serverless làm vector store của bạn, và Amazon Bedrock và OpenSearch Serverless sẽ tiếp quản từ đó. Amazon Bedrock sẽ tự động truy xuất dữ liệu nguồn từ nguồn dữ liệu của bạn, áp dụng các chiến lược phân tích và phân đoạn bạn đã cấu hình và lập chỉ mục vector embeddings trong OpenSearch Serverless. Một cuộc gọi API sẽ đồng bộ hóa nguồn dữ liệu của bạn với vector store OpenSearch Serverless.

Cuộc gọi Amazon Bedrock retrieve_and_generate() runtime API giúp bạn dễ dàng triển khai RAG với Amazon Bedrock và knowledge base OpenSearch Serverless của bạn.

response = bedrock_agent_runtime_client.retrieve_and_generate(

  input={

    ‘text’: prompt,

  },

  retrieveAndGenerateConfiguration={

    ‘type’: ‘KNOWLEDGE_BASE’,

    ‘knowledgeBaseConfiguration’: {

      ‘knowledgeBaseId’: knowledge_base_id,

      ‘modelArn’: model_arn,

}}) 

Kết luận

Trong bài viết này, bạn đã tìm hiểu cách Amazon OpenSearch Service và Amazon Bedrock hoạt động cùng nhau để cung cấp các ứng dụng tìm kiếm được hỗ trợ bởi AI và generative AI, đồng thời tại sao OpenSearch Service là vector database được AWS khuyến nghị cho Amazon Bedrock. Bạn đã học cách thêm Amazon Bedrock FMs để tạo vector embeddings cho OpenSearch Service semantic search nhằm mang lại ý nghĩa và ngữ cảnh cho kết quả tìm kiếm của bạn. Bạn đã tìm hiểu cách OpenSearch Serverless cung cấp knowledge base tích hợp chặt chẽ cho Amazon Bedrock, giúp đơn giản hóa việc sử dụng foundation models cho RAG và các generative AI khác. Hãy bắt đầu với Amazon OpenSearch Service và Amazon Bedrock ngay hôm nay để nâng cao ứng dụng AI của bạn với khả năng tìm kiếm được cải thiện cùng với đầu ra generative AI đáng tin cậy hơn.


Bài được dịch từ bài viết trên AWS Blogs, bạn có thể xem bài viết gốc tại đây.