[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"tool-csuhan--OneLLM":3,"similar-csuhan--OneLLM":101},{"id":4,"github_repo":5,"name":6,"description_en":7,"description_zh":8,"ai_summary_zh":9,"readme_en":10,"readme_zh":11,"quickstart_zh":12,"use_case_zh":13,"hero_image_url":14,"owner_login":15,"owner_name":16,"owner_avatar_url":17,"owner_bio":18,"owner_company":19,"owner_location":18,"owner_email":20,"owner_twitter":18,"owner_website":21,"owner_url":22,"languages":23,"stars":44,"forks":45,"last_commit_at":46,"license":47,"difficulty_score":48,"env_os":49,"env_gpu":50,"env_ram":51,"env_deps":52,"category_tags":61,"github_topics":18,"view_count":65,"oss_zip_url":18,"oss_zip_packed_at":18,"status":66,"created_at":67,"updated_at":68,"faqs":69,"releases":100},4774,"csuhan\u002FOneLLM","OneLLM","[CVPR 2024] OneLLM: One Framework to Align All Modalities with Language","OneLLM 是一个旨在统一多模态与语言对齐的开源框架，由 CVPR 2024 收录。它的核心目标是打破视觉、音频、点云等不同数据模态之间的壁垒，让大型语言模型能够像理解文字一样，流畅地理解和处理图像、声音等多种形式的信息。\n\n过去，处理不同模态的数据往往需要训练多个独立的专用模型，不仅资源消耗大，且难以实现跨模态的深度交互。OneLLM 通过构建统一的架构，将多种模态编码器映射到同一个语言模型的语义空间中，从而实现了“一个框架对齐所有模态”。这种设计显著降低了多模态任务的开发门槛，提升了模型在复杂场景下的泛化能力。\n\n该工具特别适合人工智能研究人员、算法工程师以及希望探索多模态大模型应用的开发者使用。用户可以直接利用官方提供的 7B 参数预训练模型进行推理测试，也可以基于其开放的代码库和数据集，自定义训练流程以适配特定场景。\n\n技术亮点方面，OneLLM 创新性地设计了统一的模态对齐机制，支持包括图像、音频、深度图及 3D 点云在内的多种输入形式，并能与 LLaMA 等主流大语言模型无缝集成。无论是构建智能助手、多模态检索系统，还是进行前沿的学术研究，OneLLM 都提供了一个高效、","OneLLM 是一个旨在统一多模态与语言对齐的开源框架，由 CVPR 2024 收录。它的核心目标是打破视觉、音频、点云等不同数据模态之间的壁垒，让大型语言模型能够像理解文字一样，流畅地理解和处理图像、声音等多种形式的信息。\n\n过去，处理不同模态的数据往往需要训练多个独立的专用模型，不仅资源消耗大，且难以实现跨模态的深度交互。OneLLM 通过构建统一的架构，将多种模态编码器映射到同一个语言模型的语义空间中，从而实现了“一个框架对齐所有模态”。这种设计显著降低了多模态任务的开发门槛，提升了模型在复杂场景下的泛化能力。\n\n该工具特别适合人工智能研究人员、算法工程师以及希望探索多模态大模型应用的开发者使用。用户可以直接利用官方提供的 7B 参数预训练模型进行推理测试，也可以基于其开放的代码库和数据集，自定义训练流程以适配特定场景。\n\n技术亮点方面，OneLLM 创新性地设计了统一的模态对齐机制，支持包括图像、音频、深度图及 3D 点云在内的多种输入形式，并能与 LLaMA 等主流大语言模型无缝集成。无论是构建智能助手、多模态检索系统，还是进行前沿的学术研究，OneLLM 都提供了一个高效、灵活且强大的基础平台。","## OneLLM: One Framework to Align All Modalities with Language\n\n[[Project Page](https:\u002F\u002Fonellm.csuhan.com)] [[Paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2312.03700)] [[HF Demo🤗](https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fcsuhan\u002FOneLLM)] [[Modelscope Demo🤖](https:\u002F\u002Fmodelscope.cn\u002Fstudios\u002Fcsuhan\u002FOneLLM)] [[Model🤗](https:\u002F\u002Fhuggingface.co\u002Fcsuhan\u002FOneLLM-7B)] [[Data](docs\u002FData.md)]\n\n## News\n\n- **2024.02.27** OneLLM is accepted by **CVPR 2024**!🎉\n- **2023.12.01** Release model weights and inference code.\n\n## Contents\n\n- [Install](#install)\n- [Models](#models)\n- [Demo](#demo)\n- [Data](#data)\n- [Evaluation](#evaluation)\n- [Training](#training)\n\n### Install\n\n1. Clone the repo into a local folder.\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fcsuhan\u002FOneLLM\n\ncd OneLLM\n```\n\n2. Install packages.\n\n```bash\nconda create -n onellm python=3.9 -y\nconda activate onellm\n\npip install -r requirements.txt\n\n# install pointnet\ncd model\u002Flib\u002Fpointnet2\npython setup.py install\n```\n\n3. Install Apex. (Optional)\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fapex\ncd apex\npip install -v --disable-pip-version-check --no-cache-dir --no-build-isolation --config-settings \"--build-option=--cpp_ext\" --config-settings \"--build-option=--cuda_ext\" .\u002F\n```\n\n### Models\n\nWe provide a preview model on the Hugging Face at: [csuhan\u002FOneLLM-7B](https:\u002F\u002Fhuggingface.co\u002Fcsuhan\u002FOneLLM-7B).\n\n### Demo\n\n**Huggingface Demo:** [csuhan\u002FOneLLM](https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fcsuhan\u002FOneLLM).\n\n**Local Demo:** Assume you have downloaded the weights to ${WEIGHTS_DIR}. Then run the following command to start a gradio demo locally.\n\n```bash\npython demos\u002Fmulti_turn_mm.py --gpu_ids 0 --tokenizer_path config\u002Fllama2\u002Ftokenizer.model --llama_config config\u002Fllama2\u002F7B.json --pretrained_path ${WEIGHTS_DIR}\u002Fconsolidated.00-of-01.pth\n```\n\n**CLI Demo:**\n```bash\npython demos\u002Fcli.py --image_path ${IMAGE_PATH} --gpu_ids 0 --tokenizer_path config\u002Fllama2\u002Ftokenizer.model --llama_config config\u002Fllama2\u002F7B.json --pretrained_path ${WEIGHTS_DIR}\u002Fconsolidated.00-of-01.pth\n```\n\n### Data\n\nPlease check [Data.md](docs\u002FData.md) for more detail.\n\n### Evaluation\n\nPlease check [Evaluation.md](docs\u002FEvaluation.md) for more detail.\n\n### Training\n\n#### Image-Text Pretraining\n\n**Single Node 8-GPU Training**: [exps\u002Fimage_text_pretrain_8gpu.sh](exps\u002Fimage_text_pretrain_8gpu.sh)\n\u003Cdetails>\u003Csummary>Show More\u003C\u002Fsummary>\n\n```bash\ntorchrun --nproc_per_node=8 main_pretrain.py \\\n--epochs 1 --dataset image \\\n--batch_size 40 --accum_iter 16 \\\n--model_parallel_size 1 \\\n--data_parallel sdp \\\n--save_consolidated \\\n--llama_type onellm \\\n--llama_ckpt_dir ${LLAMA_7B_PATH} \\\n--llama_config config\u002Fllama2\u002F7B.json \\\n--tokenizer_path config\u002Fllama2\u002Ftokenizer.model \\\n--auto_resume \\\n--weight_decay 0.1 --output_dir ${OUTPUT_DIR} \\\n--warmup_iters 2000 --lr_decay_iters 200000 --lr 5e-5 --min_lr 5e-6 --clip_grad 2 \\\n--save_freq 1000 \\\n2>&1 | tee -a ${OUTPUT_DIR}\u002Foutput.log\n```\n\u003C\u002Fdetails>\n\n**Multi Nodes DDP Training**:\n\nRun N scripts on N nodes at the time, then we can launch a multi-node DDP training. Following is an example script for one node:\n\n```\nMASTER_ADDR=IP_ADDRESS_OF_NODE_1\nNNODES=N\nMASTER_PORT=29500\nNPROC_PER_NODE=8\n\nRANK=0 or 1 or ... or N\n\nbash\ntorchrun \\\n--nnodes=$NNODES \\\n--nproc_per_node=8 \\\n--node_rank=$RANK \\\n--master_port=$MASTER_PORT \\\n--master_addr=$MASTER_ADDR \\\nmain_pretrain.py \\\n--epochs 1 --dataset image \\\n--batch_size 40 --accum_iter 16 \\\n--model_parallel_size 1 \\\n--data_parallel sdp \\\n--save_consolidated \\\n--llama_type onellm \\\n--llama_ckpt_dir ${LLAMA_7B_PATH} \\\n--llama_config config\u002Fllama2\u002F7B.json \\\n--tokenizer_path config\u002Fllama2\u002Ftokenizer.model \\\n--auto_resume \\\n--weight_decay 0.1 --output_dir ${OUTPUT_DIR} \\\n--warmup_iters 2000 --lr_decay_iters 200000 --lr 5e-5 --min_lr 5e-6 --clip_grad 2 \\\n--save_freq 1000 \\\n2>&1 | tee -a ${OUTPUT_DIR}\u002Foutput.log\n```\n\n**Multi Node SLURM Training**: [exps\u002Fimage_text_pretrain_slurm.sh](exps\u002Fimage_text_pretrain_slurm.sh)\n\u003Cdetails>\u003Csummary>Show More\u003C\u002Fsummary>\n\n```bash\n#!\u002Fbin\u002Fbash\n#SBATCH --gres=gpu:8\n#SBATCH -n 16\n#SBATCH -N 2\n#SBATCH --cpus-per-task=16\n\nsrun python -u main_pretrain.py \\\n--epochs 1 --dataset image \\\n--batch_size 40 --accum_iter 8 \\\n--model_parallel_size 1 \\\n--data_parallel sdp \\\n--save_consolidated \\\n--llama_type onellm \\\n--llama_ckpt_dir ${LLAMA_7B_PATH} \\\n--llama_config config\u002Fllama2\u002F7B.json \\\n--tokenizer_path config\u002Fllama2\u002Ftokenizer.model \\\n--auto_resume \\\n--weight_decay 0.1 --output_dir ${OUTPUT_DIR} \\\n--warmup_iters 2000 --lr_decay_iters 200000 --lr 5e-5 --min_lr 5e-6 --clip_grad 2 \\\n--save_freq 1000 \\\n2>&1 | tee -a ${OUTPUT_DIR}\u002Foutput.log\n```\n\u003C\u002Fdetails>\n\n#### Multimodal-Text Pretraining\n\n**Stage II Pretraining**: Assume we have the pretrained `${IMAGE_TEXT_MODEL}`, run [exps\u002Fmultimodal_text_pretrain_stage2.sh](exps\u002Fmultimodal_text_pretrain_stage2.sh) for video-audio-point-text pretraining.\n\n**Stage III Pretraining**: Assume we have the pretrained `${STAGE2_MODEL}`, run [exps\u002Fmultimodal_text_pretrain_stage3.sh](exps\u002Fmultimodal_text_pretrain_stage3.sh) for depth-normal-imu-fmri-text pretraining.\n\n#### Instruction Tuning\n\nAssume we have the pretrained `${STAGE3_MODEL}`, run [exps\u002Fmultimodal_text_finetune.sh](exps\u002Fmultimodal_text_finetune.sh) for multimodal instruction tuning.\n\n## Citation\n\n```\n@InProceedings{han2023onellm,\n  title={OneLLM: One Framework to Align All Modalities with Language},\n  author={Han, Jiaming and Gong, Kaixiong and Zhang, Yiyuan and Wang, Jiaqi and Zhang, Kaipeng and Lin, Dahua and Qiao, Yu and Gao, Peng and Yue, Xiangyu},\n  booktitle = {Proceedings of the IEEE\u002FCVF Conference on Computer Vision and Pattern Recognition (CVPR)},\n  year={2024}\n}\n```\n\n## Acknowledgement\n\n[LLaMA](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fllama), [LLaMA-Adapter](https:\u002F\u002Fgithub.com\u002FOpenGVLab\u002FLLaMA-Adapter), [LLaMA2-Accessory](https:\u002F\u002Fgithub.com\u002FAlpha-VLLM\u002FLLaMA2-Accessory), [Meta-Transformer](https:\u002F\u002Fgithub.com\u002Finvictus717\u002FMetaTransformer), [ChatBridge](https:\u002F\u002Fgithub.com\u002Fjoez17\u002FChatBridge)\n\n## License\nThis project is developed based on Llama 2, please refer to the [LLAMA 2 Community License](LICENSE_llama2).\n","## OneLLM：一个将所有模态与语言对齐的统一框架\n\n[[项目页面](https:\u002F\u002Fonellm.csuhan.com)] [[论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F2312.03700)] [[Hugging Face 演示🤗](https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fcsuhan\u002FOneLLM)] [[ModelScope 演示🤖](https:\u002F\u002Fmodelscope.cn\u002Fstudios\u002Fcsuhan\u002FOneLLM)] [[模型🤗](https:\u002F\u002Fhuggingface.co\u002Fcsuhan\u002FOneLLM-7B)] [[数据](docs\u002FData.md)]\n\n## 新闻\n\n- **2024.02.27** OneLLM 被 **CVPR 2024** 接收！🎉\n- **2023.12.01** 发布模型权重和推理代码。\n\n## 目录\n\n- [安装](#install)\n- [模型](#models)\n- [演示](#demo)\n- [数据](#data)\n- [评估](#evaluation)\n- [训练](#training)\n\n### 安装\n\n1. 将仓库克隆到本地文件夹。\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fcsuhan\u002FOneLLM\n\ncd OneLLM\n```\n\n2. 安装依赖包。\n\n```bash\nconda create -n onellm python=3.9 -y\nconda activate onellm\n\npip install -r requirements.txt\n\n# 安装 PointNet\ncd model\u002Flib\u002Fpointnet2\npython setup.py install\n```\n\n3. 安装 Apex。（可选）\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fapex\ncd apex\npip install -v --disable-pip-version-check --no-cache-dir --no-build-isolation --config-settings \"--build-option=--cpp_ext\" --config-settings \"--build-option=--cuda_ext\" .\u002F\n```\n\n### 模型\n\n我们在 Hugging Face 上提供了一个预览模型：[csuhan\u002FOneLLM-7B](https:\u002F\u002Fhuggingface.co\u002Fcsuhan\u002FOneLLM-7B)。\n\n### 演示\n\n**Hugging Face 演示：** [csuhan\u002FOneLLM](https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fcsuhan\u002FOneLLM)。\n\n**本地演示：** 假设你已将权重下载到 ${WEIGHTS_DIR}，则运行以下命令以在本地启动 Gradio 演示。\n\n```bash\npython demos\u002Fmulti_turn_mm.py --gpu_ids 0 --tokenizer_path config\u002Fllama2\u002Ftokenizer.model --llama_config config\u002Fllama2\u002F7B.json --pretrained_path ${WEIGHTS_DIR}\u002Fconsolidated.00-of-01.pth\n```\n\n**命令行演示：**\n```bash\npython demos\u002Fcli.py --image_path ${IMAGE_PATH} --gpu_ids 0 --tokenizer_path config\u002Fllama2\u002Ftokenizer.model --llama_config config\u002Fllama2\u002F7B.json --pretrained_path ${WEIGHTS_DIR}\u002Fconsolidated.00-of-01.pth\n```\n\n### 数据\n\n更多详情请参阅 [Data.md](docs\u002FData.md)。\n\n### 评估\n\n更多详情请参阅 [Evaluation.md](docs\u002FEvaluation.md)。\n\n### 训练\n\n#### 图像-文本预训练\n\n**单节点 8 卡训练**：[exps\u002Fimage_text_pretrain_8gpu.sh](exps\u002Fimage_text_pretrain_8gpu.sh)\n\u003Cdetails>\u003Csummary>展开\u003C\u002Fsummary>\n\n```bash\ntorchrun --nproc_per_node=8 main_pretrain.py \\\n--epochs 1 --dataset image \\\n--batch_size 40 --accum_iter 16 \\\n--model_parallel_size 1 \\\n--data_parallel sdp \\\n--save_consolidated \\\n--llama_type onellm \\\n--llama_ckpt_dir ${LLAMA_7B_PATH} \\\n--llama_config config\u002Fllama2\u002F7B.json \\\n--tokenizer_path config\u002Fllama2\u002Ftokenizer.model \\\n--auto_resume \\\n--weight_decay 0.1 --output_dir ${OUTPUT_DIR} \\\n--warmup_iters 2000 --lr_decay_iters 200000 --lr 5e-5 --min_lr 5e-6 --clip_grad 2 \\\n--save_freq 1000 \\\n2>&1 | tee -a ${OUTPUT_DIR}\u002Foutput.log\n```\n\u003C\u002Fdetails>\n\n**多节点 DDP 训练**：\n\n同时在 N 个节点上运行 N 个脚本，即可启动多节点 DDP 训练。以下是一个节点的示例脚本：\n\n```\nMASTER_ADDR=IP_ADDRESS_OF_NODE_1\nNNODES=N\nMASTER_PORT=29500\nNPROC_PER_NODE=8\n\nRANK=0 或 1 或 ... 或 N\n\nbash\ntorchrun \\\n--nnodes=$NNODES \\\n--nproc_per_node=8 \\\n--node_rank=$RANK \\\n--master_port=$MASTER_PORT \\\n--master_addr=$MASTER_ADDR \\\nmain_pretrain.py \\\n--epochs 1 --dataset image \\\n--batch_size 40 --accum_iter 16 \\\n--model_parallel_size 1 \\\n--data_parallel sdp \\\n--save_consolidated \\\n--llama_type onellm \\\n--llama_ckpt_dir ${LLAMA_7B_PATH} \\\n--llama_config config\u002Fllama2\u002F7B.json \\\n--tokenizer_path config\u002Fllama2\u002Ftokenizer.model \\\n--auto_resume \\\n--weight_decay 0.1 --output_dir ${OUTPUT_DIR} \\\n--warmup_iters 2000 --lr_decay_iters 200000 --lr 5e-5 --min_lr 5e-6 --clip_grad 2 \\\n--save_freq 1000 \\\n2>&1 | tee -a ${OUTPUT_DIR}\u002Foutput.log\n```\n\n**多节点 SLURM 训练**：[exps\u002Fimage_text_pretrain_slurm.sh](exps\u002Fimage_text_pretrain_slurm.sh)\n\u003Cdetails>\u003Csummary>展开\u003C\u002Fsummary>\n\n```bash\n#!\u002Fbin\u002Fbash\n#SBATCH --gres=gpu:8\n#SBATCH -n 16\n#SBATCH -N 2\n#SBATCH --cpus-per-task=16\n\nsrun python -u main_pretrain.py \\\n--epochs 1 --dataset image \\\n--batch_size 40 --accum_iter 8 \\\n--model_parallel_size 1 \\\n--data_parallel sdp \\\n--save_consolidated \\\n--llama_type onellm \\\n--llama_ckpt_dir ${LLAMA_7B_PATH} \\\n--llama_config config\u002Fllama2\u002F7B.json \\\n--tokenizer_path config\u002Fllama2\u002Ftokenizer.model \\\n--auto_resume \\\n--weight_decay 0.1 --output_dir ${OUTPUT_DIR} \\\n--warmup_iters 2000 --lr_decay_iters 200000 --lr 5e-5 --min_lr 5e-6 --clip_grad 2 \\\n--save_freq 1000 \\\n2>&1 | tee -a ${OUTPUT_DIR}\u002Foutput.log\n```\n\u003C\u002Fdetails>\n\n#### 多模态-文本预训练\n\n**阶段 II 预训练**：假设我们已有预训练好的 `${IMAGE_TEXT_MODEL}`，则运行 [exps\u002Fmultimodal_text_pretrain_stage2.sh](exps\u002Fmultimodal_text_pretrain_stage2.sh) 进行视频-音频-点云-文本的预训练。\n\n**阶段 III 预训练**：假设我们已有预训练好的 `${STAGE2_MODEL}`，则运行 [exps\u002Fmultimodal_text_pretrain_stage3.sh](exps\u002Fmultimodal_text_pretrain_stage3.sh) 进行深度-法线-IMU-fMRI-文本的预训练。\n\n#### 指令微调\n\n假设我们已有预训练好的 `${STAGE3_MODEL}`，则运行 [exps\u002Fmultimodal_text_finetune.sh](exps\u002Fmultimodal_text_finetune.sh) 进行多模态指令微调。\n\n## 引用\n\n```\n@InProceedings{han2023onellm,\n  title={OneLLM: One Framework to Align All Modalities with Language},\n  author={Han, Jiaming and Gong, Kaixiong and Zhang, Yiyuan and Wang, Jiaqi and Zhang, Kaipeng and Lin, Dahua and Qiao, Yu and Gao, Peng and Yue, Xiangyu},\n  booktitle = {IEEE\u002FCVF 计算机视觉与模式识别会议（CVPR）论文集},\n  year={2024}\n}\n```\n\n## 致谢\n\n[LLaMA](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fllama), [LLaMA-Adapter](https:\u002F\u002Fgithub.com\u002FOpenGVLab\u002FLLaMA-Adapter), [LLaMA2-Accessory](https:\u002F\u002Fgithub.com\u002FAlpha-VLLM\u002FLLaMA2-Accessory), [Meta-Transformer](https:\u002F\u002Fgithub.com\u002Finvictus717\u002FMetaTransformer), [ChatBridge](https:\u002F\u002Fgithub.com\u002Fjoez17\u002FChatBridge)\n\n## 许可证\n本项目基于 Llama 2 开发，请参阅 [LLAMA 2 社区许可证](LICENSE_llama2)。","# OneLLM 快速上手指南\n\nOneLLM 是一个统一的框架，旨在将图像、视频、音频、点云、深度图、IMU、fMRI 等多种模态与语言模型对齐。本项目基于 LLaMA 2 构建，并已在 CVPR 2024 上发表。\n\n## 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **操作系统**: Linux (推荐 Ubuntu)\n*   **Python**: 3.9\n*   **GPU**: 支持 CUDA 的 NVIDIA GPU (建议显存 16GB 以上用于推理，多卡用于训练)\n*   **依赖管理**: Conda (推荐)\n*   **网络环境**: 能够访问 Hugging Face 或 ModelScope (国内用户建议使用 ModelScope 或配置镜像加速)\n\n## 安装步骤\n\n### 1. 克隆代码库\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fcsuhan\u002FOneLLM\ncd OneLLM\n```\n\n### 2. 创建虚拟环境并安装基础依赖\n\n```bash\nconda create -n onellm python=3.9 -y\nconda activate onellm\n\n# 安装 requirements.txt 中的依赖\n# 国内用户若下载缓慢，可添加清华源：-i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\npip install -r requirements.txt\n\n# 安装 PointNet++ 组件\ncd model\u002Flib\u002Fpointnet2\npython setup.py install\ncd ..\u002F..\u002F..\n```\n\n### 3. 安装 Apex (可选，推荐用于训练加速)\n\n如果您计划进行模型训练，建议安装 NVIDIA Apex 以启用混合精度训练和扩展算子。\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fapex\ncd apex\npip install -v --disable-pip-version-check --no-cache-dir --no-build-isolation --config-settings \"--build-option=--cpp_ext\" --config-settings \"--build-option=--cuda_ext\" .\u002F\ncd ..\n```\n\n### 4. 获取模型权重\n\n您可以从 Hugging Face 或 ModelScope 下载预训练权重。\n\n*   **Hugging Face**: [csuhan\u002FOneLLM-7B](https:\u002F\u002Fhuggingface.co\u002Fcsuhan\u002FOneLLM-7B)\n*   **ModelScope (国内加速)**: 请访问 ModelScope 搜索 `OneLLM` 相关仓库下载。\n\n假设您将权重下载到了本地目录 `${WEIGHTS_DIR}`，且文件名包含 `consolidated.00-of-01.pth`。\n\n## 基本使用\n\n安装完成后，您可以通过命令行 (CLI) 或本地 Gradio 界面体验 OneLLM 的多模态对话能力。\n\n### 方式一：命令行交互 (CLI Demo)\n\n这是最轻量级的使用方式，适合测试单张图片的理解能力。请将 `${IMAGE_PATH}` 替换为您本地的图片路径，`${WEIGHTS_DIR}` 替换为权重所在目录。\n\n```bash\npython demos\u002Fcli.py \\\n--image_path ${IMAGE_PATH} \\\n--gpu_ids 0 \\\n--tokenizer_path config\u002Fllama2\u002Ftokenizer.model \\\n--llama_config config\u002Fllama2\u002F7B.json \\\n--pretrained_path ${WEIGHTS_DIR}\u002Fconsolidated.00-of-01.pth\n```\n\n运行后，您可以在终端输入问题与模型进行多轮对话。\n\n### 方式二：本地 Web 界面 (Local Gradio Demo)\n\n如果您更喜欢图形化界面，可以启动本地的 Gradio 服务。\n\n```bash\npython demos\u002Fmulti_turn_mm.py \\\n--gpu_ids 0 \\\n--tokenizer_path config\u002Fllama2\u002Ftokenizer.model \\\n--llama_config config\u002Fllama2\u002F7B.json \\\n--pretrained_path ${WEIGHTS_DIR}\u002Fconsolidated.00-of-01.pth\n```\n\n运行成功后，终端会显示一个本地 URL（通常是 `http:\u002F\u002F127.0.0.1:7860`），在浏览器中打开即可上传图像、音频等文件并与模型交互。\n\n> **注意**: 首次运行时，程序会自动下载 LLaMA 2 的分词器配置文件。如果网络受阻，请手动下载 `tokenizer.model` 和 `7B.json` 配置到 `config\u002Fllama2\u002F` 目录下。","某电商平台的智能客服团队正致力于升级系统，使其能同时理解用户发送的商品图片、语音留言及文字描述，以提供精准的售后支持。\n\n### 没有 OneLLM 时\n- **多模型堆砌成本高**：需分别部署独立的图像识别、语音转文字和文本对话模型，导致服务器资源占用巨大，维护成本高昂。\n- **信息割裂导致误判**：不同模态的数据由不同模型处理，缺乏统一语义对齐，当用户发图并说“这个颜色不对”时，系统难以将图片内容与语音投诉关联分析。\n- **开发迭代周期长**：每新增一种媒体类型（如视频或 3D 模型），都需要重新训练专用编码器并调整对接接口，新功能上线往往耗时数周。\n- **上下文理解能力弱**：由于缺乏统一的语言基座，系统无法在跨模态的多轮对话中保持连贯记忆，经常重复询问用户已提供的信息。\n\n### 使用 OneLLM 后\n- **单一框架统一处理**：OneLLM 用一个框架对齐所有模态，直接复用同一套权重处理图文音数据，大幅降低显存占用和运维复杂度。\n- **深度语义融合**：基于统一的语言对齐机制，OneLLM 能精准理解“图中红色部分”与语音“颜色不对”的对应关系，显著提升复杂投诉的解决率。\n- **极速扩展新模态**：借助其灵活的架构，团队仅需少量数据微调即可支持新的媒体格式，新业务场景的接入时间从数周缩短至几天。\n- **流畅多轮交互**：依托强大的语言基座，OneLLM 能在跨模态对话中完整保留上下文，主动引用用户之前发送的图片细节，实现拟人化服务。\n\nOneLLM 通过“一个框架对齐所有模态”的核心能力，将原本碎片化的多模态处理流程转化为高效、统一且具备深度理解力的智能服务闭环。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcsuhan_OneLLM_e2722c6b.png","csuhan","Jiaming Han","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fcsuhan_906a28ad.jpg",null,"CUHK","hanjiaming@link.cuhk.edu.hk","https:\u002F\u002Fcsuhan.com","https:\u002F\u002Fgithub.com\u002Fcsuhan",[24,28,32,36,40],{"name":25,"color":26,"percentage":27},"Python","#3572A5",86.5,{"name":29,"color":30,"percentage":31},"Cuda","#3A4E3A",7.7,{"name":33,"color":34,"percentage":35},"C++","#f34b7d",3.6,{"name":37,"color":38,"percentage":39},"Shell","#89e051",1.3,{"name":41,"color":42,"percentage":43},"C","#555555",0.9,665,37,"2026-04-01T08:25:59","NOASSERTION",4,"Linux","必需 NVIDIA GPU。训练示例显示单节点需 8 卡 (8-GPU)，SLURM 脚本指定每节点 8 卡；推理演示支持单卡 (--gpu_ids 0)。需安装 Apex (含 CUDA 扩展) 和 pointnet2 (需编译)，暗示需要完整的 CUDA 开发环境。显存需求未明确说明，但基于 LLaMA-7B 及多模态训练，建议高显存。","未说明",{"notes":53,"python":54,"dependencies":55},"1. 必须手动编译安装 pointnet2 扩展库。2. 可选安装 NVIDIA Apex 以启用混合精度训练等高级功能，需从 GitHub 源码编译并开启 cuda_ext。3. 依赖 LLaMA 2 模型权重，需自行准备配置文件和 tokenizer。4. 训练脚本使用 torchrun 启动，支持单机多卡、多机 DDP 及 SLURM 集群调度。5. README 未提供 requirements.txt 的具体内容，实际依赖需查看该文件。","3.9",[56,57,58,59,60],"requirements.txt 中定义的包 (未列出具体名称)","apex (可选，需从源码编译 --cuda_ext)","pointnet2 (需从源码编译)","torch (隐含，用于 torchrun)","gradio (隐含，用于 Demo)",[62,63,64],"语言模型","图像","其他",2,"ready","2026-03-27T02:49:30.150509","2026-04-07T09:47:58.472071",[70,75,80,85,90,95],{"id":71,"question_zh":72,"answer_zh":73,"source_url":74},21685,"深度图或法线图模态下，是否必须同时提供 RGB 图像才能进行问答推理？","是的，目前系统需要成对的深度图\u002F法线图与 RGB 图像作为输入。深度图和法线图主要作为图像感知的辅助信息（例如用于 RGBD 分类或检测），帮助模型更好地理解 RGB 图像，因此不能仅凭深度或法线信息单独进行推理。","https:\u002F\u002Fgithub.com\u002Fcsuhan\u002FOneLLM\u002Fissues\u002F9",{"id":76,"question_zh":77,"answer_zh":78,"source_url":79},21686,"模型是否支持高分辨率（如 720x1280）的图像或视频输入，而无需调整为 224x224？","当前 OneLLM 模型需要将图像或视频调整大小至 224x224。如果需要处理更高分辨率（如 448 输入），建议尝试该项目组开发的另一个模型 SPHINX，它支持 448 分辨率的输入。","https:\u002F\u002Fgithub.com\u002Fcsuhan\u002FOneLLM\u002Fissues\u002F6",{"id":81,"question_zh":82,"answer_zh":83,"source_url":84},21687,"为什么复现点云 - 文本任务（Point Cloud-Text Tasks）的评估指标（BLEU, METEOR, ROUGE_L）时数值远低于论文报告？","这是因为最终经过指令微调的模型倾向于输出长且详细的回答，而字幕基准测试需要简短的句子，导致直接评估效果不佳。一个简单的改进方法是将任务提示词从 \"What is this?\" 修改为 \"Provide a one-sentence caption\"。相关代码位于 eval\u002Fpoint_cap_pointllm.py 第 38 行附近。","https:\u002F\u002Fgithub.com\u002Fcsuhan\u002FOneLLM\u002Fissues\u002F23",{"id":86,"question_zh":87,"answer_zh":88,"source_url":89},21688,"OneLLM 中不同“专家”的具体职能是什么？冻结的图像编码器是否限制了其他模态的学习？","不同专家并非严格针对不同模态，而是对图像模态有不同侧重的理解。项目首先训练 Image-to-LLM 投影模块，然后逐渐加入其他模态进行微调以适应多模态对齐。冻结的图像编码器作为通用的高级语义特征提取器，确实在一定程度上限制了其他模态的学习，可以理解为将其他模态与图像进行软对齐，但由于在多类数据上联合训练，最终状态是一种折中方案。","https:\u002F\u002Fgithub.com\u002Fcsuhan\u002FOneLLM\u002Fissues\u002F18",{"id":91,"question_zh":92,"answer_zh":93,"source_url":94},21689,"tokenizer.model 是否用于将所有模态转换为令牌（tokens）？是否有代码可以训练其支持更多模态？","tokenizer.model 仅用于文本处理。对于其他模态（如图像、音频等），项目使用卷积层（conv layer）将输入数据转换为令牌，而不是通过 SentencePiece 模型进行分词。","https:\u002F\u002Fgithub.com\u002Fcsuhan\u002FOneLLM\u002Fissues\u002F14",{"id":96,"question_zh":97,"answer_zh":98,"source_url":99},21690,"监督微调（SFT）的训练代码是否已开源？","是的，SFT 的训练代码已经发布，用户可以在仓库中找到并使用。","https:\u002F\u002Fgithub.com\u002Fcsuhan\u002FOneLLM\u002Fissues\u002F11",[],[102,114,122,130,138,146],{"id":103,"name":104,"github_repo":105,"description_zh":106,"stars":107,"difficulty_score":108,"last_commit_at":109,"category_tags":110,"status":66},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[111,112,63,113],"Agent","开发框架","数据工具",{"id":115,"name":116,"github_repo":117,"description_zh":118,"stars":119,"difficulty_score":108,"last_commit_at":120,"category_tags":121,"status":66},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[112,63,111],{"id":123,"name":124,"github_repo":125,"description_zh":126,"stars":127,"difficulty_score":65,"last_commit_at":128,"category_tags":129,"status":66},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",142651,"2026-04-06T23:34:12",[112,111,62],{"id":131,"name":132,"github_repo":133,"description_zh":134,"stars":135,"difficulty_score":65,"last_commit_at":136,"category_tags":137,"status":66},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107888,"2026-04-06T11:32:50",[112,63,111],{"id":139,"name":140,"github_repo":141,"description_zh":142,"stars":143,"difficulty_score":108,"last_commit_at":144,"category_tags":145,"status":66},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[62,63,111,112],{"id":147,"name":148,"github_repo":149,"description_zh":150,"stars":151,"difficulty_score":108,"last_commit_at":152,"category_tags":153,"status":66},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[112,63,111,154],"视频"]