一般的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参数
参见贡献