- Đây là bài viết trình bày quy trình triển khai ứng dụng RAG dựa trên SQL bằng cách sử dụng bộ dữ liệu Harry Potter được tải lên trái phép trên Kaggle, nhưng hiện đã bị xóa
- Azure SQL và Microsoft Fabric SQL DB hỗ trợ tìm kiếm vector gốc, và có thể quản lý Vector Store bằng
langchain-sqlserver
- Xây dựng luồng lưu vector vào SQL sau khi tải từ Azure Blob Storage, chia nhỏ văn bản và tạo embedding bằng Azure OpenAI
- Xây dựng hệ thống hỏi đáp chính xác bằng tìm kiếm tương đồng vector và bộ lọc metadata
- Mở rộng triển khai để có thêm tính năng tạo fan fiction dựa trên GPT4o bằng cùng một vector store
- Liên kết Archive.is
Hỗ trợ vector gốc của Azure SQL và tích hợp LangChain
- Azure SQL và Microsoft Fabric SQL DB cung cấp tính năng tìm kiếm vector gốc ở dạng public preview
- Việc công bố gói
langchain-sqlserver cho phép quản lý SQL Server như một LangChain Vector Store
- Cung cấp cài đặt và mã ví dụ thông qua kho PyPI và GitHub
- Kết hợp Azure SQL DB, LangChain và LLM để thêm tính năng AI tạo sinh chỉ với vài dòng mã
Cấu hình bộ dữ liệu ví dụ
- Sử dụng bộ dữ liệu văn bản gồm 7 tập Harry Potter do Kaggle cung cấp
- Bao gồm 7 tệp
.txt
- Trong bản demo chỉ dùng tập 1 Harry Potter and the Sorcerer’s Stone
- Dùng một bộ dữ liệu quen thuộc với công chúng để tạo ví dụ dễ hiểu
Các bước xây dựng ứng dụng mẫu
1. Cài đặt gói langchain-sqlserver
- Cài gói tích hợp bằng lệnh
pip install langchain-sqlserver==0.1.1
- Kích hoạt chức năng vector store dựa trên SQL
2. Tải dữ liệu từ Azure Blob Storage và chia nhỏ
- Lưu tệp văn bản Harry Potter lên Azure Blob Storage rồi tải vào
- Sử dụng tính năng tích hợp AzureBlobStorage của LangChain
- Dùng
langchain-text-splitter để chia văn bản dài thành các đoạn nhỏ
- Mục đích là xử lý giới hạn token đầu vào của embedding Azure OpenAI
3. Định nghĩa embedding và Chat Completion
- Sử dụng Azure OpenAI để tạo embedding văn bản cho từng đoạn
- Có thể thay thế bằng nhiều mô hình embedding khác do LangChain cung cấp
- Chuẩn bị xử lý hỏi đáp thông qua cấu hình Chat Completion
4. Khởi tạo Vector Store và chèn tài liệu
- Khởi tạo Vector Store cùng với embedding AzureOpenAI
- Dùng hàm
add_documents để lưu tài liệu và embedding vào Azure SQL
- Có thể tạo và lưu vector chỉ với ít dòng mã
5. Thực hiện tìm kiếm tương đồng
- Thực thi tìm kiếm tương đồng vector bằng hàm
similarity_search_with_score
- Hỗ trợ bộ lọc metadata
- Có thể giới hạn phạm vi tìm kiếm dựa trên thuộc tính metadata cụ thể
Use Case 1: Xây dựng hệ thống Q&A
- Triển khai hệ thống hỏi đáp về cốt truyện dựa trên SQL Vector Store và LangChain
- Với câu hỏi của người dùng, hệ thống tìm 10 tài liệu liên quan nhất rồi tạo câu trả lời
- Tạo retriever dựa trên
vector_store
- Dùng
create_stuff_documents_chain để cấu thành chuỗi hỏi-đáp
- Dùng
ChatPromptTemplate để định nghĩa định dạng phản hồi có cấu trúc
- Khi dùng
create_retrieval_chain, các tài liệu được truy xuất cũng được trả về cùng với khóa "context"
- Hỗ trợ hiển thị nguồn tham chiếu đã được dùng để tạo câu trả lời
Use Case 2: Tạo fan fiction Harry Potter
- Triển khai tính năng tạo fan fiction bằng AI mới dựa trên vector store
- Khi người dùng nhập prompt, hệ thống sẽ truy xuất các đoạn văn liên quan
- Tìm ngữ cảnh tương tự dựa trên embedding được lưu trong SQL vector store
- Gom các đoạn được truy xuất thành một chuỗi để tạo ngữ cảnh đầu vào cho mô hình
- Gửi đồng thời ngữ cảnh và prompt của người dùng vào mô hình GPT4o
- Tạo ra câu chuyện mới có phản ánh các yếu tố ngữ cảnh sẵn có
- Cùng với kết quả sinh ra, hệ thống cũng hiển thị thông tin nguồn vector đã tham chiếu
Kịch bản sử dụng tích hợp
- Kết hợp hệ thống Q&A và tính năng tạo fan fiction để mang lại trải nghiệm đọc tương tác
- Có thể dùng Q&A khi cần hiểu nội dung cuốn sách
- Có thể mở rộng một cảnh cụ thể hoặc tạo kết thúc thay thế
Mã mẫu và tài nguyên
- Cung cấp kho GitHub của notebook LangChain-SQL-RAG
- Có thể gửi yêu cầu cải thiện tính năng qua cổng phản hồi của Azure SQL và SQL Server
1 bình luận
Ý kiến trên Hacker News
Vụ việc lần này của Microsoft dường như cho thấy một sự đổ vỡ quy trình mang tính nền tảng hơn là chỉ là vấn đề bản quyền
Nếu ngay cả tài liệu cũng không được rà soát, thì khó tránh khỏi câu hỏi liệu mã mới có thực sự đang được review cẩn thận hay không
Tôi muốn hỏi ban lãnh đạo — trong ba trụ cột là bảo mật, chất lượng và đổi mới AI, rốt cuộc họ sẽ chọn bên nào
(Scott Hanselman, tôi quý anh, nhưng xin đừng tự trả lời chuyện này mà hãy chuyển nó lên đúng cấp lãnh đạo)
Khi đó có thể tự đăng bài mà không cần quy trình phê duyệt, và vì vậy blog là một không gian tự nhiên và chân thực hơn
Vụ này có vẻ đơn giản là do ai đó phán đoán sai, và việc gỡ bài xuống là hoàn toàn hợp lý
Tuy vậy, điều quan trọng hơn là liệu đội ngũ của tác giả đó có đang biện minh cho hành vi xâm phạm bản quyền để huấn luyện AI hay không
Có lẽ không chỉ luật sư nội bộ mà cả bên ngoài cũng sẽ phải xem xét chuyện này
Mã có thể gây ra các sự cố nghiêm trọng do bug nên mới tồn tại quy trình review mang tính hình thức,
còn tài liệu không tác động trực tiếp đến hành vi của phần mềm nên chỉ là không bị áp cùng mức độ nghiêm ngặt
Việc tài liệu không được rà soát không có nghĩa là mã cũng không được rà soát
Trong các tổ chức lớn, mức độ kiểm chứng được áp dụng khác nhau giữa các bộ phận, và mã luôn chịu kiểm soát chặt hơn tài liệu rất nhiều
Gần như là sao chép nguyên xi câu trả lời trên Stack Overflow, và khi tôi bắt gặp nó lúc đang tìm kiếm thông báo lỗi
thì cảm giác không phải tức giận mà chỉ là thất vọng
Bài blog của Microsoft có dẫn tới trang dataset Harry Potter trên Kaggle
Trang đó tự nhận là CC0, tức phạm vi công cộng, nhưng rõ ràng có vấn đề bản quyền
Hơn nữa bài đó đã được đăng từ tháng 11/2024 mà đến giờ vẫn chưa bị gỡ, điều này thật đáng ngạc nhiên
Tôi thử báo cáo bằng tính năng “Report Dataset”, nhưng nó lại chuyển hướng sang trang báo cáo bản quyền của Google
Nhưng rồi tôi bị từ chối với thông báo “nếu không phải chủ sở hữu bản quyền hoặc đại diện thì không thể báo cáo”
Đúng là một tình huống hài như bi kịch. Dataset đó rõ ràng là đồ ăn cắp
Khả năng cao hơn là trách nhiệm thuộc về người đã tải lên với giấy phép sai
Tuy vậy, chỉ cần nhìn cái tên “Harry Potter” thì ai cũng biết đây không thể là public domain,
nên xét theo lẽ thường, Microsoft cũng khó mà phủi sạch trách nhiệm
Microsoft cuối cùng đã gỡ trang đó xuống
Nhưng vẫn còn bản sao lưu trên archive.is
Đó là ví dụ dùng Azure và GPT với tiêu đề “Tạo ứng dụng RAG trong 5 phút”
Thật thất vọng khi người ta vẫn còn dùng trang đó
Ảnh thumbnail do AI tạo của bài blog (liên kết ảnh)
cho thấy Harry thời trẻ và bạn bè đứng trước logo Microsoft. Thật sự rất sốc
Chắc nếu khung hình rộng hơn thì đã chẳng có cả phần nối giữa các toa
Tôi vốn không ưa Microsoft, nhưng gọi vụ này là “cẩm nang dùng đồ lậu” thì hơi quá
Đây chỉ là ví dụ phục vụ nghiên cứu, không phải tích hợp vào sản phẩm
Mức độ phản ứng thái quá quanh độc quyền bản quyền và fair use cũng đáng xấu hổ
Dù là dùng cho nghiên cứu, họ hoàn toàn đủ khả năng trả thù lao xứng đáng cho văn bản đã sử dụng
Phần lớn các công ty LLM thương mại đều đang làm những việc tương tự
Tức là một công ty đã đưa lên blog chính thức hướng dẫn một hành vi mà người bình thường làm thì là phạm pháp
Anthropic cũng từng dàn xếp vụ xâm phạm bản quyền với số tiền 1,5 tỷ USD
Tôi cũng ghét hệ thống bản quyền hiện tại, nhưng không thể chấp nhận việc áp hai tiêu chuẩn khác nhau cho doanh nghiệp và cá nhân
Đây không phải là cẩm nang dùng đồ lậu, mà chỉ là bài giải thích cách đưa dataset vào SQL
Có lẽ Kaggle hoặc người tải lên là Shubham Maindola mới là bên phải chịu trách nhiệm
Phần mô tả nguồn dữ liệu nói rằng “đã chuyển ebook Harry Potter sang txt” thật sự quá rợn người
Vậy mà điểm Kaggle lại là 10.0, thật khó tin
Bài này được đăng từ năm 2024 và Kaggle vẫn đang host dữ liệu
Thật khó hiểu vì sao phía Rowling đến nay vẫn chưa có động thái gì
Số lượt tải trên Kaggle chỉ khoảng 10 nghìn nên có thể chưa đủ nổi bật
Nhưng rõ ràng đây là chuyện đã vượt quá giới hạn
Trước đây Microsoft cũng từng có vụ đạo nhái liên quan đến AI,
khi đó cũng đã có ý kiến rằng quy trình kiểm duyệt nội bộ gần như không tồn tại
Thread liên quan: “Microsoft morged my diagram”
Nhưng giờ đã khác hoàn toàn vì mô hình thương mại đã xuất hiện
Từng có cả những dataset như Books3 được công khai, chứa hàng trăm nghìn đầu sách còn bản quyền
Trang đã bị xóa, nhưng vẫn còn bản sao trên web archive
Việc những người thiếu ý thức đạo đức lại đang tạo ra công nghệ tương lai thật đáng lo ngại
Nếu những người đã trải qua quy trình tuyển dụng nghiêm ngặt như vậy lại đưa ra phán đoán như thế,
thì thật khó không nghi ngờ các quyết định quan trọng ngoài thực tế sẽ nguy hiểm tới mức nào
Nhưng như vậy cũng không thể xem là lý do để miễn trách nhiệm
Giờ đúng là có cảm giác đang sống trong một thế giới nơi quyền sở hữu trí tuệ đã trở nên vô nghĩa
Nên có người đùa rằng biết đâu sẽ có nhà đầu tư rót tiền cho một “startup tiểu thuyết AI chuyên nhả ra nguyên xi Harry Potter”
Tới giờ thứ AI làm ổn định nhất có lẽ vẫn là hài hước
rồi châm biếm rằng mọi điểm giống với sản phẩm hiện có đều là “hoàn toàn ngẫu nhiên”
Người bình thường làm thì vẫn mất sạch mọi thứ và vào tù như thường
Nhìn vào hướng đi hiện tại của Microsoft thì vụ này chẳng có gì đáng ngạc nhiên
Ở Microsoft của năm 2026, dường như luật bản quyền và quyền sở hữu trí tuệ không còn được áp dụng nữa