一般的LLM和向矢量商店之間出現了一個巨大的裂痕,這些雜物為他們提供了上下文信息。這些系統的統一是將AI系統紮根在有效的,事實領域的重要步驟,在這種情況下,它們不僅用於其一般性,而且還用於其特殊性和獨特性。為此,我們很高興能為開發人員開放源源域改編的語言模型(DALM)工具包,以便開發人員構建在我們的Arcee開源域(DPT)LLMS之上。我們認為,在開始下一階段語言建模時,我們的努力將有所幫助,在該階段,組織深入量身定制AI根據其獨特的知識產權和世界觀進行操作。
查詢示例DALMS由Arcee團隊創建。
| 達爾姆 - 贊 | 達爾姆·蓋德(Dalm-Pubmed) | 達爾姆 - 塞克 | dalm yours |
|---|---|---|---|
該存儲庫主要包含用於微調完全差異檢索增強生成(RAG-END2END)體系結構的代碼。
在文獻中,我們首次修改了初始的RAG-END2END模型(TACL紙,HuggingFace實現),以與諸如Llama,Falcon或GPT這樣的僅解碼器語言模型合作。我們還將碎片內負概念納入了抹布的邊緣化,以使整個過程有效。
在培訓文件夾中,您會找到兩個代碼,可以通過對比度學習來訓練抹布端2end和reteriever。
所有與獵犬和發電機相關的評估都位於Eval文件夾中。
此外,我們在數據集文件夾中還具有數據處理代碼和綜合數據生成代碼。
要對Retriever模型和新的RAG-E2E模型進行培訓和評估,請遵守以下步驟。
系統REQ取決於檢索器模型,發電機模型和批處理大小。但是對於參考(E2E RAG),我們將以下內容用於實驗(以下評估結果):
BAAI/bge-large-enmeta-llama/Llama-2-7b-hf這花費了7個小時的A100 GPU(80GB)。
您可以直接通過pip install indomain安裝此回購
另外,對於開發或研究,您可以克隆並在本地安裝回購:
git clone https://github.com/arcee-ai/DALM.git && cd DALM
pip install --upgrade -e .這將安裝DALM回購和所有必要的依賴項。
確保通過運行dalm version正確安裝內容。在非智能Mac上,您可能需要降級transformers庫: pip install transformers==4.30 。
您可以運行dalm qa-gen <path-to-dataset>以預處理您的數據集進行培訓。有關更多dalm qa-gen --help
如果您沒有數據集,則可以從我們的
# Note - our dataset already has queries and answers, so you don't actually need to run this.
# replace `toy_dataset_train.csv` with your dataset of titles and passages
dalm qa-gen dalm/datasets/toy_data_train.csvAnswer設置: Passage , Query (如果運行E2E)。您可以使用腳本Question_answer_generation.py來生成此CSV。BAAI/bge-large-en用作默認檢索器,並使用meta-llama/Llama-2-7b-hf作為默認生成器。該代碼旨在與https://huggingface.co/models中的擁抱面模型存儲庫中可用的任何嵌入模型或自迴旋模型兼容。 如果需要,您可以直接利用我們的腳本,也可以使用dalm CLI。兩者的論點都是相同的
培訓BAAI/bge-large-en檢索犬,以對比度學習。
python dalm/training/retriever_only/train_retriever_only.py
--dataset_path " ./dalm/datasets/toy_data_train.csv "
--retriever_name_or_path " BAAI/bge-large-en "
--output_dir " retriever_only_checkpoints "
--use_peft
--with_tracking
--report_to all
--per_device_train_batch_size 150或者
dalm train-retriever-only " BAAI/bge-large-en " " ./dalm/datasets/toy_data_train.csv "
--output-dir " retriever_only_checkpoints "
--use-peft
--with-tracking
--report-to all
--per-device-train-batch-size 150有關所有dalm train-retriever-only --help的參數和選項
訓練Llama-2-7b發電機與Retriever Model BAAI/bge-large-en共同。
python dalm/training/rag_e2e/train_rage2e.py
--dataset_path " ./dalm/datasets/toy_data_train.csv "
--retriever_name_or_path " BAAI/bge-large-en "
--generator_name_or_path " meta-llama/Llama-2-7b-hf "
--output_dir " rag_e2e_checkpoints "
--with_tracking
--report_to all
--per_device_train_batch_size 20或者
dalm train-rag-e2e
" ./dalm/datasets/toy_data_train.csv "
" BAAI/bge-large-en "
" meta-llama/Llama-2-7b-hf "
--output-dir " rag_e2e_checkpoints "
--with-tracking
--report-to all
--per-device-train-batch-size 20有關所有可用參數和dalm train-rag-e2e --help
一般而言,獵犬經過培訓,可以擅長在給定查詢的語料庫中找到最相關的段落。
鑑於培訓數據集中不存在一個200,000線CSV的地面測試數據集,更重要的是,此評估數據集不存在,因此遵循以下列出的步驟:
recall和hit rate 。 | 獵犬的類型 | 記起 | 命中率 |
|---|---|---|
| 普通的獵犬 | 0.45984 | 0.45984 |
| 與對比度學習的檢索 | 0.46037 | 0.46038 |
| 檢索員端2end | 0.73634 | 0.73634 |
僅運行檢索器評估(確保您在項目根中具有檢查點)
python dalm/eval/eval_retriever_only.py
--dataset_path qa_pairs_test.csv
--retriever_name_or_path " BAAI/bge-large-en "
--passage_column_name Abstract
--query_column_name Question
--retriever_peft_model_path retriever_only_checkpoints或者
dalm eval-retriever qa_pairs_test.csv
--retriever-name-or-path " BAAI/bge-large-en "
--passage-column-name Abstract
--query-column-name Question
--retriever-peft-model-path retriever_only_checkpoints有關所有dalm eval-retriever --help參數
對於E2E評估
python dalm/eval/eval_rag.py
--dataset_path qa_pairs_test_2.csv
--retriever_name_or_path " BAAI/bge-large-en "
--generator_name_or_path " meta-llama/Llama-2-7b-hf "
--passage_column_name Abstract
--query_column_name Question
--answer_column_name Answer
--evaluate_generator
--query_batch_size 5
--retriever_peft_model_path rag_e2e_checkpoints/retriever
--generator_peft_model_path rag_e2e_checkpoints/generator或者
dalm eval-rag qa_pairs_test.csv
--retriever-name-or-path " BAAI/bge-large-en "
--generator-name-or-path " meta-llama/Llama-2-7b-hf "
--retriever-peft-model-path rag_e2e_checkpoints/retriever
--generator-peft-model-path rag_e2e_checkpoints/generator
--passage-column-name Abstract
--query-column-name Question
--answer-column-name Answer
--query-batch-size 5有關所有dalm eval-rag --help參數
參見貢獻