Ana içeriğe geç
Sürüm: 2.0.0

Düz metin dosyasından bilgi tabanı

Bu bölümde, bir düz metin dosyasından bir vektör koleksiyonu anlık görüntüsünün nasıl oluşturulacağını tartışacağız. Bu bölümde anlık görüntü dosyası daha sonra bir Gaia düğümü tarafından bilgi tabanı olarak yüklenebilir.

Metin dosyası boş satırlarla birden fazla parçaya bölünür. Bir örneğe bakın. Her yığın bir vektöre dönüştürülür ve alınır, LLM için istem bağlamına eklenir.

Ön Koşullar

Platformlar arası LLM çalışma zamanı olan WasmEdge Runtime'ı yükleyin.

curl -sSf https://raw.githubusercontent.com/WasmEdge/WasmEdge/master/utils/install_v2.sh | bash -s

Bir yerleştirme modeli indirin.

curl -LO https://huggingface.co/gaianet/Nomic-embed-text-v1.5-Embedding-GGUF/resolve/main/nomic-embed-text-v1.5.f16.gguf

Gömme modeli, cümleleri vektörlere dönüştüren özel bir LLM türüdür. Vektörler daha sonra bir vektör veritabanında saklanabilir ve daha sonra aranabilir. Cümleler bir bilgi alanını temsil eden bir metin gövdesinden olduğunda, bu vektör veritabanı bizim RAG bilgi tabanımız haline gelir.

Bir vektör veritabanı başlatın

Varsayılan olarak, vektör veritabanı olarak Qdrant kullanırız. Bir Qdrant örneği başlatabilirsiniz bir Gaia düğümünü bir bilgi anlık görüntüsü ile başlatarak.

Not

Ya da Docker kullanarak bir Qdrant sunucusu başlatabilirsiniz. Aşağıdaki komut onu arka planda başlatır.

mkdir qdrant_storage
mkdir qdrant_snapshots

nohup docker run -d -p 6333:6333 -p 6334:6334 \
-v $(pwd)/qdrant_storage:/qdrant/storage:z \
-v $(pwd)/qdrant_snapshots:/qdrant/snapshots:z \
qdrant/qdrant

Vektör koleksiyonu anlık görüntüsünü oluşturma

Varsa varsayılan koleksiyonu silin.

curl -X DELETE 'http://localhost:6333/collections/default'

Default adında yeni bir koleksiyon oluşturun. 768 boyutlu olduğuna dikkat edin. Bu, gömme modelinin çıktı vektörü boyutudur nomic-embed-text-v1.5. Farklı bir gömme modeli kullanıyorsanız, modele uygun bir boyut kullanmalısınız.

curl -X PUT 'http://localhost:6333/collections/default' \
-H 'Content-Type: application/json' \
--data-raw '{
"vectors": {
"size": 768,
"distance": "Cosine",
"on_disk": true
}
}'

Bir belgeyi parçalara ayırmak ve katıştırmalar oluşturmak için bir program indirin.

curl -LO https://github.com/GaiaNet-AI/embedding-tools/raw/main/paragraph_embed/paragraph_embed.wasm

Belgeyi boş satırlara göre parçalara ayırır. Bu nedenle, kaynak belgenizi bu şekilde hazırlamalısınız -- belgeyi boş satırlarla yaklaşık 200 kelimelik bölümlere ayırın. Rust kaynak koduna buradan göz atabilir ve farklı bir parçalama stratejisi kullanmanız gerekiyorsa değiştirebilirsiniz.

Bu paragraf_embed.wasm program, listeleme içinde boş satırlar olsa bile kod listelerini KESMEZ.

Ardından, bir koleksiyon adı, vektör boyutu ve kaynak belge girerek programı çalıştırabilirsiniz. Qdrant'ın yerel makinenizde çalıştığından emin olun. Model, embedding adı altında önceden yüklenir. Wasm uygulaması daha sonra paris_chunks.txt dosyasından 768 boyutlu vektörler oluşturmak için gömme modelini kullanır ve bunları varsayılan koleksiyona kaydeder.

curl -LO https://huggingface.co/datasets/gaianet/paris/raw/main/paris_chunks.txt

wasmedge --dir .:. \
--nn-preload embedding:GGML:AUTO:nomic-embed-text-v1.5.f16.gguf \
paragraph_embed.wasm embedding default 768 paris_chunks.txt -c 8192

Seçenekler

Aşağıdaki seçenekleri programa aktarabilirsiniz.

  • Kullanma -m veya --maximum_context_length CLI argümanında bir bağlam uzunluğu belirtmek için. Bu, bağlam uzunluğunu aşan her metin parçası için kesmek ve uyarmaktır.
  • Kullanma -s veya --start_vector_id CLI argümanında başlangıç vektör kimliğini belirtmek için. Bu, bu uygulamayı aynı vektör koleksiyonundaki birden çok belge üzerinde birden çok kez çalıştırmamıza olanak tanıyacaktır.
  • Kullanma -c veya --ctx_size girdinin bağlam boyutunu belirtmek için. Bu varsayılan olarak 512'dir.

Örnek: yukarıdaki örnek ancak Londra rehberini 42. dizinden başlayarak mevcut bir koleksiyonun sonuna eklemek için.

wasmedge --dir .:. \
--nn-preload embedding:GGML:AUTO:nomic-embed-text-v1.5.f16.gguf \
paragraph_embed.wasm embedding default 768 london.txt -c 8192 -s 42

Vektör anlık görüntüsü oluşturma

Koleksiyonun paylaşılabilen ve farklı bir Qdrant veritabanına yüklenebilen bir anlık görüntüsünü oluşturabilirsiniz. Anlık görüntü dosyasını şurada bulabilirsiniz qdrant_snapshots dizini veya ~/gaianet/qdrant/snapshots Gaia düğümündeki dizin.

curl -X POST 'http://localhost:6333/collections/default/snapshots'

Ayrıca anlık görüntü dosyasını sıkıştırmanızı da öneririz.

tar czvf my.snapshot.tar.gz my.snapshot

Son olarak, yükleyin my.snapshot.tar.gz dosyasının Huggingface'e aktarılması için Gaia node indirebilir ve kullanabilir.

Video Kılavuzu

Sonraki adımlar