Chào anh, cho e hỏi về cách scale worker của hệ thống, nếu dùng Node.js thường thì mình sẽ run api và worker trong cùng 1 container hay mình nên tách phần API/Worker ra các container riêng để khi scale lên mình chỉ scale mỗi worker container thôi ạ? Cảm ơn anh.
Quả thực thì để RAG hoạt động tốt, yêu cầu hầu như tất cả bước phải chỉnh chu và chính xác (từ data -> indexing -> retrieval -> rerank -> generation .v.v)
Mình có một vài thắc mắc như sau
Nếu như rào cản để xây dựng LLM-powered system lớn như bài viết thì khả năng để startup, SME adopt công nghệ này là khó?
Liệu có thể triển khai RAG ở level đơn giản không? Cơ bản là automation các repetitive tasks của phòng ban cụ thể. Lúc này scope dự án cũng nhỏ lại và rủi ro ít hơn nhỉ ?
Chào bạn MinhDrake, cảm ơn bạn đã đặt câu hỏi!
Thực ra “Chiêu 3” mình giới thiệu chỉ cần push đúng một lần giá trị mã hoá (không phải hai lần), để vẫn đảm bảo O(1) không gian phụ.
Vì sao không cần push thêm val? Giá trị mã hóa (encoded) vừa chứa đủ thông tin để biết đời trước của minValue, vừa cho biết giá trị thực tại đỉnh (khi pop gặp số nhỏ hơn min hiện tại thì “đương nhiên” đó là encoded).
Như vậy ta chỉ push encoded chứ không cần push thêm val lần nữa - vừa đủ để thực hiện getMin(), vừa tiết kiệm không gian. Công thức khôi phục đúng là: oldMin = 2 * newMin − encoded với newMin chính là minValue sau khi bạn push xong.
Hy vọng phần giải thích này sẽ giúp bạn hiểu rõ hơn 😁
THẢO LUẬN
Xịn quá ạ
Chào anh, cho e hỏi về cách scale worker của hệ thống, nếu dùng Node.js thường thì mình sẽ run api và worker trong cùng 1 container hay mình nên tách phần API/Worker ra các container riêng để khi scale lên mình chỉ scale mỗi worker container thôi ạ? Cảm ơn anh.
Cũng muốn học Go
Vẫn sợ 😦
Một cái nhìn mới về stack và queue
Bitwise khó quá
Rất chi tiết
Nhìn thấy digit dp là thấy mảng nhiều chiều
Dù gì thì cũng khó
Bê y nguyên bỏ vô AI dịch là có đăng :v
hóa ra mình đã hiểu nhầm
quá hay,anh làm rất dễ hiểu và đi thẳng vào bản chất
@monmen viết ebook bán đi bác ơi 🤩
bán 100k cho 1000 người là được trăm củ rồi 🤑
Cảm ơn tác giả
Hay phết
Các thầy trên lớp gọi là thuật toán thì có nên cãi các thầy không :VV
Cám ơn bài viết của bạn !
Quả thực thì để RAG hoạt động tốt, yêu cầu hầu như tất cả bước phải chỉnh chu và chính xác (từ data -> indexing -> retrieval -> rerank -> generation .v.v)
Mình có một vài thắc mắc như sau
Chào bạn MinhDrake, cảm ơn bạn đã đặt câu hỏi! Thực ra “Chiêu 3” mình giới thiệu chỉ cần push đúng một lần giá trị mã hoá (không phải hai lần), để vẫn đảm bảo O(1) không gian phụ. Vì sao không cần push thêm val? Giá trị mã hóa (encoded) vừa chứa đủ thông tin để biết đời trước của minValue, vừa cho biết giá trị thực tại đỉnh (khi pop gặp số nhỏ hơn min hiện tại thì “đương nhiên” đó là encoded). Như vậy ta chỉ push encoded chứ không cần push thêm val lần nữa - vừa đủ để thực hiện getMin(), vừa tiết kiệm không gian. Công thức khôi phục đúng là: oldMin = 2 * newMin − encoded với newMin chính là minValue sau khi bạn push xong. Hy vọng phần giải thích này sẽ giúp bạn hiểu rõ hơn 😁
mỗi a viết bài là cực thôi 🤣🤣
bài viết ý nghĩa quá ạ