AdaptLLM commited on
Commit
3a991bc
1 Parent(s): 5079ecb

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +69 -18
README.md CHANGED
@@ -14,23 +14,26 @@ tags:
14
  - medical
15
  ---
16
 
17
- # Adapting Large Language Models to Domains via Continual Pre-Training
18
- This repo contains the domain-specific base model developed from **LLaMA-1-7B**, using the method in our **ICLR 2024** paper [Adapting Large Language Models via Reading Comprehension](https://huggingface.co/papers/2309.09530).
19
 
20
  We explore **continued pre-training on domain-specific corpora** for large language models. While this approach enriches LLMs with domain knowledge, it significantly hurts their prompting ability for question answering. Inspired by human learning via reading comprehension, we propose a simple method to **transform large-scale pre-training corpora into reading comprehension texts**, consistently improving prompting performance across tasks in biomedicine, finance, and law domains. **Our 7B model competes with much larger domain-specific models like BloombergGPT-50B**.
21
 
22
- ### 🤗 [2024/6/21] We release the 2nd version of AdaptLLM at [Instruction-Pretrain](https://huggingface.co/instruction-pretrain), effective for both general pre-training from scratch and domain-adaptive continual pre-training!!! 🤗
 
23
 
24
  **************************** **Updates** ****************************
25
- * 2024/6/22: Released the [benchmarking code](https://github.com/microsoft/LMOps/tree/main/adaptllm).
26
- * 2024/6/21: 👏🏻 Released the 2nd version of AdaptLLM at [Instruction-Pretrain](https://huggingface.co/instruction-pretrain) 👏🏻
27
- * 2024/1/16: 🎉 Our [research paper](https://huggingface.co/papers/2309.09530) has been accepted by ICLR 2024!!!🎉
28
- * 2023/12/19: Released our [13B base models](https://huggingface.co/AdaptLLM/law-LLM-13B) developed from LLaMA-1-13B.
29
- * 2023/12/8: Released our [chat models](https://huggingface.co/AdaptLLM/law-chat) developed from LLaMA-2-Chat-7B.
30
- * 2023/9/18: Released our [paper](https://huggingface.co/papers/2309.09530), [code](https://github.com/microsoft/LMOps), [data](https://huggingface.co/datasets/AdaptLLM/law-tasks), and [base models](https://huggingface.co/AdaptLLM/law-LLM) developed from LLaMA-1-7B.
 
 
31
 
32
 
33
- ## Domain-Specific LLaMA-1
34
  ### LLaMA-1-7B
35
  In our paper, we develop three domain-specific models from LLaMA-1-7B, which are also available in Huggingface: [Biomedicine-LLM](https://huggingface.co/AdaptLLM/medicine-LLM), [Finance-LLM](https://huggingface.co/AdaptLLM/finance-LLM) and [Law-LLM](https://huggingface.co/AdaptLLM/law-LLM), the performances of our AdaptLLM compared to other domain-specific LLMs are:
36
 
@@ -41,10 +44,10 @@ In our paper, we develop three domain-specific models from LLaMA-1-7B, which are
41
  ### LLaMA-1-13B
42
  Moreover, we scale up our base model to LLaMA-1-13B to see if **our method is similarly effective for larger-scale models**, and the results are consistently positive too: [Biomedicine-LLM-13B](https://huggingface.co/AdaptLLM/medicine-LLM-13B), [Finance-LLM-13B](https://huggingface.co/AdaptLLM/finance-LLM-13B) and [Law-LLM-13B](https://huggingface.co/AdaptLLM/law-LLM-13B).
43
 
44
- ## Domain-Specific LLaMA-2-Chat
45
- Our method is also effective for aligned models! LLaMA-2-Chat requires a [specific data format](https://huggingface.co/blog/llama2#how-to-prompt-llama-2), and our **reading comprehension can perfectly fit the data format** by transforming the reading comprehension into a multi-turn conversation. We have also open-sourced chat models in different domains: [Biomedicine-Chat](https://huggingface.co/AdaptLLM/medicine-chat), [Finance-Chat](https://huggingface.co/AdaptLLM/finance-chat) and [Law-Chat](https://huggingface.co/AdaptLLM/law-chat)
46
 
47
- For example, to chat with the biomedicine base model (**🤗we highly recommend switching to the [chat model](https://huggingface.co/AdaptLLM/medicine-chat) for better response quality!**):
48
  ```python
49
  from transformers import AutoModelForCausalLM, AutoTokenizer
50
 
@@ -70,13 +73,61 @@ outputs = model.generate(input_ids=inputs, max_length=2048)[0]
70
  answer_start = int(inputs.shape[-1])
71
  pred = tokenizer.decode(outputs[answer_start:], skip_special_tokens=True)
72
 
73
- print(f'### User Input:\n{user_input}\n\n### Assistant Output:\n{pred}')
74
  ```
75
 
76
- ## Domain-Specific Tasks
77
- To easily reproduce our results, we have uploaded the filled-in zero/few-shot input instructions and output completions of each domain-specific task: [biomedicine-tasks](https://huggingface.co/datasets/AdaptLLM/medicine-tasks), [finance-tasks](https://huggingface.co/datasets/AdaptLLM/finance-tasks), and [law-tasks](https://huggingface.co/datasets/AdaptLLM/law-tasks).
78
-
79
- **Note:** those filled-in instructions are specifically tailored for models before alignment and do NOT fit for the specific data format required for chat models.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
80
 
81
  ## Citation
82
  If you find our work helpful, please cite us:
 
14
  - medical
15
  ---
16
 
17
+ # Adapting LLM to Domains via Continual Pre-Training (ICLR 2024)
18
+ This repo contains the domain-specific base model developed from **LLaMA-1-7B**, using the method in our paper [Adapting Large Language Models via Reading Comprehension](https://huggingface.co/papers/2309.09530).
19
 
20
  We explore **continued pre-training on domain-specific corpora** for large language models. While this approach enriches LLMs with domain knowledge, it significantly hurts their prompting ability for question answering. Inspired by human learning via reading comprehension, we propose a simple method to **transform large-scale pre-training corpora into reading comprehension texts**, consistently improving prompting performance across tasks in biomedicine, finance, and law domains. **Our 7B model competes with much larger domain-specific models like BloombergGPT-50B**.
21
 
22
+
23
+ ### [2024/6/21] 🤗 We release the 2nd version of AdaptLLM at [Instruction-Pretrain](https://huggingface.co/instruction-pretrain), effective for both pre-training from scratch and continual pre-training 🤗
24
 
25
  **************************** **Updates** ****************************
26
+ * 2024/8/29: Updated [guidelines](https://huggingface.co/datasets/AdaptLLM/finance-tasks) on evaluating any 🤗Huggingface models on the domain-specific tasks
27
+ * 2024/6/22: Released the [benchmarking code](https://github.com/microsoft/LMOps/tree/main/adaptllm)
28
+ * 2024/6/21: Released the 2nd version of AdaptLLM at [Instruction-Pretrain](https://huggingface.co/instruction-pretrain)
29
+ * 2024/4/2: Released the [raw data splits (train and test)](https://huggingface.co/datasets/AdaptLLM/ConvFinQA) of all the evaluation datasets
30
+ * 2024/1/16: Our [research paper](https://huggingface.co/papers/2309.09530) has been accepted by ICLR 2024
31
+ * 2023/12/19: Released our [13B base models](https://huggingface.co/AdaptLLM/law-LLM-13B) developed from LLaMA-1-13B
32
+ * 2023/12/8: Released our [chat models](https://huggingface.co/AdaptLLM/law-chat) developed from LLaMA-2-Chat-7B
33
+ * 2023/9/18: Released our [paper](https://huggingface.co/papers/2309.09530), [code](https://github.com/microsoft/LMOps), [data](https://huggingface.co/datasets/AdaptLLM/law-tasks), and [base models](https://huggingface.co/AdaptLLM/law-LLM) developed from LLaMA-1-7B
34
 
35
 
36
+ ## 1. Domain-Specific Models
37
  ### LLaMA-1-7B
38
  In our paper, we develop three domain-specific models from LLaMA-1-7B, which are also available in Huggingface: [Biomedicine-LLM](https://huggingface.co/AdaptLLM/medicine-LLM), [Finance-LLM](https://huggingface.co/AdaptLLM/finance-LLM) and [Law-LLM](https://huggingface.co/AdaptLLM/law-LLM), the performances of our AdaptLLM compared to other domain-specific LLMs are:
39
 
 
44
  ### LLaMA-1-13B
45
  Moreover, we scale up our base model to LLaMA-1-13B to see if **our method is similarly effective for larger-scale models**, and the results are consistently positive too: [Biomedicine-LLM-13B](https://huggingface.co/AdaptLLM/medicine-LLM-13B), [Finance-LLM-13B](https://huggingface.co/AdaptLLM/finance-LLM-13B) and [Law-LLM-13B](https://huggingface.co/AdaptLLM/law-LLM-13B).
46
 
47
+ ### LLaMA-2-Chat
48
+ Our method is also effective for aligned models! LLaMA-2-Chat requires a [specific data format](https://huggingface.co/blog/llama2#how-to-prompt-llama-2), and our **reading comprehension can perfectly fit the data format** by transforming the reading comprehension into a multi-turn conversation. We have also open-sourced chat models in different domains: [Biomedicine-Chat](https://huggingface.co/AdaptLLM/medicine-chat), [Finance-Chat](https://huggingface.co/AdaptLLM/finance-chat) and [Law-Chat](https://huggingface.co/AdaptLLM/law-chat).
49
 
50
+ For example, to chat with the biomedicine base model (🤗we highly recommend switching to the [chat model](https://huggingface.co/AdaptLLM/medicine-chat) for better response quality):
51
  ```python
52
  from transformers import AutoModelForCausalLM, AutoTokenizer
53
 
 
73
  answer_start = int(inputs.shape[-1])
74
  pred = tokenizer.decode(outputs[answer_start:], skip_special_tokens=True)
75
 
76
+ print(pred)
77
  ```
78
 
79
+ ### LLaMA-3-8B (💡New!)
80
+ In our recent research on [Instruction-Pretrain](https://huggingface.co/papers/2406.14491), we developed a context-based instruction synthesizer to augment the raw corpora with instruction-response pairs, **enabling Llama3-8B to be comparable to or even outperform Llama3-70B**: [Finance-Llama3-8B](https://huggingface.co/instruction-pretrain/finance-Llama3-8B), [Biomedicine-Llama3-8B](https://huggingface.co/instruction-pretrain/medicine-Llama3-8B).
81
+
82
+ ## 2. Domain-Specific Tasks
83
+
84
+ ### Pre-templatized Testing Splits
85
+ To easily reproduce our prompting results, we have uploaded the filled-in zero/few-shot input instructions and output completions of the test each domain-specific task: [biomedicine-tasks](https://huggingface.co/datasets/AdaptLLM/medicine-tasks), [finance-tasks](https://huggingface.co/datasets/AdaptLLM/finance-tasks), and [law-tasks](https://huggingface.co/datasets/AdaptLLM/law-tasks).
86
+
87
+ Note: those filled-in instructions are specifically tailored for models before alignment and do NOT fit for the specific data format required for chat models.
88
+
89
+ ### Evaluating Any Huggingface LMs on Domain-Specific Tasks (💡New!)
90
+ You can use the following scripts to reproduce our results and evaluate any other Huggingface models on the testing splits:
91
+
92
+ 1). **Set Up Dependencies**
93
+ ```bash
94
+ git clone https://github.com/microsoft/LMOps
95
+ cd LMOps/adaptllm
96
+ pip install -r requirements.txt
97
+ ```
98
+
99
+ 2). **Evaluate the Model**
100
+ ```bash
101
+ # Select the domain from ['biomedicine', 'finance', 'law']
102
+ DOMAIN='biomedicine'
103
+
104
+ # Specify any Huggingface model name (Not applicable to chat models)
105
+ MODEL='AdaptLLM/medicine-LLM'
106
+
107
+ # Model parallelization:
108
+ # - Set MODEL_PARALLEL=False if the model fits on a single GPU.
109
+ # We observe that LMs smaller than 10B always meet this requirement.
110
+ # - Set MODEL_PARALLEL=True if the model is too large and encounters OOM on a single GPU.
111
+ MODEL_PARALLEL=False
112
+
113
+ # Choose the number of GPUs from [1, 2, 4, 8]
114
+ N_GPU=1
115
+
116
+ # Whether to add a BOS token at the beginning of the prompt input:
117
+ # - Set to False for AdaptLLM.
118
+ # - Set to True for instruction-pretrain models.
119
+ # If unsure, we recommend setting it to False, as this is suitable for most LMs.
120
+ add_bos_token=False
121
+
122
+ # Run the evaluation script
123
+ bash scripts/inference.sh ${DOMAIN} ${MODEL} ${add_bos_token} ${MODEL_PARALLEL} ${N_GPU}
124
+ ```
125
+
126
+ ### Raw Datasets
127
+ We have also uploaded the raw training and testing splits, for facilitating fine-tuning or other usages: [ChemProt](https://huggingface.co/datasets/AdaptLLM/ChemProt), [RCT](https://huggingface.co/datasets/AdaptLLM/RCT), [ConvFinQA](https://huggingface.co/datasets/AdaptLLM/ConvFinQA), [FiQA_SA](https://huggingface.co/datasets/AdaptLLM/FiQA_SA), [Headline](https://huggingface.co/datasets/AdaptLLM/Headline), [NER](https://huggingface.co/datasets/AdaptLLM/NER), [FPB](https://huggingface.co/datasets/AdaptLLM/FPB)
128
+
129
+ ### Domain Knowledge Probing
130
+ Our pre-processed knowledge probing datasets are available at: [med_knowledge_prob](https://huggingface.co/datasets/AdaptLLM/med_knowledge_prob) and [law_knowledge_prob](https://huggingface.co/datasets/AdaptLLM/law_knowledge_prob)
131
 
132
  ## Citation
133
  If you find our work helpful, please cite us: