2016-04-08 5 views
2

Ich hoffe, MC-Stan auf Spark zu verwenden, aber es scheint, es gibt keine verwandte Seite von Google gesucht.MC-Stan auf Spark?

Ich frage mich, ob dieser Ansatz sogar auf Spark möglich ist, daher würde ich mich freuen, wenn mir jemand Bescheid geben würde.

Darüber hinaus frage ich mich auch, was ist der weit verbreitete Ansatz, um MCMC auf Spark zu verwenden. Ich hörte Scala ist weit verbreitet, aber ich brauche eine Sprache, die eine anständige MCMC-Bibliothek wie MC-Stan hat.

Antwort

7

Ja, es ist sicherlich möglich, erfordert aber ein bisschen mehr Arbeit. Stan (und bekannte MCMC-Tools, die ich kenne) sind nicht dafür gedacht, in einer verteilten Umgebung, über Spark oder auf andere Weise ausgeführt zu werden. Im Allgemeinen ist verteiltes MCMC ein Bereich der aktiven Forschung. Für eine aktuelle Überprüfung empfehle ich Abschnitt 4 von Patterns of Scalable Bayesian Inference (PoFSBI). Es gibt mehrere Möglichkeiten, wie Sie eine große MCMC-Berechnung aufteilen können, aber ich denke, eine der einfacheren Methoden wäre die Aufteilung der Daten und die Ausführung eines Standard-Tools wie Stan mit demselben Modell auf jeder Partition . Jedes Modell wird eine subposterior produzieren, die zusammen reduziert werden kann, um eine hintere zu bilden. PoFSBI diskutiert mehrere Möglichkeiten, solche Subposteriors zu kombinieren.

Ich habe put together eine sehr grobe Proof of Concept mit Pyspark und Pystan (Python ist die gemeinsame Sprache mit den meisten Stan und Spark-Unterstützung). Es ist eine grobe und begrenzte Implementierung des gewichteten Durchschnittskonsensalgorithmus in PoFSBI, der auf dem winzigen 8-school-Datensatz läuft. Ich denke nicht, dass dieses Beispiel praktisch sehr nützlich wäre, aber es sollte eine Vorstellung davon geben, was notwendig sein könnte, um Stan als Spark-Programm auszuführen: Daten partitionieren, auf jeder Partition stan ausführen, die Unterordner kombinieren.

+0

Ich dachte, das war interessant, so begann ich dies in eine grobe Bibliothek Anpassung: https://github.com/strongh/stark – homer

+0

Das Projekt ist sehr interessant ! Danke für die Antwort, und ich werde die Referenzen durchlesen, die Sie erwähnt haben. – Kim

0

Vielleicht rstan und sparklyr :: spark_apply ist die beste Wahl