在大模型时代,我们需要怎样的数据湖?

社区文章 发布于 2023 年 10 月 20 日

在大模型时代背景下,大数据和人工智能无疑是两个最重要的技术生态系统。然而,大数据和人工智能的技术生态系统在许多方面都表现出显著的分裂。这种分裂在存储、格式、流程、框架和平台方面尤为突出,这通常给开发人员在实施端到端数据处理和人工智能工作流时带来巨大的挑战。因此,作为一个名为LakeSoul的开源数据湖屋项目,我们致力于寻求新的解决方案,以更有效地整合大数据和人工智能,弥合它们之间的差距。我们采用了数据+人工智能的集成方法,使用户能够无缝连接数据处理与人工智能模型应用,促进数据湖与大型人工智能模型之间的双向交互。

1. 完美结合

1.1 数据+人工智能集成设计

LakeSoul 技术架构成功实现了 Java 大数据生态系统和 Python AI 生态系统的完美结合,从而支持各种 AI 框架的训练和推理。此外,LakeSoul 框架凭借其强大的数据管理和计算能力,提供了一套具有广泛适用性的全面解决方案。它支持 Spark、Flink、Presto 等大数据计算引擎,满足流处理、批处理和 BI 分析的常见需求。此外,LakeSoul 还与 PyTorch、Pandas、HuggingFace、Ray 等 AI 和数据科学计算框架无缝集成。

1.2 为人工智能模型提供坚实的数据基础

LakeSoul 架构凭借其高效稳定的数据处理能力,能够轻松处理万亿字节的结构化和非结构化大规模数据。这种能力对于大型模型的训练和推理至关重要,因为要提高大型模型的推理效果,需要支持大量的训练数据。此外,LakeSoul 架构的高性能原生 IO 设计能够保证大型模型训练的效率,进一步增强其在人工智能领域的竞争力。在大型模型训练的早期阶段,通常需要进行严格的数据筛选和清洗。此过程涉及大量的 ETL 工作,需要依赖 Spark 等大数据系统进行数据预处理,包括新数据写入、数据去重、脏数据清洗等,并且需要对不同数据版本进行多轮模型训练迭代。LakeSoul 的一体化设计,凭借其分区、快照和增量读写能力,加快了模型迭代的速度。

1.3 轻松释放多模态数据的潜力

LakeSoul 架构具有处理非结构化数据的能力,包括文本、图像、音频和视频等多模态数据,这些丰富的数据资源可用于训练 Bert、CLIP、GPT、Stable Diffusion 等多模态 AI 大型模型。LakeSoul 架构的这一特性增加了多模态数据释放的潜力。

2. 应用案例

基于 LakeSoul 的 AI 建模过程如下图所示。LakeSoul 能够同时处理流数据和批数据,并支持在数据湖上进行样本预处理。通过原生 IO,LakeSoul 可以直接连接 AI 模型。在接下来的部分,我们将详细介绍如何通过依赖 LakeSoul 湖存储平台并无缝集成 PyTorch/HuggingFace 等 AI 生态系统来改进模型训练、推理和应用的整个过程。我们已将完整的代码发布在 GitHub 上,您可以通过以下链接访问:https://github.com/lakesoul-io/LakeSoul/python/examples

2.1 从二元分类问题开始

我们从 Kaggle Titanic 的经典案例开始。在这个案例中,我们基于 LakeSoul + PyTorch 进行了建模。二元分类问题在工业中广泛使用,例如广告和推荐系统的排名、贷款逾期估计等问题理论上都可以建模为二元分类问题。这里,我们的主要工作分为三个阶段进行说明:1. 在数据入湖阶段,将原始数据导入 LakeSoul:image/png 2. 在数据处理阶段,我们在 LakeSoul 平台上进行了特征工程,包括类别特征的 One-Hot 编码、特征派生、标准化等操作。

image/png

3. 在模型训练阶段,我们引入了 PyTorch 编写的 3 层神经网络模型进行训练和验证。

image/png

尽管在本例中我们处理的是静态数据集,但 LakeSoul 的设计理念和技术架构可以支持数据的实时更新、特征的实时更新以及模型的在线学习。本案例展示了 LakeSoul 处理大规模数据集计算、特征工程以及支持 AI 模型训练和验证的能力。

2.2 NLP 预训练模型微调

前面 Titanic 的例子已经解释了“数据入湖 -> 预处理 -> 模型训练”的过程。下面,将通过 IMDB 数据集训练一个情感倾向模型。展示了如何通过 HuggingFace 基于 Bert 模型 (distilbert-base-uncased) 微调 Trainer API。与原始 HuggingFace 提供的 IMDB 例子进行比较:https://huggingface.co/docs/transformers/tasks/sequence_classification 我们只需要通过代码中的 Iteratable Dataset 获取存储在 LakeSoul 上的数据源,并在 TrainingArguments 上做一些调整,而其余大部分代码基本保持不变。

image/png

2.3 基于 CLIP 的文本和文本搜索

前面的 IMDB 示例展示了如何使用 LakeSoul 和 HuggingFace Trainer API 训练模型。在本例中,我们将使用 Food 101 数据集,展示如何使用 CLIP 模型推理样本并实现图片和文本搜索功能。处理过程主要包括两个阶段:1. 模型推理:引入 HuggingFace 上的 CLIP 模型 (Clip-VIT-B-32-Multilingual v1),其中使用 CLIP 模型对图像数据集中的图像进行推理,并生成每张图像的嵌入。

image/png

2. 语义搜索:具体来说,用户可以输入文本描述,系统通过计算文本和图像之间的向量距离来返回最匹配的图像。

image/png

结论

在上一篇文章中,我们深入探讨了 LakeSoul 的数据+人工智能设计理念,而在本文中,我们给出了一些具体的实践案例。未来,我们计划发布更多文章,详细介绍 LakeSoul 如何与 PyTorch、HuggingFace、DeepSpeed、Ray 等领先的开源人工智能框架进行集成。正如乔布斯重新定义了手机,iPhone 为用户开启了全新的移动互联网世界一样,LakeSoul 正在大模型时代重新定义数据湖,并成功地将 Java 大数据生态系统和 Python 人工智能生态系统完美融合。有了 LakeSoul,开发人员可以快速实现从数据处理到人工智能模型的应用,轻松释放多模态数据的价值。我们坚信这将为大模型时代的数据湖技术开启新篇章!

社区

注册登录 发表评论