Cơ sở kiến thức từ tệp đánh dấu
Trong phần này, chúng ta sẽ thảo luận về cách tạo ảnh chụp nhanh bộ sưu tập vector từ tệp đánh dấu. Các Tệp ảnh chụp nhanh sau đó có thể được tải bởi một nút Gaia làm cơ sở kiến thức của nó.
Tệp đánh dấu được phân đoạn thành nhiều phần theo tiêu đề. Xem ví dụ. Mỗi phần được biến thành một vector, và khi truy xuất, thêm vào ngữ cảnh nhắc nhở cho LLM.
Điều kiện tiên quyết
Cài đặt WasmEdge Runtime, thời gian chạy LLM đa nền tảng.
cuộn tròn -sSf https://raw.githubusercontent.com/WasmEdge/WasmEdge/master/utils/install_v2.sh | bash -s
Tải xuống mô hình nhúng.
cuộn tròn -LO https://huggingface.co/gaianet/Nomic-embed-text-v1.5-Embedding-GGUF/resolve/main/nomic-embed-text-v1.5.f16.gguf
Mô hình nhúng là một loại LLM đặc biệt biến câu thành vector. Các vectơ sau đó có thể được lưu trữ trong cơ sở dữ liệu vectơ và tìm kiếm sau. Khi các câu từ một nội dung văn bản đại diện cho một miền kiến thức, cơ sở dữ liệu vectơ đó trở thành cơ sở kiến thức RAG của chúng ta.
Khởi động cơ sở dữ liệu vector
Theo mặc định, chúng tôi sử dụng Qdrant làm cơ sở dữ liệu vector. Bạn có thể khởi động phiên bản Qdrant bằng cách bắt đầu một nút Gaia với ảnh chụp nhanh kiến thức.
Hoặc, bạn có thể khởi động máy chủ Qdrant bằng Docker. Lệnh sau đây khởi động nó trong nền.
MKDIR qdrant_storage
MKDIR qdrant_snapshots
Nohup Docker chạy -d -p 6333:6333 -p 6334:6334 \
-v $(pwd)/qdrant_storage:/qdrant/storage:z \
-v $(pwd)/qdrant_snapshots:/qdrant/snapshots:z \
QDRANT/QDRANT
Tạo ảnh chụp nhanh bộ sưu tập vector
Xóa bộ sưu tập mặc định nếu nó tồn tại.
cuộn tròn -X XÓA 'http://localhost:6333/collections/default'
Tạo một bộ sưu tập mới được gọi là mặc định. Lưu ý rằng nó là kích thước 768. Đó là kích thước vector đầu ra của mô hình nhúng nomic-nhúng-văn bản-v1.5
. Nếu bạn đang sử dụng một mô hình nhúng khác, bạn nên sử dụng kích thước phù hợp với mô hình.
curl -X PUT 'http://localhost:6333/collections/default' \
-H 'Content-Type: application/json' \
--data-raw '{
"vectors": {
"size": 768,
"distance": "Cosine",
"on_disk": true
}
}'
Tải xuống một chương trình để phân đoạn tài liệu đánh dấu và tạo nhúng.
cuộn tròn -LO https://github.com/GaiaNet-AI/embedding-tools/raw/main/markdown_embed/markdown_embed.wasm
Nó chia nhỏ tài liệu dựa trên các phần đánh dấu. Bạn có thể kiểm tra mã nguồn Rust tại đây và sửa đổi nó nếu bạn cần sử dụng một chiến lược chunking khác.
Tiếp theo, bạn có thể chạy chương trình bằng cách truyền tên bộ sưu tập, kích thước vectơ và tài liệu nguồn. Bạn có thể vượt qua mức tiêu đề markdown mong muốn để chunking bằng cách sử dụng --heading_level
sự quyết định. Các --ctx_size
Tùy chọn phù hợp với kích thước cửa sổ ngữ cảnh của mô hình nhúng, trong trường hợp này là 8192 mã thông báo cho phép nó xử lý các phần văn bản dài. Đảm bảo rằng Qdrant đang chạy trên máy cục bộ của bạn. Mô hình được tải sẵn dưới tên nhúng. Ứng dụng wasm sau đó sử dụng mô hình nhúng để tạo các vectơ 768 chiều từ paris.md
và lưu chúng vào bộ sưu tập mặc định.
cuộn tròn -LO https://huggingface.co/datasets/gaianet/paris/raw/main/paris.md
Wasmedge --dir .:. \
--nn-preload nhúng:GGML:AUTO:nomic-embed-text-v1.5.f16.gguf \
markdown_embed.wasm nhúng mặc định 768 paris.md --heading_level 1 --ctx_size 8192
Tùy chọn
Bạn có thể chuyển các tùy chọn sau cho chương trình.
- Sử dụng
-c
hoặc--ctx_size
để chỉ định kích thước ngữ cảnh của đầu vào. Điều này mặc định là 512. - Sử dụng
-l
hoặc--heading_level
để chỉ định mức tiêu đề markdown cho mỗi vector. Điều này mặc định là 1. - Sử dụng
-m
hoặc--maximum_context_length
để xác định độ dài ngữ cảnh trong đối số CLI. Đó là cắt ngắn và cảnh báo cho từng đoạn văn bản vượt quá độ dài ngữ cảnh. - Sử dụng
-s
hoặc--start_vector_id
để chỉ định ID vectơ bắt đầu trong đối số CLI. Điều này sẽ cho phép chúng tôi chạy ứng dụng này nhiều lần trên nhiều tài liệu trên cùng một bộ sưu tập vector.
Ví dụ: ví dụ trên nhưng để thêm hướng dẫn London vào cuối bộ sưu tập hiện có bắt đầu từ chỉ mục 42.
Wasmedge --dir .:. \
--nn-preload nhúng:GGML:AUTO:nomic-embed-text-v1.5.f16.gguf \
markdown_embed.wasm nhúng mặc định 768 london.md -c 8192 -l 1 -s 42
Tạo ảnh chụp nhanh vector
Bạn có thể tạo ảnh chụp nhanh của bộ sưu tập, có thể được chia sẻ và tải vào một cơ sở dữ liệu Qdrant khác. Bạn có thể tìm thấy tệp ảnh chụp nhanh trong qdrant_snapshots
thư mục hoặc ~ / gaianet / qdrant / ảnh chụp nhanh
thư mục trong nút Gaia.
cuộn tròn -X POST 'http://localhost:6333/collections/default/snapshots'
Chúng tôi cũng khuyên bạn nên nén tệp ảnh chụp nhanh.
tar czvf my.snapshot.tar.gz my.snapshot
Cuối cùng, tải lên my.snapshot.tar.gz
tập tin vào Huggingface để Gaia node có thể tải về và sử dụng nó.
Các bước tiếp theo
Chúc vui vẻ!