1. Đặt vấn đề
Khi model sinh câu trả lời dài, người dùng có thể phải chờ lâu nếu hệ thống chỉ trả kết quả sau khi sinh xong toàn bộ. Streaming response giải quyết vấn đề này bằng cách trả nội dung từng phần trong khi model đang sinh. Người dùng nhìn thấy câu trả lời xuất hiện dần, giống các chatbot hiện đại.
Trong bệnh viện, streaming cải thiện trải nghiệm đáng kể, đặc biệt với các tác vụ viết kế hoạch, báo cáo, tóm tắt tài liệu dài hoặc trả lời RAG nhiều đoạn. Tuy nhiên, streaming cũng làm việc ghi log, kiểm soát đầu ra và xử lý lỗi phức tạp hơn.
2. Streaming response là gì?
Streaming là cơ chế response được gửi từng phần. Thay vì chờ model hoàn thành toàn bộ câu trả lời, Ollama gửi các mảnh nhỏ liên tục. Ứng dụng nhận từng mảnh và hiển thị ngay cho người dùng.
Ví dụ, với câu trả lời dài 1.500 từ, người dùng không phải chờ đến khi toàn bộ văn bản hoàn thành, mà thấy nội dung được sinh dần.
3. Lợi ích của streaming
Streaming có nhiều lợi ích:
- Cải thiện cảm nhận tốc độ.
- Người dùng thấy hệ thống đang hoạt động.
- Phù hợp câu trả lời dài.
- Có thể cho phép người dùng dừng sinh nếu đủ thông tin.
- Giảm cảm giác “treo” giao diện.
- Hữu ích với chatbot nội bộ.
Trong môi trường bệnh viện, người dùng bận rộn nên trải nghiệm phản hồi nhanh rất quan trọng.
4. Khi nào nên dùng streaming?
Nên dùng streaming cho:
- Chatbot nội bộ.
- Viết văn bản dài.
- Tóm tắt tài liệu dài.
- RAG có câu trả lời nhiều mục.
- Hướng dẫn kỹ thuật từng bước.
- Tạo bảng kiểm dài.
- Soạn nội dung đào tạo.
Có thể không cần streaming cho:
- Phân loại ngắn.
- Trích xuất JSON.
- Tác vụ cần hậu xử lý toàn bộ response.
- Tác vụ chạy nền.
- Tạo embedding.
5. Streaming và log
Khi response được trả từng phần, API trung gian cần quyết định log như thế nào:
- Ghi từng chunk?
- Ghi response hoàn chỉnh sau khi kết thúc?
- Ghi metadata thôi?
- Ghi lỗi nếu streaming bị ngắt?
Khuyến nghị: nếu cần lưu nội dung, nên gom response hoàn chỉnh rồi ghi log sau khi hoàn tất. Tuy nhiên, phải cân nhắc dữ liệu nhạy cảm.
6. Streaming và kiểm soát đầu ra
Streaming gây khó khăn nếu muốn kiểm duyệt toàn bộ câu trả lời trước khi hiển thị. Vì nội dung được hiển thị ngay từng phần, nếu model sinh nội dung không phù hợp thì người dùng có thể đã thấy.
Cách xử lý:
- Chỉ dùng streaming cho tác vụ rủi ro thấp.
- Dùng system prompt và API trung gian kiểm soát đầu vào.
- Với tác vụ nhạy cảm, có thể không streaming mà kiểm tra response hoàn chỉnh trước.
- Có cơ chế dừng sinh khi phát hiện dấu hiệu bất thường nếu hệ thống hỗ trợ.
- Huấn luyện người dùng rằng AI chỉ hỗ trợ và cần kiểm tra.
7. Streaming trong giao diện web
Giao diện web cần hỗ trợ hiển thị nội dung từng phần. Có thể dùng các kỹ thuật như:
- Server-Sent Events.
- Fetch streaming.
- WebSocket.
- Long polling trong một số trường hợp.
Với Drupal hoặc PHP truyền thống, streaming có thể cần cấu hình đặc biệt vì buffering của web server, PHP-FPM hoặc reverse proxy có thể làm response không hiển thị ngay. Nếu streaming khó, có thể dùng cơ chế polling hoặc trả response sau khi hoàn thành.
8. Streaming và người dùng dừng sinh
Một tính năng hữu ích là nút “Dừng”. Nếu người dùng thấy câu trả lời đã đủ hoặc sai hướng, có thể dừng request. Điều này tiết kiệm GPU và thời gian.
API trung gian nên hỗ trợ hủy request nếu có thể. Nếu không, request vẫn tiếp tục chạy phía backend dù giao diện đã dừng.
9. Streaming và RAG
Trong RAG, nên hoàn thành bước truy xuất tài liệu trước, sau đó mới streaming phần trả lời. Quy trình:
- Nhận câu hỏi.
- Truy xuất tài liệu.
- Tạo prompt.
- Gửi prompt đến Ollama với streaming.
- Hiển thị câu trả lời từng phần.
- Hiển thị nguồn tài liệu ở đầu hoặc cuối.
Nguồn tài liệu nên hiển thị rõ, không để người dùng chỉ thấy câu trả lời mà không biết căn cứ.
10. Kết luận
Streaming response giúp cải thiện trải nghiệm người dùng khi dùng Ollama qua API, đặc biệt với câu trả lời dài. Trong bệnh viện, streaming phù hợp với chatbot, soạn thảo, tóm tắt và hướng dẫn kỹ thuật. Tuy nhiên, cần lưu ý log, kiểm soát đầu ra, bảo mật dữ liệu và khả năng hủy request. Với tác vụ nhạy cảm, có thể cần trả response hoàn chỉnh sau khi kiểm soát thay vì streaming trực tiếp.
- Đăng nhập để gửi ý kiến