Bỏ qua tới nội dung chính
Quay lại tin tức

Nâng cao độ chính xác của hệ thống đề xuất bằng LLM, sử dụng Python

Towards Data Science· Piero Paialunga· 8/6/2026general

Đây là cách các mô hình ngôn ngữ lớn (LLM) được sử dụng hiện nay để tăng độ chính xác trong các hệ thống khuyến nghị. Bài viết Tăng độ chính xác của hệ thống khuyến nghị bằng LLM, sử dụng Python xuất hiện đầu tiên trên Towards Data Science.

Mô hình ngôn ngữ lớn Tăng cường độ chính xác của hệ thống đề xuất bằng LLM, sử dụng Python Cách LLM được sử dụng hiện nay để tăng độ chính xác trong các hệ thống đề xuất Piero Paialunga Ngày 8/6/2026 10 phút đọc Chia sẻ Ảnh của Amanda Jones trên Unsplash Một trong những câu nói yêu thích của tôi trong văn hóa Mỹ là: “Bạn không thể vừa có bánh vừa ăn bánh.” Tôi thấy câu này cực kỳ thơ mộng nhưng cũng rất thực tế và hữu ích. Thông điệp của câu nói này rất đơn giản: mọi thứ bạn đạt được đều thông qua sự đánh đổi, vì mọi thứ đều có cái giá của nó. Thảo luận triết học nằm ngoài phạm vi của bài viết này, nhưng những hệ quả thực tế của những cân nhắc này lại rất phù hợp với khoa học dữ liệu và kỹ thuật phần mềm nói chung. Hãy để tôi giải thích. Trong kỹ thuật phần mềm và khoa học dữ liệu, không có cái gọi là “thiết kế hoàn hảo” tự thân. Cùng một thuật toán tuyệt vời cho một ứng dụng nhất định lại thất bại thảm hại trong những ứng dụng khác. Hãy nghĩ về sự đánh đổi giữa tính toán và bộ nhớ trong các trường hợp sau: Việc tính toán trước khoảng cách giữa hai thành phố và lưu trữ chúng trong một tập dữ liệu là rất hợp lý, và việc tính toán chúng ngay lập tức là không hợp lý. Điều này là do bạn mong đợi tập dữ liệu có mức độ bảo trì tương đối thấp (các thành phố không thường xuyên di chuyển), và sẽ là ngu ngốc nếu tính toán khoảng cách giữa New York và San Francisco mỗi phần nhỏ của giây. [Trường hợp A] Tuy nhiên, sẽ là ngu ngốc (và có lẽ không thể) nếu một chatbot ghi nhớ tất cả các câu hỏi có thể mà con người có thể hỏi và đưa ra câu trả lời cho câu hỏi đó bất cứ khi nào nó được hỏi. Điều này là do bản chất của vấn đề năng động hơn nhiều, và nó đòi hỏi một phép tính “ngay lập tức”. [Trường hợp B] Trong Trường hợp A, chúng ta đang hy sinh bộ nhớ và có được phép tính cực kỳ nhanh chóng. Trong Trường hợp B, chúng ta đang dành nhiều thời gian tính toán hơn, nhưng chúng ta không sử dụng bất kỳ bộ nhớ “truy vấn” nào. Bạn có thể không có thời gian tính toán và không có bộ nhớ không? Không thực sự, bởi vì bạn không thể vừa có bánh vừa ăn bánh 🙂 Nhưng hãy lấy một ví dụ ít rõ ràng hơn và “thịnh hành” hơn. Hãy nói về Mô hình ngôn ngữ lớn (LLM). LLM là những mô hình AI mạnh mẽ nhất mà chúng ta có, và chúng được đào tạo dựa trên tất cả kiến thức có sẵn trên thế giới. Chúng cũng rất lớn. Chúng thực sự lớn đến mức chúng ta hiếm khi có chúng tại chỗ, và chúng ta thường gọi chúng thông qua API. Tuy nhiên, gọi API = token = chi phí. Bây giờ hãy tưởng tượng bạn muốn sử dụng một hệ thống thông minh để chọn nhà hàng tốt nhất cho tối nay. Bạn sẽ hỏi ChatGPT một cái gì đó như: “Bạn có thể giới thiệu cho tôi một nhà hàng Ý ngon, không quá đắt nhưng lãng mạn và ở một vị trí tốt không?” Bây giờ, hãy tưởng tượng nếu mô hình GPT phải khám phá tất cả các nhà hàng trong vũ trụ và quyết định xem chúng có phải là nhà hàng Ý, không đắt, ở một vị trí tốt và gần nơi bạn ở không. Trường hợp tốt nhất: bạn sẽ tốn hàng triệu token, và bạn đã lên giường ngủ vào thời điểm phép tính được thực hiện. Tuy nhiên, chúng ta cũng không muốn từ bỏ hoàn toàn tất cả sức mạnh diễn giải ngôn ngữ tự nhiên và truy xuất thông tin hấp dẫn của LLM. Điều quan trọng là, để sử dụng LLM và nhận được thông tin thông minh, chúng ta không thể sử dụng phần thông minh nhất của quy trình mọi lúc (điều đó giống như vừa có bánh vừa ăn bánh). Trong bài viết này, chúng tôi sẽ trình bày một công thức cho các hệ thống đề xuất thông minh, được cải tiến bằng LLM (mô hình ngôn ngữ lớn), sử dụng ví dụ đề xuất nhà hàng làm trường hợp sử dụng. Đầu vào của hệ thống này sẽ là mô tả của người dùng về nhà hàng lý tưởng của họ tại một thành phố cụ thể, và đầu ra sẽ là một tập hợp các nhà hàng được đề xuất. Chúng ta hãy bắt đầu! 1. Thiết kế hệ thống Khái niệm "bánh ngọt" mà chúng ta đã thảo luận còn được biết đến trong kỹ thuật là tam giác Độ chính xác – Quy mô – Thời gian: Bạn có thể tạo ra một thứ chính xác và trên một tập dữ liệu lớn, nhưng nó sẽ chậm. Bạn có thể tạo ra một thứ chính xác và nhanh chóng, nhưng nó sẽ không mở rộng tốt trên một tập dữ liệu lớn. Bạn có thể tạo ra một thứ nhanh chóng và mở rộng tốt, nhưng nó sẽ không chính xác lắm. Hình ảnh do tác giả tạo Tất nhiên, chúng ta muốn kết quả cuối cùng phải chính xác, vì vậy lựa chọn 3 một mình sẽ không đủ. Tuy nhiên, chúng ta có thể tinh chỉnh lựa chọn 3 bằng một mô hình chính xác hơn đặt trên mô hình đầu tiên. Nói cách khác, Lựa chọn 3 có thể cung cấp cho chúng ta một danh sách ứng viên tốt với thời gian tính toán nhỏ, và chúng ta có thể chọn danh sách đề xuất chính xác nhất bằng cách sử dụng Mô hình ngôn ngữ lớn. Nói cách khác, thiết kế trông như sau: Một tìm kiếm nhanh và đơn giản sẽ tìm ra K nhà hàng gần nhất (dựa trên quy tắc, độ thu hồi cao, độ chính xác thấp). Một Mô hình ngôn ngữ lớn chậm, rất thông minh sẽ giúp chúng ta chọn, trong số K hàng đầu, những nhà hàng tốt nhất dựa trên truy vấn. (dựa trên AI, độ chính xác cao). Bằng cách này, chúng ta không lãng phí thời gian và tiền bạc vào LLM chậm, nhưng chúng ta vẫn tận dụng được sự thông minh của chúng bằng cách sử dụng chúng trên một danh sách ứng viên đã chọn. Nói đủ rồi. Hãy bắt đầu viết mã! 2. Kịch bản 2.1 Thiết lập Chúng tôi đã thực hiện công việc khó khăn phía sau hậu trường cho bạn 🙂 Mọi thứ được viết theo phong cách lập trình hướng đối tượng (OOP), với các tập lệnh và một quy trình sẽ xử lý toàn bộ quá trình. Thư mục GitHub là thư mục này, và để tạo phần còn lại của mã, bạn có thể sao chép nó và sử dụng khối nhập này ở đây: 2.2 Tạo dữ liệu Trước khi chúng ta có thể đề xuất bất cứ điều gì, chúng ta cần có thứ gì đó để đề xuất. Trong một hệ thống thực tế, chúng ta sẽ sử dụng cơ sở dữ liệu nhà hàng ở vị trí S3. Đối với bài viết này, chúng tôi tạo một cơ sở dữ liệu tổng hợp để toàn bộ quá trình có thể tái tạo hoàn toàn và miễn phí để chạy. Đây là công việc của lớp RestaurantDataGenerator bên trong datagenerator.py. Nó xây dựng một bảng có thể tái tạo gồm khoảng 10.000 nhà hàng nằm rải rác trên tám thành phố (New York, San Francisco, Chicago, Austin, Seattle, Boston, Miami và Denver). Mỗi nhà hàng có: – một tên được tạo ngẫu nhiên – một thành phố và một vĩ độ

Nguồn tin: Towards Data Science — Tác giả: Piero Paialunga. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.