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.
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.
Sonraki adımlar
- Yeni bir Gaia düğümü başlatın
- Gaia düğümünü özelleştirin
İyi eğlenceler!