Los modelos QWEN, desarrollados por Alibaba, han mostrado un válido rendimiento tanto en las tareas de finalización como en las tareas de instrucción. En este blog, mostraremos cómo puede registrar e implementar modelos QWEN en Databricks utilizando un enfoque similar al de las arquitecturas basadas en LLAMA. Siguiendo estos pasos, puede usar los puntos finales del maniquí de almohadilla de Databricks (rendimiento aprovisionado), que se benefician de herido latencia y parada rendimiento.
Tabla de contenido
- Motivación: ¿Por qué servir modelos QWEN en Databricks?
- La idea central
- Implementación: Tutorial de código anotado
- Rendimiento y limitaciones
- Epítome y próximos pasos
Motivación: ¿Por qué servir modelos QWEN en Databricks?
Para muchas cargas de trabajo empresariales, Databricks es una plataforma única para entrenar, registrar y servir modelos de idiomas grandes (LLM). Con Databricks MOSAIC AI Maniquí Siring Uno puede implementar fácilmente modelos de almohadilla o almohadilla y utilizarlos para tareas de inferencia en tiempo auténtico o de lotes.
La serie QWen 2.5 de modelos recientemente puyazo proporciona un válido rendimiento en las tareas de finalización e instrucción de código. QWEN 2.5 modelos En el momento de su impulso, Beat Models de tamaño similar en puntos de narración tipificado como MMLU, ARC-C, Math, Humaneval y Multilingüe Benchmars, como multi-exámenes y comprensión múltiple. Modelos de codificadores qwen 2.5 Muestre ganancias similares en los puntos de narración de codificación. Esto puede proporcionar a los clientes una válido motivación para implementar estos modelos en el maniquí de Databricks que sirve para avituallar sus casos de uso.
Servir un maniquí QWEN en Databricks implica cuatro pasos:
- Ejecute un cuaderno para convertir los archivos del maniquí QWEN para que sean compatibles con la edificación de fogata y el maniquí de Databricks Siring
- Registre el maniquí QWEN en un catálogo de Unity
- Implementó el maniquí registrado en Databricks Servicio de maniquí de almohadilla
- Realice pruebas de calidad en la implementación, como pruebas manuales o ejecución de puntos de narración tipificado directamente contra el punto final
La idea central
Databricks Foundation Model Serving Proporciona un rendimiento optimizado para modelos como Meta’s Fogata Models. Los clientes pueden implementar estos modelos con rendimiento aprovisionado y alcanzar una herido latencia y parada rendimiento. Si aceptablemente la estructura del maniquí subyacente de los modelos Qwen es muy similar a la estructura de los modelos de LLAMA, se requieren ciertas modificaciones para usar la infraestructura del maniquí de databricks. Los siguientes pasos explican cómo los clientes pueden hacer las modificaciones necesarias.
Implementación: Tutorial de código anotado
Parte 1) Reescribe los pesos y la configuración de Qwen para ser consistente con los modelos de LLAMA.
Los pasos en modify_qwen.py tomar un Qwen2.5 maniquí y retornar a escribir Es consistente con la edificación de LLAMA que está optimizada para el rendimiento aprovisionado en Databricks. Estos son los pasos esencia del código:
- Cargar Qwen State Dict: Recoger
.safetensorsDel directorio QWEN flamante. - Copiar y ajustar pesos: Insertar sesgos cero para horizontes de atención donde Fogata los prórroga.
- Reescribe la configuración: Modernizar campos como
"architectures","model_type"a"fogata"y elimine las banderas específicas de Qwen. - Copiar archivos de tokenizador: Asegúrese de que traigamos
tokenizer.json,merges.txtetcétera. - Crear carpeta de salida final: Los archivos en el nuevo directorio hacen que parezca un maniquí pintoresco de fogata.
Al final de este paso, tienes un Qwen compatible con llamas maniquí. Podrías cargar el maniquí en vllm y debe tratarlo como un maniquí de fogata y poder gestar código o seguir instrucciones, dependiendo del maniquí que haya utilizado.
Consejo: Puedes usar Huggingface_hub.snapshot_download para obtener uno de los modelos QWEN como QWEN/QWEN2.5-CODER-7B-INSTRUG Desde abrazar la cara hasta un directorio ayer de realizar la conversión.
Parte 2) Registre y sirva a Qwen en Databricks
A continuación, nos centraremos en cómo registrar y servir al maniquí «Qwen as Fogata» en Databricks. Esto se maneja por registrar_qwen.py. Los pasos aquí aseguran que el maniquí tenga la configuración que el servicio de maniquí prórroga para un maniquí de fogata. Los pasos esencia:
- Aclaración El camino alrededor de el maniquí convertido de ayer.
- Modificación de configuraciones de tokenizador (especialmente eliminar
chat_templatey configuracióntokenizer_class). - Ajuste
config.jsonreflectar longitudes de secuencia compatibles con LLAMA. - Modernización del maniquí con metadatos similares a las llamas ayer de registrar.
- Registrando el maniquí con mlflowpor lo que se puede servir en un punto final de GPU.
Una vez que se ejecute este cuaderno, el maniquí se registrará en un catálogo de Unity, navegue al maniquí y haga clic en «Servir este maniquí» para configurar el punto final. Debería ver la opción de configurar el punto final con la entrada aprovisionada en diferentes tokens/segundas tasas.
Probar el punto final
Una vez que el punto final está presto, puede realizar algunas pruebas básicas para confirmar que funcione correctamente. Supongamos que hayamos desplegado el Qwen2.5coder-7b maniquí luego de realizar la conversión y el registro antedicho. Este maniquí es capaz de completar una aposento de código o realizar el relleno en el medio. Usémoslo para completar una función de clasificación simple. En el menú desplegable «Usar», haga clic en «Consulta» e ingrese la ulterior solicitud:
El texto en la respuesta contiene el resto de la implementación:
Para un enfoque más cuantitativo, podría gestar finalizaciones para el Humanal tareas. Luego ejecute su evaluación para obtener la métrica Pass@1 y comparar con los resultados publicados.
Rendimiento y limitaciones
- Formato de chat manual
Donado que eliminamos la plantilla de chat incorporada de Qwen, debe formatear manualmente los mensajes del sistema/favorecido/asistente en el código de su cliente. Esto asegura que el maniquí aún pueda interpretar los giros de conversación correctamente. - Incrustaciones de posición máxima
Establecimosmax_position_embeddingsa 16000 tokens para adaptarse a ciertas restricciones de Databricks. Si Qwen originalmente respaldaba más, puede perder una distancia de contexto máxima. Sin retención, aún obtendrá soporte de rendimiento aprovisionado.
Epítome y próximos pasos
Si aceptablemente Databricks no admite los modelos QWEN directamente en el maniquí de rendimiento aprovisionado que sirve hoy, el método antedicho le permite registrarse y servir Estos modelos con éxito alineándolos a ser compatibles con la edificación de los modelos LLAMA. Esta posibilidad es particularmente útil si su equipo requiere las capacidades de Qwen, pero asimismo quiere la conveniencia del maniquí de Databricks que sirve puntos finales y rendimiento aprovisionado.
Para soportar
- Los modelos Qwen y Fogata comparten suficientes similitudes arquitectónicas que, con algunas modificaciones menores (a entender, a la configuración de tokenizador y los metadatos del maniquí), la infraestructura del maniquí de Databricks puede servir fácilmente a los modelos QWEN utilizando el rendimiento aprovisionado.
Consideraciones futuras
- Le recomendamos que esté atento al soporte oficial de Qwen en la entrega del maniquí Databricks.
- Evaluar sobrecarga de rendimiento del tamaño de contexto limitante por la fuerza.
- Si confía en la solicitud de chat, recuerde formato manual sus indicaciones en el banda del cliente.
Expresiones de agradecimiento
- Hiyouga’s LlamaFy_Qwen.py Para el ejemplo original que proporcionó la almohadilla para la conversión de QWEN.
- El equipo de Ingeniería de Databricks para aclarar las limitaciones internas de servicio.
- Todos los miembros de la comunidad que probaron y refinaron el enfoque.