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

如何调试HuggingFace Pipeline发送给LLM的实际提示词?

调试文本生成Pipeline的最终提示词方法

以下几种方法可以帮你查看实际发送给LLM的提示词,验证tokenizer.default_chat_template的应用效果:

  • 直接用Tokenizer生成最终提示
    Pipeline处理输入时,会调用tokenizer的对话模板来格式化内容,你可以手动调用apply_chat_template生成最终提示,不用运行完整的生成流程:

    # 构造符合对话格式的输入(单轮对话也要用这种结构)
    messages = [{"role": "user", "content": "Some input prompt for the LLM"}]
    # 生成带模板的提示词,add_generation_prompt=True会加上模型要求的生成前缀(比如<|assistant|>)
    final_prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
    print(final_prompt)
    

    输出的内容就是Pipeline实际传给LLM的完整提示格式。

  • 解码Token查看原始提示
    如果想确认编码后的token对应的原始文本,可以通过以下方式解码:

    # 方式1:从Pipeline结果中提取输入token并解码
    result = pipe("Some input prompt for the LLM", return_tensors="pt")
    # 分离输入token和生成的token
    input_tokens = result["input_ids"][0][:-len(result["generated_ids"][0])]
    decoded_prompt = tokenizer.decode(input_tokens, skip_special_tokens=False)
    print(decoded_prompt)
    
    # 方式2:手动编码对话输入后解码
    messages = [{"role": "user", "content": "Some input prompt for the LLM"}]
    tokenized = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors="pt")
    decoded_prompt = tokenizer.decode(tokenized[0], skip_special_tokens=False)
    print(decoded_prompt)
    

    这种方法能看到包含所有特殊标记(比如角色标签、结束符)的完整提示,适合验证模板是否正确添加了必要符号。

  • 启用调试日志查看细节
    给Transformers库开启DEBUG级别的日志,就能看到Pipeline处理提示的完整流程:

    import logging
    logging.basicConfig(level=logging.DEBUG)
    
    # 运行Pipeline,日志会输出提示处理的详细步骤
    result = pipe("Some input prompt for the LLM")
    

    日志里会明确显示最终构造的提示文本,以及tokenizer的处理细节。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 00:50:06