|
--- |
|
base_model: meta-llama/Llama-2-7b-hf |
|
library_name: peft |
|
--- |
|
|
|
# Reproduced RepLLaMA |
|
|
|
This is a reproduced version of the RepLLaMA model. See [this thread](https://github.com/texttron/tevatron/issues/129) for details of the reproduction process, which changed from their original version. |
|
|
|
# Other Links |
|
| Binary | Description | |
|
|:-------|:------------| |
|
| [samaya-ai/promptriever-llama2-7b-v1](https://huggingface.co/samaya-ai/promptriever-llama2-7b-v1) | A Promptriever bi-encoder model based on LLaMA 2 (7B parameters).| |
|
| [samaya-ai/promptriever-llama3.1-8b-instruct-v1](https://huggingface.co/samaya-ai/promptriever-llama3.1-8b-instruct-v1) | A Promptriever bi-encoder model based on LLaMA 3.1 Instruct (8B parameters).| |
|
| [samaya-ai/promptriever-llama3.1-8b-v1](https://huggingface.co/samaya-ai/promptriever-llama3.1-8b-v1) | A Promptriever bi-encoder model based on LLaMA 3.1 (8B parameters).| |
|
| [samaya-ai/promptriever-mistral-v0.1-7b-v1](https://huggingface.co/samaya-ai/promptriever-mistral-v0.1-7b-v1) | A Promptriever bi-encoder model based on Mistral v0.1 (7B parameters). | |
|
| [samaya-ai/RepLLaMA-reproduced](https://huggingface.co/samaya-ai/RepLLaMA-reproduced) | A reproduction of the RepLLaMA model (no instructions). A bi-encoder based on LLaMA 2, trained on the [tevatron/msmarco-passage-aug](https://huggingface.co/datasets/Tevatron/msmarco-passage-aug) dataset. | |
|
| [samaya-ai/msmarco-w-instructions](https://huggingface.co/samaya-ai/msmarco-w-instructions) | A dataset of MS MARCO with added instructions and instruction-negatives, used for training the above models. | |
|
|
|
|
|
# Usage |
|
|
|
You can use this with the RepLLaMA example code in [tevatron](https://github.com/texttron/tevatron) or with mteb: |
|
|
|
```python |
|
import mteb |
|
model = mteb.get_model("samaya-ai/RepLLaMA-reproduced") |
|
tasks = mteb.get_tasks(tasks=["NFCorpus"], languages=["eng"]) |
|
evaluation = mteb.MTEB(tasks=tasks) |
|
evaluation.run(model, batch_size=16) |
|
``` |
|
|
|
The command used to create this reproduction was the Tevatron codebase (commit 9bb8381) with command: |
|
|
|
``` |
|
#!/bin/bash |
|
deepspeed --include localhost:0,1,2,3 --master_port 60000 --module tevatron.retriever.driver.train \ |
|
--deepspeed deepspeed/ds_zero3_config.json \ |
|
--output_dir retriever-llama2-4gpu \ |
|
--model_name_or_path meta-llama/Llama-2-7b-hf \ |
|
--lora \ |
|
--lora_r 32 \ |
|
--lora_target_modules q_proj,k_proj,v_proj,o_proj,down_proj,up_proj,gate_proj \ |
|
--save_steps 200 \ |
|
--dataset_name Tevatron/msmarco-passage-aug \ |
|
--query_prefix "query: " \ |
|
--passage_prefix "passage: " \ |
|
--bf16 \ |
|
--pooling eos \ |
|
--append_eos_token \ |
|
--normalize \ |
|
--temperature 0.01 \ |
|
--per_device_train_batch_size 8 \ |
|
--gradient_checkpointing \ |
|
--train_group_size 16 \ |
|
--learning_rate 1e-4 \ |
|
--query_max_len 32 \ |
|
--passage_max_len 196 \ |
|
--num_train_epochs 1 \ |
|
--logging_steps 10 \ |
|
--overwrite_output_dir \ |
|
--warmup_steps 100 \ |
|
--gradient_accumulation_steps 4 |
|
``` |
|
|
|
|
|
# Citation |
|
For citation, please also see the [original RepLLaMA paper](https://arxiv.org/abs/2310.08319) and feel free to cite Promptriever as well: |
|
|
|
```bibtex |
|
@article{weller2024promptriever, |
|
title={Promptriever: Instruction-Trained Retrievers Can Be Prompted Like Language Models}, |
|
author={Orion Weller and Benjamin Van Durme and Dawn Lawrie and Ashwin Paranjape and Yuhao Zhang and Jack Hessel}, |
|
year={2024}, |
|
eprint={2409.11136}, |
|
archivePrefix={arXiv}, |
|
primaryClass={cs.IR}, |
|
url={https://arxiv.org/abs/2409.11136}, |
|
} |
|
``` |