/ / Uso del marcador de haz personalizado en TensorFlow CTC (modelo de lenguaje) - tensorflow, modelo de idioma

Uso del marcador de haz personalizado en TensorFlow CTC (modelo de lenguaje) - tensorflow, lenguaje-modelo

¿Es posible personalizar el marcador de haz en¿Implementación de TensorFlow CTC desde Python? Veo esta posibilidad en el comentario para el constructor de la clase C ++ CTCBeamSearchDecoder pero me pregunto cómo proporcionar esta funcionalidad para los usuarios de Python.

El problema específico que tenemos es el taponamiento deModelo de lenguaje en decodificador de voz basado en CTC. El modelo de lenguaje posiblemente puede ser un subgráfico TensorFlow pre-entrenado, capaz de generar probabilidades para el ajuste de la puntuación del haz. Pero necesitamos una forma de inyectar esto en el marcador de haz.

Respuestas

5 para la respuesta № 1

Actualmente no hay API para Python para usarModelo de lenguaje con un anotador personalizado. Las contribuciones son bienvenidas, pero hay algunas dificultades para hacer esto posible en la API de Python, ya que requeriría ejecutar el sub-gráfico de TF LM en una sesión independiente dentro de la operación del decodificador, y esas no se mezclarían muy bien.

La forma más fácil de hacerlo es en C ++ yrequiere extender la clase BaseBeamScorer junto con un BeamState (similar a lo que se puede ver en las pruebas) y ejecutar CTCBeamSearchDecoder :: Decodificar sobre las salidas del gráfico tensorflow que normalmente iría en la opción ctc_beam_search_decoder.

Al hacer esto, su implementación de BeamScorer podría hacer uso de cualquier modelo de lenguaje que tenga a mano y simplemente necesita devolver los puntajes apropiados al expandir el haz de un estado a otro.