FastDeploy ist ein Open-Source-Tool, das vom PaddlePaddle-Team entwickelt wurde und sich auf die schnelle Bereitstellung von Deep-Learning-Modellen konzentriert. Es unterstützt eine Vielzahl von Hardware und Frameworks, deckt mehr als 20 Szenarien wie Bild, Video, Text und Sprache ab und enthält mehr als 150 Mainstream-Modelle.FastDeploy bietet sofort einsatzbereite Lösungen für Produktionsumgebungen, vereinfacht den Entwicklungsprozess und verbessert die Inferenzleistung. Es unterstützt die Bereitstellung von der Cloud bis hin zu mobilen und Edge-Geräten und ist für Unternehmen und Entwickler geeignet, um KI-Anwendungen schnell zu implementieren. Das Projekt ist unter Apache-2.0 lizenziert, hat eine aktive Community, ist gut dokumentiert und eignet sich für Entwickler, die eine effiziente Bereitstellung anstreben.
Funktionsliste
- Unterstützung mehrerer Hardware: einschließlich NVIDIA GPU, Kunlun XPU, Rise NPU, RK3588 usw., die sich an eine Vielzahl von Chips anpassen.
- Unterstützung mehrerer Modelle: für mehr als 20 Szenarien wie Bildklassifizierung, Zielerkennung, OCR, Sprachsynthese usw., mit Unterstützung von über 150 Modellen.
- Effiziente Inferenzbeschleunigung: Unterstützung der Quantisierung (z. B. W8A16, FP8), spekulative Dekodierung, mehrere Token Technologien wie die Vorhersage.
- Sofort einsatzbereit für Produktionsumgebungen: Unterstützung vLLM und OpenAI-APIs, um die Bereitstellung von Diensten zu vereinfachen.
- Visual Deployment: In Kombination mit VisualDL unterstützt es die Änderung der Modellkonfiguration, die Leistungsüberwachung und das Servicemanagement.
- Plattformübergreifende Bereitstellung: Unterstützt Cloud-, Mobil-, Edge-Device- und Web-Bereitstellung.
- Flexible Kompilierungsoptionen: Entwickler können das Backend-Modul nach ihren Bedürfnissen auswählen, um den Ressourcenverbrauch zu reduzieren.
Hilfe verwenden
Einbauverfahren
FastDeploy bietet Python- und C++-Installationsmethoden, die für unterschiedliche Entwicklungsanforderungen geeignet sind. Im Folgenden finden Sie ein Beispiel für eine Python-Installation, die auf einem Ubuntu-System basiert. Sie müssen sicherstellen, dass Python 3.6+ und seine Abhängigkeiten auf Ihrem System installiert sind.
- Vorbereiten der Umgebung
Installieren Sie die erforderlichen Abhängigkeiten:sudo apt update sudo apt install -y python3 python3-dev python3-pip gcc python3-opencv python3-numpy
Es wird empfohlen, Abhängigkeiten mit Hilfe einer virtuellen Umgebung wie conda zu isolieren:
conda create -n fastdeploy python=3.8
conda activate fastdeploy
- Installieren von PaddlePaddle
FastDeploy stützt sich auf das PaddlePaddle-Framework, um die Entwicklungsversion zu installieren:python -m pip install paddlepaddle==0.0.0 -f https://www.paddlepaddle.org.cn/whl/linux/cpu-mkl/develop.html
- Installation von FastDeploy
Vorkompilierte Pakete können über pip installiert werden:pip install fastdeploy-python -f https://www.paddlepaddle.org.cn/whl/fastdeploy.html
oder aus dem Quellcode kompiliert:
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
Wenn Sie ein Gerät wie den RK3588 kompilieren, müssen Sie die Option
ENABLE_RKNPU2_BACKEND=ON
im Gesang antwortenRKNN2_TARGET_SOC=RK3588
. - Überprüfen der Installation
Führen Sie nach der Installation den Beispielcode aus, um ihn zu überprüfen:import fastdeploy print(fastdeploy.__version__)
Funktion Betriebsablauf
1. der Einsatz des Modells
FastDeploy unterstützt die Bereitstellung mehrerer Modelle mit einem einzigen Klick. Nehmen Sie das Zielerkennungsmodell als Beispiel und führen Sie das Modell "PaddleDetection" aus:
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)
Die Benutzer müssen die Modelldateien herunterladen (z. B. ppyoloe_crn_l_300e_coco.tgz
) und entpacken Sie es, die Dateien sind über den offiziellen Link verfügbar.
2. die Anpassung der Hardware
FastDeploy unterstützt mehrere Hardware-Einsätze. Zum Beispiel die Bereitstellung auf 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
Stellen Sie sicher, dass der entsprechende Treiber (z. B. rknpu2) auf dem Gerät installiert ist.
3. beschleunigte Argumentation
FastDeploy bietet eine Vielzahl von Beschleunigungstechniken. So werden zum Beispiel Quantisierungstechniken verwendet (W8A16):
model.enable_quantization("W8A16")
oder die spekulative Dekodierung aktivieren:
model.enable_speculative_decoding()
Diese Funktionen verbessern die Inferenzgeschwindigkeit erheblich und eignen sich für anspruchsvolle Hochleistungsszenarien.
4. visueller Einsatz
In Verbindung mit VisualDL können Benutzer Modelle über eine Webschnittstelle verwalten:
- Starten Sie den VisualDL-Dienst:
visualdl --model-dir model_path --host 0.0.0.0 --port 8040
- Zugriff über einen Browser
http://localhost:8040
, Abstimmung der Modellkonfigurationen, Überwachung der Leistung.
5. die Unterstützung der Dokumentation
FastDeploy bietet eine ausführliche Dokumentation in der <FastDeploy>/docs
Verzeichnis oder GitHub-Repository. Benutzer können sich auf:
- Liste der unterstützten Modelle:
<FastDeploy>/docs/supported_models.md
- Leitfaden zur Hardware-Anpassung:
<FastDeploy>/docs/cn/build_and_install
caveat
- Vergewissern Sie sich, dass Hardwaretreiber installiert sind, z. B. der rknpu2-Treiber für die RK3588.
- Bei unzureichendem Speicher kann die Kompilierung fehlschlagen. Es wird empfohlen, dem RK3588 mindestens eine 4 GB große Swap-Partition hinzuzufügen.
- Das Projekt wird häufig aktualisiert, daher empfiehlt es sich, regelmäßig auf GitHub nach der neuesten Version zu suchen.
Anwendungsszenario
- Intelligente Sicherheit
FastDeploy setzt Modelle zur Zielerkennung und Gesichtserkennung für Überwachungssysteme ein. Entwickler können PaddleDetection-Modelle schnell auf Edge-Geräten wie dem RK3588 ausführen, um anomales Verhalten in Echtzeit zu erkennen. - intelligenter Einzelhandel
Unterstützt OCR- und Bildklassifizierungsmodelle zur Verkehrszählung und Produktidentifizierung. Einzelhändler können Modelle auf mobilen Geräten einsetzen, um das Kundenverhalten mit FastDeploy zu analysieren. - Industrieautomatisierung
Verwenden Sie FastDeploy, um Bildsegmentierungsmodelle in Produktionslinien zur Überprüfung der Produktqualität einzusetzen. Unterstützt mehrere Hardwareanpassungen für komplexe Fabrikumgebungen. - Sprachinteraktion
Stellen Sie Sprachsynthesemodelle für intelligenten Kundenservice oder Sprachassistenten bereit. Die Multi-Token-Vorhersagetechnologie von FastDeploy verbessert die Geschwindigkeit der Spracherzeugung.
QA
- Welche Hardware wird von FastDeploy unterstützt?
Unterstützung von NVIDIA GPU, Kunlun XPU, Rise NPU, RK3588, Iluvatar GPU usw. Einige Hardware wie MetaX GPU wird gerade angepasst. - Wie wechsle ich das Inferenz-Backend?
Durch Setzen einer Umgebungsvariablen (z. B.ENABLE_ORT_BACKEND=ON
) oder das Backend im Code angeben (z. B.model.set_backend("paddle")
) Umschalten der Inferenzmaschinen. - Unterstützt FastDeploy die Webbereitstellung?
Ja, die Bereitstellung von Web- und Applets wird über Paddle.js unterstützt, siehe<FastDeploy>/docs/web_deployment.md
. - Was sollte ich tun, wenn ich unter Gedächtnisschwund leide?
Die Anzahl der Tasks kann zur Kompilierzeit begrenzt werden (z. B.python setup.py build -j 4
), oder fügen Sie eine Swap-Partition auf dem Gerät hinzu.