[ English | 中文 ]
- [2024-12-31] 文章 JiuZhou: Open Foundation Language Models and Effective Pre-training Framework for Geoscience 已被International Journal of Digital Earth期刊接收. Code and Data.
- [2024-10-11] 新文速递|PreparedLLM:高效训练领域大语言模型的“前预训练”框架。
- [2024-09-06] 发布ClimateChat对话模型。
- [2024-08-31] 文章PreparedLLM: Effective Pre-pretraining Framework for Domain-specific Large Language Models已被Big Earth Data期刊接收。
- [2024-08-31] 发布Chinese-Mistral-7B-Instruct-v0.2对话模型。语言理解能力大幅提高,并且具备多轮对话能力。
- [2024-06-30] 发布JiuZhou-Instruct-v0.2对话模型。语言理解能力大幅提高,并且具备多轮对话能力。
- [2024-05-15] 推文中文扩词表增量预训练大语言模型Chinese-Mistral发布。
- [2024-04-04] 发布Chinese-Mistral-7B-Instruct-v0.1对话模型。
- [2024-03-31] 发布Chinese-Mistral-7B-v0.1基座模型。
- [2024-03-15] 发布JiuZhou的base版本JiuZhou-base、instruct版本JiuZhou-instruct-v0.1,以及中间检查点.
地球科学学科已经积累了大量的数据,从这些数据中提取和整合多样化的知识,对于应对全球变化挑战、推动可持续发展和加速科学发现具有重要意义。基础大语言模型首先通过在海量文本数据上进行自监督预训练,自主地学习和整合其中的知识,然后通过指令精调获得解决地球科学问题的能力。然而,当基础语言模型没有掌握足够的地球科学专业知识时,使用相关指令数据进行指令精调可能会导致模型生成与事实不符的内容。为了提高模型的准确性和实用性,我们迫切需要一个强大的地球科学基础语言模型。
本研究将Mistral-7B-v0.1作为基座模型,基于大量地球科学语料、领域大语言模型“前预训练”框架(PreparedLLM)、“两阶段预训练预适应”算法进行继续预训练,构建了地球科学大语言模型JiuZhou。
模型系列 | 模型 | 下载地址 | 说明 |
---|---|---|---|
JiuZhou | JiuZhou-base | Huggingface | 基座模型(具备丰富的地球科学知识) |
JiuZhou | JiuZhou-Instruct-v0.1 | Huggingface | 指令模型(对齐税导致损失了部分地球科学知识,但具备指令遵循能力) 中英文alpaca_gpt4和geosignal进行lora微调 |
JiuZhou | JiuZhou-Instruct-v0.2 | HuggingFace wisemodel |
指令模型(对齐税导致损失了部分地球科学知识,但具备指令遵循能力) 自制高质量指令数据进行指令调优 |
ClimateChat | ClimateChat | HuggingFace wisemodel |
指令模型 基于JiuZhou-base进行指令调优 |
Chinese-Mistral | Chinese-Mistral-7B | HuggingFace wisemodel ModelScope |
基座模型 |
Chinese-Mistral | Chinese-Mistral-7B-Instruct-v0.1 | HuggingFace wisemodel ModelScope |
指令模型 中英文alpaca_gpt4进行lora微调 |
Chinese-Mistral | Chinese-Mistral-7B-Instruct-v0.2 | HuggingFace wisemodel |
指令模型 百万条高质量指令进行lora微调 |
PreparedLLM | Prepared-Llama | Huggingface Wisemodel |
基座模型 少量地学数据进行增量预训练 推荐使用JiuZhou |
如下是使用JiuZhou-Instruct-v0.2进行推理的代码示例。
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
device = torch.device("cuda:0") if torch.cuda.is_available() else torch.device("cpu")
model_path = "itpossible/JiuZhou-Instruct-v0.2"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(model_path, torch_dtype=torch.bfloat16, device_map=device)
text = "什么是地球科学"
messages = [{"role": "user", "content": text}]
inputs = tokenizer.apply_chat_template(messages, return_tensors="pt").to(device)
outputs_id = model.generate(inputs, max_new_tokens=600, do_sample=True)
outputs = tokenizer.batch_decode(outputs_id, skip_special_tokens=True)[0]
print(outputs)
我们采用GeoBench评测JiuZhou的性能。
JiuZhou在客观题任务上的得分超过了GPT-3.5:
JiuZhou在主观题任务上的六个指标的得分超过了基线模型:
我们采用C-Eval、CMMLU和MMLU三个评测数据集评估JiuZhou的性能。
相较于其他Llama和Mistral模型的变体,JiuZhou具有突出表现:
语料库来源于5000万篇通用文档和340万篇地学文档。
采用本研究提出的JiuZhou-Framework。
提高对有限的地学数据的使用效率,一定程度上突破了增量预训练领域LLM时模型学习低效的技术瓶颈。
TSPT与单阶段训练算法的区别:
如下展示基于LLaMA-Factory开源框架微调JiuZhou。
git clone https://github.com/THU-ESIS/JiuZhou.git
cd JiuZhou
pip install -e ".[torch,metrics]"
对JiuZhou进行增量预训练:
llamafactory-cli train examples/train_lora/JiuZhou_pretrain_sft.yaml
对JiuZhou进行指令调优:
llamafactory-cli train examples/train_lora/JiuZhou_lora_sft.yaml
与微调后的JiuZhou对话:
llamafactory-cli chat examples/inference/JiuZhou_lora_sft.yaml
将指令调优得到的lora权重与JiuZhou原始权重进行合并:
llamafactory-cli export examples/merge_lora/JiuZhou_lora_sft.yaml
@article{chen2024preparedllm,
author = {Chen, Zhou and Lin, Ming and Wang, Zimeng and Zang, Mingrun and Bai, Yuqi},
title = {PreparedLLM: Effective Pre-pretraining Framework for Domain-specific Large Language Models},
year = {2024},
journal = {Big Earth Data},
pages = {1--24},
doi = {10.1080/20964471.2024.2396159},
url = {https://doi.org/10.1080/20964471.2024.2396159}
}