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. Node.js 的ORM(Sequelize) 的使用

    Sequelize是一个Node.js 的ORM.什么是ORM呢?对象关系映射(Object Relational Mapping).什么意思?就是在编程语言中,很容易创建对象,如果在面向对象的语言中 ...

  2. 韦东山freeRTOS系列教程之【第五章】队列(queue)

    目录 系列教程总目录 概述 5.1 队列的特性 5.1.1 常规操作 5.1.2 传输数据的两种方法 5.1.3 队列的阻塞访问 5.2 队列函数 5.2.1 创建 5.2.2 复位 5.2.3 删除 ...

  3. 从 Helm 到 Operator:Kubernetes应用管理的进化

    Helm 的作用 在开始前需要先对 kubernetes Operator 有个简单的认识. 以为我们在编写部署一些简单 Deployment 的时候只需要自己编写一个 yaml 文件然后 kubec ...

  4. 基于Redis在定时任务里判断其他定时任务是否已经正常执行完的方案

    执行的定时任务是基于其他定时任务计算得到的结果基础上做操作的,那么如何来确定其他存在数据依赖的定时任务已经执行完成呢? 在分布式环境里,可通过集群的redis来解决这个问题: 即,在跑批任务开始时,将 ...

  5. 持久化技术Mybatis知识精讲【形成知识体系篇】

    环境要求 JDK1.8及以上版本 MySQL数据库 Apache Maven 3.6.1构建工具 IDEA/VSCode/Eclipse开发工具任选其一 思维导图:Xmind ZEN 技术要求 熟悉J ...

  6. 自动化车间3D可视化设计思路

    自动化车间3D可视化设计思路 随着国内制造业企业的高速发展,再加上政策支持,高效的生产模式和先进的管理方式越来越受到企业重视.更多的企业将工业信息化技术进行广泛的应用,比如MES系统.数字孪生以及生产 ...

  7. SQL常用数据过滤---IN操作符

    在SQL中,IN操作符常用于过滤数据,允许在WHERE子句中指定多个可能的值.如果列中的值匹配IN操作符后面括号中的任何一个值,那么该行就会被选中. 以下是使用IN操作符的基本语法: SELECT c ...

  8. 学习笔记--Java中final关键字

    Java中final关键字 关于Java语言中的final关键字: final是一个关键字,表示:最终的,不可改变 final修饰的类无法被继承 final修饰的方法无法被覆盖 final修饰的变量一 ...

  9. Django Template层之Template概述

    Django Template层之Template概述 by:授客 QQ:1033553122 实践环境 Python版本:python-3.4.0.amd64 下载地址:https://www.py ...

  10. 面试题-python 什么是装饰器(decorator )?

    前言 python装饰器本质上就是一个函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外的功能,装饰器的返回值也是一个函数对象.很多python初学者学到面向对象类和方法是一道大坎,那么py ...