Vào giữa năm 2024, việc tạo một bản demo AI gây ấn tượng và phấn khích có thể dễ dàng. Bạn thường có thể xây dựng một bot AI riêng biệt chỉ trong một buổi chiều. Tuy nhiên, việc bắt tay vào sản xuất lại là một vấn đề khác. Bạn sẽ cần một hệ thống đáng tin cậy, có thể quan sát, điều chỉnh và hoạt động hiệu quả.
People Mentioned
Companies Mentioned
Vào giữa năm 2024, việc tạo một bản demo AI gây ấn tượng và phấn khích có thể dễ dàng. Lấy một nhà phát triển giỏi, một số thử nghiệm nhanh chóng thông minh và một vài lệnh gọi API đến mô hình nền tảng mạnh mẽ và bạn thường có thể xây dựng một bot AI riêng biệt chỉ trong một buổi chiều. Thêm vào một thư viện như hoặc để tăng cường LLM của bạn với một chút dữ liệu tùy chỉnh bằng RAG - và công việc của một buổi chiều có thể biến thành một dự án cuối tuần.
Tuy nhiên, việc bắt tay vào sản xuất lại là một vấn đề khác. Bạn sẽ cần một hệ thống đáng tin cậy, có thể quan sát, điều chỉnh và hoạt động hiệu quả trên quy mô lớn. Điều cần thiết là phải vượt ra ngoài các kịch bản demo giả tạo và xem xét phản hồi của ứng dụng của bạn với nhiều lời nhắc hơn thể hiện toàn bộ hành vi thực tế của khách hàng. LLM có thể cần quyền truy cập vào kho kiến thức phong phú về miền cụ thể thường không có trong tập dữ liệu trước đào tạo của nó. Cuối cùng, nếu bạn áp dụng AI vào trường hợp sử dụng cần độ chính xác thì ảo giác phải được phát hiện, theo dõi và giảm thiểu.
Mặc dù việc giải quyết tất cả những vấn đề này có vẻ khó khăn nhưng nó sẽ trở nên dễ quản lý hơn bằng cách chia nhỏ ứng dụng dựa trên RAG của bạn thành các phần khái niệm tương ứng, sau đó thực hiện phương pháp tiếp cận có mục tiêu và lặp đi lặp lại để cải thiện từng phần nếu cần. Bài đăng này sẽ giúp bạn làm điều đó. Trong đó, chúng tôi sẽ tập trung hoàn toàn vào các kỹ thuật được sử dụng để tạo quy trình xử lý tài liệu RAG thay vì các kỹ thuật xảy ra ở phía sau tại thời điểm truy xuất. Khi làm như vậy, chúng tôi mong muốn giúp các nhà phát triển ứng dụng AI sáng tạo chuẩn bị tốt hơn cho hành trình từ nguyên mẫu đến sản xuất.
Hồ dữ liệu hiện đại: Trọng tâm của cơ sở hạ tầng AI
Người ta thường nói rằng trong thời đại AI - dữ liệu là con hào của bạn . Để đạt được mục tiêu đó, việc xây dựng ứng dụng RAG cấp sản xuất đòi hỏi cơ sở hạ tầng dữ liệu phù hợp để lưu trữ, tạo phiên bản, xử lý, đánh giá và truy vấn các khối dữ liệu bao gồm kho dữ liệu độc quyền của bạn. Vì MinIO áp dụng cách tiếp cận ưu tiên dữ liệu đối với AI nên đề xuất cơ sở hạ tầng ban đầu mặc định của chúng tôi cho dự án thuộc loại này là thiết lập Hồ dữ liệu hiện đại và cơ sở dữ liệu vectơ. Mặc dù các công cụ phụ trợ khác có thể cần được bổ sung trong quá trình thực hiện, nhưng hai đơn vị cơ sở hạ tầng này là nền tảng. Chúng sẽ đóng vai trò là trọng tâm cho gần như tất cả các nhiệm vụ sau này gặp phải trong quá trình đưa ứng dụng RAG của bạn vào sản xuất.
Có thể tìm thấy Kiến trúc tham chiếu hồ dữ liệu hiện đại được xây dựng trên MinIO . Một bài viết đồng hành cho thấy cách kiến trúc này hỗ trợ tất cả khối lượng công việc AI/ML .
RAG: Các bước trong quy trình tài liệu
Sự đánh giá
Bước đầu tiên quan trọng để xây dựng ứng dụng RAG cấp sản xuất là thiết lập khung đánh giá - thường được gọi đơn giản là evals. Nếu không có đánh giá, bạn sẽ không có cách nào để hiểu một cách đáng tin cậy hệ thống của bạn đang hoạt động tốt như thế nào, biết được thành phần nào cần được điều chỉnh hoặc xác định xem bạn có đang đạt được tiến bộ thực sự hay không. Ngoài ra, evals hoạt động như một chức năng bắt buộc để làm rõ vấn đề bạn đang cố gắng giải quyết. Dưới đây là một số kỹ thuật đánh giá phổ biến nhất:
Đánh giá dựa trên mã heuristic - Ghi điểm đầu ra theo chương trình bằng nhiều biện pháp như số lượng mã thông báo đầu ra, sự hiện diện/vắng mặt của từ khóa, tính hợp lệ của JSON, v.v. Những điều này thường có thể được đánh giá một cách xác định bằng cách sử dụng các biểu thức chính quy và thư viện xác nhận để kiểm tra đơn vị thông thường.
Đánh giá dựa trên mã thuật toán - Chấm điểm đầu ra bằng nhiều số liệu khoa học dữ liệu nổi tiếng. Ví dụ: bằng cách sắp xếp lại lời nhắc dưới dạng vấn đề xếp hạng, bạn có thể sử dụng các hàm tính điểm phổ biến từ hệ thống đề xuất, chẳng hạn như mức tăng tích lũy chiết khấu chuẩn hóa (NDCG) hoặc xếp hạng đối ứng trung bình (MRR). Ngược lại, nếu một lời nhắc có thể được coi là một vấn đề phân loại thì độ chính xác, khả năng thu hồi và điểm F1 có thể phù hợp. Cuối cùng, bạn có thể sử dụng các thước đo như BLEU, ROUGE và độ tương tự của câu trả lời ngữ nghĩa (SAS) để so sánh kết quả ngữ nghĩa với một sự thật cơ bản đã biết.
Đánh giá dựa trên mô hình - Sử dụng một mô hình để chấm điểm đầu ra của một mô hình khác như được nêu chi tiết trong giấy. Kỹ thuật này đang ngày càng phổ biến và rẻ hơn nhiều so với việc nhân rộng quy mô. Tuy nhiên, trong giai đoạn đầu của quá trình chuyển một dự án từ nguyên mẫu sang sản xuất, có thể khó triển khai một cách đáng tin cậy vì người đánh giá, trong trường hợp này, LLM thường phải chịu những hạn chế và thành kiến tương tự như chính hệ thống cơ bản. Hãy theo dõi chặt chẽ nghiên cứu, công cụ và phương pháp hay nhất của lĩnh vực này vì chúng đang phát triển nhanh chóng.
Đánh giá con người - Yêu cầu các chuyên gia trong lĩnh vực con người đưa ra câu trả lời tốt nhất của họ nói chung là tiêu chuẩn vàng. Mặc dù phương pháp này chậm và tốn kém nhưng không nên bỏ qua vì nó có thể rất có giá trị trong việc hiểu rõ hơn và xây dựng bộ dữ liệu đánh giá ban đầu của bạn. Nếu bạn muốn đạt được nhiều thành tựu hơn từ công việc đã thực hiện, bạn có thể sử dụng các kỹ thuật như được trình bày chi tiết trong phần giấy để bổ sung cho các đánh giá do con người tạo ra bởi chuyên gia với các biến thể tổng hợp.
Cùng với quyết định của bạn về việc sử dụng kỹ thuật đánh giá nào, hãy cân nhắc việc tạo tập dữ liệu đánh giá điểm chuẩn tùy chỉnh - những tập dữ liệu chung thường được sử dụng trên bảng xếp hạng Ôm Mặt như tập dữ liệu sẽ không làm được. Tập dữ liệu eval tùy chỉnh của bạn sẽ chứa nhiều lời nhắc khác nhau và phản hồi lý tưởng của chúng dành riêng cho từng miền và đại diện cho các loại lời nhắc mà khách hàng thực tế của bạn sẽ nhập vào ứng dụng của bạn. Lý tưởng nhất là các chuyên gia con người sẵn sàng hỗ trợ tạo tập dữ liệu đánh giá, nhưng nếu không thì hãy cân nhắc việc tự mình thực hiện. Nếu bạn không cảm thấy tự tin khi đoán được những gợi ý nào có thể xảy ra, chỉ cần hình thành một giả thuyết vận hành và tiến về phía trước như thể nó đã được xác thực. Bạn có thể liên tục sửa đổi các giả thuyết của mình sau này khi có thêm dữ liệu.
Hãy cân nhắc việc áp dụng các ràng buộc cho lời nhắc đầu vào cho từng hàng trong tập dữ liệu eval của bạn để LLM trả lời bằng loại phán đoán cụ thể: nhị phân, phân loại, xếp hạng, số hoặc văn bản. Sự kết hợp của các loại phán đoán sẽ giữ cho các đánh giá của bạn thay đổi hợp lý và giảm sai lệch đầu ra. Ceteris paribus, càng nhiều ca kiểm thử đánh giá càng tốt; tuy nhiên, nên tập trung vào chất lượng hơn số lượng ở giai đoạn này. Nghiên cứu gần đây về tinh chỉnh LLM trong bài báo gợi ý rằng ngay cả một tập dữ liệu đánh giá nhỏ gồm 1000 hàng cũng có thể cải thiện đáng kể chất lượng đầu ra, miễn là chúng là mẫu đại diện cho tổng thể thực sự rộng hơn. Với các ứng dụng RAG, chúng tôi đã quan sát thấy sự cải thiện hiệu suất bằng cách sử dụng bộ dữ liệu eval bao gồm hàng chục đến hàng trăm hàng.
Mặc dù bạn có thể bắt đầu chạy các đánh giá theo cách thủ công trên cơ sở đặc biệt, nhưng đừng đợi quá lâu trước khi triển khai quy trình CI/CD để tự động thực hiện quy trình tính điểm đánh giá của bạn. Chạy evals hàng ngày hoặc trên các trình kích hoạt được kết nối với kho lưu trữ mã nguồn và công cụ quan sát thường được coi là phương pháp hay nhất về ML-ops. Hãy cân nhắc sử dụng khung đánh giá RAG nguồn mở như hoặc để giúp bạn đứng dậy và chạy nhanh chóng. Sử dụng hồ dữ liệu của bạn làm nguồn thông tin chính xác cho các bảng chứa cả (các) tập dữ liệu đánh giá được phiên bản và các số liệu đầu ra khác nhau được tạo ra mỗi khi thực hiện đánh giá. Dữ liệu này sẽ cung cấp cái nhìn sâu sắc có giá trị để sử dụng sau này trong dự án nhằm thực hiện các cải tiến mang tính chiến lược và có mục tiêu cao.
Trình trích xuất dữ liệu
Kho dữ liệu RAG mà bạn bắt đầu tạo mẫu ban đầu hiếm khi đủ để đưa bạn vào sản xuất. Bạn có thể sẽ cần liên tục bổ sung thêm dữ liệu cho kho dữ liệu của mình để giúp LLM giảm bớt ảo giác, thiếu sót và các loại thành kiến có vấn đề. Điều này thường được thực hiện theo từng trường hợp bằng cách xây dựng trình trích xuất và trình tải chuyển đổi dữ liệu ngược dòng thành định dạng có thể được xử lý thêm trong quy trình tài liệu xuôi dòng.
Mặc dù có một rủi ro nhỏ khi cố gắng đun sôi đại dương bằng cách thu thập nhiều dữ liệu hơn mức bạn cần, nhưng điều cần thiết là phải sáng tạo và suy nghĩ sáng tạo về các nguồn thông tin chất lượng mà công ty bạn có quyền truy cập. Các khả năng rõ ràng có thể bao gồm việc trích xuất thông tin chuyên sâu từ dữ liệu có cấu trúc được lưu trữ trong OLTP và kho dữ liệu của công ty bạn. Các nguồn như bài đăng trên blog của công ty, sách trắng, nghiên cứu đã xuất bản và yêu cầu hỗ trợ khách hàng cũng nên được xem xét, miễn là chúng có thể được ẩn danh một cách thích hợp và loại bỏ thông tin nhạy cảm. Thật khó để phóng đại tác động tích cực đến hiệu suất của việc thêm ngay cả một lượng nhỏ dữ liệu chất lượng trong miền vào kho dữ liệu của bạn, vì vậy, đừng ngại dành thời gian khám phá, thử nghiệm và lặp lại. Dưới đây là một số kỹ thuật thường được sử dụng để khởi động kho dữ liệu trong miền chất lượng cao:
Trích xuất tài liệu - Các tệp PDF độc quyền, tài liệu văn phòng, bản trình bày và tệp đánh dấu có thể là nguồn thông tin phong phú. Một hệ sinh thái rộng lớn gồm các công cụ nguồn mở và SaaS tồn tại để trích xuất dữ liệu này. Nói chung, trình trích xuất dữ liệu là loại tệp cụ thể (JSON, CSV, docx, v.v.), dựa trên OCR hoặc được hỗ trợ bởi thuật toán máy học và thị giác máy tính. Bắt đầu đơn giản và chỉ thêm độ phức tạp khi cần thiết.
Khai thác API - API công khai và riêng tư có thể là nguồn kiến thức phong phú trong miền. Hơn nữa, các API web dựa trên XML và JSON được thiết kế tốt đã có sẵn một số cấu trúc, giúp việc thực hiện trích xuất có mục tiêu các thuộc tính có liên quan trong tải trọng trở nên dễ dàng hơn đồng thời loại bỏ mọi thứ được coi là không liên quan. Một hệ sinh thái rộng lớn gồm các trình kết nối API mã ngắn và không mã có giá cả phải chăng tồn tại để giúp bạn tránh phải viết ETL tùy chỉnh cho từng API bạn muốn sử dụng - một cách tiếp cận có thể khó duy trì và mở rộng quy mô nếu không có đội ngũ kỹ sư dữ liệu chuyên dụng.
Trình thu thập dữ liệu web - Các trang web được coi là dữ liệu bán cấu trúc có cấu trúc DOM giống như cây. Nếu bạn biết mình đang theo dõi thông tin gì, vị trí của thông tin đó và bố cục trang nơi thông tin đó nằm, bạn có thể nhanh chóng xây dựng một trình thu thập thông tin để sử dụng dữ liệu này ngay cả khi không có API được ghi chép đầy đủ. Nhiều thư viện tập lệnh và công cụ mã nguồn ngắn tồn tại để cung cấp những thông tin trừu tượng có giá trị cho việc quét web.
Trình thu thập thông tin web - Trình thu thập thông tin web có thể duyệt qua các trang web và xây dựng danh sách URL đệ quy. Phương pháp này có thể kết hợp với Scraping để quét, tóm tắt và lọc thông tin dựa trên tiêu chí của bạn. Ở quy mô quan trọng hơn, kỹ thuật này có thể được sử dụng để tạo biểu đồ tri thức của riêng bạn.
Dù bạn sử dụng kỹ thuật nào để thu thập dữ liệu, hãy chống lại sự thôi thúc xây dựng các tập lệnh một lần được hack cùng nhau. Thay vào đó, hãy áp dụng các phương pháp hay nhất về kỹ thuật dữ liệu để triển khai trình trích xuất dưới dạng đường ống ETL có khả năng lặp lại và có khả năng chịu lỗi để đưa dữ liệu vào các bảng bên trong hồ dữ liệu của bạn. Đảm bảo rằng mỗi lần bạn chạy các quy trình này - các phần tử siêu dữ liệu chính như URL nguồn và thời gian trích xuất - đều được ghi lại và gắn nhãn cùng với từng phần nội dung. Việc thu thập siêu dữ liệu sẽ tỏ ra vô giá trong việc làm sạch, lọc, loại bỏ trùng lặp, gỡ lỗi và phân bổ dữ liệu xuôi dòng.
Cắt nhỏ
Việc phân đoạn sẽ giảm các mẫu văn bản lớn thành các phần riêng biệt nhỏ hơn có thể vừa với cửa sổ ngữ cảnh của LLM. Trong khi các cửa sổ ngữ cảnh ngày càng lớn hơn - cho phép nhồi nhiều khối nội dung hơn trong quá trình suy luận - thì việc phân khối vẫn là một chiến lược quan trọng để đạt được sự cân bằng hợp lý giữa độ chính xác, khả năng thu hồi và hiệu quả tính toán.
Phân đoạn hiệu quả đòi hỏi phải chọn kích thước phân đoạn thích hợp. Kích thước khối lớn hơn có xu hướng bảo tồn một phần ngữ cảnh và ý nghĩa ngữ nghĩa của văn bản nhưng lại phải trả giá bằng việc cho phép hiển thị tổng số khối ít hơn trong cửa sổ ngữ cảnh. Ngược lại, kích thước khối nhỏ hơn sẽ cho phép đưa nhiều khối nội dung rời rạc hơn vào cửa sổ ngữ cảnh của LLM. Tuy nhiên, nếu không có các biện pháp bảo vệ bổ sung, mỗi phần nội dung có nguy cơ bị giảm chất lượng khi bị loại bỏ khỏi bối cảnh xung quanh.
Ngoài kích thước chunk, bạn sẽ cần đánh giá các chiến lược và phương pháp chunk khác nhau. Dưới đây là một số phương pháp chunking tiêu chuẩn cần xem xét:
Chiến lược kích thước cố định - Trong phương pháp này, chúng tôi chỉ cần chọn một số lượng mã thông báo cố định cho các phần nội dung của mình và chia nội dung của chúng tôi thành các phần nhỏ hơn cho phù hợp. Nói chung, nên sử dụng một số phần chồng chéo giữa các phần liền kề khi sử dụng chiến lược này để tránh mất quá nhiều ngữ cảnh. Đây là chiến lược phân chia đơn giản nhất và nói chung là điểm khởi đầu tốt trước khi khám phá sâu hơn vào các chiến lược phức tạp hơn.
Chiến lược kích thước động - Phương pháp này sử dụng nhiều đặc điểm nội dung khác nhau để xác định nơi bắt đầu và kết thúc một đoạn. Một ví dụ đơn giản là bộ phân tách dấu câu, phân chia các câu dựa trên sự hiện diện của các ký tự cụ thể như dấu chấm và dòng mới. Mặc dù bộ ngắt câu có thể hoạt động khá tốt đối với nội dung ngắn đơn giản (ví dụ: tweet, mô tả sản phẩm giới hạn ký tự, v.v.), nhưng nó sẽ có những hạn chế rõ ràng nếu được sử dụng cho nội dung dài hơn và phức tạp hơn.
Chiến lược nhận biết nội dung - Các phân đoạn nhận biết nội dung được điều chỉnh theo loại nội dung và siêu dữ liệu được trích xuất, đồng thời sử dụng các đặc điểm này để xác định nơi bắt đầu và kết thúc từng phân đoạn. Một ví dụ có thể là chunker cho các blog HTML sử dụng thẻ tiêu đề để phân định ranh giới chunk. Một ví dụ khác có thể là một đoạn mã ngữ nghĩa so sánh điểm tương đồng cosine theo cặp của mỗi câu với các câu lân cận trước đó để xác định khi nào bối cảnh đã thay đổi đủ đáng kể để đảm bảo việc phân định một đoạn mới.
Chiến lược phân đoạn tối ưu cho ứng dụng RAG của bạn sẽ cần được điều chỉnh theo độ dài cửa sổ ngữ cảnh của LLM, cấu trúc văn bản cơ bản, độ dài văn bản và độ phức tạp của nội dung trong kho văn bản của bạn. Hãy thử nghiệm thoải mái với nhiều chiến lược phân nhóm khác nhau và chạy đánh giá của bạn sau mỗi thay đổi để hiểu rõ hơn về hiệu suất ứng dụng cho một chiến lược nhất định. Phiên bản nội dung được phân đoạn trong các bảng kho dữ liệu của bạn và đảm bảo mỗi phân đoạn có thông tin dòng dõi để theo dõi nội dung thô và siêu dữ liệu tương ứng của nó từ bước trích xuất dữ liệu ngược dòng.
Làm giàu
Trong nhiều trường hợp, các đoạn nội dung được lập chỉ mục để truy xuất trong RAG khác về mặt ngữ cảnh với các lời nhắc thực tế mà ứng dụng của bạn sẽ gặp phải trong quá trình sản xuất. Ví dụ: nếu bạn đang xây dựng bot trả lời câu hỏi AI, bạn có thể có một kho thông tin độc quyền khổng lồ chứa nhiều câu trả lời chính xác cho các truy vấn của khách hàng. Tuy nhiên, ở dạng thô, kho ngữ liệu của bạn khó có thể được tổ chức trước theo định dạng cặp câu hỏi-câu trả lời, điều này lý tưởng cho việc truy xuất nhúng dựa trên sự tương đồng. Trong ví dụ này, nếu tại thời điểm truy xuất, chúng tôi ngây thơ tìm kiếm trong kho nội dung của mình những đoạn nội dung thô giống về mặt ngữ nghĩa với câu hỏi của khách hàng gửi đến, thì chúng tôi có thể gặp phải mức độ liên quan dưới mức tối ưu của tập kết quả truy xuất. Đây là kết quả của việc chúng tôi đang so sánh sự giống nhau của các mục khác nhau theo ngữ cảnh - cụ thể là câu hỏi với câu trả lời. May mắn thay, giải pháp tương đối đơn giản: chúng ta có thể sử dụng sức mạnh của LLM để làm phong phú thêm các câu trả lời có thể có của mình - hay còn gọi là các đoạn nội dung thô - bằng cách tái ngữ cảnh hóa chúng thành các câu hỏi giả định. Sau đó, chúng tôi lập chỉ mục các câu hỏi giả định đó vào cơ sở dữ liệu vectơ của mình để truy xuất tiếp theo. Kỹ thuật này, được gọi là , minh họa sức mạnh của việc sử dụng LLM để làm phong phú dữ liệu của bạn trong quy trình xử lý tài liệu. Đây là một ví dụ về việc sử dụng kỹ thuật này trên một số nội dung từ trang web nổi tiếng :
System Prompt: Given the provided snippet of text, generate three hypothetical questions that could be asked about it. Each question must be able to be answered using the information within the referenced snippet of text and only that information. Be concise. User Prompt: “At the 52nd Annual Grammy Awards, Beyoncé received ten nominations, including Album of the Year for I Am... Sasha Fierce, Record of the Year for "Halo", and Song of the Year for "Single Ladies (Put a Ring on It)", among others. She tied with Lauryn Hill for most Grammy nominations in a single year by a female artist. In 2010, Beyoncé was featured on Lady Gaga's single "Telephone" and its music video. The song topped the US Pop Songs chart, becoming the sixth number-one for both Beyoncé and Gaga, tying them with Mariah Carey for most number-ones since the Nielsen Top 40 airplay chart launched in 1992. "Telephone" received a Grammy Award nomination for Best Pop Collaboration with Vocals.” Response: Here are some questions that could be asked based on the provided text: * How many nominations did Beyoncé receive at the 52nd Annual Grammy Awards? * For which album was Beyoncé nominated for Album of the Year at the 52nd Annual Grammy Awards? * Which song earned Beyoncé a nomination for Record of the Year at the 52nd Annual Grammy Awards?
Nếu làm việc với một kho văn bản bao gồm nội dung dài và/hoặc phức tạp theo chủ đề, hãy cân nhắc thực hiện quá trình xử lý trước bổ sung để tóm tắt trước các khối nội dung và do đó làm giảm tính chiều ngữ nghĩa của chúng. Tại thời điểm truy xuất, bạn có thể truy vấn phần nhúng của các đoạn tóm tắt và sau đó thay thế văn bản không được tóm tắt bằng cách chèn cửa sổ ngữ cảnh. Phương pháp này tăng cường mức độ liên quan khi thực hiện RAG trên một kho văn bản lớn, phức tạp và/hoặc thường xuyên thay đổi.
Mã thông báo
Các mô hình ngôn ngữ lớn vào năm 2024 nhìn chung là các mạng thần kinh dựa trên máy biến áp, vốn không hiểu chữ viết. Văn bản thô đến được chuyển đổi thành mã thông báo, theo sau là các vectơ nhúng chiều cao được tối ưu hóa cho các hoạt động nhân ma trận. Quá trình gửi đến này thường được gọi là mã hóa. Quá trình gửi đi đảo ngược được gọi là giải mã. Nhiều LLM sẽ chỉ hoạt động để suy luận bằng cách sử dụng cùng một sơ đồ mã thông báo mà chúng đã được đào tạo. Do đó, điều cần thiết là phải hiểu những điều cơ bản về chiến lược mã thông báo đã chọn, vì nó có thể có nhiều hàm ý tinh tế về hiệu suất.
Mặc dù có các sơ đồ mã thông báo cấp độ từ và ký tự đơn giản, gần như tất cả các LLM hiện đại đều sử dụng mã thông báo từ phụ tại thời điểm viết. Do đó, chúng tôi sẽ chỉ tập trung vào danh mục mã thông báo đó ở đây.
Trình mã hóa từ phụ chia các từ một cách đệ quy thành các đơn vị nhỏ hơn. Điều này cho phép họ hiểu các từ nằm ngoài từ vựng mà không làm tăng kích thước từ vựng quá nhiều - một yếu tố quan trọng cần cân nhắc đối với hiệu suất đào tạo và khả năng khái quát hóa các văn bản không nhìn thấy của LLM.
Phương pháp mã thông báo từ phụ phổ biến được sử dụng ngày nay là mã hóa cặp byte (BPE). Ở mức cao, thuật toán BPE hoạt động như thế này:
Chia các từ thành các mã thông báo của các đơn vị từ phụ và thêm chúng vào từ vựng. Mỗi mã thông báo đại diện cho một từ phụ được điều chỉnh bởi tần số tương đối của các mẫu ký tự liền kề phổ biến trong kho dữ liệu huấn luyện.
Thay thế các cặp mã thông báo chung ở bước trên bằng một mã thông báo duy nhất đại diện cho cặp đó và thêm mã thông báo đó vào từ vựng.
Đệ quy lặp lại các bước trên.
Mã thông báo BPE nói chung là một nơi tuyệt vời để bắt đầu với ứng dụng RAG của bạn vì nó hoạt động tốt trong nhiều trường hợp sử dụng. Tuy nhiên, giả sử bạn có một lượng đáng kể ngôn ngữ miền có tính chuyên môn cao không được thể hiện rõ trong từ vựng của kho ngữ liệu đào tạo trước được sử dụng cho mô hình bạn đã chọn. Trong trường hợp đó, hãy cân nhắc nghiên cứu các phương pháp mã thông báo thay thế - hoặc khám phá khả năng tinh chỉnh và điều chỉnh thứ hạng thấp, nằm ngoài phạm vi của bài viết này. Vấn đề về từ vựng hạn chế nói trên có thể biểu hiện dưới dạng hiệu suất kém trong các ứng dụng được xây dựng cho các lĩnh vực chuyên biệt như y học, luật hoặc các ngôn ngữ lập trình khó hiểu. Cụ thể hơn, nó sẽ phổ biến trên các lời nhắc bao gồm ngôn ngữ/biệt ngữ chuyên môn cao. Sử dụng tập dữ liệu eval được lưu trữ trong hồ dữ liệu của bạn để thử nghiệm các sơ đồ mã thông báo khác nhau và hiệu suất tương ứng của chúng với các mô hình khác nhau nếu cần. Hãy nhớ rằng mã thông báo, nội dung nhúng và mô hình ngôn ngữ thường được kết hợp chặt chẽ với nhau - vì vậy, việc thay đổi một cái có thể dẫn đến thay đổi những cái khác.
Phần kết luận
Hồ dữ liệu hiện đại được xây dựng trên kho đối tượng MinIO - cung cấp cơ sở hạ tầng nền tảng để tự tin đưa các ứng dụng dựa trên RAG vào sản xuất. Với tính năng này, bạn có thể tạo eval và tập dữ liệu eval theo miền cụ thể có thể được lưu trữ và tạo phiên bản bên trong các bảng kho dữ liệu của bạn. Bằng cách sử dụng các đánh giá này, liên tục đánh giá và cải thiện từng bước từng thành phần trong quy trình xử lý tài liệu ứng dụng RAG của bạn - trình trích xuất, bộ phân tách, bộ làm giàu và bộ mã thông báo - ở mức độ cần thiết để xây dựng cho mình một quy trình xử lý tài liệu cấp sản xuất.
Nếu bạn có bất kỳ câu hỏi nào, hãy nhớ liên hệ với chúng tôi trên !