Chuyển đến nội dung chính
Phiên bản: 2.0.0

Cơ sở kiến thức từ tệp văn bản thuần túy

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 văn bản thuần túy. 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 văn bản được phân đoạn thành nhiều phần bằng các dòng trống. Xem ví dụ. Mỗi khối đượ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.

ghi

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 để chia nhỏ tài liệu và tạo nhúng.

cuộn tròn -LO https://github.com/GaiaNet-AI/embedding-tools/raw/main/paragraph_embed/paragraph_embed.wasm

Nó chia nhỏ tài liệu dựa trên các dòng trống. Vì vậy, bạn PHẢI chuẩn bị tài liệu nguồn của mình theo cách này - phân đoạn tài liệu thành các phần khoảng 200 từ với các dòng trống. 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.

Các paragraph_embed.wasm chương trình sẽ KHÔNG chia nhỏ danh sách mã ngay cả khi có những dòng trống trong danh sách.

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. Đả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_chunks.txt 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_chunks.txt

Wasmedge --dir .:. \
--nn-preload nhúng:GGML:AUTO:nomic-embed-text-v1.5.f16.gguf \
paragraph_embed.wasm nhúng mặc định 768 paris_chunks.txt -c 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 -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.
  • 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.

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 \
paragraph_embed.wasm nhúng mặc định 768 london.txt -c 8192 -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ó.

Video hướng dẫn

Các bước tiếp theo