
Stark adalah tolok ukur pengambilan semi-terstruktur skala besar pada basis pengetahuan tekstual dan relasional, yang mencakup aplikasi dalam pencarian produk, pencarian kertas akademik, dan pertanyaan biomedis.
Menampilkan pertanyaan yang beragam, terdengar alami, dan praktis yang membutuhkan penalaran khusus konteks, Stark menetapkan standar baru untuk menilai sistem pengambilan dunia nyata yang didorong oleh LLMS dan menghadirkan tantangan yang signifikan untuk penelitian di masa depan.
Lihat situs web kami untuk ikhtisar lebih lanjut!
Dengan python> = 3.8 dan <3.12
pip install stark-qa Buat conda env dengan python> = 3.8 dan <3.12 dan instal paket yang diperlukan dalam 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 ) Argumen root untuk Load_SKB menentukan lokasi untuk menyimpan data SKB. Dengan nilai default None , data akan disimpan di Huggingface Cache.
Pertanyaan Jawaban Pasangan untuk tugas pengambilan akan secara otomatis diunduh dalam data/{dataset}/stark_qa secara default. Kami memberikan split resmi dalam data/{dataset}/split .
Ada dua cara untuk memuat data basis pengetahuan:
download_processed=True .download_processed=False . Dalam hal ini, Stark-primekg membutuhkan waktu sekitar 5 menit untuk mengunduh dan memuat data yang diproses. Stark-Amazon dan Stark-Mag mungkin membutuhkan waktu sekitar satu jam untuk diproses dari data mentah. Jika Anda menjalankan eval, Anda dapat menginstal paket berikut:
pip install llm2vec gritlm bm25 Evaluasi kami mengharuskan Embed Dokumen Node ke candidate_emb_dict.pt , yang merupakan kamus node_id -> torch.Tensor . Embeddings kueri akan secara otomatis dihasilkan jika tidak tersedia. Anda dapat menjalankan skrip Python berikut untuk mengunduh embeddings kueri dan mendokumentasikan embeddings yang dihasilkan oleh text-embedding-ada-002 . (Kami menyediakannya sehingga Anda dapat menjalankan tolok ukur kami segera.)
python emb_download.py --dataset amazon --emb_dir emb/Atau Anda dapat menjalankan kode berikut untuk menghasilkan kueri atau dokumen embeddings sendiri. Misalnya,
python emb_generate.py --dataset amazon --mode query --emb_dir emb/ --emb_model text-embedding-ada-002dataset : Salah satu dari amazon , mag atau prime .mode : Konten yang disematkan, salah satu query atau doc (dokumen simpul).emb_dir : Direktori untuk menyimpan embeddings.emb_model : Nama llm untuk menghasilkan embeddings, seperti 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 untuk argumen lain.Jalankan skrip Python untuk evaluasi. Misalnya,
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_predKunci Args:
dataset : Dataset untuk mengevaluasi, salah satu dari amazon , mag atau prime .model : Model yang akan dievaluasi, salah satu dari BM25 , Colbertv2 , VSS , MultiVSS , LLMReranker .--emb_model .LLMReranker , harap tentukan nama LLM dengan argumen --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 : Direktori untuk menyimpan embeddings.split : Split untuk mengevaluasi, salah satu dari train , val , test , test-0.1 (sampel acak 10%), dan human_generated_eval (untuk dievaluasi pada dataset kueri yang dihasilkan manusia).output_dir : Direktori untuk menyimpan output evaluasi.surfix : Tentukan kapan embeddings yang disimpan di folder doc{surfix} atau query{surfix} , misalnya, _no_compact, Harap pertimbangkan mengutip makalah kami jika Anda menggunakan tolok ukur atau kode kami dalam pekerjaan Anda:
@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}
}