Suchen

Definition Was ist Pyro?

| Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel

Pyro ist eine probabilistische Programmiersprache, die ursprünglich von Uber entwickelt wurde. Sie ist frei verfügbar, in Python geschrieben und mittlerweile ein Inkubationsprojekt der Linux Foundation Deep Learning. Mithilfe von Pyro lassen sich berechenbare Wahrscheinlichkeitsverteilungen mit Deep Learning abbilden.

Firma zum Thema

(Bild: © aga7ta - stock.adobe.com )

Bei Pyro handelt es sich um eine Sprache für die sogenannte probabilistische Programmierung. Die Abkürzung für probabilistische Programmiersprachen lautet PPL. Ursprünglich wurde Pyro von Uber entwickelt. Mittlerweile ist sie mit Open-Source-Lizenz frei verfügbar und wird von der Linux Foundation Deep Learning (LF DL) als Inkubationsprojekt weiterentwickelt. Pyro ist in Python geschrieben und basiert auf der freien Bibliothek für maschinelles Lernen PyTorch.

Ziel der probabilistischen Programmiersprache ist es, berechenbare Wahrscheinlichkeitsverteilungen innerhalb des Deep Learnings abzubilden. Hierfür verbindet Pyro das moderne Deep Learning mit der Bayesschen Modellierung, eine besondere Form der Wahrscheinlichkeitsberechnung. Besondere Merkmale von Pyro sind die gute Skalierbarkeit und hohe Flexibilität. Die Programmiersprache kann auch mit großen Datenmengen umgehen. Verfügbar ist sie über GitHub. Sie hat aktuell (Stand 2019) noch Beta-Status. Neben Uber zählen namhafte Forschungseinrichtungen und große Unternehmen wie IBM oder Siemens zu den Anwendern der PPL.

Die Designprinzipien von Pyro

Ziel von Pyro ist es, Wahrscheinlichkeiten und Überzeugungen in Vorhersagen und Entscheidungen von KI-Systemen zu integrieren. Die KI-Systeme bekommen dadurch ein gewisses Verständnis dafür, wann Vorhersagen oder Entscheidungen angezweifelt werden können. Hierfür versucht Pyro unter Nutzung der quelloffenen Deep-Learning-Bibliothek PyTorch Deep Learning und die sogenannte Bayessche Modellierung zu verbinden. In der Entwicklung der Programmiersprache wurden vier grundlegende Designprinzipien verfolgt.

  • Pyro soll allgemeingültig einsetzbar sein und jede berechenbare Wahrscheinlichkeitsverteilung abbilden können
  • Pyro soll gut skalierbar sein und große Datenmengen mit geringem Overhead effizient verarbeiten
  • Pyro soll aus einem kleinen, minimalistischen Core mächtiger Abstraktionsfunktionen bestehen
  • Pyro soll flexibel sowohl automatisiert als auch überwacht und kontrolliert einsetzbar sein

Pyro und die Linux Foundation

Pyro wurde als offizielles Inkubationsprojekt von der Linux Foundation Deep Learning (LF DL) aufgenommen. Durch die Bereitstellung finanzieller Mittel und die Unterstützung in den Bereichen Forschung und Infrastruktur fördert die LF DL das Projekt. Erklärtes Ziel der LF DL ist es, Open-Source-Projekte im Umfeld des Maschinellen Lernens (ML) und der Künstlichen Intelligenz (KI) voranzutreiben. Neben Pyro sind unter anderem Elastic Deep Learning und Angel ML Inkubationsprojekte der Linux Foundation Deep Learning.

Grundsätzliches zur probabilistischen Programmierung

Die probabilistische Programmierung ermöglicht es, Wahrscheinlichkeitsmodelle und -berechnungen in Programmen abzubilden. Die Programmierung verwendet die hierfür notwendigen Algorithmen, um die Probleme der Wahrscheinlichkeitsverteilung in probabilistische Modelle zu übertragen. Diese Modelle werden von den probabilistischen Programmen analysiert und die Ergebnisse in die jeweiligen Problemstellungen integriert. Ziel der probabilistischen Modelle ist es, Anwendern ohne spezielles Know-how im Bereich der Wahrscheinlichkeitsverteilung Analysen zu ermöglichen. Probabilistische Programme arbeiten mit probabilistischen Operatoren und zufällig nach einer bestimmten Wahrscheinlichkeitsverteilung ausgewählten Werten. Im Gegensatz zu „normalen“ Programmen bilden keine konkreten Eingabewerte, sondern zufällig gewählte Werte die Grundlage des Programmablaufs. Inferenzalgorithmen führen die Berechnungen durch.

Der Bayessche Wahrscheinlichkeitsbegriff und Bayessche Statistik

Der Bayessche Wahrscheinlichkeitsbegriff ist nach dem englischen Mathematiker Thomas Bayes benannt. Das Besondere an diesem Wahrscheinlichkeitsbegriff ist, dass Wahrscheinlichkeiten als ein bestimmter Grad einer persönlichen Überzeugung und nicht nach relativen Häufigkeiten interpretiert werden. Aus dem Bayessche Wahrscheinlichkeitsbegriff leiten sich die Bayessche Statistik, Bayessche Modellierung und Bayessche Inferenz ab. Die Ergebnisse Bayesscher und klassischer Statistiken können sich unterscheiden. Im Gegensatz zur klassischen Statistik benötigt die Bayessche Statistik keine riesige auf wiederholbaren Zufallsexperimenten basierende Datenbasis. Allerdings ist die Berechnung aufwendiger und benötigt die Rechenleistung moderner Computer.

Pyro und Uber

Pyro wurde ursprünglich von Uber entwickelt. Uber bietet weltweit Online-Vermittlungsservices zur Personenbeförderung an. In diesem Bereich sind Verfahren für verlässliche Vorhersagen und ein optimiertes Zusammenspiel zwischen Fahrern und zu befördernden Personen notwendig. Es müssen beispielsweise die passenden Kombinationen zwischen Fahrern und Fahrgästen oder optimale Verbindungen gefunden werden. Um diese Herausforderungen zu meistern, setzt Uber Verfahren und Programme der Künstlichen Intelligenz ein. Pyro soll als probabilistische Programmiersprache den Faktor der menschlich basierten Unsicherheit als Wahrscheinlichkeitsverteilung in diese Verfahren integrieren. Auf Basis dieser Verfahren getroffene Entscheidungen haben zwar eine gewisse Unsicherheit, benötigen aber eine weitaus kleinere Datenbasis. Die Uber AI Labs haben die probabilistische Programmiersprache Pyro entworfen, um sie zum einen für eigene Anwendungen zu verwenden und zum anderen die Technik generell voranzutreiben, indem sie anderen Anwendern verfügbar gemacht wird.

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de (ID: 46015113)

Über den Autor