Streaming output for language models

Bài tóm tắt Replicate 2023 2. Tăng trưởng Độ khó: Dễ

Replicate · 2023 · 2. Tăng trưởng · Độ khó: Dễ — bài gốc

Replicate là nền tảng chạy model qua API; số đo và nhận định về sản phẩm là "theo Replicate" (họ tự đo).

Bối cảnh

  • Trước đó Replicate chỉ có polling và webhook để lấy kết quả giữa chừng. Với ứng dụng chat, cần một luồng sự kiện cập nhật liên tục; model sinh token một lần một cái nên có thể trả dần.

Thay đổi chính

  • API: tạo prediction với stream: true; phản hồi chứa urls.stream trỏ tới một host phát riêng. Client mở EventSource (hoặc curl với Accept: text/event-stream) tới URL đó và nhận các sự kiện output (kèm id), error, done.
  • Giao thức là HTTP event stream thường, nên không buộc phải dùng trình duyệt.
  • Phía model (Cog): hàm dự đoán yield từng token thay vì return một chuỗi; kiểu ConcatenateIterator cho biết các mảnh sẽ nối thành một chuỗi. Model fine-tune thừa hưởng khả năng stream của model gốc.

Bài học cho SWE

  • Tách hai bước: tạo job (POST có xác thực) và nhận luồng (URL riêng) giúp host phát tách khỏi API tạo job.
  • Để model streaming được, đổi kiểu trả về của hàm thành generator; client chỉ lo ghép.

Liên quan