
Stark عبارة عن معيار استرجاع شبه منظم على نطاق واسع حول قواعد المعرفة النصية والعلائقية ، وتغطي التطبيقات في البحث عن المنتجات ، والبحث عن الورق الأكاديمي ، والاستفسارات الحيوية.
يضم استفسارات متنوعة وطبيعية وعملية تتطلب التفكير في السياق ، ويضع Stark معيارًا جديدًا لتقييم أنظمة الاسترجاع في العالم الحقيقي التي تحركها LLMs ويمثل تحديات كبيرة للبحث في المستقبل.
تحقق من موقعنا لمزيد من نظرة عامة!
مع Python> = 3.8 و <3.12
pip install stark-qa قم بإنشاء conda env مع python> = 3.8 و <3.12 وتثبيت الحزم المطلوبة في requirements.txt .
conda create -n stark python=3.11
conda activate stark
pip install -r requirements.txt from stark_qa import load_qa , load_skb
dataset_name = 'amazon'
# Load the retrieval dataset
qa_dataset = load_qa ( dataset_name )
idx_split = qa_dataset . get_idx_split ()
# Load the semi-structured knowledge base
skb = load_skb ( dataset_name , download_processed = True , root = None ) تحدد وسيطة الجذر لـ LOAD_SKB الموقع لتخزين بيانات SKB. مع القيمة الافتراضية None ، سيتم تخزين البيانات في ذاكرة التخزين المؤقت Luggingface.
سيتم تنزيل أزواج إجابة الأسئلة لمهمة الاسترجاع تلقائيًا في data/{dataset}/stark_qa افتراضيًا. قدمنا تقسيم رسمي في data/{dataset}/split .
هناك طريقتان لتحميل بيانات قاعدة المعرفة:
download_processed=True .download_processed=False . في هذه الحالة ، يستغرق Stark-Primekg حوالي 5 دقائق لتنزيل البيانات التي تمت معالجتها وتحميلها. قد يستغرق Stark-Amazon و Stark-Mag حوالي ساعة للمعالجة من البيانات الأولية. إذا كنت تقوم بتشغيل Eval ، فيمكنك تثبيت الحزم التالية:
pip install llm2vec gritlm bm25 يتطلب تقييمنا تضمين مستندات العقدة في candidate_emb_dict.pt ، وهو Dictionary node_id -> torch.Tensor . سيتم إنشاء تضمينات الاستعلام تلقائيًا إن لم يكن متاحًا. يمكنك إما تشغيل البرنامج النصي Python التالي لتنزيل ضمانات الاستعلام وتضمينات المستندات التي تم إنشاؤها بواسطة text-embedding-ada-002 . (نحن نقدمهم حتى تتمكن من الجري على القياس على الفور.)
python emb_download.py --dataset amazon --emb_dir emb/أو يمكنك تشغيل الكود التالي لإنشاء الاستعلام أو توثيق التضمينات بنفسك. على سبيل المثال ،
python emb_generate.py --dataset amazon --mode query --emb_dir emb/ --emb_model text-embedding-ada-002dataset : واحدة من amazon أو mag أو prime .mode : المحتوى للتضمين ، أحد query أو doc (مستندات العقدة).emb_dir : الدليل لتخزين التضمينات.emb_model : اسم LLM لإنشاء التضمينات ، مثل text-embedding-ada-002 ، text-embedding-3-large ، و voyage-large-2-instruct ، GritLM/GritLM-7B ، McGill-NLP/LLM2Vec-Meta-Llama-3-8B-Instruct-mntpemb_generate.py للاطلاع على الحجج الأخرى.قم بتشغيل نص Python للتقييم. على سبيل المثال ،
python eval.py --dataset amazon --model VSS --emb_dir emb/ --output_dir output/ --emb_model text-embedding-ada-002 --split test --save_pred python eval.py --dataset amazon --model VSS --emb_dir emb/ --output_dir output/ --emb_model GritLM/GritLM-7B --split test-0.1 --save_pred python eval.py --dataset amazon --model LLMReranker --emb_dir emb/ --output_dir output/ --emb_model text-embedding-ada-002 --split human_generated_eval --llm_model gpt-4-1106-preview --save_predargs الرئيسية:
dataset : مجموعة البيانات لتقييمها ، واحدة من amazon أو mag أو prime .model : النموذج الذي سيتم تقييمه ، واحد من BM25 ، Colbertv2 ، VSS ، MultiVSS ، LLMReranker .--emb_model .LLMReranker ، فيرجى تحديد اسم LLM مع الوسيطة --llm_model . export ANTHROPIC_API_KEY=YOUR_API_KEY
export OPENAI_API_KEY=YOUR_API_KEY
export OPENAI_ORG=YOUR_ORGANIZATION
export VOYAGE_API_KEY=YOUR_API_KEY
emb_dir : الدليل لتخزين التضمينات.split : الانقسام للتقييم ، واحد من train ، val ، test ، test-0.1 (عينة عشوائية 10 ٪) ، و human_generated_eval (المراد تقييمها على مجموعة بيانات الاستعلام التي تم إنشاؤها البشرية).output_dir : الدليل لتخزين مخرجات التقييم.surfix : حدد متى تكون التضمينات المخزنة في doc{surfix} أو query{surfix} ، على سبيل المثال ، _no_compact ، يرجى التفكير في الاستشهاد بالورقة إذا كنت تستخدم معيارنا أو رمزنا في عملك:
@inproceedings{wu24stark,
title = {STaRK: Benchmarking LLM Retrieval on Textual and Relational Knowledge Bases},
author = {
Shirley Wu and Shiyu Zhao and
Michihiro Yasunaga and Kexin Huang and
Kaidi Cao and Qian Huang and
Vassilis N. Ioannidis and Karthik Subbian and
James Zou and Jure Leskovec
},
booktitle = {NeurIPS Datasets and Benchmarks Track},
year = {2024}
}