O FastDeploy é uma ferramenta de código aberto desenvolvida pela equipe do PaddlePaddle que se concentra na implantação rápida de modelos de aprendizagem profunda. Ela é compatível com uma variedade de hardwares e estruturas, abrangendo mais de 20 cenários, como imagem, vídeo, texto e fala, e contém mais de 150 modelos convencionais. O FastDeploy oferece soluções de implantação prontas para uso em ambientes de produção, simplifica o processo de desenvolvimento e melhora o desempenho da inferência. Ele é compatível com a implantação da nuvem em dispositivos móveis e de borda, e é adequado para empresas e desenvolvedores implementarem rapidamente aplicativos de IA. O projeto está licenciado sob o Apache-2.0, tem uma comunidade ativa, está bem documentado e é adequado para desenvolvedores que buscam uma implantação eficiente.
Lista de funções
- Suporte a vários hardwares: incluindo GPU NVIDIA, Kunlun XPU, Rise NPU, RK3588, etc., adaptando-se a uma variedade de chips.
- Suporte a vários modelos: abrange mais de 20 cenários, como classificação de imagens, detecção de alvos, OCR, síntese de fala etc., com suporte a mais de 150 modelos.
- Aceleração eficiente da inferência: oferece suporte à quantificação (por exemplo, W8A16, FP8), decodificação especulativa, várias opções de codificação e de análise de dados. token tecnologias como a previsão.
- Pronto para uso em ambientes de produção: suporte vLLM e APIs OpenAI para simplificar a implantação de serviços.
- Visual Deployment: combinado com o VisualDL, ele oferece suporte à modificação da configuração do modelo, ao monitoramento do desempenho e ao gerenciamento de serviços.
- Implementação em várias plataformas: suporta implementação na nuvem, em dispositivos móveis, em dispositivos de borda e na Web.
- Opções flexíveis de compilação: os desenvolvedores podem escolher o módulo de back-end de acordo com suas necessidades para reduzir o consumo de recursos.
Usando a Ajuda
Processo de instalação
O FastDeploy fornece métodos de instalação Python e C++, adequados a diferentes necessidades de desenvolvimento. A seguir, um exemplo de instalação do Python, com base em um sistema Ubuntu. Você precisa se certificar de que o Python 3.6+ e suas dependências estejam instalados em seu sistema.
- Preparação do ambiente
Instale as dependências necessárias:sudo apt update sudo apt install -y python3 python3-dev python3-pip gcc python3-opencv python3-numpy
Recomenda-se isolar as dependências usando um ambiente virtual, como o conda:
conda create -n fastdeploy python=3.8
conda activate fastdeploy
- Instalando o PaddlePaddle
O FastDeploy depende da estrutura do PaddlePaddle para instalar a versão de desenvolvimento:python -m pip install paddlepaddle==0.0.0 -f https://www.paddlepaddle.org.cn/whl/linux/cpu-mkl/develop.html
- Instalação do FastDeploy
Os pacotes pré-compilados podem ser instalados via pip:pip install fastdeploy-python -f https://www.paddlepaddle.org.cn/whl/fastdeploy.html
ou compilado a partir do código-fonte:
git clone https://github.com/PaddlePaddle/FastDeploy.git cd FastDeploy/python export ENABLE_ORT_BACKEND=ON export ENABLE_PADDLE_BACKEND=ON export ENABLE_VISION=ON python setup.py build python setup.py bdist_wheel pip install dist/fastdeploy_python-*-linux_x86_64.whl
Se estiver compilando um dispositivo como o RK3588, será necessário definir o parâmetro
ENABLE_RKNPU2_BACKEND=ON
responder cantandoRKNN2_TARGET_SOC=RK3588
. - Verificar a instalação
Após a instalação, execute o código de amostra para verificar:import fastdeploy print(fastdeploy.__version__)
Função Fluxo de operação
1. implantação do modelo
O FastDeploy suporta a implantação de vários modelos com um único clique. Tome o modelo de detecção de alvos como exemplo e execute o modelo PaddleDetection:
from fastdeploy.vision import detection
model = detection.PaddleDetectionModel(
model_file="ppyoloe_crn_l_300e_coco/model.pdmodel",
params_file="ppyoloe_crn_l_300e_coco/model.pdiparams",
config_file="ppyoloe_crn_l_300e_coco/infer_cfg.yml"
)
result = model.predict("000000014439.jpg")
print(result)
Os usuários precisam fazer o download dos arquivos do modelo (por exemplo ppyoloe_crn_l_300e_coco.tgz
) e descompactados, os arquivos estão disponíveis no link oficial.
2. adaptação de hardware
O FastDeploy oferece suporte a várias implementações de hardware. Por exemplo, a implementação no RK3588:
cd demos/vision/detection/paddledetection/rknpu2/python
python infer.py --model_file picodet_s_416_coco_lcnet_rk3588.rknn \
--config_file picodet_s_416_coco_lcnet/infer_cfg.yml \
--image 000000014439.jpg
Certifique-se de que o driver correspondente (por exemplo, rknpu2) esteja instalado no dispositivo.
3. raciocínio acelerado
O FastDeploy oferece várias técnicas de aceleração. Por exemplo, são usadas técnicas de quantificação (W8A16):
model.enable_quantization("W8A16")
ou ativar a decodificação especulativa:
model.enable_speculative_decoding()
Esses recursos melhoram significativamente a velocidade de inferência e são adequados para cenários exigentes de alto desempenho.
4. implantação visual
Em conjunto com o VisualDL, os usuários podem gerenciar modelos por meio de uma interface da Web:
- Inicie o serviço VisualDL:
visualdl --model-dir model_path --host 0.0.0.0 --port 8040
- Acessado em um navegador
http://localhost:8040
Ajustar as configurações do modelo, monitorar o desempenho.
5. suporte à documentação
O FastDeploy fornece documentação detalhada na seção <FastDeploy>/docs
ou no repositório do GitHub. Os usuários podem consultar:
- Lista de suporte a modelos:
<FastDeploy>/docs/supported_models.md
- Guia de adaptação de hardware:
<FastDeploy>/docs/cn/build_and_install
advertência
- Certifique-se de que os drivers de hardware estejam instalados, como o driver rknpu2 para o RK3588.
- Memória insuficiente pode causar falha na compilação; é recomendável adicionar pelo menos uma partição de troca de 4 GB ao RK3588.
- O projeto é atualizado com frequência, portanto, é recomendável verificar regularmente o GitHub para obter a versão mais recente.
cenário do aplicativo
- Segurança inteligente
O FastDeploy implementa modelos de detecção de alvos e reconhecimento facial para sistemas de monitoramento. Os desenvolvedores podem executar rapidamente modelos PaddleDetection em dispositivos de borda, como o RK3588, para detectar comportamentos anômalos em tempo real. - varejo inteligente
Oferece suporte a OCR e modelos de classificação de imagens para contagem de tráfego e identificação de produtos. Os varejistas podem implementar modelos em dispositivos móveis para analisar o comportamento do cliente por meio do FastDeploy. - automação industrial
Use o FastDeploy para implementar modelos de segmentação de imagens em linhas de produção para verificar a qualidade do produto. Oferece suporte a várias adaptações de hardware para ambientes complexos de fábrica. - interação por voz
Implante modelos de síntese de fala para atendimento inteligente ao cliente ou assistentes de voz. A tecnologia de previsão de vários tokens do FastDeploy aumenta a velocidade da geração de fala.
QA
- Qual é o hardware suportado pelo FastDeploy?
Suporta GPU NVIDIA, Kunlun XPU, Rise NPU, RK3588, GPU Iluvatar, etc. Alguns hardwares, como a GPU MetaX, estão sendo adaptados. - Como faço para alternar os back-ends de inferência?
Ao definir uma variável de ambiente (por exemploENABLE_ORT_BACKEND=ON
) ou especificar o backend no código (por exemplomodel.set_backend("paddle")
) Troca de mecanismos de inferência. - O FastDeploy oferece suporte à implementação na Web?
Sim, a implantação de applets e da Web é compatível com o Paddle.js, consulte<FastDeploy>/docs/web_deployment.md
. - O que devo fazer se estiver sentindo falta de memória?
O número de tarefas pode ser limitado no momento da compilação (por exemplopython setup.py build -j 4
) ou adicionar uma partição de troca ao dispositivo.