RESTBERTa
RESTBERTa significa Transferencia de Estado Representacional en el enfoque de Representaciones de Codificador Bidireccional de Transformadores y debe ayudar a las máquinas a procesar sintaxis estructurada y descripciones en lenguaje natural no estructurado para la semántica en la documentación de la API web. En detalle, usamos la respuesta a preguntas para resolver la tarea genérica de identificar un elemento de sintaxis de API web (respuesta) en una estructura de sintaxis (párrafo) que coincide con la semántica descrita en una consulta en lenguaje natural (pregunta). La identificación y extracción de elementos de sintaxis de API web de la documentación de la API web es una tarea común en muchas tareas de integración de API web, como la coincidencia de parámetros y el descubrimiento de puntos finales. Así, RESTBERTa podría ser una base para varias tareas de integración de API web. Técnicamente, RESTBERTa cubre los conceptos para ajustar un modelo de Codificador de Transformadores, es decir, un modelo BERT preentrenado, a la respuesta a preguntas con muestras específicas de tareas para preparar un modelo para una tarea específica de integración de API web. El documento 'RESTBERTa: un enfoque de respuesta a preguntas basado en Transformadores para la búsqueda semántica en la documentación de API web' demuestra la aplicación de RESTBERTa a la coincidencia de parámetros semánticos y el descubrimiento de puntos finales.
Como usar
Hemos ajustado el modelo microsoft/codebert-base preentrenado a la tarea de respuesta a preguntas con 909,089 muestras de respuesta a preguntas de 2,321 documentaciones de OpenAPI del mundo real. Cada muestra consta de:
- Pregunta: La descripción en lenguaje natural del parámetro o punto final, por ejemplo, 'Crea un nuevo usuario'
- Respuesta: El parámetro o punto final en una notación similar a XPath, por ejemplo, 'users.post'
- Párrafo: La estructura jerárquica que contiene el parámetro o punto final, que es una lista de parámetros/puntos finales en notación similar a XPath, por ejemplo, 'users.get users.post users.{userId}.address.get users.{userId}.address.put users.{userId}.delete users.{userId}.get users.{userId}.put'
Ejemplo de uso en código
from transformers import AutoModelForQuestionAnswering, AutoTokenizer
model = AutoModelForQuestionAnswering.from_pretrained('SebastianKotstein/restberta-qa-pm-ed')
tokenizer = AutoTokenizer.from_pretrained('SebastianKotstein/restberta-qa-pm-ed')
question = 'Crea un nuevo usuario'
paragraph = 'users.get users.post users.{userId}.address.get users.{userId}.address.put users.{userId}.delete users.{userId}.get users.{userId}.put'
inputs = tokenizer(question, paragraph, return_tensors='pt')
outputs = model(**inputs)
RESTBERTa requiere un intérprete de salida especial que procese las predicciones hechas por el modelo para determinar el parámetro o punto final sugerido. Discutimos los detalles en el artículo.
Funcionalidades
- Codificador de Transferencia de Estado Representacional en Representaciones Bidireccionales de Transformadores
- Respuesta a preguntas para identificar elementos de sintaxis de API web
- Optimizado para tareas genéricas y específicas de coincidencia de parámetros y descubrimiento de puntos finales
- Ajuste fino del modelo BERT preentrenado
Casos de uso
- Coincidencia de parámetros semánticos en la documentación de API web
- Descubrimiento de puntos finales de API web
- Integración de API web