Discórdia
Inglês | 中文 | 日本語
ModelScope é construído sobre a noção de “Modelo como serviço” (MaaS). Ele busca reunir os modelos de aprendizado de máquina mais avançados da comunidade de IA e agilizar o processo de aproveitamento de modelos de IA em aplicações do mundo real. A biblioteca principal ModelScope de código aberto neste repositório fornece as interfaces e implementações que permitem aos desenvolvedores realizar inferência, treinamento e avaliação de modelos.
Em particular, com ricas camadas de abstração de API, a biblioteca ModelScope oferece experiência unificada para explorar modelos de última geração que abrangem domínios como CV, PNL, fala, multimodalidade e computação científica. Contribuidores de modelos de diferentes áreas podem integrar modelos ao ecossistema ModelScope por meio de APIs em camadas, permitindo acesso fácil e unificado aos seus modelos. Uma vez integrados, a inferência, o ajuste fino e as avaliações do modelo podem ser feitos com apenas algumas linhas de códigos. Entretanto, também são fornecidas flexibilidades para que diferentes componentes nas aplicações do modelo possam ser personalizados sempre que necessário.
Além de abrigar implementações de uma ampla gama de modelos diferentes, a biblioteca ModelScope também permite as interações necessárias com os serviços backend do ModelScope, particularmente com o Model-Hub e o Dataset-Hub. Essas interações facilitam o gerenciamento de várias entidades (modelos e conjuntos de dados) a serem executados de forma integrada, incluindo pesquisa de entidades, controle de versão, gerenciamento de cache e muitos outros.
Centenas de modelos são disponibilizados publicamente no ModelScope (mais de 700 e aumentando), cobrindo os mais recentes desenvolvimentos em áreas como PNL, CV, Áudio, Multimodalidade e IA para Ciência, etc. campos específicos e fizeram sua estreia de código aberto no ModelScope. Os usuários podem visitar ModelScope (modelscope.cn) e experimentar em primeira mão o desempenho desses modelos por meio da experiência on-line, com apenas alguns cliques. A experiência imediata do desenvolvedor também é possível por meio do ModelScope Notebook, que é apoiado por um ambiente de desenvolvimento de CPU/GPU pronto para uso na nuvem - a apenas um clique de distância no ModelScope.
Alguns exemplos representativos incluem:
LLM:
Yi-1.5-34B-Bate-papo
Qwen1.5-110B-Bate-papo
Bate-papo DeepSeek-V2
Ziya2-13B-Bate-papo
Meta-Llama-3-8B-Instrução
Instrução Phi-3-mini-128k
Multimodal:
Qwen-VL-Chat
Yi-VL-6B
EstagiárioVL-Chat-V1-5
deepseek-vl-7b-chat
OpenSoraPlan
OpenSora
I2VGen-XL
CV:
Modelo de ponto-chave de detecção de rosto DamoFD - 0,5G
Tapete Retrato BSHM
Cartoonização de retrato DCT-Net - 3D
Modelo de cartunização de retrato DCT-Net - Modelo 3D
DuGuang - Reconhecimento de Texto - Modelo de Reconhecimento de Linha - Chinês e Inglês - Domínio Geral
DuGuang - Reconhecimento de Texto - Modelo de Reconhecimento de Linha - Chinês e Inglês - Domínio Geral
Pintura de imagem LaMa
Áudio:
Reconhecimento de fala Paraformer - Chinês - Geral - 16k - Offline - Grande - Versão de áudio longa
Detecção de endpoint de voz FSMN - Chinês - Geral - 16k - onnx
Previsão de carimbo de data/hora da fala do alinhador monotônico - 16k - off-line
Pontuação do transformador CT - Chinês - Geral - onnx
Síntese de Fala - Chinês - Domínio de Múltiplas Emoções - 16k - Vários Alto-falantes
Verificação de alto-falante CAM++ - Chinês - Geral - 200k-Spkrs
IA para Ciência:
monômero unidobrável
multímero unifold
Nota: A maioria dos modelos no ModelScope são públicos e podem ser baixados sem registro de conta no site modelscope (www.modelscope.cn), consulte as instruções para download do modelo, para baixar modelos com API fornecida pela biblioteca modelscope ou git.
Fornecemos interface unificada para inferência usando pipeline
, ajuste fino e avaliação usando Trainer
para diferentes tarefas.
Para qualquer tarefa com qualquer tipo de entrada (imagem, texto, áudio, vídeo...), o pipeline de inferência pode ser implementado com apenas algumas linhas de código, que carregará automaticamente o modelo subjacente para obter o resultado da inferência, como é exemplificado abaixo:
> >> from modelscope . pipelines import pipeline
> >> word_segmentation = pipeline ( 'word-segmentation' , model = 'damo/nlp_structbert_word-segmentation_chinese-base' )
> >> word_segmentation ( '今天天气不错,适合出去游玩' )
{ 'output' : '今天 天气 不错 , 适合 出去 游玩' }
Dada uma imagem, o fosqueamento de retrato (também conhecido como remoção de fundo) pode ser realizado com o seguinte trecho 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' ])
A imagem de saída com o fundo removido é:
O ajuste fino e a avaliação também podem ser feitos com mais algumas linhas de código para configurar o conjunto de dados de treinamento e o treinador, com o trabalho pesado de treinamento e avaliação de um modelo encapsulado na implementação de traner.train()
e trainer.evaluate()
interfaces.
Por exemplo, o modelo base gpt3 (1.3B) pode ser ajustado com o conjunto de dados de poesia chinesa, resultando em um modelo que pode ser usado para geração de poesia chinesa.
> >> 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 ()
Uma interface de usuário unificada e concisa é abstraída para diferentes tarefas e diferentes modelos. As inferências e o treinamento do modelo podem ser implementados com apenas 3 e 10 linhas de código, respectivamente. É conveniente para os usuários explorarem modelos em diferentes campos na comunidade ModelScope. Todos os modelos integrados ao ModelScope estão prontos para uso, o que facilita a introdução à IA, tanto em ambientes educacionais quanto industriais.
ModelScope oferece uma experiência de desenvolvimento e aplicação centrada em modelo. Ele agiliza o suporte para treinamento, inferência, exportação e implantação de modelos e facilita aos usuários a construção de seus próprios MLOps com base no ecossistema ModelScope.
Para o processo de inferência e treinamento de modelo, um design modular é implementado e uma variedade de implementações de módulos funcionais são fornecidas, o que é conveniente para os usuários personalizarem sua própria inferência de modelo, treinamento e outros processos.
Para treinamento de modelos distribuídos, especialmente para modelos grandes, ele fornece suporte rico em estratégias de treinamento, incluindo dados paralelos, modelos paralelos, paralelos híbridos e assim por diante.
A Biblioteca ModelScope atualmente oferece suporte a estruturas populares de aprendizado profundo para treinamento e inferência de modelos, incluindo PyTorch, TensorFlow e ONNX. Todas as versões são testadas e executadas em Python 3.7+, Pytorch 1.8+, Tensorflow1.15 ou Tensorflow2.0+.
Para permitir o uso imediato de todos os modelos no ModelScope, imagens oficiais do docker são fornecidas para todas as versões. Com base na imagem do Docker, os desenvolvedores podem pular toda a instalação e configuração do ambiente e usá-lo diretamente. Atualmente, a versão mais recente da imagem da CPU e da imagem da GPU pode ser obtida em:
Imagem da janela de encaixe da 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
Imagem da janela de encaixe da 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
Também é possível configurar o ambiente ModelScope local usando pip e conda. ModelScope oferece suporte a python3.7 e superior. Sugerimos anaconda para criar ambiente python local:
conda create -n modelscope python=3.8
conda activate modelscope
PyTorch ou TensorFlow podem ser instalados separadamente de acordo com os requisitos de cada modelo.
Depois de instalar a estrutura de aprendizado de máquina necessária, você pode instalar a biblioteca modelscope da seguinte maneira:
Se você quiser apenas brincar com a estrutura do modelscope, ou experimentar o download do modelo/conjunto de dados, você pode instalar os componentes principais do modelscope:
pip install modelscope
Se você quiser usar modelos multimodais:
pip install modelscope[multi-modal]
Se você quiser usar modelos de PNL:
pip install modelscope[nlp] -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html
Se você quiser usar modelos cv:
pip install modelscope[cv] -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html
Se você quiser usar modelos de áudio:
pip install modelscope[audio] -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html
Se você quiser usar modelos científicos:
pip install modelscope[science] -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html
Notes
:
Atualmente, alguns modelos de tarefas de áudio suportam apenas ambientes Linux python3.7, tensorflow1.15.4. A maioria dos outros modelos pode ser instalada e usada em Windows e Mac (x86).
Alguns modelos na área de áudio usam a biblioteca de terceiros SoundFile para processamento de arquivos wav. No sistema Linux, os usuários precisam instalar manualmente o libsndfile do SoundFile (link doc). No Windows e MacOS, ele será instalado automaticamente sem operação do usuário. Por exemplo, no Ubuntu, você pode usar os seguintes comandos:
sudo apt-get update
sudo apt-get install libsndfile1
Alguns modelos em visão computacional precisam de mmcv completo, você pode consultar o guia de instalação do mmcv, uma instalação mínima é a seguinte:
pip uninstall mmcv # if you have installed mmcv, uninstall it
pip install -U openmim
mim install mmcv-full
Fornecemos documentações adicionais, incluindo:
Este projeto está licenciado sob a licença Apache (versão 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}
}