MiniMax 成立于 2021 年 12 月,是领先的通用人工智能科技公司,致力于与用户共创智能。MiniMax 自主研发了不同模态的通用大模型,其中包括万亿参数的 MoE 文本大模型、语音大模型以及图像大模型。

基于不同模态的通用大模型,MiniMax 推出生产力工具 “海螺 AI” 、沉浸式 AI 内容社区 “星野” 等原生应用。MiniMax 开放平台为企业和开发者提供安全、灵活、可靠的 API 服务,助力快速搭建 AI 应用。

01 多模态大模型研发的存储挑战

作为一家初创公司,MiniMax 在构建基础设施时主要关注灵活性和成本效率。因此,公司选择在本地数据中心部署关键负载(如 GPU 资源),其它源则部署于云端,以便能够利用云平台的技术优势、弹性和灵活性。由此,MiniMax 采纳了结合本地数据中心与多云环境的混合云方案。鉴于底层基础设施的复杂性和管理挑战,公司采用 Kubernetes 作为基础设施的统一管理层。

存储层作为基础设施平台的关键组成部分,面临挑战主要如下:

  • 高性能:大模型的训练和推理需要处理和存储海量的数据,这不仅要求有高容量的存储解决方案,还需要保证数据的快速读写;
  • POSIX 兼容性:深度学习框架和算法工程师的日常工作都是基于 POSIX 接口,这就要求存储系统必须完全兼容 POSIX,否则会使得 AI 任务无法正常运行;
  • 混合云架构:计算资源,尤其是 GPU,分布在不同的地理区域以及由不同的服务商提供。为了让计算任务可以高效调度,存储系统需要可适用于各种服务商和硬件环境的方案,且具备高度的灵活性,支持跨区域的数据复制、访问和迁移;
  • 存储成本优化:随着数据量的不断增加,尤其是在大数据和 AI 应用领域,扩展存储容量的同时能够有效控制成本成为一大挑战。企业需要采用成本效益高的存储技术,同时确保这些技术能够与现有的 IT 架构无缝集成。

02 为什么选择 JuiceFS 企业版?

初期进行选型时,MiniMax 调研过 CephFS,它在元数据服务方面存在一些瓶颈。同时,MiniMax 也尝试过一些公有云服务的高性能文件存储方案,但最终由于成本过高而放弃。MiniMax 希望能够使用一种既具有足够灵活性和高度可扩展性,同时也能解决成本问题,以及可满足混合云架构的存储系统。

最终, MiniMax 选择了 JuiceFS 企业版作为公司级 AI 平台的存储底座,支持上层各类模型(包括文本大模型、语音大模型、图像大模型、多模态模型)在数据清洗、模型训练、模型推理等场景上的高性能数据访问需求。特别是在超大规模 GPU 集群分布式训练场景中,JuiceFS 优异的表现为模型迭代和 GPU 利用率的提升起到了关键作用。

  • 兼容性:支持 POSIX、HDFS 和 S3 接口,提供统一的存储方案以减少数据拷贝和迁移;
  • 优化 I/O 效率:通过多级缓存、预读和并发读取策略显著提升 I/O 性能;
  • 高性能元数据服务:自研的元数据服务能够处理每秒上百万的请求,响应时间在亚毫秒级,满足 AI 训练各阶段的严苛要求;
  • 多云/混合云数据管理:自动跨云和跨区域的数据复制,确保数据随计算迁移而自动同步,适合全球分布的计算需求;
  • 成本低:JuiceFS 通过其基于对象存储的设计显著降低了数据存储成本,使 MiniMax 能够利用成本效益高的对象存储。此外,JuiceFS 的简便运维也有助于降低 MiniMax 的总体成本。

03 混合云架构下,如何基于 JuiceFS 构建统一的存储系统?

最初,MiniMax 主要面临频繁的读操作需求,而写操作相对较少。为此,公司采用了 JuiceFS 的分布式缓存功能,使用 NVMe 全闪存加速读取操作。随着数据处理需求和集群建设的扩大,单个集群的能力已不足以满足 MiniMax 的需求。因此,MiniMax 基于 JuiceFS 构建了一个中心化的元数据分发引擎和一个能进行高速读写操作的边缘集群架构。

MiniMax 使用 JuiceFS 的镜像文件系统功能,将中心集群的元数据自动复制到各个边缘集群。边缘集群不存储实际数据,而是通过专线从中心集群预热数据到 JuiceFS 的分布式缓存,利用高性能的缓存集群提高读带宽并减少数据重复存储。

此外,数据也可以按需下载到边缘的 JuiceFS 集群,并由上层服务进行生命周期管理。

基于这个统一存储系统,MiniMax 建设了一张覆盖全国的大型环网,并将部分城市作为核心接入点。同时,在各 IDC 机房内近距离连接到这些接入点,以支持高效的数据分发。

“ JuiceFS 不仅提供了适应我们混合云需求的存储系统,还通过高性能元数据服务和多接口兼容性优化了数据处理流程,显著降低了运维成本,是我们运营大模型平台的理想选择。”

—— 星龙,MiniMax 技术总监

MiniMax:如何基于 JuiceFS 构建高性能、低成本的大模型 AI 平台的更多相关文章

  1. 基于Spring4+SpringMVC4+Mybatis3+Hibernate4+Junit4框架构建高性能企业级的部标GPS监控平台

    开发企业级的部标GPS监控平台,投入的开发力量很大,开发周期也很长,选择主流的开发语言以及成熟的开源技术框架来构建基础平台,是最恰当不过的事情,在设计之初就避免掉了技术选型的风险,避免以后在开发过程中 ...

  2. 乾象投资:基于JuiceFS 构建云上量化投研平台

    背景 乾象投资 Metabit Trading 成立于2018年,是一家以人工智能为核心的科技型量化投资公司.核心成员毕业于 Stanford.CMU.清北等高校.目前,管理规模已突破 30 亿元人民 ...

  3. 基于Kubernetes构建企业Jenkins master/slave CI/CD平台

    搭建平台目的: k8s中搭建jenkins master/slave架构,解决单jenkins执行效率低,资源不足等问题(jenkins master 调度任务到 slave上,并发执行任务,提升任务 ...

  4. 基于PHP构建OAuth 2.0 服务端 认证平台

    OAuth2.0 认证服务 安装 你可以在github上下载OAuth Server PHP,也可以用下列命令下载,不过内容都是一样的 mkdir my-oauth2-walkthrough cd m ...

  5. 基于Spring4+SpringMVC4+Mybatis3+Hibernate4+Junit4框架构建高性能企业级的部标1077视频监控平台

    开发企业级的部标GPS监控平台,投入的开发力量很大,开发周期也很长,选择主流的开发语言以及成熟的开源技术框架来构建基础平台,是最恰当不过的事情,在设计之初就避免掉了技术选型的风险,避免以后在开发过程中 ...

  6. AI场景存储优化:云知声超算平台基于 JuiceFS 的存储实践

    云知声是一家专注于语音及语言处理的技术公司.Atlas 超级计算平台是云知声的计算底层基础架构,为云知声在 AI 各个领域(如语音.自然语言处理.视觉等)的模型迭代提供训练加速等基础计算能力.Atla ...

  7. 云知声: 基于 JuiceFS 的超算平台存储实践

    云知声从一家专注于语音及语言处理的技术公司,现在技术栈已经发展到具备图像.自然语言处理.信号等全栈式的 AI 能力,是国内头部人工智能独角兽企业.公司拥抱云计算,在智慧医疗.智慧酒店.智慧教育等方面都 ...

  8. 【读书笔记】2016.12.10 《构建高性能Web站点》

    本文地址 分享提纲: 1. 概述 2. 知识点 3. 待整理点 4. 参考文档 1. 概述 1.1)[该书信息] <构建高性能Web站点>: -- 百度百科 -- 本书目录: 第1章 绪论 ...

  9. 一个基于mysql构建的队列表

    通常大家都会使用redis作为应用的任务队列表,redis的List结构,在一段进行任务的插入,在另一端进行任务的提取. 任务的插入 $redis->lPush("key:task:l ...

  10. 构建高性能web站点--读书大纲

    用户输入你的站点网址,等了半天..还没打开,裤衩一下就给关了.好了,流失了一个用户.为什么会有这样的问题呢.怎么解决自己站点“慢”,体验差的问题呢. 在这段等待的时间里,到底发生了什么?事实上这并不简 ...

随机推荐

  1. TOPSIS模型原理以及代码实现

    TOPSIS 法是一种常用的组内综合评价方法,能充分利用原始数据的信息,其结果能精确地反映各评价方案之间的差距.下面我们来介绍具体步骤与代码实现 目录 问题提出 第一步:数据输入 1.如何从excel ...

  2. Web 安全:OWASP TOP10 漏洞介绍

    OWASP TOP 10漏洞是指由Open Web Application Security Project(OWASP)发布的十大最严重. 最普遍的Web应用程序安全漏洞.这些漏洞在当今的Web应用 ...

  3. Eggjs 设置跨域请求 指定地址跨域 nodejs

    首先egg自身框架没有直接设置允许跨域请求的功能和接口,所以需要第三方包来设置跨域请求! 先安装第三方包来设置跨域,使用egg-cors // npm npm i egg-cors --save // ...

  4. Swift开发基础02-流程控制

    if-slse let age = 4 if age >= 22 { print("Get married") } else if age >= 18 { print( ...

  5. oeasy教您玩转linux 010211 牛说 cowsay

    我们来回顾一下 上一部分我们都讲了什么? 软件包工具是 apt 软件包不但能下载,也能升级,还能删除 专门管理软件包的 aptitude 这次我们下载个牛说 cowsay: sudo apt inst ...

  6. oeasy教您玩转vim - 19 - 使用标记

    使用标记 回忆上节课内容 跳转到行号 200G 设置行号选项 显示行号 :se nu 显示相对行号 :se rnu 如何用命令行跳转 :100 但是我如何有的时候记不住到底跳到多少行 能否做个标记留个 ...

  7. 题解:AT_abc357_f [ABC357F] Two Sequence Queries

    题意 维护一个数据结构,支持两个数列的区间求和,和查询区间内两数列各元素积的和. 分析 线段树万岁! 这道题要维护两个序列,所以线段树中要同时存储两个区间和.但还要在维护一个信息,是该区间内两序列元素 ...

  8. MySQL预处理语句PREPARE、EXECUTE、DEALLOCATE使用大全

    说明 MySQL官方将PREPARE.EXECUTE.DEALLOCATE统称为PREPARE STATEMENT,我习惯称其为[预处理语句]. 其语法为: PREPARE stmt_name FRO ...

  9. Git 克隆仓库报unable to get local issuer certificate错误解决方法

    Git 克隆仓库报unable to get local issuer certificate错误解决方法 By:授客 QQ:1033553122 问题描述 克隆gitlab上的仓库,报错,如下 $ ...

  10. 【IDEA】DEBUG调试问题

    不要将断点打在方法的声明上: 会有一个菱形标志,在标记之后运行DEBUG模式会跑不起来 查看所有的断点标记: 在这里直接找到所有标记位置,弄掉就会跑起来了