Project Icon

k2

面向地球科学的开源大型语言模型

K2是一个针对地球科学领域开发的开源大型语言模型。该模型基于LLaMA进行了地球科学文献的预训练,并使用GeoSignal数据集进行了指令微调。K2在GeoBench基准测试中表现优异,超越了同等规模的基线模型。项目提供了模型权重、训练数据和评估基准,为地球科学领域的自然语言处理研究提供了宝贵资源。

k2-logo

🏔️ K2 (GeoLLaMA) 地球科学大型语言模型

  • 论文《K2:地球科学知识理解与应用的基础语言模型》已被WSDM2024(墨西哥)接收!
  • 论文《K2:地球科学知识理解与应用的基础语言模型》的代码和数据
  • 演示:https://k2.acemap.info 由我们自己在单个GeForce RTX 3090上通过内网穿透托管(仅使用三个线程,最大长度为512)
  • 作为学术助手基础模型的更大型地球科学语言模型是geogalactica
  • 数据预处理工具包已在sciparser上开源!

简介

我们推出了K2(7B),这是一个开源语言模型,首先通过在收集和清理的地球科学文献(包括地球科学开放获取论文和维基百科页面)上进一步预训练LLaMA,然后使用知识密集型指令调优数据(GeoSignal)进行微调。初步评估中,我们使用GeoBench(包括地质学、地理学和环境科学的全国研究生入学考试和AP测试)作为基准。与具有相似参数的几个基线模型相比,K2在客观和主观任务上表现更优。 在本仓库中,我们将分享以下代码和数据。

  • 我们以两部分发布K2权重(可以将我们的delta添加到原始LLaMA权重中,并使用peft_modeltransformers获得完整的K2模型。)
    • 在地球科学文本语料库上进一步预训练后的delta权重,以遵守LLaMA模型许可。
    • 通过PEFT(LoRA)训练的适配器模型权重。
  • 我们发布K2用于训练的GeoSignal核心数据。
  • 我们发布GeoBench,这是首个用于评估LLMs在地球科学领域能力的基准。
  • 我们发布K2进一步预训练和指令调优的代码。

以下是K2训练的概览: 概览

快速开始

安装

1. 准备代码和环境

克隆我们的仓库,创建Python环境,并通过以下命令激活它

git clone https://github.com/davendw49/k2.git
cd k2
conda env create -f k2.yaml
conda activate k2

2. 准备预训练的K2(GeoLLaMA)

K2的当前版本在Hugging Face上 模型 K2的先前版本由两部分组成:delta模型(类似Vicuna),对LLaMA-7B的附加权重,以及适配器模型(通过PEFT训练)。

Delta模型适配器模型完整模型
k2_fp_deltak2_it_adapterk2_v1
  • 参考Vicuna的仓库,我们分享构建K2预训练权重的命令
python -m apply_delta --base /path/to/weights/of/llama --target /path/to/weights/of/geollama/ --delta daven3/k2_fp_delta

使用Docker启动

即将推出...

3. 使用K2

base_model = /path/to/k2
tokenizer = LlamaTokenizer.from_pretrained(base_model)
model = LlamaForCausalLM.from_pretrained(
    base_model,
    load_in_8bit=load_8bit,
    device_map=device_map
    torch_dtype=torch.float16
)
model.config.pad_token_id = tokenizer.pad_token_id = 0
model.config.bos_token_id = 1
model.config.eos_token_id = 2

或者,也可以

base_model = /path/to/geollama
lora_weights = /path/to/adapter/model
tokenizer = LlamaTokenizer.from_pretrained(base_model)
model = LlamaForCausalLM.from_pretrained(
    base_model,
    load_in_8bit=load_8bit,
    device_map=device_map
    torch_dtype=torch.float16
)
model = PeftModel.from_pretrained(
    model,
    lora_weights,
    torch_dtype=torch.float16,
    device_map=device_map,
)
model.config.pad_token_id = tokenizer.pad_token_id = 0
model.config.bos_token_id = 1
model.config.eos_token_id = 2
  • 更多详细信息在./generation/目录中

数据

在本仓库中,我们分享了指令数据和基准数据:

  • GeoSignal: ./data/geosignal/
  • GeoBench: ./data/geobench/

进一步预训练

我们用于在LLaMA-7B上进行进一步预训练的文本语料库包含39亿个标记,这些标记来自于在地球科学领域选定的高质量期刊上发表的地球科学论文,主要由GAKG收集。

Hugging Face上的增量模型:daven3/k2_fp_delta

指令微调:GeoSignal

科学领域适应在指令微调过程中有两个主要步骤。

  • 使用通用指令微调数据进行指令微调。这里我们使用Alpaca-GPT4。
  • 使用重构的领域知识进行指令微调,我们称之为专业知识指令微调。对于K2,我们使用知识密集型指令数据GeoSignal。

以下是训练领域特定语言模型的配方示意图: 配方

基准测试:GeoBench

在GeoBench中,我们收集了183个NPEE多选题和1,395个AP测试题作为客观任务。同时,我们收集了NPEE中所有939个主观问题作为主观任务集,并使用其中50个通过人工评估来衡量基线性能。

代码

进一步预训练

训练脚本是**run_clm.py**

deepspeed --num_gpus=4 run_clm.py --deepspeed ds_config_zero.json >log 2>&1 &

损失曲线

我们使用的参数:

- 每个设备的批量大小:2
- 全局批量大小:128(2*4gpu*16梯度累积步骤)
- 可训练参数数量:6738415616(7b)
- 学习率:1e-5
- bf16:true
- tf32:true
- 预热:0.03/3 epoch(接近1000步)
- Zero_optimization_stage:3

提示:由于计算能力有限,我们无法从检查点平滑恢复。因此,在恢复训练时我们没有加载优化器状态字典。尽管图表中有两个明显的峰值,但性能似乎保持正常。

指令微调

训练脚本是**finetune.py**

  • 第一步:与人类对齐
python finetune.py --base_model /path/to/checkpoint-30140 --data_path /path/to/alpaca.json --output_dir /path/to/stage/one/model/ --cuda_id 2 --lora_target_modules "q_proj" "k_proj" "v_proj"
  • 第二步:与专家对齐
python finetune.py --base_model /path/to/checkpoint-30140 --data_path /path/to/geosignal.json --output_dir /path/to/stage/two/model/ --cuda_id 2 --lora_target_modules "q_proj" "k_proj" "v_proj" --resume_from_checkpoint /path/to/stage/one/model/
- 批量大小:128
- 微批量大小:4
- 训练轮数:1
- 学习率:3e-4
- 截断长度:512
- 验证集大小:2000
- lora r:8
- lora alpha:16
- lora dropout:0.05
- lora 目标模块:["q_proj", "k_proj", "v_proj"]

案例

案例1案例2案例3
  • 回答:

    • 问题: 什么是IOCG?
    • 回答: 铁氧化物铜金(IOCG)矿床是一种由热液与火成岩相互作用形成的矿床类型。它们的特征是含有高浓度的铁氧化物、铜钼、金和铀矿物。通常,它们以脉状或角砾岩管的形式出现,但也可以在沉积岩和火山岩地层中以分散矿的形式存在。这些矿床的形成与岩浆侵入地壳有关,岩浆侵入会释放热量和压力,导致成矿元素从周围岩石中分离出来。IO
  • 回答并解释:

    • 问题: 最常见的火成岩是什么,并详细介绍它。
    • 回答: 花岗岩是一种非常常见且分布广泛的岩石类型。它是由侵入地壳的岩浆冷却结晶形成的。花岗岩具有粗粒结构,主要由石英、长石和云母等矿物组成。花岗岩的颜色从浅粉色到深灰色不等,取决于矿物成分和岩石中杂质的含量。
  • 对比回答:

    • 问题: 最具经济价值的镍矿床有哪些?
    • 回答: 镍硫化物矿石是世界上最具经济价值的镍金属来源。它们通常存在于超镁铁质岩石中,如蛇纹岩、橄榄岩和纯橄榄岩。这些岩石是由大洋中脊处洋壳部分熔融形成的。镍-铜-铂族元素(Ni-Cu-PGE)矿体常与基性侵入岩相关。这类矿床中最著名的是加拿大安大略省的萨德伯里岩浆杂岩体,自19世纪80年代以来一直在开采。其他例子包括

评估

我们在evaluation文件夹中分享了原始评估代码,并将在不久的将来发布Geo-Eval,其中包含更多评估方法。

为什么命名为K2?

K2最初来源于世界第二高峰的名字,我们相信未来会有更大、更强大的地球科学语言模型被创造出来。此外,为了训练一个模型以适应具有显著领域壁垒的学科,我们遇到了许多困难(收集语料库、清理学术数据、计算能力等),这与攀登K2不亚于攀登珠穆朗玛峰的事实相似🏔️。

贡献者

该项目由上海交通大学Acemap团队创立,包括邓程张天航何中谋陈琦元施圆圆周乐,由张伟男、傅洛毅、林舟涵、何俊贤和王新兵指导。整个项目得到了周成虎院士和中国科学院地理科学与资源研究所的支持。

致谢

K2参考了以下开源项目。我们要对这些项目的研究人员表示感谢和敬意。

K2得到了周成虎院士和中国科学院地理科学与资源研究所的支持。

我们还要对徐昱彤戴贝雅在数据处理方面的努力表示感谢。

许可证

K2是一个仅供非商业用途的研究预览版,受LLaMA模型许可证和OpenAI生成的数据使用条款的约束。如果您发现任何潜在的违规行为,请与我们联系。代码根据Apache许可证2.0发布。GeoSignal和GeoBench数据正在不断更新,如果您想订阅数据,可以发送电子邮件至davendw@sjtu.edu.cn

引用 ArXiv

如果您使用K2的代码或数据,请使用以下引用:

@misc{deng2023learning,
      title={K2: A Foundation Language Model for Geoscience Knowledge Understanding and Utilization}, 
      author={Cheng Deng and Tianhang Zhang and Zhongmou He and Yi Xu and Qiyuan Chen and Yuanyuan Shi and Luoyi Fu and Weinan Zhang and Xinbing Wang and Chenghu Zhou and Zhouhan Lin and Junxian He},
      year={2023},
      eprint={2306.05064},
      archivePrefix={arXiv},
      primaryClass={cs.CL}
}
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号