ColBERT (v2) Fine-tuned for Bengali document retrieval task, using RAGatouille.
Datasets used for fine-tuning:
Bengali train subsets of castorini/mr-tydi and AmazonScience/tydi-as2.
Required packages:
!pip install ragatouille
# Additional package to enable GPU for indexing. Ignore for CPU indexing (slow).
!pip uninstall faiss-cpu -y
!pip install faiss-gpu
Example for a very basic Indexing and Retrieval task:
from ragatouille import RAGPretrainedModel
RAG = RAGPretrainedModel.from_pretrained("turjo4nis/colbertv2.0-bn")
# define your desired documents as a list of strings.
my_documents = [
"উইকিপিডিয়া হলো সম্মিলিতভাবে সম্পাদিত, বহুভাষিক, মুক্ত প্রবেশাধিকার, মুক্ত.....",
"বিষয়বস্তু সংযুক্ত অনলাইন বিশ্বকোষ যা উইকিপিডিয়ান বলে.....",
"পরিচিত স্বেচ্ছাসেবক সম্প্রদায় কর্তৃক লিখিত এবং রক্ষণাবেক্ষণকৃত। স্বেচ্ছাসেবকেরা.....",
"মিডিয়াউইকি নামে একটি উইকি -ভিত্তিক সম্পাদনা ব্যবস্থা ব্যবহার করে সম্পাদনা করেন।.....",
]
# OPTIONAL - define document ids as a list of strings
docid_list = ['1', '2', '3', '4', ]
RAG.index(
index_name="my_index", # local save location -> '.ragatouille/colbert/indexes/my_index'
collection=my_documents,
document_ids=docid_list, # OPTIONAL
split_documents=False, # if set True, then documents will be chunked to the token amount set in max_document_length
# max_document_length=512, # un-comment if split_documents is set True
use_faiss=True,
)
query = "উইকিপিডিয়া কি?"
RAG.search(query)
Load a saved index:
from ragatouille import RAGPretrainedModel
path_to_index = ".ragatouille/colbert/indexes/my_index"
RAG = RAGPretrainedModel.from_index(path_to_index)
query = "উইকিপিডিয়া কি?"
results = RAG.search(query, k=2) # k = number of top-ranked documents to be retrieved
results
Output:
- Downloads last month
- 123
Model tree for turjo4nis/colbertv2.0-bn
Base model
colbert-ir/colbertv2.0