ไลบรารี Python นี้มีวิธีการขั้นสูงสำหรับการรวมการฝังตัวหลายตัวที่เกี่ยวข้องกับเอกสารหรือเอนทิตีเดียวลงในการฝังตัวแทนเดียว รองรับเทคนิคการรวมที่หลากหลายตั้งแต่ค่าเฉลี่ยง่ายไปจนถึงวิธีการที่ซับซ้อนเช่น PCA และการรวมที่เอาใจใส่
ในการติดตั้งแพ็คเกจคุณสามารถใช้ PIP:
pip install faiss_vector_aggregatorด้านล่างนี้เป็นตัวอย่างที่แสดงวิธีการใช้ไลบรารีเพื่อรวมการฝังตัวโดยใช้วิธีการที่แตกต่างกัน
สมมติว่าคุณมีคอลเลกชันของ embeddings ที่เก็บไว้ในดัชนี FAISS และคุณต้องการรวมพวกเขาด้วยรหัสเอกสารที่เกี่ยวข้องโดยใช้ค่าเฉลี่ยอย่างง่าย
from faiss_vector_aggregator import aggregate_embeddings
# Aggregate embeddings using simple averaging
aggregate_embeddings (
input_folder = "data/input" ,
column_name = "id" ,
output_folder = "data/output" ,
method = "average"
)input_folder : เส้นทางไปยังโฟลเดอร์ที่มีดัชนีอินพุต FAISS และข้อมูลเมตาcolumn_name : ฟิลด์ข้อมูลเมตาที่จะรวมการฝังตัว (เช่น 'id' )output_folder : เส้นทางที่ดัชนี FAISS เอาท์พุทและข้อมูลเมตาจะถูกบันทึกไว้method="average" : ระบุวิธีการรวมหากคุณมีน้ำหนักที่แตกต่างกันสำหรับ embeddings คุณสามารถใช้ค่าเฉลี่ยถ่วงน้ำหนักเพื่อให้ความสำคัญกับการฝังตัวบางอย่าง
from faiss_vector_aggregator import aggregate_embeddings
# Example weights for the embeddings
weights = [ 0.1 , 0.3 , 0.6 ]
# Aggregate embeddings using weighted averaging
aggregate_embeddings (
input_folder = "data/input" ,
column_name = "id" ,
output_folder = "data/output" ,
method = "weighted_average" ,
weights = weights
)weights : รายการหรืออาร์เรย์ของน้ำหนักที่สอดคล้องกับการฝังแต่ละครั้งmethod="weighted_average" : ระบุวิธีการถ่วงน้ำหนักโดยเฉลี่ยเพื่อลดการฝังตัวในมิติสูงไปยังเวกเตอร์ตัวแทนเดียวโดยใช้ PCA:
from faiss_vector_aggregator import aggregate_embeddings
# Aggregate embeddings using PCA
aggregate_embeddings (
input_folder = "data/input" ,
column_name = "id" ,
output_folder = "data/output" ,
method = "pca"
)method="pca" : ระบุว่าควรใช้ PCA สำหรับการรวมใช้การจัดกลุ่ม k-mean เพื่อค้นหา centroid ของ embeddings สำหรับรหัสเอกสารแต่ละรายการ
from faiss_vector_aggregator import aggregate_embeddings
# Aggregate embeddings using K-Means clustering to find the centroid
aggregate_embeddings (
input_folder = "data/input" ,
column_name = "id" ,
output_folder = "data/output" ,
method = "centroid"
)method="centroid" : ระบุว่าควรใช้การจัดกลุ่ม k-meansเพื่อใช้กลไกความสนใจสำหรับการรวมการฝังตัว:
from faiss_vector_aggregator import aggregate_embeddings
# Aggregate embeddings using Attentive Pooling
aggregate_embeddings (
input_folder = "data/input" ,
column_name = "id" ,
output_folder = "data/output" ,
method = "attentive_pooling"
)method="attentive_pooling" : ระบุวิธีการรวมที่เอาใจใส่ ด้านล่างนี้เป็นคำอธิบายโดยละเอียดของแต่ละวิธีการรวมที่สนับสนุนโดยไลบรารี:
weightstrim_percentageinput_folder (STR): เส้นทางไปยังโฟลเดอร์ที่มีดัชนีอินพุต FAISS ( index.faiss ) และ metadata ( index.pkl )column_name (str): ฟิลด์เมตาดาต้าที่รวมการฝังตัว (เช่น 'id' )output_folder (STR): เส้นทางที่ดัชนี FAISS เอาท์พุทและข้อมูลเมตาจะถูกบันทึกไว้method (STR): วิธีการรวมที่จะใช้ ตัวเลือกรวมถึง:'average' , 'weighted_average' , 'geometric_mean' , 'harmonic_mean' , ' 'centroid' 'pca' 'trimmed_mean' 'median' ', ' 'max_pooling' 'min_pooling' , 'entropy_weighted_average' 'attentive_pooling' 'tukeys_biweight' , 'exemplar'weights (รายการหรือ np.ndarray, ตัวเลือก): น้ำหนักสำหรับวิธีการ weighted_averagetrim_percentage (ลอยตัวเป็นทางเลือก): เศษส่วนเพื่อตัดแต่งจากปลายแต่ละด้านสำหรับ trimmed_mean ควรอยู่ระหว่าง 0 ถึงน้อยกว่า 0.5weights (รายการหรือ np.ndarray, ตัวเลือก): น้ำหนักสำหรับวิธีการ weighted_average ตรวจสอบให้แน่ใจว่าคุณติดตั้งแพ็คเกจต่อไปนี้:
คุณสามารถติดตั้งการอ้างอิงโดยใช้:
pip install faiss-cpu numpy scipy scikit-learn langchain หมายเหตุ: แทนที่ faiss-cpu ด้วย faiss-gpu หากคุณต้องการใช้ FAISS เวอร์ชัน GPU
ยินดีต้อนรับ! โปรดอย่าลังเลที่จะส่งคำขอดึงหรือเปิดปัญหาเกี่ยวกับที่เก็บ GitHub
เมื่อมีส่วนร่วมโปรดตรวจสอบให้แน่ใจว่ารหัสของคุณปฏิบัติตามแนวทางต่อไปนี้:
โครงการนี้ได้รับใบอนุญาตภายใต้ใบอนุญาต MIT ดูไฟล์ใบอนุญาตสำหรับรายละเอียด
FAISS Vector ของ Langchain ตรวจสอบให้แน่ใจว่าการฝังและดัชนีของคุณได้รับการจัดการอย่างต่อเนื่องเมื่อรวมเข้ากับ Langchain