IBM Cloud Docs
升级定制模型

升级定制模型

为了提高语音识别质量,IBM Watson® Speech to Text 服务会不定期更新上一代和下一代基础车型。 由于不同语言的基准模型是相互独立的,同一种语言的多个模型也是如此,因此对单个基准模型的更新不会影响其他模型。

更新基本模型时,您可能需要升级基于该基本模型构建的任何定制模型以利用这些改进。 对需要升级的基本模型的更新会生成基本模型的新版本 (例如,en-US_BroadbandModel.v2020-01-16)。不需要升级的更新不会生成新版本。

  • 对于先前生成的模型, 对基本模型的所有更新都会生成新版本的模型。 当发布基础车型的新版本时,您必须升级基于更新后的基础车型构建的任何自定义语言和自定义声学模型,以利用这些改进。

  • 对于下一代模型, 大多数更新不会生成新版本的模型。 这些更新不要求您升级定制模型。 但是,某些更新会生成基本模型的新版本。 您必须升级基于已更新的基本模型构建的任何定制语言模型,以利用这些改进。

    该服务于 2023 年 2 月 27 日发布了新的语言模型定制技术。 如何升级到新技术与传统定制模型升级不同。 有关新技术和升级的更多信息,请参阅

如果需要升级,您的定制车型将继续使用旧版基础车型,直到您完成升级。 请尽快升级到已更新基本模型的最新版本。 您越早升级定制车型,就能越早体验新车型改进后的语音识别功能。

升级定制模型后,缺省情况下,当您通过语音识别请求指定该模型时,该服务将使用该定制模型的最新版本。 但是,您仍可以指示服务使用旧版本的模型。 请注意,旧版基础车型可能会在未来被移除。 为了鼓励升级,服务会返回一条警告消息,其中包含使用基于旧版基本模型的定制模型的识别请求的结果。

在发行说明中公布了基本模型的所有更新以及它们是否需要升级:

与所有定制操作一样,您必须使用拥有定制模型的服务实例的凭据来升级它。

升级工作方式

当基础车型的新版本首次发布时,现有的定制车型仍基于旧版本的基础车型。 在自定义模型升级之前,对自定义模型的所有操作(例如添加数据或训练模型)都会影响自定义模型的现有版本。 同样,所有指定定制车型的认可请求均使用定制车型的现有版本。

升级会生成两个版本的定制模型,一个基于基本模型的旧版本,一个基于基本模型的最新版本。 定制车型升级后,该定制车型的所有操作都会影响升级后的新版本。 无法再向模型的旧版本添加数据或对其进行训练。 升级操作无法撤销。

升级定制车型时,无需升级其单独的资源。 对于定制语言模型,服务会自动升级为模型定义的任何语料库、语法和词。 同样,升级定制声学模型时,服务也会自动升级其音频资源。 您不需要升级不包含资源的定制语言或定制声学模型。

默认情况下,该服务使用最新版本的自定义模型来处理语音识别请求。 但是,您可以继续使用定制模型的旧版本进行语音识别。 有关更多信息,请参阅 使用升级的定制模型进行语音识别

升级定制语言模型

执行以下步骤来升级定制语言模型:

  1. 确保定制语言模型处于 readyavailable 状态。 可以使用 GET /v1/customizations/{customization_id} 方法来检查模型的状态。 如果模型的状态为 ready,请先升级模型,然后基于其最新数据对模型进行训练。

  2. 使用 POST /v1/customizations/{customization_id}/upgrade_model 方法来升级定制语言模型:

    IBM Cloud

    curl -X POST -u "apikey:{apikey}" \
    "{url}/v1/customizations/{customization_id}/upgrade_model"
    

    IBM Cloud Pak for Data IBM Software Hub

    curl -X POST \
    --header "Authorization: Bearer {token}" \
    "{url}/v1/customizations/{customization_id}/upgrade_model"
    

    升级方法是异步执行的。 根据模型的词资源中的字数和服务上的当前负载,升级可能大约需要几分钟才能完成。

如果升级过程成功启动,服务会返回 200 响应代码。 可以使用 GET /v1/customizations/{customization_id} 方法来轮询模型的状态,从而监视升级的状态。 使用循环每 10 秒检查一次状态。

定制模型升级期间,其状态为 upgrading。 升级完成后,模型的状态会恢复为其升级之前的状态(readyavailable)。 检查升级操作的状态完全等同于检查训练操作的状态。 有关更多信息,请参阅监视训练模型请求

升级请求完成之前,服务无法接受以任何方式修改模型的请求。 但是,在升级期间,可以继续使用模型的现有版本发出识别请求。

基于改进的下一代模型升级定制语言模型

对于基于改进的下一代模型的定制语言模型,在重新训练定制模型时将自动执行升级。 一旦定制模型基于改进的下一代模型,服务将在重新训练定制模型时继续执行任何必需的升级。

无法使用 POST /v1/customizations/{customization_id}/upgrade_model 方法将定制模型升级到改进的下一代基本模型。

要升级基于改进的下一代模型的定制模型,请执行下列其中一个过程:

  • 更改定制模型,然后对其进行训练。

    1. 通过添加或修改模型包含的定制词,语料库或语法来更改定制模型。 您进行的任何更改都会将模型移至 ready 状态。
    2. 使用 POST /v1/customizations/{customization_id}/train 方法来重新训练模型。 重新训练会升级定制模型并将其移至 available 状态。
  • IBM Cloud 使用 force 查询参数来训练定制模型。

    如果将参数 force=truePOST /v1/customizations/{customization_id}/train 请求一起包含,那么不需要更改模型的定制词,语料库或语法以启用升级。 无论定制模型处于 ready 还是 available 状态,该参数都会强制对其进行训练,从而对其进行升级。 以下示例显示了如何使用 force 参数:

    IBM Cloud

    curl -X POST -u "apikey:{apikey}" \
    "{url}/v1/customizations/{customization_id}/train?force=true"
    

有关训练定制模型和监视训练请求的更多信息,请参阅 训练定制语言模型

要识别使用改进语言模型定制的模型,请在 下一代模型的定制支持 中的表 2 的 语言模型定制 列中查找 (改进) 日期。 确保检查您使用的服务版本 IBM CloudIBM Cloud Pak for Data的日期。

升级定制声学模型

执行以下步骤来升级定制声学模型。 如果使用定制语言模型训练了定制声学模型,那么必须如文中所述执行两个额外的升级步骤。

  1. 如果使用定制语言模型训练了定制声学模型,那么必须首先将定制语言模型升级到基本模型的最新版本。 有关更多信息,请参阅升级定制语言模型

  2. 确保定制声学模型处于 readyavailable 状态。 可以使用 GET /v1/acoustic_customizations/{customization_id} 方法来检查模型的状态。 如果模型的状态为 ready,请先升级模型,然后基于其最新数据对模型进行训练。

  3. 使用 POST /v1/acoustic_customizations/{customization_id}/upgrade_model 方法来升级定制声学模型:

    IBM Cloud

    curl -X POST -u "apikey:{apikey}" \
    "{url}/v1/acoustic_customizations/{customization_id}/upgrade_model"
    

    IBM Cloud Pak for Data IBM Software Hub

    curl -X POST \
    --header "Authorization: Bearer {token}" \
    "{url}/v1/acoustic_customizations/{customization_id}/upgrade_model"
    

    升级方法是异步执行的。 根据模型包含的音频数据量以及服务上的当前负载,升级可能大约需要几分钟或几小时才能完成。 与训练一样,升级通常需要模型包含的累积音频数据量。

  4. 如果使用定制语言模型训练了定制声学模型,请再次升级定制声学模型,这次使用先前已升级的定制语言模型。 使用 custom_language_model_id 查询参数来指定定制语言模型的定制标识。

    IBM Cloud

    curl -X POST -u "apikey:{apikey}" \
    "{url}/v1/acoustic_customizations/{customization_id}/upgrade_model?custom_language_model_id={custom_language_model_id}"
    

    IBM Cloud Pak for Data IBM Software Hub

    curl -X POST \
    --header "Authorization: Bearer {token}" \
    "{url}/v1/acoustic_customizations/{customization_id}/upgrade_model?custom_language_model_id={custom_language_model_id}"
    

    再次,升级方法是异步的,升级一般需要的时间是模型包含的累计音频量。

    使用语言模型升级声学模型的请求可能会失败,并返回 400 响应代码和消息:No input data modified since last training。 如果发生此错误,请将布尔值 force 查询参数添加到请求,并将此参数设置为 true。 请将此参数仅用于在此特定情境中强制升级定制声学模型。

如果升级过程成功启动,服务会返回 200 响应代码。 可以使用 GET /v1/acoustic_customizations/{customization_id} 方法来轮询模型的状态,从而监视升级的状态。 使用循环定期检查状态(例如,每分钟一次)。

定制模型升级期间,其状态为 upgrading。 升级完成后,模型的状态会恢复为其升级之前的状态(readyavailable)。 检查升级操作的状态完全等同于检查训练操作的状态。 有关更多信息,请参阅监视训练模型请求

升级请求完成之前,服务无法接受以任何方式修改模型的请求。 但是,在升级期间,可以继续使用模型的现有版本发出识别请求。

升级失败

如果服务正在处理针对模型的另一个请求 (例如,添加数据的请求或训练请求),那么定制模型的升级将无法启动。 在以下情况下,升级请求也无法启动:

  • 定制模型的状态不是 readyavailable
  • 定制模型不包含任何数据(语料库、自定义词汇、语法或音频资源)。
  • 对于使用定制语言模型训练的定制声学模型,定制模型基于的是基本模型的不同版本。 升级定制声学模型之前,必须先升级定制语言模型。 更多信息,请参阅 升级自定义声学模型