Gemini:
Vâng, việc sử dụng cơ sở dữ liệu vector (Vector Database) trong RAG (Retrieval-Augmented Generation) đã có nền tảng khái niệm từ khi bài báo liên quan đầu tiên được công bố vào năm 2020.
Về cơ bản, RAG là cách kết hợp giữa truy xuất (Retrieval) và sinh (Generation), trong đó ở giai đoạn truy xuất, embedding vector cùng với cơ sở dữ liệu vector dùng để lưu trữ và tìm kiếm chúng một cách hiệu quả đóng vai trò thiết yếu.
💡 Điểm khởi đầu của RAG và vector DB
Ý tưởng rằng RAG cần vector DB bắt nguồn từ các bài báo và khái niệm quan trọng sau.
Sự ra đời của RAG: bài báo của Lewis et al. (2020)
Tiêu đề bài báo: "Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks" (sinh tăng cường truy xuất cho các tác vụ xử lý ngôn ngữ tự nhiên chuyên sâu về tri thức)
Cốt lõi: bài báo này là nơi thuật ngữ và framework RAG lần đầu được giới thiệu.
Vai trò của Retriever: mô hình RAG được đề xuất trong bài báo gồm Retriever (bộ truy xuất) và Generator (bộ sinh). Retriever tìm kiếm các tài liệu (latent documents) liên quan đến truy vấn trong những tập dữ liệu lớn như Wikipedia.
Sử dụng chỉ mục vector: mô hình RAG ban đầu này dùng chỉ mục vector (Vector Index) trong tập dữ liệu để tìm tài liệu, giúp bộ truy xuất được huấn luyện trước (pretrained retriever) có thể lấy tài liệu.
Kết luận: vì bước cốt lõi "truy xuất" của RAG được thực hiện bằng cách tính độ tương đồng dựa trên biểu diễn vector của truy vấn và tài liệu, nên khái niệm kho lưu trữ vector (Vector Store) hoặc chỉ mục vector cho việc tìm kiếm hiệu quả đã được hàm chứa như một thành phần thiết yếu.
Embedding vector và tìm kiếm tương đồng
Lý do nền tảng khiến cơ sở dữ liệu vector trở thành thành phần thiết yếu của RAG là như sau.
Embedding: trong hệ thống RAG, cả tri thức bên ngoài (tài liệu, văn bản) lẫn truy vấn của người dùng (câu hỏi) đều được chuyển đổi thành biểu diễn toán học gọi là vector (Vector). Các vector này biểu thị ý nghĩa của văn bản dưới dạng mảng số dày đặc trong không gian nhiều chiều.
Tìm kiếm tương đồng (Similarity Search): trong không gian vector, việc tìm vector tài liệu ở khoảng cách gần nhất với vector truy vấn đồng nghĩa với việc tìm ra tài liệu có mức độ liên quan về mặt ngữ nghĩa cao nhất.
Vai trò của vector DB: cơ sở dữ liệu vector là loại cơ sở dữ liệu được chuyên biệt hóa để lưu trữ số lượng lớn các vector tài liệu như vậy và tìm nhanh, hiệu quả những vector giống nhất với vector truy vấn đã cho. Vì vậy, nó là yếu tố không thể thiếu để tối đa hóa hiệu năng truy xuất của RAG.
Tóm tắt: Vì sao cần vector DB
Để cho phép LLM tiếp cận tri thức mới nhất hoặc tri thức đặc thù theo miền mà mô hình chưa học, cần phải tìm thông tin dựa trên độ tương đồng ngữ nghĩa chứ không chỉ là đối sánh từ khóa đơn thuần (tìm kiếm truyền thống). Vector DB là công nghệ cốt lõi được tích hợp một cách tự nhiên vào framework RAG để thực hiện hiệu quả việc tìm kiếm dựa trên độ tương đồng ngữ nghĩa này.
Đủ thứ linh tinh ở đâu đâu... Cái kiểu nói mã xấu hay mã tốt là thứ bọn junior hay bàn tán thôi, điều quan trọng hơn là có senior nào giỏi thiết kế phần mềm phù hợp với ngành đó hay không...
Quảng cáo chỉ là bước khởi đầu, rồi sẽ mang đến trải nghiệm người dùng dẫn tới việc mua sản phẩm và dịch vụ. Biết đâu đấy. Có khi còn cung cấp cả Worldcoin nữa.
Tôi khá thích mấy thứ như thế này.
Nếu muốn bắt đầu nhẹ nhàng thì dùng termux cũng ổn. Dùng để chạy Grafana trên một chiếc tablet không còn dùng tới thì vẫn khả thi.
Tuy nhiên, Android OS phản ứng khá thù địch với việc hoạt động như một máy chủ.
Theo chiếc Note10 mà tôi đã khôi phục cài đặt gốc vào năm 2024,
nếu tiến trình con vượt quá 6 cái thì sẽ bị kill.
Ngay cả khi ở trạng thái idle quá lâu cũng sẽ bị kill.
Dù đã tắt toàn bộ các tối ưu hóa liên quan đến pin thì vẫn vậy.
Tôi chỉ thử chạy tối đa được 72 giờ mà không đụng vào màn hình cảm ứng, sau đó thì bỏ cuộc.
Xét về nội dung thì có vẻ giống một quy trình đến văn phòng khoảng một ngày để làm việc thử cùng những đồng nghiệp sẽ làm cùng nếu đậu. Có thể dùng ngày nghỉ để tham gia, nên có vẻ việc tuyển dụng và chuyển việc vẫn chưa ở trạng thái chốt hẳn.
Thực ra ở hướng này thì SQLite còn đi trước một bước nữa.
Tự dùng web server do mình làm để host trang chủ, tự dùng VCS do mình làm để quản lý mã nguồn...
"Bước cuối cùng của quy trình phỏng vấn được gọi là PostHog SuperDay. Đây là một ngày làm việc trọn ngày có trả lương cùng với chúng tôi, và có thể linh hoạt điều chỉnh theo lịch của ứng viên. Không thể bỏ qua bước này, vì vậy nếu ứng viên không tham gia vòng phỏng vấn cuối cùng, rất tiếc chúng tôi sẽ phải dừng lại và ứng viên đó sẽ không còn được xem xét cho vị trí này nữa."
"Chúng tôi trả cho mọi ứng viên một khoản cố định 1.000 USD để bù cho việc tham gia SuperDay. Trong những trường hợp hiếm hoi khi một ứng viên khác đã được đăng tuyển được tuyển dụng trước và chúng tôi phải hủy SuperDay đã lên lịch, chúng tôi sẽ trả 500 USD như một khoản phí hủy để bù cho công sức đã bỏ ra đến thời điểm đó."
SuperDay ở mục số 5 là một quy trình tuyển dụng có trả lương, nơi hai bên thực sự cùng làm việc thử với nhau. Nếu có thể thực hiện được thì đây có vẻ là một quy trình khá tốt.
Chỉ trích thì tốt thôi, nhưng tại sao lại từ chối sử dụng? Đó là một cách nghĩ tôi không thể hiểu nổi. LLM đang ngày càng tốt hơn từng ngày, nên phải tìm cách dùng cho hiệu quả chứ, sao lại ra vẻ như mình có suy nghĩ sâu sắc rồi kết luận cuối cùng vẫn là từ chối.
Trong Phaedrus của Plato, có đoạn kể về một cuộc tranh luận xoay quanh phát minh ra chữ viết.
"Chữ viết sẽ làm suy yếu trí nhớ của con người. Bởi khi con người trở nên phụ thuộc vào chữ viết, họ sẽ không còn tự mình gợi lại ký ức từ bên trong mà sẽ dựa vào những ghi chép bên ngoài."
Chẳng phải có gì đó rất giống về mặt khuôn mẫu sao?
Gemini:
Vâng, việc sử dụng cơ sở dữ liệu vector (Vector Database) trong RAG (Retrieval-Augmented Generation) đã có nền tảng khái niệm từ khi bài báo liên quan đầu tiên được công bố vào năm 2020.
Về cơ bản, RAG là cách kết hợp giữa truy xuất (Retrieval) và sinh (Generation), trong đó ở giai đoạn truy xuất, embedding vector cùng với cơ sở dữ liệu vector dùng để lưu trữ và tìm kiếm chúng một cách hiệu quả đóng vai trò thiết yếu.
💡 Điểm khởi đầu của RAG và vector DB
Ý tưởng rằng RAG cần vector DB bắt nguồn từ các bài báo và khái niệm quan trọng sau.
Lý do nền tảng khiến cơ sở dữ liệu vector trở thành thành phần thiết yếu của RAG là như sau.
Tóm tắt: Vì sao cần vector DB
Để cho phép LLM tiếp cận tri thức mới nhất hoặc tri thức đặc thù theo miền mà mô hình chưa học, cần phải tìm thông tin dựa trên độ tương đồng ngữ nghĩa chứ không chỉ là đối sánh từ khóa đơn thuần (tìm kiếm truyền thống). Vector DB là công nghệ cốt lõi được tích hợp một cách tự nhiên vào framework RAG để thực hiện hiệu quả việc tìm kiếm dựa trên độ tương đồng ngữ nghĩa này.
Đủ thứ linh tinh ở đâu đâu... Cái kiểu nói mã xấu hay mã tốt là thứ bọn junior hay bàn tán thôi, điều quan trọng hơn là có senior nào giỏi thiết kế phần mềm phù hợp với ngành đó hay không...
Quảng cáo chỉ là bước khởi đầu, rồi sẽ mang đến trải nghiệm người dùng dẫn tới việc mua sản phẩm và dịch vụ. Biết đâu đấy. Có khi còn cung cấp cả Worldcoin nữa.
Ai nói rằng RAG nhất thiết phải cần vector DB vậy chứ…
Tôi thấy rất thú vị. Mong là sẽ tiếp tục ra thêm ạ haha
Tôi khá thích mấy thứ như thế này.
Nếu muốn bắt đầu nhẹ nhàng thì dùng termux cũng ổn. Dùng để chạy Grafana trên một chiếc tablet không còn dùng tới thì vẫn khả thi.
Tuy nhiên, Android OS phản ứng khá thù địch với việc hoạt động như một máy chủ.
Theo chiếc Note10 mà tôi đã khôi phục cài đặt gốc vào năm 2024,
nếu tiến trình con vượt quá 6 cái thì sẽ bị kill.
Ngay cả khi ở trạng thái idle quá lâu cũng sẽ bị kill.
Dù đã tắt toàn bộ các tối ưu hóa liên quan đến pin thì vẫn vậy.
Tôi chỉ thử chạy tối đa được 72 giờ mà không đụng vào màn hình cảm ứng, sau đó thì bỏ cuộc.
🤣
Có vẻ Fuchsia đã chết rồi nhỉ
Xét về nội dung thì có vẻ giống một quy trình đến văn phòng khoảng một ngày để làm việc thử cùng những đồng nghiệp sẽ làm cùng nếu đậu. Có thể dùng ngày nghỉ để tham gia, nên có vẻ việc tuyển dụng và chuyển việc vẫn chưa ở trạng thái chốt hẳn.
Chắc là không dễ... vì còn mục đích làm một "bia đỡ đạn hợp pháp" phòng khi chiến lược của doanh nghiệp thất bại?
Thực ra ở hướng này thì SQLite còn đi trước một bước nữa.
Tự dùng web server do mình làm để host trang chủ, tự dùng VCS do mình làm để quản lý mã nguồn...
Nhìn gom lại như thế này đúng là ấn tượng thật
Chỉ cần bỏ Windows, chỉ còn Linux và macOS là hoàn hảo...
Đây là một khái niệm khác với "thời gian thử việc" phải không?
Rời AWS, rời LLVM, rời GitHub... đúng là rất hip thật....
Bài viết hay, tôi đã đọc rất thích.
Chắc sẽ bị phồng pin nhỉ
Thú vị thật haha
Ngoài ra, cũng có nhiều ý kiến cho rằng ngành tư vấn chiến lược cũng sẽ bị AI thay thế.
"Bước cuối cùng của quy trình phỏng vấn được gọi là PostHog SuperDay. Đây là một ngày làm việc trọn ngày có trả lương cùng với chúng tôi, và có thể linh hoạt điều chỉnh theo lịch của ứng viên. Không thể bỏ qua bước này, vì vậy nếu ứng viên không tham gia vòng phỏng vấn cuối cùng, rất tiếc chúng tôi sẽ phải dừng lại và ứng viên đó sẽ không còn được xem xét cho vị trí này nữa."
"Chúng tôi trả cho mọi ứng viên một khoản cố định 1.000 USD để bù cho việc tham gia SuperDay. Trong những trường hợp hiếm hoi khi một ứng viên khác đã được đăng tuyển được tuyển dụng trước và chúng tôi phải hủy SuperDay đã lên lịch, chúng tôi sẽ trả 500 USD như một khoản phí hủy để bù cho công sức đã bỏ ra đến thời điểm đó."
SuperDay ở mục số 5 là một quy trình tuyển dụng có trả lương, nơi hai bên thực sự cùng làm việc thử với nhau. Nếu có thể thực hiện được thì đây có vẻ là một quy trình khá tốt.
Chỉ trích thì tốt thôi, nhưng tại sao lại từ chối sử dụng? Đó là một cách nghĩ tôi không thể hiểu nổi. LLM đang ngày càng tốt hơn từng ngày, nên phải tìm cách dùng cho hiệu quả chứ, sao lại ra vẻ như mình có suy nghĩ sâu sắc rồi kết luận cuối cùng vẫn là từ chối.
Trong Phaedrus của Plato, có đoạn kể về một cuộc tranh luận xoay quanh phát minh ra chữ viết.
"Chữ viết sẽ làm suy yếu trí nhớ của con người. Bởi khi con người trở nên phụ thuộc vào chữ viết, họ sẽ không còn tự mình gợi lại ký ức từ bên trong mà sẽ dựa vào những ghi chép bên ngoài."
Chẳng phải có gì đó rất giống về mặt khuôn mẫu sao?