Mô hình và nền tảng AI

Một cuộc lặn sâu vào Retrieval-Augmented Generation trong LLM

mm
Thêm Unite.AI vào các nguồn ưu tiên của bạn trên Google

Hãy tưởng tượng bạn là một nhà phân tích và bạn có quyền truy cập vào một mô hình ngôn ngữ lớn. Bạn rất hào hứng về những cơ hội mà nó mang lại cho quy trình làm việc của bạn. Nhưng sau đó, bạn hỏi nó về giá cổ phiếu mới nhất hoặc tỷ lệ lạm phát hiện tại, và nó trả lời bạn:

“Tôi xin lỗi, nhưng tôi không thể cung cấp dữ liệu thời gian thực hoặc sau thời điểm cắt. Dữ liệu đào tạo cuối cùng của tôi chỉ đến tháng 1 năm 2022.”

Mô hình ngôn ngữ lớn, với tất cả sức mạnh ngôn ngữ của nó, thiếu khả năng nắm bắt “hiện tại“. Và trong thế giới nhanh chóng, “hiện tại” là mọi thứ.

Nghiên cứu đã chỉ ra rằng các mô hình ngôn ngữ lớn được đào tạo trước (LLM) cũng là kho lưu trữ kiến thức thực tế.

Chúng đã được đào tạo trên rất nhiều dữ liệu mà chúng đã hấp thụ rất nhiều sự kiện và số liệu. Khi được tinh chỉnh, chúng có thể đạt được kết quả đáng chú ý trên nhiều nhiệm vụ NLP.

Nhưng đây là điều bắt buộc: khả năng của chúng trong việc truy cập và xử lý kiến thức lưu trữ này không phải lúc nào cũng hoàn hảo. Đặc biệt là khi nhiệm vụ tại tay là kiến thức chuyên sâu, những mô hình này có thể tụt lại phía sau các kiến trúc chuyên dụng hơn. Giống như có một thư viện với tất cả các cuốn sách trên thế giới, nhưng không có danh mục để tìm kiếm những gì bạn cần.

OpenAI’s ChatGPT Gets a Browsing Upgrade

Thông báo gần đây của OpenAI về khả năng duyệt web của ChatGPT là một bước nhảy vĩ đại trong hướng của Retrieval-Augmented Generation (RAG). Với ChatGPT hiện có thể tìm kiếm internet để tìm kiếm thông tin hiện tại và có thẩm quyền, nó phản ánh cách tiếp cận RAG của việc động态 kéo dữ liệu từ các nguồn bên ngoài để cung cấp các phản hồi phong phú hơn.

https://twitter.com/OpenAI/status/1707077710047216095

Hiện tại có sẵn cho người dùng Plus và Doanh nghiệp, OpenAI dự định sẽ triển khai tính năng này cho tất cả người dùng sớm. Người dùng có thể kích hoạt tính năng này bằng cách chọn ‘Duyệt với Bing’ dưới tùy chọn GPT-4.

Chatgpt New Browsing Feature

Tính năng duyệt mới của Chatgpt

Prompt engineering là hiệu quả nhưng không đủ

Prompt phục vụ như cổng vào kiến thức của LLM. Chúng hướng dẫn mô hình, cung cấp hướng dẫn cho phản hồi. Tuy nhiên, tạo ra một prompt hiệu quả không phải là giải pháp toàn diện để có được những gì bạn muốn từ một LLM. Hãy cùng xem qua một số thực hành tốt khi viết prompt:

  1. Độ rõ ràng: Một prompt được định nghĩa rõ ràng loại bỏ sự mơ hồ. Nó nên trực tiếp, đảm bảo rằng mô hình hiểu được ý định của người dùng. Độ rõ ràng này thường chuyển thành phản hồi hợp lý và liên quan hơn.
  2. Context: Đặc biệt là với các đầu vào rộng lớn, vị trí của hướng dẫn có thể ảnh hưởng đến đầu ra. Ví dụ, di chuyển hướng dẫn đến cuối một prompt dài có thể thường xuyên mang lại kết quả tốt hơn.
  3. Độ chính xác trong Hướng dẫn: Lực của câu hỏi, thường được truyền đạt thông qua khuôn khổ “ai, cái gì, ở đâu, khi nào, tại sao, làm thế nào”, có thể hướng dẫn mô hình đến một phản hồi tập trung hơn. Ngoài ra, chỉ định định dạng đầu ra mong muốn hoặc kích thước có thể tinh chỉnh thêm đầu ra của mô hình.
  4. Xử lý Sự không chắc chắn: Điều quan trọng là hướng dẫn mô hình về cách phản hồi khi nó không chắc chắn. Ví dụ, hướng dẫn mô hình trả lời “Tôi không biết” khi không chắc chắn có thể ngăn chặn nó tạo ra phản hồi không chính xác hoặc “ảo giác“.
  5. Suy nghĩ theo từng bước: Đối với các hướng dẫn phức tạp, hướng dẫn mô hình suy nghĩ một cách hệ thống hoặc chia nhiệm vụ thành các nhiệm vụ con có thể dẫn đến đầu ra toàn diện và chính xác hơn.

Liên quan đến tầm quan trọng của prompt trong việc hướng dẫn ChatGPT, một bài viết toàn diện có thể được tìm thấy trong một bài viết tại Unite.ai.

Thử thách trong các mô hình AI tạo sinh

Kỹ thuật prompt liên quan đến việc tinh chỉnh các chỉ thị được cung cấp cho mô hình để tăng cường hiệu suất của nó. Đây là một cách rất tiết kiệm chi phí để tăng độ chính xác của ứng dụng AI tạo sinh, chỉ yêu cầu điều chỉnh mã nhỏ. Mặc dù kỹ thuật prompt có thể tăng đáng kể đầu ra, nhưng điều quan trọng là phải hiểu những hạn chế vốn có của các mô hình ngôn ngữ lớn (LLM). Hai thử thách chính là ảo giácknowledge cut-offs.

  • Ảo giác: Điều này đề cập đến các trường hợp mà mô hình trả lời một cách tự tin nhưng không chính xác hoặc tạo ra thông tin.
Ảo giác trong LLM

Ảo giác trong LLM

  • Knowledge cut-offs: Mỗi mô hình LLM có một ngày đào tạo cuối, sau đó nó không biết về các sự kiện hoặc phát triển. Hạn chế này có nghĩa là kiến thức của mô hình bị đóng băng tại thời điểm đào tạo cuối cùng. Ví dụ, một mô hình được đào tạo đến năm 2022 sẽ không biết về các sự kiện của năm 2023.
Knowledge cut-off trong LLM

Knowledge cut-off trong LLM

Sinh tạo tăng cường bằng truy xuất (RAG) cung cấp một giải pháp cho những thách thức này. Nó cho phép mô hình truy cập thông tin bên ngoài, giảm thiểu các vấn đề về ảo giác bằng cách cung cấp quyền truy cập vào dữ liệu chuyên ngành hoặc thuộc lĩnh vực cụ thể. Đối với knowledge cut-offs, RAG có thể truy cập thông tin hiện tại vượt quá ngày đào tạo của mô hình, đảm bảo rằng đầu ra luôn cập nhật.

Nó cũng cho phép LLM kéo dữ liệu từ các nguồn bên ngoài theo thời gian thực. Điều này có thể là cơ sở kiến thức, cơ sở dữ liệu hoặc thậm chí là toàn bộ internet.

Giới thiệu về Retrieval-Augmented Generation

Retrieval-Augmented Generation (RAG) là một khuôn khổ, chứ không phải là một công nghệ cụ thể, cho phép các mô hình ngôn ngữ lớn truy cập vào dữ liệu mà chúng không được đào tạo. Có nhiều cách để triển khai RAG, và cách phù hợp nhất phụ thuộc vào nhiệm vụ cụ thể và bản chất của dữ liệu.

Khung RAG hoạt động theo một cách có cấu trúc:

Đầu vào Prompt

Quá trình bắt đầu với đầu vào của người dùng hoặc prompt. Điều này có thể là một câu hỏi hoặc một câu hỏi tìm kiếm thông tin cụ thể.

Truy xuất từ các nguồn bên ngoài

Thay vì tạo ra phản hồi trực tiếp dựa trên đào tạo của nó, mô hình, với sự giúp đỡ của một thành phần truy xuất, tìm kiếm thông qua các nguồn dữ liệu bên ngoài. Những nguồn này có thể bao gồm cơ sở kiến thức, cơ sở dữ liệu, cửa hàng tài liệu đến dữ liệu có thể truy cập trên internet.

Hiểu về Truy xuất

Về bản chất, truy xuất phản ánh một hoạt động tìm kiếm. Nó liên quan đến việc trích xuất thông tin phù hợp nhất để đáp ứng đầu vào của người dùng. Quá trình này có thể được chia thành hai giai đoạn:

  1. Đánh chỉ mục: Có thể nói, phần khó nhất của toàn bộ hành trình RAG là đánh chỉ mục cơ sở kiến thức của bạn. Quá trình đánh chỉ mục có thể được chia thành hai giai đoạn: Tải và Chia nhỏ. Trong các công cụ như LangChain, những quá trình này được gọi là “loaders” và “splitters“. Loaders lấy nội dung từ các nguồn khác nhau, có thể là trang web hoặc tệp PDF. Khi đã lấy, splitters sau đó chia nội dung này thành các mảnh nhỏ, tối ưu hóa chúng cho việc nhúng và tìm kiếm.
  2. Tìm kiếm: Đây là hành động trích xuất các mảnh kiến thức phù hợp nhất dựa trên một từ khóa tìm kiếm.

Khi có nhiều cách để tiếp cận truy xuất, từ việc tìm kiếm văn bản đơn giản đến việc sử dụng công cụ tìm kiếm như Google (GOOGL ), các hệ thống RAG hiện đại phụ thuộc vào tìm kiếm ngữ nghĩa. Tại trung tâm của tìm kiếm ngữ nghĩa nằm khái niệm về các bản nhúng.

Bản nhúng là trung tâm của cách các mô hình ngôn ngữ lớn (LLM) hiểu ngôn ngữ. Khi con người cố gắng giải thích cách họ suy luận ý nghĩa từ các từ, giải thích thường quay lại sự hiểu biết vốn có. Deep trong cấu trúc nhận thức của chúng ta, chúng ta nhận ra rằng “trẻ em” và “nhóc” là đồng nghĩa, hoặc “đỏ” và “xanh” đều chỉ màu sắc.

Tăng cường Prompt

Thông tin được truy xuất sau đó được kết hợp với prompt ban đầu, tạo ra một prompt tăng cường hoặc mở rộng. Prompt tăng cường này cung cấp cho mô hình thêm ngữ cảnh, điều này đặc biệt quý giá nếu dữ liệu là chuyên ngành hoặc không phải là một phần của tập dữ liệu đào tạo ban đầu của mô hình.

Tạo ra Hoàn thành

Với prompt tăng cường trong tay, mô hình sau đó tạo ra một hoàn thành hoặc phản hồi. Phản hồi này không chỉ dựa trên đào tạo của mô hình mà còn được thông tin bởi dữ liệu thời gian thực được truy xuất.

Retrieval-Augmented Generation

Retrieval-Augmented Generation

Cấu trúc của RAG LLM đầu tiên

Bài báo nghiên cứu của Meta được xuất bản vào năm 2020 “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks” cung cấp một cái nhìn sâu sắc về kỹ thuật này. Mô hình Retrieval-Augmented Generation tăng cường quá trình tạo ra truyền thống với một cơ chế tìm kiếm hoặc truy xuất bên ngoài. Điều này cho phép mô hình kéo thông tin liên quan từ một lượng lớn dữ liệu, tăng cường khả năng tạo ra phản hồi chính xác về mặt ngữ cảnh.

Đây là cách nó hoạt động:

  1. Bộ nhớ tham số: Đây là mô hình ngôn ngữ truyền thống của bạn, giống như một mô hình seq2seq. Nó đã được đào tạo trên một lượng lớn dữ liệu và biết rất nhiều điều.
  2. Bộ nhớ không tham số: Hãy nghĩ về điều này như một công cụ tìm kiếm. Nó là một chỉ mục vector dày đặc của, chẳng hạn như Wikipedia, có thể được truy cập bằng một trình truy xuất thần kinh.

Khi kết hợp, những thứ này tạo ra một mô hình chính xác. Mô hình RAG đầu tiên truy xuất thông tin liên quan từ bộ nhớ không tham số của nó và sau đó sử dụng kiến thức tham số của nó để đưa ra một phản hồi hợp lý.

Mô hình RAG ban đầu của Meta

Mô hình RAG ban đầu của Meta

1. Quy trình hai bước:

Mô hình RAG LLM hoạt động trong một quy trình hai bước:

  • Truy xuất: Mô hình đầu tiên tìm kiếm các tài liệu hoặc đoạn văn bản liên quan từ một tập dữ liệu lớn. Điều này được thực hiện bằng một cơ chế truy xuất dày đặc, sử dụng các bản nhúng để đại diện cho cả truy vấn và tài liệu. Các bản nhúng sau đó được sử dụng để tính toán điểm tương似, và các tài liệu hàng đầu được truy xuất.
  • Tạo ra: Với các tài liệu liên quan hàng đầu trong tay, chúng sau đó được đưa vào một trình tạo seq2seq cùng với truy vấn ban đầu. Trình tạo này sau đó tạo ra đầu ra cuối cùng, rút ra ngữ cảnh từ cả truy vấn và tài liệu được lấy.

2. Truy xuất dày đặc:

Các hệ thống truy xuất truyền thống thường phụ thuộc vào các biểu diễn thưa thớt như TF-IDF. Tuy nhiên, mô hình RAG LLM sử dụng các biểu diễn dày đặc, nơi cả truy vấn và tài liệu được nhúng vào không gian vector liên tục. Điều này cho phép so sánh tương似 tinh tế hơn, nắm bắt các mối quan hệ ngữ nghĩa vượt ra ngoài việc khớp từ khóa đơn giản.

3. Tạo ra seq2seq:

Các tài liệu được truy xuất đóng vai trò như một ngữ cảnh mở rộng cho mô hình tạo ra. Mô hình này, thường dựa trên kiến trúc như Transformer, sau đó tạo ra đầu ra cuối cùng, đảm bảo nó hợp lý và liên quan về mặt ngữ cảnh.

Tìm kiếm tài liệu

Đánh chỉ mục và Truy xuất tài liệu

Để truy xuất thông tin hiệu quả, đặc biệt là từ các tài liệu lớn, dữ liệu thường được lưu trữ trong một cơ sở dữ liệu vector. Mỗi mảnh dữ liệu hoặc tài liệu được đánh chỉ mục dựa trên một vector bản nhúng, nắm bắt bản chất ngữ nghĩa của nội dung. Đánh chỉ mục hiệu quả đảm bảo việc truy xuất nhanh chóng thông tin liên quan dựa trên prompt đầu vào.

Cơ sở dữ liệu Vector

Cơ sở dữ liệu Vector

Nguồn: Redis

Cơ sở dữ liệu vector, đôi khi được gọi là lưu trữ vector, là các cơ sở dữ liệu được thiết kế để lưu trữ và lấy dữ liệu vector. Trong lĩnh vực AI và khoa học máy tính, vector cơ bản là danh sách các số đại diện cho điểm trong không gian đa chiều. Không giống như các cơ sở dữ liệu truyền thống, được thiết kế để quản lý dữ liệu bảng, cơ sở dữ liệu vector excels trong việc quản lý dữ liệu phù hợp với định dạng vector, chẳng hạn như bản nhúng từ các mô hình AI.

Một số cơ sở dữ liệu vector đáng chú ý bao gồm Annoy, Faiss của Meta, MilvusPinecone. Những cơ sở dữ liệu này là then chốt trong các ứng dụng AI, hỗ trợ các nhiệm vụ từ hệ thống khuyến nghị đến tìm kiếm hình ảnh. Các nền tảng như AWS cũng cung cấp dịch vụ được thiết kế cho nhu cầu cơ sở dữ liệu vector, chẳng hạn như Amazon (AMZN ) OpenSearch Service và Amazon RDS cho PostgreSQL. Những dịch vụ này được tối ưu hóa cho các trường hợp sử dụng cụ thể, đảm bảo việc đánh chỉ mục và truy vấn hiệu quả.

Chunking cho Tính liên quan

Đầu vào rằng nhiều tài liệu có thể rất rộng lớn, một kỹ thuật gọi là “chunking” thường được sử dụng. Điều này liên quan đến việc chia các tài liệu lớn thành các mảnh nhỏ, hợp lý về mặt ngữ nghĩa. Những mảnh này sau đó được đánh chỉ mục và truy xuất khi cần, đảm bảo rằng các phần liên quan nhất của một tài liệu được sử dụng để tăng cường prompt.

Xem xét Cửa sổ ngữ cảnh

Mỗi LLM hoạt động trong một cửa sổ ngữ cảnh, về cơ bản là lượng thông tin tối đa mà nó có thể xem xét cùng một lúc. Nếu các nguồn dữ liệu bên ngoài cung cấp thông tin vượt quá cửa sổ này, nó cần được chia thành các mảnh nhỏ hơn phù hợp với cửa sổ ngữ cảnh của mô hình.

Lợi ích của việc sử dụng Retrieval-Augmented Generation

  1. Độ chính xác được tăng cường: Bằng cách tận dụng các nguồn dữ liệu bên ngoài, mô hình RAG LLM có thể tạo ra phản hồi không chỉ dựa trên dữ liệu đào tạo của nó mà còn được thông tin bởi thông tin liên quan và cập nhật nhất có sẵn trong corpus truy xuất.
  2. Chinh phục khoảng trống kiến thức: RAG hiệu quả giải quyết các hạn chế kiến thức vốn có của LLM, cho dù đó là do ngày đào tạo của mô hình hay sự thiếu hụt dữ liệu chuyên ngành trong tập dữ liệu đào tạo của nó.
  3. Khả năng thích nghi: RAG có thể được tích hợp với các nguồn dữ liệu bên ngoài khác nhau, từ cơ sở dữ liệu chuyên dụng trong một tổ chức đến dữ liệu internet có thể truy cập công khai. Điều này làm cho nó thích ứng với một loạt các ứng dụng và ngành công nghiệp.
  4. Giảm ảo giác: Một trong những thách thức với LLM là khả năng “ảo giác” hoặc tạo ra thông tin không chính xác hoặc tạo ra. Bằng cách cung cấp ngữ cảnh dữ liệu thời gian thực, RAG có thể giảm đáng kể khả năng của những đầu ra như vậy.
  5. Khả năng mở rộng: Một trong những lợi ích chính của mô hình RAG LLM là khả năng mở rộng của nó. Bằng cách tách biệt quá trình truy xuất và tạo ra, mô hình có thể xử lý hiệu quả các tập dữ liệu lớn, khiến nó phù hợp cho các ứng dụng thực tế nơi dữ liệu dồi dào.

Thử thách và Xem xét

  • Chi phí tính toán: Quá trình hai bước có thể tính toán密集, đặc biệt là khi xử lý các tập dữ liệu lớn.
  • Phụ thuộc dữ liệu: Chất lượng của các tài liệu được truy xuất trực tiếp ảnh hưởng đến chất lượng tạo ra. Do đó, việc có một corpus truy xuất toàn diện và được chăm sóc cẩn thận là rất quan trọng.

Kết luận

Bằng cách tích hợp các quá trình truy xuất và tạo ra, Retrieval-Augmented Generation cung cấp một giải pháp mạnh mẽ cho các nhiệm vụ kiến thức chuyên sâu, đảm bảo đầu ra không chỉ được thông tin mà còn liên quan về mặt ngữ cảnh.

Bản chất thực sự của RAG nằm trong các ứng dụng thực tế của nó. Đối với các lĩnh vực như chăm sóc sức khỏe, nơi thông tin kịp thời và chính xác có thể là then chốt, RAG cung cấp khả năng trích xuất và tạo ra thông tin từ một lượng lớn văn bản y tế một cách liền mạch. Trong lĩnh vực tài chính, nơi thị trường thay đổi từng phút, RAG có thể cung cấp thông tin dữ liệu thời gian thực, hỗ trợ việc ra quyết định thông minh. Hơn nữa, trong học thuật và nghiên cứu, các học giả có thể tận dụng RAG để quét các kho lưu trữ thông tin rộng lớn, làm cho việc xem xét văn bản và phân tích dữ liệu trở nên hiệu quả hơn.

Tôi đã dành 5 năm qua để đắm mình trong thế giới hấp dẫn của Máy học và Học sâu. Đam mê và chuyên môn của tôi đã dẫn tôi đến việc đóng góp vào hơn 50 dự án kỹ thuật phần mềm đa dạng, với sự tập trung đặc biệt vào AI/ML. Sự tò mò liên tục của tôi cũng đã thu hút tôi đến với Xử lý Ngôn ngữ Tự nhiên, một lĩnh vực tôi渴望 khám phá thêm.