OceanGPT:面向海洋科学的大型语言模型初探

2023-11-02 13:27 898 阅读 ID:1576
将门
将门

海洋覆盖了约 71% 的地球表面,对全球的气候调节、天气模式、生物多样性以及人类的经济发展都扮演着至关重要的角色。海洋科学专注于研究海洋的自然特性、其变化规律以及与海洋资源开发和利用相关的理论、方法与应用。

本文介绍一个为海洋领域打造的大型语言模型——OceanGPT。如图 1 所示,该模型可处理海洋科学的问答和内容生成任务。此外,本文还尝试验证大模型模拟操控水下机器人,探索大模型驱动的水下具身智能的实现。OceanGPT 提供预训练模型的开源下载。

论文名称:

OceanGPT: A Large Language Model for Ocean Science Tasks

论文链接:  

https://arxiv.org/abs/2310.02031

模型下载:  

https://huggingface.co/zjunlp/oceangpt-7b

                                                            ▲ 图1 OceanGPT海洋科学问答能力

一、OceanGPT训练

1.1 海洋领域预训练

为了训练 OceanGPT,本文构建了专门针对海洋领域的的预训练语料。首先,从开放获取的论文文献中收集文档作为原始语料库,并使用工具将文献文件的内容转化为纯文本。为确保数据的质量,对收集的数据集进行进一步使用正则表达式过滤掉了图表、标题、页眉、页脚、页码、URL 和引用。此外,还过滤了多余的空格、换行符和其他非文本字符。

处理后的文档涵盖了海洋科学的各个领域,如海洋物理学、海洋化学、海洋生物学、地质学、水文学等。此外采用了基于哈希的方法对数据进行去重,这有助于在预训练期间降低过拟合的风险,提高其泛化能力。

1.2 基于多智能体协同的指令数据生成与微调

在指令微调阶段,为了能够解决海洋领域数据难获取的问题,本文设计了一个全新的基于多智能体协同配合的指令数据生成与处理框架—DoInstruct,其能够自动化地收集和生成大量海洋领域指令数据。如图 2 所示,DoInstruct 的海洋数据生成框架依托于大模型多智能体的协作来自动化地生成大量海洋科学指令数据。

                                                                ▲ 图2 海洋指令构建的算法框架

具体来说,每个海洋智能体会扮演对应海洋专家角色,比如扮演海洋生物、海洋气象等子领域的专家。整个框架分为两部分,一部分利用演化算法来不断迭代增加海洋种子数据的知识丰富度,另一部分则训练单独的智能体专门负责从海洋科学文献中抽取数据来提升知识专业度。最后,与海洋科学相关的人工规则被作为提示来确保智能体生成指令数据的质量。

二、OceanGPT评测

2.1 构建海洋领域大模型评测基准-OceanBench

本文构建了一个海洋领域评测基准数据集,它可以系统性地评估大语言模型在海洋领域的性能。如图 3 所示,经过自动化评估和人工评估,本文发现 OceanGPT 在 15 个海洋科学任务上表现出相对较好的性能。

                                                             ▲ 图3 OceanBench实验效果对比

2.2 深入分析海洋大模型的能力

对于海洋科学问答场景,OceanGPT 在知识丰富度和专业度中展示出更好的效果。具体而言,OceanGPT 在描述如海洋放射性核素防护等研究内容时展现出相对更高的领域知识专长,其文本内容不仅结构清晰、组织有序,而且全面覆盖了放射性核素研究的各个方面,比如从实验设计到数据分析,再到风险评估和处置指南等。

                                ▲ 图5 OceanGPT在模拟操作水下机器人的效果(基于Gazebo模拟器)

进一步的,本文探究了 OceanGPT 在模拟操作海洋机器人的能力。通过将代码指令整合到了模型的指令数据中,经训练后发现 OceanGPT 在一定程度上可依靠人类指令来操作水下机器人,使机器人执行基本的路径控制操作。OceanGPT 对海洋机器人的交互进行了初步尝试,可以为大模型驱动的水下具身智能的实现提供参考。

三、使用OceanGPT

本文在 Hugging Face

(https://huggingface.co/zjunlp/OceanGPT-7b) 中提供了 OceanGPT 的使用简易教程。执行以下脚本即可加载和使用 OceanGPT。

>> from transformers import pipeline
>> pipe = pipeline("text-generation", model="zjunlp/OceanGPT-7b")
>> from transformers import AutoTokenizer, AutoModelForCausalLM
>> tokenizer = AutoTokenizer.from_pretrained("zjunlp/OceanGPT-7b")
>> model = AutoModelForCausalLM.from_pretrained("zjunlp/OceanGPT-7b")

OceanGPT 还提供了一个如图 6 所示的在线交互演示系统,并计划在未来更新模型以进一步提升海洋科学任务的能力。更多详情请参阅论文原文。

                                                                  ▲ 图6 OceanGPT演示系统

作者:毕祯 

来源:公众号【PaperWeekly】

Illustration by IconScout Store Delesign Graphics

免责声明:作者保留权利,不代表本站立场。如想了解更多和作者有关的信息可以查看页面右侧作者信息卡片。
反馈
to-top--btn