Skip to content

function0553/fantastic-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mmflow - 轻量级多模态数据处理工具

核心定位

一站式处理文本/图片/音频的多模态数据,提供数据清洗、格式转换、特征提取的极简接口(无需复杂配置)。

原创亮点

1. 支持「自然语言指令」生成数据处理流水线

只需输入自然语言指令,如"提取文件夹内所有图片的人脸特征并保存为CSV",mmflow即可自动生成对应的Python代码,支持导出为异步/同步两种格式,适配不同场景。

2. 内置轻量模型(基于TinyML)

无需GPU即可快速处理小规模数据,适合开发者快速验证多模态项目。内置的轻量级模型包括:

  • 文本:tiny-distilbert、bert-tiny
  • 图像:vit-tiny、resnet-18
  • 音频:wav2vec2-base、wav2vec2-small

3. 离线模式支持

支持离线模式运行,在没有网络连接的情况下仍可使用部分功能,包括:

  • 文本清洗
  • 图片格式转换
  • 图片调整大小和裁剪
  • 数据保存

5. 低代码、易上手

提供简洁的API,开发者只需几行代码即可完成复杂的多模态数据处理任务。

6. 本地部署友好

所有功能均可在本地运行,无需依赖云服务,保护数据隐私。

技术栈

  • Python
  • PyTorch(轻量化分支)
  • Pillow
  • transformers(迷你版)
  • tinygrad

安装方法

1. 创建并激活虚拟环境

python -m venv venv
# Windows
env\Scripts\activate
# Linux/Mac
source venv/bin/activate

2. 安装mmflow

# 安装依赖
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
pip install pillow transformers tinygrad numpy scipy matplotlib

# 安装mmflow(当前目录)
pip install -e .

快速开始

1. 基本用法

from mmflow import MMFlow

# 初始化MMFlow实例
mmf = MMFlow(device="cpu")

# 处理文本数据
texts = ["这是一个测试文本", "MMFlow是一个轻量级多模态数据处理工具"]

# 文本清洗
cleaned_text = mmf.process_text(texts, task="clean")
print(f"清洗后的文本: {cleaned_text}")

# 文本特征提取
text_features = mmf.process_text(texts, task="feature")
if text_features is not None:
    print(f"文本特征形状: {text_features.shape}")
else:
    print("文本特征提取失败:无法加载模型")

# 处理图片数据
image_path = ["path/to/image1.jpg", "path/to/image2.jpg"]

# 图片格式转换
converted_images = mmf.process_image(image_path, task="convert", target_format="png")
print(f"转换后的图片路径: {converted_images}")

# 图片特征提取
image_features = mmf.process_image(image_path, task="feature")
if image_features is not None:
    print(f"图片特征形状: {image_features.shape}")
else:
    print("图片特征提取失败:无法加载模型")

# 处理音频数据
audio_path = "path/to/audio.wav"
transcription = mmf.process_audio(audio_path, task="transcribe")
print(f"音频转录结果: {transcription}")

2. 离线模式使用

from mmflow import MMFlow

# 初始化MMFlow实例(启用离线模式)
mmf = MMFlow(device="cpu", offline_mode=True)

# 处理文本数据(仅支持清洗,不支持特征提取)
texts = ["这是一个测试文本", "MMFlow是一个轻量级多模态数据处理工具"]
cleaned_text = mmf.process_text(texts, task="clean")
print(f"清洗后的文本: {cleaned_text}")

# 处理图片数据(支持转换、调整大小、裁剪,不支持特征提取)
image_path = ["path/to/image1.jpg"]

# 图片格式转换
converted_images = mmf.process_image(image_path, task="convert", target_format="png")
print(f"转换后的图片路径: {converted_images}")

# 图片调整大小
resized_images = mmf.process_image(image_path, task="resize")
print(f"调整大小后的图片: {resized_images}")

3. 自然语言指令生成流水线

from mmflow.utils import generate_from_natural_language

# 自然语言指令
instruction = "提取文件夹内所有图片的特征并保存为npy"

# 生成Python代码
generated_code = generate_from_natural_language(instruction)
print(generated_code)

# 将生成的代码保存到文件
with open("pipeline.py", "w") as f:
    f.write(generated_code)

主要功能

文本处理

  • 文本清洗
  • 文本特征提取
  • 文本分类(扩展功能)

图片处理

  • 图片特征提取
  • 图片调整大小
  • 图片裁剪
  • 图片格式转换

音频处理

  • 音频转录(语音转文字)
  • 音频特征提取(扩展功能)

自然语言指令

  • 支持多种指令格式
  • 自动生成处理代码
  • 支持不同输出格式

示例脚本

1. 基本用法示例

python examples/basic_usage.py

2. 自然语言指令生成流水线示例

python examples/natural_language_pipeline.py

3. 离线模式使用示例

python examples/offline_usage.py

项目结构

mmflow/
├── core/              # 核心功能模块
│   └── mmflow.py      # MMFlow主类
├── models/            # 模型模块
│   └── lightweight.py # 轻量级模型接口
├── utils/             # 工具函数
│   ├── parser.py      # 自然语言解析器
│   └── code_generator.py # 代码生成器
├── examples/          # 示例脚本
├── tests/             # 测试用例
└── __init__.py        # 包入口

差异化优势

特性 mmflow Hugging Face Datasets Selenium
轻量化 ✅ 非常轻量,无需GPU ❌ 较大,依赖较多 ❌ 较大,浏览器依赖
低代码 ✅ 极简API ⚠️ 需要配置 ❌ 需要编写大量代码
自然语言支持 ✅ 支持自然语言指令 ❌ 不支持 ❌ 不支持
本地部署 ✅ 完全本地运行 ⚠️ 部分功能需要云端 ⚠️ 需要浏览器
多模态支持 ✅ 文本/图片/音频 ✅ 支持多模态 ⚠️ 主要支持网页

适用场景

  1. 快速原型开发:开发者可以快速验证多模态项目想法
  2. 小规模数据处理:无需GPU即可处理小型数据集
  3. 教学演示:适合作为多模态数据处理的教学工具
  4. 本地数据分析:保护数据隐私,完全本地运行
  5. 低代码开发:适合非专业开发者使用

扩展计划

  • 支持更多模态:视频、表格等
  • 支持异步处理
  • 提供更多轻量级模型选择
  • 支持可视化界面
  • 支持更多输出格式

贡献

欢迎提交Issue和Pull Request!

许可证

MIT License

联系方式

如有问题或建议,请通过以下方式联系:


mmflow - 让多模态数据处理变得简单!

About

轻量级多模态数据处理工具

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages