将外部知识库集成到扩散框架中涉及修改模型的架构或采样过程,以利用来自外部源的结构化或非结构化数据。一种常见的方法是根据知识嵌入来调整扩散模型。例如,文本到图像扩散模型可以使用知识图谱中的结构化数据(如实体关系或属性)作为附加输入。这通常通过将知识编码为嵌入并将其集成到模型的交叉注意力层来实现。举例来说,如果生成一幅“19世纪蒸汽机”的图像,模型可以从知识库中检索工程图纸或材料属性,以提高轮子设计或锅炉位置等细节的准确性。
另一种方法是检索增强扩散,其中模型在采样过程中动态查询知识库。在每个去噪步骤中,模型可能会获取相关信息(例如,文本描述、图像或元数据)来指导生成。例如,医学图像扩散模型可以从电子病历中检索患者特定数据,以生成反映患者独特解剖结构的合成扫描。这需要一个强大的检索系统(如向量数据库)来高效地索引和获取与上下文相关的知识。然后将检索到的数据融合到扩散过程中,可以通过将其与潜在特征连接起来,或使用它来调节去噪网络的权重。
最后,知识库可以在生成后用于细化。在创建初始输出后,一个单独的验证模型可以对照知识库进行交叉检查,以识别不一致之处。例如,生成历史场景的扩散模型可能会生成一幅服装与时代不符的图像;经过历史数据训练的分类器可以标记出来,从而触发细化步骤。虽然不如前述方法集成度高,但这种方法实现起来更简单,并且适用于现有模型。然而,它会增加计算开销,并且纠正错误的效果可能不如嵌入到扩散循环中的方法。开发者应根据其用例的延迟和准确性要求来优先选择方法。