在没有重新加载模型的情况下,LLaMA 输出嵌入的形状会随着多个图像输入而不断增加
作者: simonefelicioni创建于 2025年7月23日更新于 2025年7月23日
你好,首先感谢你的出色工作! 我们遇到了一个与内存使用和 `self.model.llama_model.output_embs` 的形状有关的问题。以下是我们观察到的行为:我们初始化模型,输入一张图像(通过 `img_list`)和一个提示。然后提取结果,并计算 `self.model.llama_model.output_embs` 的大小。如果我们清除 `img_list`,然后输入第二张图像和提示,我们可以正确获得新图像的描述。 然而,当前的 `self.model.llama_model.output_embs` 的形状随着处理的每张新图像而不断增加 - 最终会增加其大小,并导致内存问题,通过对多张图像重复此过程。 另一方面,如果我们在每张图像之前完全重新初始化和重新加载模型,则此问题不会发生,并且 `output_embs` 的形状在输入之间保持一致和合理。这种行为既发生在 Gradio 演示中,也发生在我们自己的自定义 Python 脚本中(不使用 Gradio)。 **我们的问题:** 为什么会出现这种情况? 是否存在一个需要在输入之间重置的模型内部变量或状态,以避免 `output_embs` 中的积累? **我们的目标:** 处理多张独立的图像(不是视频的帧,只是不相关的图像),并为每张图像保存 `self.model.llama_model.output_embs`,而无需每次都重新加载整个模型(这相当耗时)。 我们非常感谢您对如何在运行之间正确清除内部状态的任何建议。 提前感谢您的帮助!
内容来源: Vision-CAIR/MiniGPT-4