BAGEL 是由 ByteDance Seed 团队开发的一个开源多模态基础模型,托管于 GitHub。它集成了文本理解、图像生成和编辑功能,支持跨模态任务。模型拥有 7B 活跃参数(总计 14B 参数),采用 Mixture-of-Transformer-Experts (MoT) 架构,通过大规模交错多模态数据训练。BAGEL 在多模态理解和生成任务中表现出色,超越了 Qwen2.5-VL 和 InternVL-2.5 等开源模型,图像生成质量可媲美 SD3。它支持自由形式的图像编辑、视频序列生成和 3D 空间理解等高级功能,适用于开发者和研究人员探索 AI 应用。项目提供详细的安装和推理指南,方便用户快速上手。
Function List
- 支持文本到图像的生成,可基于文本提示生成高质量图像。
- 提供图像理解功能,能够分析图像内容并回答相关问题。
- 支持自由形式的图像编辑,通过文本指令修改图像细节。
- 实现视频序列生成,可基于文本生成动态视频内容。
- 提供多模态推理能力,融合文本、图像和视频数据进行复杂任务。
- 支持 3D 空间理解,适用于多视图合成和世界导航任务。
- 提供评估脚本,用于视觉语言模型 (VLM)、文本到图像 (T2I) 和图像编辑基准测试。
- 开源代码和模型权重,允许用户自定义训练和微调。
Using Help
Installation process
要使用 BAGEL,需要在本地环境中安装并配置相关依赖。以下是详细的安装步骤:
- clone warehouse
使用 Git 克隆 BAGEL 项目到本地:git clone https://github.com/bytedance-seed/BAGEL.git cd BAGEL
- Creating a Virtual Environment
使用 Conda 创建 Python 3.10 环境并激活:conda create -n bagel python=3.10 -y conda activate bagel
- Installation of dependencies
在项目目录下运行以下命令,安装必要的 Python 库:pip install -r requirements.txt
- Download model weights
BAGEL 的模型权重托管在 Hugging Face 上。运行以下 Python 脚本下载模型:from huggingface_hub import snapshot_download save_dir = "/path/to/save/BAGEL-7B-MoT" repo_id = "ByteDance-Seed/BAGEL-7B-MoT" cache_dir = save_dir + "/cache" snapshot_download( cache_dir=cache_dir, local_dir=save_dir, repo_id=repo_id, local_dir_use_symlinks=False, resume_download=True, allow_patterns=["*.json", "*.safetensors", "*.bin", "*.py", "*.md", "*.txt"] )
commander-in-chief (military)
/path/to/save/BAGEL-7B-MoT
替换为你希望保存模型的本地路径。 - Verify Installation
安装完成后,打开项目中的inference.ipynb
文件,按照 notebook 中的指引运行示例代码,验证模型是否正常加载。
Usage
BAGEL 的核心功能通过 Jupyter Notebook 或 Python 脚本调用。以下是主要功能的详细操作流程:
1. 文本到图像生成
BAGEL 支持通过文本提示生成图像。例如,在 inference.ipynb
中加载模型后,输入以下代码:
prompt = "一张夕阳下的海滩,椰树摇曳,浪花拍岸"
image = model.generate_image(prompt)
image.save("output/beach_sunset.png")
- procedure::
- 确保模型已加载。
- 在 notebook 中输入文本提示。
- 运行生成代码,模型会输出图像并保存到指定路径。
- 检查输出图像的质量和内容是否符合提示。
2. 图像理解
BAGEL 可以分析图像并回答相关问题。例如,上传一张图片并提问:
image_path = "sample_image.jpg"
question = "图片中的主要物体是什么?"
answer = model.analyze_image(image_path, question)
print(answer)
- procedure::
- 准备一张图片并指定路径。
- 输入问题,运行代码。
- 模型会返回基于图像内容的回答,例如“图片中的主要物体是一只猫”。
3. 图像编辑
BAGEL 支持通过文本指令编辑图像。例如,将图片中的背景替换为森林:
image_path = "input_image.jpg"
instruction = "将背景替换为郁郁葱葱的森林"
edited_image = model.edit_image(image_path, instruction)
edited_image.save("output/edited_forest.png")
- procedure::
- Upload the image to be edited.
- 输入具体的编辑指令。
- 运行代码,检查输出图像是否符合要求。
- 注意:当前图像编辑可能导致清晰度下降,但效果仍在优化中。
4. 视频序列生成
BAGEL 支持基于文本生成视频序列。例如:
prompt = "一只猫在草地上追逐蝴蝶"
video = model.generate_video(prompt)
video.save("output/cat_chasing_butterfly.mp4")
- procedure::
- 输入视频生成提示。
- 运行生成代码,模型会输出短视频序列。
- 检查视频内容是否符合描述。
5. 评估模型性能
BAGEL 提供评估脚本,用于测试模型在视觉语言理解、图像生成和编辑任务中的表现。运行评估:
cd EVAL
python run_benchmarks.py
- procedure::
- go into
EVAL
Catalog. - 执行评估脚本,查看模型在标准基准测试中的表现。
- 结果会显示在终端或保存为日志文件。
- go into
caveat
- 确保硬件支持:BAGEL 需要 GPU 加速,推荐使用 NVIDIA GPU,显存至少 16GB。
- 检查网络连接:下载模型权重需要稳定的网络。
- 参考文档:项目中的
README.md
cap (a poem)inference.ipynb
提供详细的代码示例和参数说明。 - 社区支持:如遇问题,可在 GitHub Issues 页面提交问题,或参考 Hugging Face 上的讨论。[](https://github.com/ByteDance-Seed/Bagel)
application scenario
- content creation
BAGEL 可用于生成博客配图、社交媒体内容或视频片段。创作者输入文本描述,快速生成符合主题的图像或短视频,节省设计时间。 - Education and Research
研究人员可利用 BAGEL 进行多模态 AI 实验,测试文本与图像的交互能力。学生可通过开源代码学习 AI 模型的开发和部署。 - Product Prototyping
开发者可基于 BAGEL 开发交互式应用,例如智能图像编辑工具或基于文本的视频生成应用,用于快速构建产品原型。 - game development
BAGEL 的 3D 空间理解和图像生成功能可用于生成游戏场景或动态素材,降低开发成本。
QA
- BAGEL 支持哪些语言?
BAGEL 主要支持英文和中文的文本输入和输出。其他语言的支持可能因训练数据限制而效果较差。 - 需要多大的计算资源?
运行 BAGEL 推荐使用至少 16GB 显存的 GPU。CPU 运行可能较慢,且不适合生成任务。 - 如何贡献代码或改进模型?
可在 GitHub 仓库提交 Pull Request。训练和微调文档即将发布,参考README.md
Get Updates. - 图像生成质量如何?
BAGEL 的图像生成质量接近 SD3,但在复杂场景或高分辨率下可能需要进一步优化。