一站式处理文本/图片/音频的多模态数据,提供数据清洗、格式转换、特征提取的极简接口(无需复杂配置)。
只需输入自然语言指令,如"提取文件夹内所有图片的人脸特征并保存为CSV",mmflow即可自动生成对应的Python代码,支持导出为异步/同步两种格式,适配不同场景。
无需GPU即可快速处理小规模数据,适合开发者快速验证多模态项目。内置的轻量级模型包括:
- 文本:tiny-distilbert、bert-tiny
- 图像:vit-tiny、resnet-18
- 音频:wav2vec2-base、wav2vec2-small
支持离线模式运行,在没有网络连接的情况下仍可使用部分功能,包括:
- 文本清洗
- 图片格式转换
- 图片调整大小和裁剪
- 数据保存
提供简洁的API,开发者只需几行代码即可完成复杂的多模态数据处理任务。
所有功能均可在本地运行,无需依赖云服务,保护数据隐私。
- Python
- PyTorch(轻量化分支)
- Pillow
- transformers(迷你版)
- tinygrad
python -m venv venv
# Windows
env\Scripts\activate
# Linux/Mac
source venv/bin/activate# 安装依赖
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 .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}")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}")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)- 文本清洗
- 文本特征提取
- 文本分类(扩展功能)
- 图片特征提取
- 图片调整大小
- 图片裁剪
- 图片格式转换
- 音频转录(语音转文字)
- 音频特征提取(扩展功能)
- 支持多种指令格式
- 自动生成处理代码
- 支持不同输出格式
python examples/basic_usage.pypython examples/natural_language_pipeline.pypython examples/offline_usage.pymmflow/
├── core/ # 核心功能模块
│ └── mmflow.py # MMFlow主类
├── models/ # 模型模块
│ └── lightweight.py # 轻量级模型接口
├── utils/ # 工具函数
│ ├── parser.py # 自然语言解析器
│ └── code_generator.py # 代码生成器
├── examples/ # 示例脚本
├── tests/ # 测试用例
└── __init__.py # 包入口
| 特性 | mmflow | Hugging Face Datasets | Selenium |
|---|---|---|---|
| 轻量化 | ✅ 非常轻量,无需GPU | ❌ 较大,依赖较多 | ❌ 较大,浏览器依赖 |
| 低代码 | ✅ 极简API | ❌ 需要编写大量代码 | |
| 自然语言支持 | ✅ 支持自然语言指令 | ❌ 不支持 | ❌ 不支持 |
| 本地部署 | ✅ 完全本地运行 | ||
| 多模态支持 | ✅ 文本/图片/音频 | ✅ 支持多模态 |
- 快速原型开发:开发者可以快速验证多模态项目想法
- 小规模数据处理:无需GPU即可处理小型数据集
- 教学演示:适合作为多模态数据处理的教学工具
- 本地数据分析:保护数据隐私,完全本地运行
- 低代码开发:适合非专业开发者使用
- 支持更多模态:视频、表格等
- 支持异步处理
- 提供更多轻量级模型选择
- 支持可视化界面
- 支持更多输出格式
欢迎提交Issue和Pull Request!
MIT License
如有问题或建议,请通过以下方式联系:
- GitHub Issues: https://github.com/function0553/fantastic-system/issues
- Email: 2243716567@qq.com
mmflow - 让多模态数据处理变得简单!