You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Haystack中PromptNode加载缓存模型仍耗时,能否通过保存模型优化?

解决Haystack PromptNode模型加载缓慢的问题

可以通过将模型保存到本地路径的方式大幅缩短后续加载时间,具体操作步骤如下:

1. 先将模型保存到本地目录

执行以下代码,把google/flan-t5-large模型及其分词器保存到本地指定路径(比如./flan-t5-large-local):

from transformers import AutoModelForSeq2SeqLM, AutoTokenizer

# 加载模型与分词器
model = AutoModelForSeq2SeqLM.from_pretrained("google/flan-t5-large")
tokenizer = AutoTokenizer.from_pretrained("google/flan-t5-large")

# 保存到本地目录
model.save_pretrained("./flan-t5-large-local")
tokenizer.save_pretrained("./flan-t5-large-local")

2. 修改原有代码,使用本地模型加载

将原来代码中的model_name_or_path替换为刚才的本地路径,后续运行时就会直接加载本地模型,无需重复处理缓存文件:

lfqa_prompt = PromptTemplate("deepset/question-answering-with-references", output_parser=AnswerParser(reference_pattern=r"Document\[(\d+)\]"))

# 改用本地模型路径加载,加载速度显著提升
prompt_node = PromptNode(model_name_or_path="./flan-t5-large-local", default_prompt_template=lfqa_prompt)

pipe = Pipeline()
pipe.add_node(component=retriever, name="retriever", inputs=["Query"])
pipe.add_node(component=prompt_node, name="prompt_node", inputs=["retriever"])

output = pipe.run(query="A question?")
print(output["answers"][0].answer)

可选优化:模型量化进一步提速

如果还想进一步缩短加载时间、降低内存占用,可以使用4-bit/8-bit量化技术。只需在创建PromptNode时传入量化参数即可:

prompt_node = PromptNode(
    model_name_or_path="./flan-t5-large-local",
    default_prompt_template=lfqa_prompt,
    model_kwargs={"load_in_4bit": True, "device_map": "auto"}
)

使用量化需要先安装bitsandbytes库:pip install bitsandbytes

内容的提问来源于stack exchange,提问作者user3164187

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 19:42:03