Trí tuệ nhân tạo (AI) không có bộ nhớ. Vì vậy, tôi đã xây dựng một bộ nhớ cho nó.
Ngày 7 – Cách thức hoạt động của bộ nhớ AI Đây là điều thực sự khiến tôi ngạc nhiên khi tôi tìm ra. Các trợ lý AI ghi nhớ những gì bạn đã nói ba tin nhắn trước. Chúng biết tên của bạn. Chúng theo dõi mạch của một cuộc trò chuyện dài mà không bị lạc hướng. Nhưng vấn đề là – bản thân mô hình AI hoàn toàn không có bộ nhớ. Không có gì. Con số không. Mỗi khi bạn gửi một tin nhắn, mô hình bắt đầu hoàn toàn mới. Nó không biết bạn là ai, bạn đã nói gì trước đây, hoặc bạn đang ở giữa cuộc trò chuyện nào. Vậy làm thế nào để nó có vẻ như ghi nhớ? Câu hỏi đó đã đưa tôi vào một cuộc tìm hiểu sâu. Và cuối cùng,
Ngày 7 – Cách bộ nhớ AI thực sự hoạt động
Đây là điều thực sự khiến tôi ngạc nhiên khi tôi tìm ra nó.
Các trợ lý AI ghi nhớ những gì bạn đã nói ba tin nhắn trước. Chúng biết tên của bạn. Chúng theo dõi mạch của một cuộc trò chuyện dài mà không bị lạc hướng.
Nhưng đây là vấn đề – bản thân mô hình AI hoàn toàn không có bộ nhớ.
Không có gì. Con số không.
Mỗi khi bạn gửi một tin nhắn, mô hình bắt đầu hoàn toàn mới. Nó không biết bạn là ai, bạn đã nói gì trước đây hoặc bạn đang ở giữa cuộc trò chuyện nào.
Vậy làm thế nào để nó có vẻ như ghi nhớ?
Câu hỏi đó đã đưa tôi vào một cuộc tìm hiểu sâu. Và cuối cùng, tôi đã xây dựng một thứ khiến mọi thứ trở nên rõ ràng. Một chatbot thân thiện với người mới bắt đầu, chạy hoàn toàn trên máy của bạn – không cần khóa API, không cần internet, không cần đám mây – sử dụng một công cụ có tên Ollama cho phép bạn chạy các mô hình AI mã nguồn mở mạnh mẽ cục bộ miễn phí.
Hãy để tôi cho bạn thấy những gì tôi đã xây dựng và những gì nó đã dạy tôi.
Ảo ảnh về bộ nhớ
Ảo ảnh về bộ nhớ – đó không phải là phép thuật, đó là ngữ cảnh | Nguồn: Unsplash. Hãy tưởng tượng bạn thức dậy mỗi sáng với chứng mất trí nhớ hoàn toàn. Không nhớ gì về ngày hôm qua. Không nhớ bất kỳ ai bạn từng gặp.
(Tôi hứa đây là phép ẩn dụ kỳ lạ nhất tôi sẽ sử dụng hôm nay – hãy kiên nhẫn với tôi, nó thực sự rất hợp lý.)
Nhưng trước khi bạn bắt đầu ngày mới, ai đó đưa cho bạn một bản ghi chép in của mọi cuộc trò chuyện bạn từng có.
Bạn đọc nó. Bây giờ bạn biết mọi thứ. Bạn có thể tiếp tục bất kỳ cuộc trò chuyện nào như thể bạn chưa bao giờ quên.
Đó chính xác là những gì xảy ra với các chatbot AI.
Mô hình thức dậy mới mẻ với mỗi tin nhắn. Nhưng ứng dụng đưa cho nó một bản ghi đầy đủ của cuộc trò chuyện trước khi nó trả lời. Mô hình đọc nó, hiểu ngữ cảnh và trả lời như thể nó đã chú ý suốt thời gian qua.
Nó không hề. Nó chỉ đọc các ghi chú.
Những gì thực sự được gửi đến mô hình
Hầu hết mọi người nghĩ rằng đây là những gì xảy ra khi họ gửi một tin nhắn:
Người dùng: "Tên tôi là gì?"
↓
Mô hình AI
↓
"Tên của bạn là Priyanka."
Đây là những gì thực sự xảy ra:
Hệ thống: Bạn là một trợ lý hữu ích.
Người dùng: Chào, tên tôi là Priyanka.
Trợ lý: Chào Priyanka! Rất vui được gặp bạn. Tôi có thể giúp gì?
Người dùng: AI là gì?
Trợ lý: AI là viết tắt của Trí tuệ nhân tạo...
Người dùng: Tên tôi là gì? ← tin nhắn mới thực tế của bạn
↓
Mô hình AI
↓
"Tên của bạn là Priyanka."
Mỗi tin nhắn đều bao gồm toàn bộ lịch sử cuộc trò chuyện từ đầu. Mô hình không ghi nhớ – nó đọc lại mọi thứ từ đầu mỗi lần.
Đây được gọi là cửa sổ ngữ cảnh – lượng văn bản tối đa mà mô hình có thể nhìn thấy cùng một lúc. GPT-4 có cửa sổ ngữ cảnh 128.000 token. Claude có tới 200.000 token. Mỗi tin nhắn, mỗi câu trả lời, mỗi hướng dẫn hệ thống – tất cả đều được tính vào giới hạn đó.
Khi bạn đạt đến giới hạn? Mô hình bắt đầu quên những phần cũ nhất của cuộc trò chuyện. Không phải vì nó mệt mỏi. Mà vì thực sự không còn chỗ nữa.
Ứng dụng tôi đã xây dựng để chứng minh điều này
POST /chat đang hoạt động – ứng dụng ghi nhớ qua các tin nhắn. | Ảnh chụp màn hình: Của tác giả. Tôi muốn tự mình xem điều này hoạt động. Vì vậy, tôi đã xây dựng một chatbot đơn giản bằng Node.js chạy hoàn toàn cục bộ – không cần khóa API, không cần kết nối internet, không cần đám mây.
“Nó không hoàn hảo – ở đây nó đã nhầm Mistral gió với Mistral mô hình AI. Nhưng nó đã nhớ tên và thành phố của tôi qua 16 tin nhắn. Đó là điểm mấu chốt.”
Ollama là gì?
Ollama – cách dễ nhất để chạy các mô hình AI cục bộ. Miễn phí, riêng tư, không cần khóa API. | Nguồn: ollama.com. Trước khi chúng ta đi sâu vào mã – hãy để tôi giải thích công cụ giúp tất cả điều này có thể thực hiện được.
Ollama là một công cụ mã nguồn mở cho phép bạn tải xuống và chạy.
các mô hình ngôn ngữ lớn trực tiếp trên máy tính của bạn. Không cần tài khoản. Không cần đăng ký. Không cần khóa API. Không có dữ liệu nào được gửi đến bất kỳ máy chủ nào.
Bạn cài đặt, tải một mô hình và nó chạy cục bộ. Chỉ vậy thôi.
Hãy hình dung nó giống như Docker – nhưng dành cho các mô hình AI. Thay vì tải một image container, bạn tải một mô hình ngôn ngữ.
Tại sao điều này quan trọng:
Miễn phí – không tốn phí token, không giới hạn tốc độ, không có hóa đơn hàng tháng.
Riêng tư – các cuộc trò chuyện của bạn không bao giờ rời khỏi máy tính của bạn.
Nhanh chóng – không có độ trễ mạng, không phải chờ đợi các máy chủ từ xa.
Mang tính giáo dục – bạn thấy chính xác những gì đang diễn ra bên trong.
Ollama hỗ trợ nhiều mô hình mã nguồn mở bao gồm:
Llama 3.2 – mô hình mã nguồn mở mới nhất của Meta, được chúng tôi sử dụng tại đây.
Mistral – một mô hình mã nguồn mở mạnh mẽ của Pháp.
Gemma – mô hình mã nguồn mở của Google.
Phi – mô hình nhỏ nhưng có khả năng của Microsoft.
Đối với dự án này, tôi đã sử dụng Llama 3.2 – một mô hình hội thoại có khả năng chạy tốt trên một máy tính xách tay tiêu chuẩn.
Đây là những gì ứng dụng thực hiện:
Bạn gửi một tin nhắn thông qua yêu cầu POST.
Ứng dụng tải toàn bộ lịch sử cuộc trò chuyện từ một tệp JSON cục bộ.
Nó xây dựng một lời nhắc hoàn chỉnh – hướng dẫn hệ thống + tất cả các tin nhắn trước đó + tin nhắn mới của bạn.
Nó gửi toàn bộ lời nhắc đó đến mô hình Llama cục bộ.
Nhận phản hồi, lưu lịch sử đã cập nhật, trả về phản hồi.
Điểm mấu chốt là bước 3. Mỗi lần. Toàn bộ lịch sử. Đó là thủ thuật ghi nhớ.
Cách thức hoạt động của mã
Hàm buildPrompt – nơi thủ thuật ghi nhớ thực sự diễn ra. | Hình ảnh: AI tạo ra. Hãy để tôi hướng dẫn bạn qua mã thực tế. Toàn bộ dự án có trên GitHub của tôi – liên kết ở cuối.
Cấu trúc dự án:
chatbot-app/
├── server.js ← Các tuyến API (trò chuyện, lịch sử, đặt lại)
├── src/
│ └── chatbot.js ← logic cốt lõi: tải lịch sử, xây dựng lời nhắc, gọi Ollama, lưu lịch sử
└── data/
└── conversation.json ← cuộc trò chuyện của bạn được lưu trữ tại đây. chatbot.js – Bộ não.
Đây là nơi tất cả những điều thú vị xảy ra.
Bước 1 – Lời nhắc hệ thống.
const SYSTEM_PROMPT = `Bạn là một trợ lý hữu ích, thân thiện.
Bạn nhớ mọi thứ người dùng đã nói với bạn trong cuộc trò chuyện này.
Hãy ngắn gọn nhưng ấm áp. Nếu người dùng nói với bạn điều gì đó cá nhân như
tên hoặc sở thích của họ, hãy nhớ và sử dụng nó một cách tự nhiên.`Đây là tính cách và hướng dẫn cho mô hình. Nó được đưa vào đầu mỗi lời nhắc – trước bất kỳ lịch sử cuộc trò chuyện nào. Lưu ý rằng nó yêu cầu mô hình "nhớ mọi thứ người dùng đã nói với bạn" – nhưng mô hình thực sự không nhớ gì cả. Chúng ta sắp giả mạo điều đó cho nó.
Bước 2 – Tải lịch sử.
function loadHistory() {
try {
if (fs.existsSync(CONVERSATION_PATH)




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