面向地球科学的开源大型语言模型
K2是一个针对地球科学领域开发的开源大型语言模型。该模型基于LLaMA进行了地球科学文献的预训练,并使用GeoSignal数据集进行了指令微调。K2在GeoBench基准测试中表现优异,超越了同等规模的基线模型。项目提供了模型权重、训练数据和评估基准,为地球科学领域的自然语言处理研究提供了宝贵资源。
<a href='https://arxiv.org/abs/2306.05064'><img src='https://img.shields.io/badge/论文-ArXiv-C71585'></a> <a href='https://huggingface.co/daven3/k2_fp_delta'><img src='https://img.shields.io/badge/%F0%9F%A4%97%20Hugging Face-delta模型-red'></a> <a href='https://huggingface.co/daven3/k2-v1'><img src='https://img.shields.io/badge/%F0%9F%A4%97%20Hugging Face-k2%20v1-red'></a> <a href='https://huggingface.co/daven3/k2_it_adapter'><img src='https://img.shields.io/badge/%F0%9F%A4%97%20Hugging Face-适配器模型-red'></img></a> <a href='https://huggingface.co/datasets/daven3/geosignal'><img src='https://img.shields.io/badge/数据集-GeoSignal-4169E1'></img></a> <a href='https://huggingface.co/datasets/daven3/geobench'><img src='https://img.shields.io/badge/数据集-GeoBench-4169E1'></img></a>
我们推出了K2(7B),这是一个开源语言模型,首先通过在收集和清理的地球科学文献(包括地球科学开放获取论文和维基百科页面)上进一步预训练LLaMA,然后使用知识密集型指令调优数据(GeoSignal)进行微调。初步评估中,我们使用GeoBench(包括地质学、地理学和环境科学的全国研究生入学考试和AP测试)作为基准。与具有相似参数的几个基线模型相比,K2在客观和主观任务上表现更优。 在本仓库中,我们将分享以下代码和数据。
peft_model
和transformers
获得完整的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_delta | k2_it_adapter | k2_v1 |
python -m apply_delta --base /path/to/weights/of/llama --target /path/to/weights/of/geollama/ --delta daven3/k2_fp_delta
即将推出...
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/
目录中在本仓库中,我们分享了指令数据和基准数据:
./data/geosignal/
./data/geobench/
我们用于在LLaMA-7B上进行进一步预训练的文本语料库包含39亿个标记,这些标记来自于在地球科学领域选定的高质量期刊上发表的地球科学论文,主要由GAKG收集。
Hugging Face上的增量模型:daven3/k2_fp_delta
科学领域适应在指令微调过程中有两个主要步骤。
以下是训练领域特定语言模型的配方示意图:
在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 |
---|---|---|
![]() | ![]() | ![]() |
回答:
回答并解释:
对比回答:
我们在evaluation文件夹中分享了原始评估代码,并将在不久的将来发布Geo-Eval,其中包含更多评估方法。
K2最初来源于世界第二高峰的名字,我们相信未来会有更大、更强大的地球科学语言模型被创造出来。此外,为了训练一个模型以适应具有显著领域壁垒的学科,我们遇到了许多困难(收集语料库、清理学术数据、计算能力等),这与攀登K2不亚于攀登珠穆朗玛峰的事实相似🏔️。
该项目由上海交通大学Acemap团队创立,包括邓程、张天航、何中谋、陈琦元、施圆圆、周乐,由张伟男、傅洛毅、林舟涵、何俊贤和王新兵指导。整个项目得到了周成虎院士和中国科学院地理科学与资源研究所的支持。
K2参考了以下开源项目。我们要对这些项目的研究人员表示感谢和敬意。
K2得到了周成虎院士和中国科学院地理科学与资源研究所的支持。
K2是一个仅供非商业用途的研究预览版,受LLaMA模型许可证和OpenAI生成的数据使用条款的约束。如果您发现任何潜在的违规行为,请与我们联系。代码根据Apache许可证2.0发布。GeoSignal和GeoBench数据正在不断更新,如果您想订阅数据,可以发送电子邮件至davendw@sjtu.edu.cn。
如果您使用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}
}
一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。
深度推理能力全新升级,全面对标OpenAI o1
科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。
一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型
Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。
字节跳动发布的AI编程神器IDE
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
AI助力,做PPT更简单!
咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。
选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。
专业的AI公文写作平台,公文写作神器
AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。
OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。
openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。
高分辨率纹理 3D 资产生成
Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。
一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。
3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。
最新AI工具、AI资讯
独家AI资源、AI项目落地
微信扫一扫关注公众号