Una guía de implementación completa de ModelScope para búsqueda, inferencia, ajuste, evaluación y exportación de modelos
print(“\n📊 EVALUACIÓN DEL MODELO\n”) eval_results = trainer.evaluate() print(” Resultados de la evaluación:”) para clave, valor en eval_results.items(): if isinstance(value, float): print(f” {key:<25}: {value:.4f}") from sklearn.metrics import Classification_report, confusion_matrix preds_output = trainer.predict(eval_ds) preds = np.argmax(preds_output.predictions, axis=-1) etiquetas = preds_output.label_ids print("\n Informe de clasificación:") print(classification_report(labels, preds, target_names=["NEGATIVE", "POSITIVE"])) cm = confusion_matrix(labels, preds) fig, ax = plt.subplots(figsize=(5, 4)) im = ax.imshow(cm, cmap="Blues") ax.set_xticks([0, 1]); hacha.set_yticks([0, 1]) ax.set_xticklabels(["NEGATIVE", "POSITIVE"]) ax.set_yticklabels(["NEGATIVE", "POSITIVE"]) ax.set_xlabel("Predicho"); ax.set_ylabel("Actual") ax.set_title("Matriz de confusión: DistilBERT afinado") para i en el rango(2): para j en el rango(2): ax.text(j, i, str(cm[i, j]), ha="centro", va="centro", color="blanco" si cm[i, j] > cm.max()/2 else “negro”, tamaño de fuente=18) plt.colorbar(im) plt.tight_layout() plt.savefig(“confusion_matrix.png”, dpi=150) plt.show() print(” ✅ Guardado confusion_matrix.png”) print(“\n── Probando el modelo ajustado en nuevas entradas ──”) ft_pipeline = hf_pipeline( “análisis de sentimiento”, modelo=entrenador.modelo, tokenizer=tokenizer, dispositivo=DISPOSITIVO,) new_reviews = [
“An absolutely breathtaking masterpiece with brilliant performances!”,
“Waste of two hours. Terrible script and wooden acting.”,
“Decent popcorn movie but nothing special. Had some fun moments.”,
]

para revisión en new_reviews: res = ft_pipeline(revisión)[0]
emoji = “🟢” si res[“label”] == “POSITIVO” else “🔴” print(f’ {emoji} {res[“label”]} ({resolución[“score”]:.4f}): “{review}”‘) print(“\n💾 EXPORTANDO EL MODELO AJUSTADO\n”) save_path = “./ms_finetuned_model/final” trainer.save_model(save_path) tokenizer.save_pretrained(save_path) print(f” ✅ Modelo guardado en: {save_path}”) print(f” Archivos: {os.listdir(save_path)}”) print(“\n── ONNX Export ──”) intenta: desde óptimo.exporters.onnx import main_export onnx_path = “./ms_finetuned_model/onnx” main_export(save_path, output=onnx_path, task=”text-classification”) print(f” ✅ Modelo ONNX exportado a: {onnx_path}”) print(f” Archivos: {os.listdir(onnx_path)}”) excepto Excepción como e: print(f” ⚠️ Exportación ONNX omitida: {e}”) print(“”” ── Cargar en ModelScope Hub (paso manual) ── 1. Obtener un token de https://modelscope.cn/my/myaccesstoken 2. Ejecutar: desde modelscope.hub.api import HubApi api = HubApi() api.login(‘YOUR_TOKEN’) api.push_model( model_id=’tu-nombre de usuario/my-finetuned-distilbert’, model_dir=”./ms_finetuned_model/final”, ) “””) print(“”” ╔═════════════════════════════════ ═════════════════════════════════╗ ║ 🎉 TUTORIAL COMPLETO 🎉 ║ ╠═════════════════════════════════ ═════════════════════════════════╣ ║ ✓ ModelScope Hub: buscar, explorar y descargar modelos ║ ║ ✓ MsDataset: cargar conjuntos de datos del ecosistema ModelScope ║ ║ ✓ Canalizaciones de PNL: sentimiento, NER, disparo cero, generación, máscara ║ ║ ✓ Canalizaciones de CV: clasificación de imágenes, detección de objetos, visualización ║ ║ ✓ Interoperabilidad de HuggingFace: descarga_instantánea + Transformers ║ ║ ✓ Ajuste fino: DistilBERT en IMDB con Trainer API ║ ║ ✓ Evaluación: precisión, F1, matriz de confusión ║ ║ ✓ Exportación: guardado local, ONNX, carga de Hub ║ ╚═════════════════════════════════ ═════════════════════════════════╝ “””)