Xây dựng công cụ tìm kiếm ebook phân tán mã nguồn mở
(github.com/j2qk3b)Xây dựng công cụ tìm kiếm ebook phân tán mã nguồn mở
- Nhờ một người bạn giới thiệu, tác giả biết đến Liber3, một website tìm kiếm ebook sử dụng tên miền ENS.
- Liber3 đã tạo một website tìm kiếm ebook bằng ENS và IPFS, nhưng không công khai mã nguồn.
- Sau khi xem xét tài liệu và bộ dữ liệu của Glitter, tác giả quyết định tự triển khai một phiên bản cộng đồng mã nguồn mở.
Khởi tạo dự án
- Tạo một dự án mới và cài đặt Glitter SDK để có thể dễ dàng kết nối với mạng Glitter và lấy metadata của ebook.
Kết nối mạng
- Tạo một client có thể tương tác với mạng Glitter.
- Khởi tạo instance
LCDClientthông qua Glitter SDK và thiết lập các tham số liên quan.
Xây dựng chức năng tìm kiếm
- Định nghĩa chức năng tìm kiếm nhận từ khóa truy vấn của người dùng, tạo câu lệnh truy vấn và gửi nó tới mạng Glitter.
Hiển thị kết quả tìm kiếm
- Sau khi xây dựng chức năng tìm kiếm, thiết kế giao diện hiển thị thông tin cơ bản của ebook và cung cấp các yếu tố tương tác để người dùng dễ dàng duyệt và chọn sách.
- Qua bốn bước này, có thể xây dựng một công cụ tìm kiếm ebook và cung cấp cho người dùng một nền tảng hiệu quả, tiện lợi để tìm kiếm tài nguyên ebook.
- Nếu xuất bản phiên bản website đã biên dịch lên mạng IPFS, có thể sở hữu một công cụ tìm kiếm ebook phân tán có thể truy cập thông qua IPFS gateway.
- Toàn bộ mã nguồn có thể được xem trong kho lưu trữ này.
Ý kiến của GN⁺
- Bài viết này có thể tạo hứng thú cho những người quan tâm đến công nghệ khi giải thích cách xây dựng một công cụ tìm kiếm ebook bằng cách tận dụng mã nguồn mở và công nghệ phân tán.
- Việc sử dụng cơ sở dữ liệu phân tán và IPFS mang tiềm năng cải thiện tính bền vững và khả năng truy cập của dữ liệu bằng cách đưa ra một phương thức mới để lưu trữ và truy xuất dữ liệu mà không phụ thuộc vào máy chủ tập trung.
- Khi áp dụng công nghệ này, cần cân nhắc độ ổn định của mạng, tốc độ tìm kiếm và trải nghiệm người dùng, đồng thời điều quan trọng là phải hiểu rõ ưu và nhược điểm của nó so với các công cụ tìm kiếm tập trung hiện có.
- Những dự án khác cung cấp chức năng tương tự có thể kể đến Project Gutenberg hoặc Google Books API, nhưng chúng không sử dụng công nghệ phân tán.
- Bằng cách sử dụng công nghệ phân tán, có thể trả lại quyền sở hữu và quyền kiểm soát dữ liệu cho người dùng, đồng thời tăng cường khả năng chống kiểm duyệt của nội dung.
1 bình luận
Các ý kiến trên Hacker News
Từ lâu tôi đã muốn thử xử lý các dataset và mô hình AI trên IPFS theo cách tương tự
Tôi không biết tương lai của IPFS sẽ ra sao, nhưng khi làm việc với các dataset quy mô lớn, tôi hy vọng phần cốt lõi của hạ tầng chia sẻ dữ liệu P2P — thứ giúp cá nhân cũng có thể giải quyết vấn đề với ít phần cứng — sẽ trở nên dễ tiếp cận hơn
https://github.com/JakeKalstad/IPFSPytorchDataset
https://github.com/JakeKalstad/load_ipfs_pytorch_model
Nhìn tiêu đề tôi đã rất hào hứng vì tưởng là tìm kiếm toàn văn
Zlib và Google Books đã làm việc này rồi, nhưng nếu có một phiên bản mã nguồn mở mà mọi người đều có thể đóng góp và còn cung cấp quyền truy cập toàn văn thì đó sẽ là một dự án tuyệt vời
Ví dụ: https://openlibrary.org/search/inside?q=%22institutional+thi...
Đây là mã nguồn mở và luôn tìm người đóng góp. Tôi nghĩ họ sẽ đặc biệt hoan nghênh trợ giúp cải thiện tìm kiếm
https://github.com/internetarchive/openlibrary/
Vấn đề là rất nhiều sách là bản scan PDF nên không có văn bản gốc, và dù OcrMyPdf xử lý khá tốt, nó lại dùng rất nhiều CPU
Nếu chỉ tìm theo tên sách hoặc tác giả thì công cụ tìm kiếm đã có đầy rẫy
Thứ còn thiếu là chỉ mục tìm kiếm nội dung bên trong ebook, và trong thời đại AI tạo sinh, nó sẽ sớm trở nên cực kỳ quan trọng
Trên HN có người nói rằng có thể lập chỉ mục nội dung của hàng triệu cuốn sách chỉ với một chiếc laptop, trong khi người khác nói phạm vi này gần như bất khả thi. Tôi tò mò liệu có dự án nào đang làm việc này không
Hiện tại nó chỉ lập chỉ mục nội dung của chính người dùng, nhưng sau này tôi muốn thêm chế độ chia sẻ bộ sưu tập để người khác có thể dùng tìm kiếm ngữ nghĩa khám phá các ý tưởng liên quan mà mọi người tìm thấy trong sách. Cách hoạt động hiện tại có thể xem trong mã nguồn mở
[1] https://emdash.ai/
[2] https://github.com/dmotz/emdash
Tôi nhớ Google thời kỳ đầu từng tài liệu hóa nội dung kiểu này: chỉ mục tìm kiếm trả về metadata liên quan khớp với một truy vấn cụ thể. Không gian truy vấn chủ yếu dựa trên từ khóa thô và tuple, nếu tôi nhớ đúng thì là n-gram 2–3 từ, trong đó loại sau phải đáp ứng điều kiện tần suất tối thiểu. Các truy vấn dài có thể được cấu thành từ những n-gram ngắn hơn
Vốn từ của người bản ngữ tiếng Anh trình độ cao thường khoảng 40.000 từ, và ngay cả từ điển lớn gồm cả từ cổ cũng có thể dưới 250.000 từ
Ánh xạ từ vựng tới các tác phẩm trích dẫn những từ đó tương đối đơn giản. N-gram thì có bùng nổ tổ hợp, nhưng vẫn là một không gian khá hữu hạn, và chúng ta đã có hơn 25 năm kinh nghiệm lập chỉ mục tài liệu ở quy mô web
Tôi nghĩ một chiếc laptop cũng có thể tạo được một chỉ mục dùng tạm ổn cho hàng triệu cuốn sách, nhưng để có chỉ mục toàn diện hơn, đặc biệt là cả chỉ mục xếp hạng của không gian tìm kiếm, có lẽ sẽ cần hệ thống lớn hơn. Có thể đó mới là bài toán khó hơn
Gần đây trong công việc tôi có xử lý LLM chạy local, và dù lượng tử hóa hiện nay đã tiến bộ rất nhiều, làm những việc như vậy trên ThinkPad vẫn thua xa việc thuê vài giờ một VPS gắn vài chiếc 4090/H100
Vấn đề lớn nhất với tóm tắt là phần lớn mô hình LLM local không có cửa sổ ngữ cảnh quá lớn, nên ngay cả văn bản lớn như một tiểu thuyết ngắn của Vonnegut cũng có thể quá sức. Tôi đã thử bằng cách tóm tắt issue trên GitHub, và ngay cả với cửa sổ ngữ cảnh 16k token, đôi khi nó vẫn chật vật nếu có nhiều bình luận
Tất nhiên, người thông minh hơn tôi có thể vẫn khiến nó chạy được trên Raspberry Pi
Tôi không có cơ sở nào cả, chỉ là suy đoán, nên cũng muốn biết thêm
Bạn có thể giải thích chi tiết cách chỉ mục tìm kiếm được nạp dữ liệu như thế nào, và giới hạn bộ nhớ dự kiến là khoảng bao nhiêu không?
Hay đấy. Có thể dùng cho tìm kiếm torrent không?
Kiểu chạy cùng lúc web torrent có hỗ trợ streaming video và một công cụ tìm kiếm phi tập trung
Tôi cũng định làm một phiên bản mã nguồn mở
Ở đây có một phiên bản mã nguồn mở dùng cùng công nghệ cho tìm kiếm torrent
Tôi tò mò liệu đây có thực sự là một công cụ tìm kiếm, hay chỉ là một frontend tạo truy vấn
select fromTôi không hiểu rốt cuộc chuyện này đang nói về cái gì
Có những câu kiểu “được gợi ý Liber3, dùng tên miền ENS, chạy trên ENS và IPFS, có vẻ dùng Glitter, và là một dịch vụ được xây bằng Tendermint”, nghe như tín hiệu ngoài hành tinh gửi tới từ một thiên hà khác
Tôi cũng đã thử cái gọi là Liber3, nhưng làm gì cũng chỉ hiện “Oops! Something went wrong. Please refresh or try again later”. Tất cả chuyện này đang nói về gì vậy?
IPFS là InterPlanetary File System, gần giống một kho lưu trữ đối tượng phân tán kiểu S3 P2P bất biến
Glitter nghe quen nhưng tôi không nhớ ra ngay
Tendermint là một engine đồng thuận cho blockchain, và là một phần của bộ công cụ cùng với Inter-Blockchain Communication(IBC) Protocol và Cosmos SDK nhằm hỗ trợ khả năng tương tác giữa các blockchain
Hệ sinh thái blockchain thực sự là một thế giới nhỏ riêng. Không hẳn là khép kín, nhưng khá “người trong hội”, nên nếu không chủ động tìm hiểu thì gần như không gặp đến
Nói thêm, nếu bạn quan tâm đến cơ sở dữ liệu hoặc hệ thống phi tập trung không cần tin cậy, IPFS vẫn đáng xem qua ngay cả khi bạn hoài nghi blockchain. Bên trong họ đang làm khá nhiều việc thú vị, và đội ngũ này cũng không cưỡi lên làn sóng đào vàng như gần như mọi dự án blockchain khác
Có thể xem đây là hướng dẫn triển khai để tạo một công cụ tìm kiếm ebook mã nguồn mở. Dĩ nhiên phần mô tả đó vẫn còn chút thuật ngữ, nhưng không đến mức liệt kê hàng loạt tên thư viện cụ thể
Phần lớn bài viết là chi tiết triển khai và được gắn link khá đầy đủ
Rồi sau đó mới nhận ra nó đã tồn tại gần 15 năm và có tên là libgen.rs