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

Mistral-7B-Instruct-v0.2生成回答被截断,OpenAI正常,求原因

问题:Mistral-7B-Instruct-v0.2生成回答被提前截断,OpenAI模型正常

问题描述

开发一款Web应用,可根据用户上传文档提供的上下文回答问题。使用Mistral-7B-Instruct-v0.2模型时,生成的回答会被提前截断无法完成;而使用OpenAI模型时,回答可正常完整输出。

相关代码

template="""
    ### [INST] Instruccion: Responde en español a las preguntas del usuario según el contexto.
    Si no encunetras una respuesta adecuada en el contexto, responde que no tienes información suficiente.

    {context}

    ### question:
    {question} (responde en castellano) [/INST]
    """
# 原代码存在重复定义template的问题,后续内容覆盖了完整模板
template="""
    <s>[INST]
    """
prompt = PromptTemplate(
        input_variables=['context','question'],
        template = template
    )
vector = Chroma(client=db,
        collection_name="coleccion4",
        embedding_function=embeddings)
retriever = vector.as_retriever(search_type="similarity", search_kwargs={"k":3})
llm = HuggingFaceHub(
        repo_id="mistralai/Mistral-7B-Instruct-v0.2",
        model_kwargs = {"temperature":0.4},
        huggingfacehub_api_token = apikey_huggingFace
    )
respuesta = rag_chain.invoke(user_question)

模型响应对比

  • OpenAI模型完整响应:
    OpenAI模型完整响应

  • Mistral模型截断响应:
    Mistral模型截断响应

可能的原因分析

  • 生成参数未配置输出长度:调用Mistral模型时,model_kwargs仅设置了temperature,未指定max_new_tokens参数。HuggingFace Hub默认的输出长度限制可能较小,导致内容被提前截断;而OpenAI模型默认输出长度阈值更高,因此能生成完整回答。
  • Prompt格式错误:代码中重复定义template,后续的简短模板覆盖了完整指令模板,导致传入模型的Prompt不符合Mistral-7B-Instruct的对话格式要求(正确格式应为<s>[INST] 指令 + 上下文 + 问题 [/INST])。格式异常会让模型无法识别任务边界,提前终止生成。
  • 上下文窗口容量限制:Mistral-7B-Instruct-v0.2的上下文窗口为8K tokens,若检索到的context过长,加上Prompt和已生成内容总长度接近或超过该阈值,模型会触发截断机制;而OpenAI的GPT系列模型拥有更大的上下文窗口(16K及以上),能容纳更长的内容。
  • HuggingFace Hub部署限制:Hub上的模型部署可能存在默认输出长度限制,免费调用额度下的输出长度会被约束,导致回答无法完整生成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 01:34:59