Discordia
Inglés | 中文 | 日本語
ModelScope se basa en la noción de "Modelo como servicio" (MaaS). Busca reunir los modelos de aprendizaje automático más avanzados de la comunidad de IA y agiliza el proceso de aprovechar los modelos de IA en aplicaciones del mundo real. La biblioteca principal de ModelScope de código abierto en este repositorio proporciona las interfaces e implementaciones que permiten a los desarrolladores realizar inferencia, capacitación y evaluación de modelos.
En particular, con ricas capas de abstracción API, la biblioteca ModelScope ofrece una experiencia unificada para explorar modelos de última generación que abarcan dominios como CV, PNL, habla, multimodalidad y computación científica. Los contribuyentes de modelos de diferentes áreas pueden integrar modelos en el ecosistema ModelScope a través de API en capas, lo que permite un acceso fácil y unificado a sus modelos. Una vez integrados, la inferencia, el ajuste y las evaluaciones del modelo se pueden realizar con solo unas pocas líneas de código. Mientras tanto, también se ofrecen flexibilidades para que se puedan personalizar diferentes componentes de las aplicaciones del modelo cuando sea necesario.
Además de albergar implementaciones de una amplia gama de modelos diferentes, la biblioteca ModelScope también permite las interacciones necesarias con los servicios backend de ModelScope, particularmente con Model-Hub y Dataset-Hub. Estas interacciones facilitan la gestión de diversas entidades (modelos y conjuntos de datos) que se realizan sin problemas, incluida la búsqueda de entidades, el control de versiones, la gestión de caché y muchas otras.
Cientos de modelos están disponibles públicamente en ModelScope (más de 700 y contando), que cubren los últimos desarrollos en áreas como PNL, CV, audio, multimodalidad e IA para la ciencia, etc. Muchos de estos modelos representan SOTA en su campos específicos e hicieron su debut de código abierto en ModelScope. Los usuarios pueden visitar ModelScope (modelscope.cn) y experimentar de primera mano cómo funcionan estos modelos a través de una experiencia en línea, con solo unos pocos clics. La experiencia inmediata del desarrollador también es posible a través de ModelScope Notebook, que está respaldado por un entorno de desarrollo de CPU/GPU listo para usar en la nube, a solo un clic de distancia en ModelScope.
Algunos ejemplos representativos incluyen:
Máster en Derecho:
Yi-1.5-34B-Chat
Qwen1.5-110B-Chat
DeepSeek-V2-Chat
Ziya2-13B-Chat
Meta-Llama-3-8B-Instrucción
Phi-3-mini-128k-instrucciones
Multimodal:
Qwen-VL-Chat
Yi-VL-6B
PasanteVL-Chat-V1-5
deepseek-vl-7b-chat
OpenSoraPlan
OpenSora
I2VGen-XL
CV:
Modelo de punto clave de detección de rostros DamoFD - 0.5G
Estera vertical BSHM
Caricatura de retratos de DCT-Net - 3D
Modelo de caricatura de retratos de DCT-Net - 3D
DuGuang - Reconocimiento de texto - Modelo de reconocimiento de líneas - Chino e inglés - Dominio general
DuGuang - Reconocimiento de texto - Modelo de reconocimiento de líneas - Chino e inglés - Dominio general
Imagen de LaMa en pintura
Audio:
Reconocimiento de voz de Paraformer - Chino - General - 16k - Sin conexión - Grande - Versión de audio larga
Detección de punto final de voz FSMN - Chino - General - 16k - onnx
Predicción de marca de tiempo de voz de alineador monótono - 16k - Sin conexión
Puntuación del transformador CT - Chino - General - onnx
Síntesis del habla - Chino - Dominio de múltiples emociones - 16k - Múltiples hablantes
Verificación del hablante CAM++ - Chino - General - 200k-Spkrs
IA para la ciencia:
monómero de doble pliegue
multímero plegable
Nota: La mayoría de los modelos en ModelScope son públicos y se pueden descargar sin necesidad de registrar una cuenta en el sitio web de Modelscope (www.modelscope.cn). Consulte las instrucciones para la descarga de modelos, para descargar modelos con API proporcionada por la biblioteca Modelscope o Git.
Proporcionamos una interfaz unificada para inferencia mediante pipeline
, ajuste y evaluación utilizando Trainer
para diferentes tareas.
Para cualquier tarea determinada con cualquier tipo de entrada (imagen, texto, audio, vídeo...), la canalización de inferencia se puede implementar con solo unas pocas líneas de código, que cargarán automáticamente el modelo subyacente para obtener el resultado de la inferencia, como se ejemplifica abajo:
> >> from modelscope . pipelines import pipeline
> >> word_segmentation = pipeline ( 'word-segmentation' , model = 'damo/nlp_structbert_word-segmentation_chinese-base' )
> >> word_segmentation ( '今天天气不错,适合出去游玩' )
{ 'output' : '今天 天气 不错 , 适合 出去 游玩' }
Dada una imagen, el matizado vertical (también conocido como eliminación de fondo) se puede lograr con el siguiente fragmento de código:
> >> import cv2
> >> from modelscope . pipelines import pipeline
> >> portrait_matting = pipeline ( 'portrait-matting' )
> >> result = portrait_matting ( 'https://modelscope.oss-cn-beijing.aliyuncs.com/test/images/image_matting.png' )
> >> cv2 . imwrite ( 'result.png' , result [ 'output_img' ])
La imagen de salida sin el fondo es:
El ajuste y la evaluación también se pueden realizar con unas cuantas líneas más de código para configurar el conjunto de datos de entrenamiento y el entrenador, con el trabajo pesado de entrenamiento y evaluación en un modelo encapsulado en la implementación de traner.train()
y trainer.evaluate()
interfaces.
Por ejemplo, el modelo base gpt3 (1.3B) se puede ajustar con el conjunto de datos de poesía china, lo que da como resultado un modelo que se puede utilizar para la generación de poesía china.
> >> from modelscope . metainfo import Trainers
> >> from modelscope . msdatasets import MsDataset
> >> from modelscope . trainers import build_trainer
> >> train_dataset = MsDataset . load ( 'chinese-poetry-collection' , split = 'train' ). remap_columns ({ 'text1' : 'src_txt' })
> >> eval_dataset = MsDataset . load ( 'chinese-poetry-collection' , split = 'test' ). remap_columns ({ 'text1' : 'src_txt' })
> >> max_epochs = 10
> >> tmp_dir = './gpt3_poetry'
> >> kwargs = dict (
model = 'damo/nlp_gpt3_text-generation_1.3B' ,
train_dataset = train_dataset ,
eval_dataset = eval_dataset ,
max_epochs = max_epochs ,
work_dir = tmp_dir )
> >> trainer = build_trainer ( name = Trainers . gpt3_trainer , default_args = kwargs )
> >> trainer . train ()
Se abstrae una interfaz de usuario unificada y concisa para diferentes tareas y diferentes modelos. Las inferencias y el entrenamiento del modelo se pueden implementar con tan solo 3 y 10 líneas de código, respectivamente. Es conveniente para los usuarios explorar modelos en diferentes campos en la comunidad ModelScope. Todos los modelos integrados en ModelScope están listos para usar, lo que facilita el inicio de la IA, tanto en entornos educativos como industriales.
ModelScope ofrece una experiencia de aplicación y desarrollo centrada en modelos. Agiliza el soporte para la capacitación, inferencia, exportación e implementación de modelos, y facilita a los usuarios la creación de sus propios MLOps basados en el ecosistema ModelScope.
Para el proceso de inferencia y capacitación del modelo, se implementa un diseño modular y se proporciona una gran cantidad de implementaciones de módulos funcionales, lo que resulta conveniente para que los usuarios personalicen su propia inferencia de modelo, capacitación y otros procesos.
Para el entrenamiento de modelos distribuidos, especialmente para modelos grandes, proporciona un rico soporte para estrategias de entrenamiento, que incluyen datos paralelos, modelos paralelos, paralelos híbridos, etc.
La biblioteca ModelScope actualmente admite marcos populares de aprendizaje profundo para entrenamiento e inferencia de modelos, incluidos PyTorch, TensorFlow y ONNX. Todas las versiones se prueban y se ejecutan en Python 3.7+, Pytorch 1.8+, Tensorflow1.15 o Tensorflow2.0+.
Para permitir el uso inmediato de todos los modelos en ModelScope, se proporcionan imágenes oficiales de Docker para todas las versiones. Según la imagen de la ventana acoplable, los desarrolladores pueden omitir toda la instalación y configuración del entorno y utilizarla directamente. Actualmente, la última versión de la imagen de CPU y de GPU se puede obtener de:
Imagen acoplable de CPU
# py37
registry.cn-hangzhou.aliyuncs.com/modelscope-repo/modelscope:ubuntu20.04-py37-torch1.11.0-tf1.15.5-1.6.1
# py38
registry.cn-hangzhou.aliyuncs.com/modelscope-repo/modelscope:ubuntu20.04-py38-torch2.0.1-tf2.13.0-1.9.5
Imagen acoplable de GPU
# py37
registry.cn-hangzhou.aliyuncs.com/modelscope-repo/modelscope:ubuntu20.04-cuda11.3.0-py37-torch1.11.0-tf1.15.5-1.6.1
# py38
registry.cn-hangzhou.aliyuncs.com/modelscope-repo/modelscope:ubuntu20.04-cuda11.8.0-py38-torch2.0.1-tf2.13.0-1.9.5
También se puede configurar el entorno ModelScope local utilizando pip y conda. ModelScope es compatible con python3.7 y superior. Sugerimos anaconda para crear un entorno Python local:
conda create -n modelscope python=3.8
conda activate modelscope
PyTorch o TensorFlow se pueden instalar por separado según los requisitos de cada modelo.
Después de instalar el marco de aprendizaje automático necesario, puede instalar la biblioteca modelscope de la siguiente manera:
Si solo desea jugar con el marco de modelscope, o probar la descarga del modelo/conjunto de datos, puede instalar los componentes principales de modelscope:
pip install modelscope
Si desea utilizar modelos multimodales:
pip install modelscope[multi-modal]
Si desea utilizar modelos de PNL:
pip install modelscope[nlp] -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html
Si desea utilizar modelos CV:
pip install modelscope[cv] -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html
Si desea utilizar modelos de audio:
pip install modelscope[audio] -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html
Si desea utilizar modelos científicos:
pip install modelscope[science] -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html
Notes
:
Actualmente, algunos modelos de tareas de audio solo admiten entornos Linux python3.7, tensorflow1.15.4. La mayoría de los demás modelos se pueden instalar y utilizar en Windows y Mac (x86).
Algunos modelos en el campo del audio utilizan la biblioteca de terceros SoundFile para el procesamiento de archivos wav. En el sistema Linux, los usuarios deben instalar manualmente libsndfile de SoundFile (enlace doc). En Windows y MacOS, se instalará automáticamente sin necesidad de intervención del usuario. Por ejemplo, en Ubuntu, puedes usar los siguientes comandos:
sudo apt-get update
sudo apt-get install libsndfile1
Algunos modelos en visión por computadora necesitan mmcv-full, puede consultar la guía de instalación de mmcv, una instalación mínima es la siguiente:
pip uninstall mmcv # if you have installed mmcv, uninstall it
pip install -U openmim
mim install mmcv-full
Proporcionamos documentación adicional que incluye:
Este proyecto tiene la licencia Apache (Versión 2.0).
@Misc{modelscope,
title = {ModelScope: bring the notion of Model-as-a-Service to life.},
author = {The ModelScope Team},
howpublished = {url{https://github.com/modelscope/modelscope}},
year = {2023}
}