Chatgpt hay các mô hình LLMs như GPT-3.5 turbo hay GPT-4/Bard… bản chất không có hệ thống trí nhớ, thứ chúng ta cảm thấy “nó thông minh ghi nhớ được các đoạn hội thoại” chính là hoạt động Feed prompt.
Trí nhớ dài hạn AI hiện tại vẫn đang là một thách thức không nhỏ với các nhà phát triển. Một số nhà khoa học AI nghiên cứu cho nó học liên tục qua mạng thần kinh nhân tạo để hấp thụ các kiến thức/ký ức mới nhất, nhưng họ cũng phát hiện, theo cách này, càng học nhiều, nó càng có xu hướng bị nhiễu, và quên đi các nhiệm vụ khác trong bộ nhớ.
Tuy vậy, hiện đã có những giải pháp khả thi về mặt kỹ thuật, trong đó team LovinBot đang nghiên cứu để tích hợp trong sản phẩm chatbot, có thể ghi nhớ tới hàng tháng, thậm chí năm các đoạn hội thoại cũ. (phía dưới bài có chia sẻ)
Đây sẽ là yêu cầu tất yếu, ưu tiên mới trong bất kỳ sản phẩm AI nào trong tương lai mà nhà phát triển cần đạt tới.
Với trí nhớ dài hạn (nhớ theo tháng, thậm chí năm), xây dựng hệ thống Chatbot cá nhân hoá cho từng cá nhân/tổ chức là điều hoàn toàn khả thi.
Trở lại với chatgpt, nếu không có bộ nhớ, vậy ký ức của chatgpt về các đoạn hội thoại trước đó đến từ đâu.
Feed prompt - là hoạt động cấp nguồn dữ liệu cũ (conversation history) cho mỗi lượt prompt mới, và vì nó đặt các hội thoại cũ trong prompt, đó là lý do vì sao chatgpt hay các chatbot hiện nay đều bị “mất trí nhớ” hay các bạn còn gọi là “kém hơn/ngốc hơn” khi đoạn hội thoại dài vượt quá 4000 tokens (hoặc 2048 tokens cho API).
Lúc này, gần như nó đã quên hết các yêu cầu đầu tiên, chỉ nhớ các đoạn hội thoại cũ trong phạm vi token trên.
Việc ghi nhớ hàng ngàn đoạn hội thoại thông qua hoạt động feed prompt chỉ có thể thực hiện qua các mô hình GPT-4 32k tokens, lúc này bạn có thể feed cho nó 20 trang A4 (mỗi trang khoảng 1000 từ) một bộ Luật bất kỳ mới nhất chẳng hạn, sau đó đặt câu hỏi, nó sẽ trả lời như một chuyên gia tư vấn luật bất kỳ câu hỏi nào.
Vậy, nếu không có quyền truy cập gpt-4 32k thì làm thế nào?
Thật tiếc vì 32k không được public rộng rãi, thế nên các nhà phát triển trên thế giới và ở VN như Lovinbot phải rẽ sang nghiên cứu cách thức khác là sử dụng langchains và sematic search.
Sematic search không còn xa lạ các anh em trong lĩnh vực SEO, vì google thậm chí đã ứng dụng khái niệm này cho công cụ Search từ lâu.
Nó sẽ không tìm giá trị tuyệt đối trong câu, mà dựa trên mỗi đoạn vector để tìm các vector có nghĩa gần nhất.
Dễ hiểu thì nó như thế này:
Đầu tiên, chia nhỏ toàn bộ văn bản lớn, hội thoại text thành các đoạn nhỏ (gọi là chunk), sau đó chuyển toàn bộ chunk qua vector (chuỗi số). Mỗi vector này có thể đánh tag/label tương ứng các chủ đề (để phân loại trong database). Lưu trên các nền tảng như pinecone hoặc qdrant…
Khi người dùng đặt câu hỏi, câu hỏi này cũng được chuyển thành vector để sử dụng sematic search tìm đoạn chunk nào có nghĩa/bối cảnh giống nhau nhất, xếp thứ tự ưu tiên.
Kéo một đoạn hoặc nhiều đoạn chunk vector đã tìm được, làm feed prompt cho GPT-4 (tổng đoạn chunk phải dưới 2048 token chẳng hạn), và việc còn lại là GPT-4 sẽ trả lời bằng ngôn ngữ tự nhiên.
Về mặt kỹ thuật, nó khả thi, nhưng nó vẫn còn một khoảng cách khá dài để hoàn thiện hơn, vì khi chia văn bản dài thành các đoạn nhỏ hơn (chunk) nhằm đáp ứng limit trong prompt, thì ý nghĩa trong câu có thể bị thay đổi, dẫn đến sematic search không lấy đúng đoạn, hay còn gọi là chỉ lấy được đoạn văn bị khuyết nghĩa và trả về câu trả lời không hoàn thiện.
Thế giới vẫn đang phát triển mỗi ngày, vấn đề cũng từ đó sinh ra, việc của mỗi nhà phát triển như LovinBot tự nhắc bản thân mỗi ngày là tập trung và tập trung, ngày đêm cặm cụi tìm ra cách thức riêng, ứng dụng các tiến bộ của thế giới để làm sản phẩm, giúp mọi người được tiếp cận các công nghệ mới nhất.
Hy vọng với bài này, nhiều bạn đang ấp ủ làm sản phẩm AI hãy mạnh dạn, tự tin và cùng hòa vào dòng chảy này. Các bạn sinh viên/bạn trẻ giỏi về Python và yêu thích AI, mô hình LLMs có thể inbox cho mình, team mình đang rất cần thêm các anh em cùng chí hướng để nghiên cứu và ứng dụng tạo sản phẩm phục vụ thị trường Việt Nam.
Hình ảnh dưới đây mình làm để so sánh vui giữa chatgpt và một con vẹt, thấy cũng khá tương đồng