Für welche Programmiersprache werden Sie sich im Jahr 2022 entscheiden?
Vor ein paar Jahren gab es ein Sprichwort, dass Julia Python ersetzen und zu einer der neuen beliebtesten Programmiersprachen werden würde. Wir stehen dieser Aussage vorerst noch abwartend gegenüber, aber als leistungsstarkes Werkzeug im wissenschaftlichen Rechnen sind die Vorteile von Julia bereits deutlich geworden, was bedeutet, dass Programmierer eine weitere Wahl haben.
Wenn wir Julia und Python in den Bereichen Datenwissenschaft, künstliche Intelligenz usw. sorgfältig vergleichen, werden wir Folgendes feststellen: Die gleichen Aufgaben, die Python erfüllen kann, kann auch Julia erledigen, und es ist viel effizienter und die Syntax ist prägnant und elegant, aber in Bezug auf die Verbreitung ist es nicht so bekannt wie Python.
Kürzlich sorgte ein heißer Beitrag auf reddit für große Diskussionen unter Internetnutzern. In diesem Beitrag wurde erwähnt, dass einige Entwickler des Julia-Sprachpakets kürzlich den aktuellen Status von ML in Julia diskutierten und seinen Status mit dem Python-ML-Ökosystem verglichen wurde gemacht.
Ursprüngliche Postadresse:
https://www.reddit.com/r/MachineLearning/comments/s1zj44/r_julia_developers_discuss_the_current_state_of/
Jordi Bolibar von der Universität Utrecht glaubt, dass „Julia tatsächlich in der. Maschine ist.“ Hat Das Potenzial zum Lernen ist riesig, aber der aktuelle Status ist etwas gemischt. Der Hauptgrund, warum ich für SciML bei Julia bleibe, ist, dass die Bibliothek DifferentialEquations.jl sehr gut funktioniert, ich aber nichts Ähnliches in Python gefunden habe. Das eigentliche Problem bei meiner Recherche ist jedoch der AD-Teil. Seitdem ich Julia verwende, sind mir zwei Fehler aufgefallen, die meine Arbeit für einige Monate verlangsamt haben. Ich denke, Julia ist die beste Wahl für SciML, aber diese Bibliotheken (und ihre Dokumentation). ) sollte optimiert werden, um benutzerfreundlicher zu sein.“
Netizen @jgreener64 sagte: „ML in Julia ist in einigen Bereichen sehr mächtig erfordert viel vorhandenes Wissen oder viel Zeit für Suchen/Ausprobieren. Auf persönlicher Ebene entwickle ich derzeit in Julia neuartige differenzierbare Algorithmen. Der Julia-Softwarepaketentwickler Christopher Rackauckas beantwortete die folgenden sieben Fragen, die den Internetnutzern am meisten Sorgen bereiten. Rackauckas ist Mathematiker und Pharmakologe am MIT und an der University of Maryland und nutzt Julia hauptsächlich zum Programmieren. Rackauckas hat einen eigenen Blog für Julia, Mathematik und stochastische Biologie eröffnet, um verwandte Inhalte vorzustellen, und Rackauckas hat einige Bibliotheken in Julia entwickelt, darunter (aber nicht beschränkt auf) DifferentialEquations.jl und Pumas.
Christopher RackauckasWo strahlt ML heute wirklich in Julia? Inwiefern wird dieses Ökosystem in naher Zukunft andere beliebte ML-Frameworks (z. B. PyTorch, Flax usw.) übertreffen und warum?
Was sind die aktuellen Defizite von Julias ML-Ökosystem in Bezug auf Funktionalität oder Leistung? Wann wird Julia in diesen Bereichen wettbewerbsfähig sein?Frage 3: Wie schneidet Julia in „Standard ML“ ab?
Julias Kerngeschwindigkeit ist großartig: Auf der CPU schneiden wir wirklich gut ab, auf der GPU ruft jeder einfach das gleiche cudnn usw. auf. Julias AD-Geschwindigkeit ist ebenfalls großartig. Zygote hat zwar einen gewissen Overhead, aber im Vergleich zu Jax/PyTorch/TensorFlow ist Zygote in den meisten Fällen schnell. Insbesondere ist der PyTorch-Overhead viel höher und kann nicht einmal in Standard-ML-Workflows gemessen werden. Eine ausreichend große Matrixmultiplikation löst das Zuordnungsproblem oder andere O(n)-Probleme; Julia führt keine Fusion von Kerneln durch, sodass der Benutzer in den meisten Benchmarks feststellen wird, dass es keine Conv- oder RNN-Cudnn-Aufrufe fusioniert.
Frage 4: Welche wichtigen Experimente und Benchmarks sollten wir verfolgen?
XLAs verteilter Scheduler ist sehr gut. Wenn wir über Skalierung nachdenken, sollten wir PyTorch ignorieren und an DaggerFlux und TensorFlow/Jax denken. XLA verfügt über mehr Flexibilität bei der Änderung von Abläufen, daher denke ich, dass XLA der Gewinner ist und wir den E-Graph-Trick anwenden müssen, um dies zu erreichen. Zu beachten ist auch der „fehlende Mittelteil bei der automatischen Differenzierung“, der noch gelöst werden muss.
Frage 7: Welche Softwarepakete werden empfohlen?
Ich neige dazu, bei Bedarf Flux zu verwenden, aber jeder sollte versuchen, DiffEqFlux zu verwenden. Was die vorhandenen Kernel angeht, ist Flux der vollständigste, aber sein Stil langweilt mich. Ich hätte gerne einen Flux, der keine impliziten, sondern explizite Parameter verwendet. Ich möchte, dass diese Parameter durch ComponentArrays dargestellt werden.
Das obige ist der detaillierte Inhalt vonEntwickler nehmen persönlich teil: Welche ist im Vergleich zur Julia-Sprache und Python für maschinelles Lernen besser?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!