6 besten Programmiersprachen für die KI-Entwicklung

KI (Künstliche Intelligenz) eröffnet Anwendungsentwicklern eine Welt voller Möglichkeiten. Durch die Nutzung von maschinellem Lernen oder Deep Learning können Sie weitaus bessere Benutzerprofile, Personalisierungen und Empfehlungen erstellen oder eine intelligentere Suche, eine Sprachschnittstelle oder intelligente Unterstützung integrieren oder Ihre App auf verschiedene andere Arten verbessern. Sie können sogar Anwendungen erstellen, die Situationen sehen, hören und darauf reagieren, die Sie nie erwartet haben.

Welche Programmiersprache sollten Sie lernen, um die Tiefen der KI auszuloten? Natürlich möchten Sie eine Sprache mit vielen guten Bibliotheken für maschinelles Lernen und tiefes Lernen. Es sollte auch eine gute Laufzeitleistung, gute Tools-Unterstützung, eine große Community von Programmierern und ein gesundes Ökosystem unterstützender Pakete bieten. Das ist eine lange Liste von Anforderungen, aber es gibt immer noch viele gute Optionen. 

Hier sind meine Tipps für die sechs besten Programmiersprachen für die KI-Entwicklung sowie zwei ehrenwerte Erwähnungen. Einige dieser Sprachen sind auf dem Vormarsch, während andere abrutschen. Wieder andere müssen Sie nur kennen, wenn Sie sich für historische Deep-Learning-Architekturen und -Anwendungen interessieren. Mal sehen, wie sie sich alle stapeln. 

Python

Bei Nummer eins ist es immer noch Python. Wie konnte es eigentlich noch etwas sein? Während es verrückte Dinge an Python gibt, werden Sie Python mit ziemlicher Sicherheit irgendwann verwenden, wenn Sie KI-Arbeit leisten. Und einige der rauen Stellen haben sich etwas geglättet.

Auf dem Weg ins Jahr 2020 wird das Problem von Python 2.x im Vergleich zu Python 3.x immer strittiger, da fast jede größere Bibliothek Python 3.x unterstützt und die Python 2.x-Unterstützung so bald wie möglich einstellt. Mit anderen Worten, Sie können endlich alle neuen Sprachfunktionen ernsthaft nutzen.

Und während Pythons Verpackungs-Albträume - in denen jede andere Lösung auf etwas andere Weise kaputt geht - immer noch vorhanden sind, können Sie Anaconda in etwa 95% der Fälle verwenden und sich nicht zu viele Sorgen machen. Trotzdem wäre es schön, wenn die Python-Welt dieses langjährige Problem ein für alle Mal beheben würde.

Trotzdem sind die in Python verfügbaren Mathematik- und Statistikbibliotheken in anderen Sprachen so gut wie einzigartig. NumPy ist so allgegenwärtig geworden, dass es fast eine Standard-API für Tensoroperationen ist, und Pandas bringt die leistungsstarken und flexiblen Datenrahmen von R in Python. Für die Verarbeitung natürlicher Sprache (NLP) haben Sie das ehrwürdige NLTK und das blitzschnelle SpaCy. Für maschinelles Lernen gibt es das kampferprobte Scikit-Lernen. Und wenn es um Deep Learning geht, sind alle aktuellen Bibliotheken (TensorFlow, PyTorch, Chainer, Apache MXNet, Theano usw.) effektiv Python-First-Projekte.

Wenn Sie hochmoderne Deep-Learning-Forschung zu arXiv lesen, finden Sie die meisten Studien, die Quellcode anbieten, in Python. Dann gibt es die anderen Teile des Python-Ökosystems. Während IPython zu Jupyter Notebook und weniger Python-zentriert geworden ist, werden Sie immer noch feststellen, dass die meisten Benutzer von Jupyter Notebooks und die meisten online freigegebenen Notebooks Python verwenden. In Bezug auf die Bereitstellung von Modellen bedeutet das Aufkommen von Microservice-Architekturen und -Technologien wie Seldon Core, dass es heutzutage sehr einfach ist, Python-Modelle in der Produktion bereitzustellen.

Daran führt kein Weg vorbei. Python ist die Sprache an der Spitze der KI-Forschung, diejenige, für die Sie die meisten Frameworks für maschinelles Lernen und tiefes Lernen finden und die fast jeder in der KI-Welt spricht. Aus diesen Gründen gehört Python zu den ersten AI-Programmiersprachen, obwohl Ihr Autor die Whitespace-Probleme mindestens einmal am Tag verflucht.

Zugehöriges Video: Maschinelles Lernen und KI entschlüsselt

Unser Panel durchbricht den Hype um maschinelles Lernen und künstliche Intelligenz und spricht über die Definitionen und Implikationen der Technologie.

C ++

Es ist unwahrscheinlich, dass C ++ Ihre erste Wahl ist, wenn Sie eine KI-Anwendung entwickeln, aber wenn Sie dem System die letzte Leistung abnehmen müssen - ein Szenario, das immer häufiger auftritt, wenn Deep Learning an den Rand tritt und Sie Ihre Modelle ausführen müssen Systeme mit eingeschränkten Ressourcen - es ist Zeit, wieder in die schreckliche Welt der Zeiger zurückzukehren.

Zum Glück kann modernes C ++ angenehm zu schreiben sein (ehrlich!). Sie haben die Wahl zwischen verschiedenen Ansätzen. Sie können entweder am Ende des Stapels eintauchen und Bibliotheken wie Nvidias CUDA verwenden, um Ihren eigenen Code zu schreiben, der direkt auf Ihrer GPU ausgeführt wird, oder Sie können TensorFlow oder PyTorch verwenden, um Zugriff auf flexible APIs auf hoher Ebene zu erhalten. Sowohl mit PyTorch als auch mit TensorFlow können Sie in Python (oder PyTorchs TorchScript-Teilmenge von Python) generierte Modelle laden und direkt in einer C ++ - Laufzeit ausführen, um näher an das Bare Metal für die Produktion heranzukommen und gleichzeitig die Flexibilität bei der Entwicklung zu bewahren.

Kurz gesagt, C ++ wird zu einem wichtigen Bestandteil des Toolkits, da sich KI-Anwendungen auf allen Geräten vom kleinsten eingebetteten System bis zu großen Clustern ausbreiten. KI am Rande bedeutet, dass es nicht mehr ausreicht, um genau zu sein. du musst gut und schnell sein.

Java und andere JVM-Sprachen

Die JVM-Sprachfamilie (Java, Scala, Kotlin, Clojure usw.) ist weiterhin eine gute Wahl für die Entwicklung von KI-Anwendungen. Für alle Teile der Pipeline steht eine Vielzahl von Bibliotheken zur Verfügung, unabhängig davon, ob es sich um die Verarbeitung natürlicher Sprache (CoreNLP), Tensoroperationen (ND4J) oder einen vollständigen GPU-beschleunigten Deep-Learning-Stack (DL4J) handelt. Außerdem erhalten Sie einfachen Zugriff auf Big-Data-Plattformen wie Apache Spark und Apache Hadoop.

Java ist die Verkehrssprache der meisten Unternehmen, und mit den neuen Sprachkonstrukten, die in Java 8 und späteren Versionen verfügbar sind, ist das Schreiben von Java-Code nicht die hasserfüllte Erfahrung, an die sich viele von uns erinnern. Das Schreiben einer KI-Anwendung in Java mag sich langweilig anfühlen, aber es kann die Arbeit erledigen - und Sie können Ihre gesamte vorhandene Java-Infrastruktur für Entwicklung, Bereitstellung und Überwachung verwenden.

JavaScript

Es ist unwahrscheinlich, dass Sie JavaScript ausschließlich zum Schreiben von KI-Anwendungen lernen, aber Googles TensorFlow.js verbessert sich weiter und bietet eine faszinierende Möglichkeit, Ihre Keras- und TensorFlow-Modelle in Ihrem Browser oder über Node.js mithilfe von WebGL für GPU-beschleunigte Berechnungen bereitzustellen.

Eine Sache, die wir seit dem Start von TensorFlow.js nicht wirklich gesehen haben, ist ein riesiger Zustrom von JavaScript-Entwicklern, die in den KI-Raum strömen. Ich denke, das könnte daran liegen, dass das umgebende JavaScript-Ökosystem im Vergleich zu Sprachen wie Python nicht über die Tiefe der verfügbaren Bibliotheken verfügt.

Auf der Serverseite ist die Bereitstellung von Modellen mit Node.js im Gegensatz zu einer der Python-Optionen nicht wirklich vorteilhaft, sodass JavaScript-basierte KI-Anwendungen in naher Zukunft möglicherweise hauptsächlich browserbasiert bleiben. Aber das schafft immer noch viele interessante Möglichkeiten für Spaß wie die Emoji-Schnitzeljagd.

Schnell

In der letztjährigen Version dieses Artikels erwähnte ich, dass Swift eine Sprache ist, die man im Auge behalten sollte. Dieses Jahr bricht es in meine Top 6 ein. Was ist passiert? Schnell für TensorFlow. Eine vollständig typisierte, cruftfreie Bindung der neuesten und besten Funktionen von TensorFlow und Dark Magic, mit der Sie Python-Bibliotheken importieren können, als ob Sie Python überhaupt verwenden würden.

Das Fastai-Team arbeitet an einer Swift-Version seiner beliebten Bibliothek, und uns werden viele weitere Optimierungen beim Generieren und Ausführen von Modellen versprochen, bei denen viele Tensor-Smarts in den LLVM-Compiler verschoben werden. Ist es jetzt produktionsbereit? Nicht wirklich, aber es könnte tatsächlich den Weg zur nächsten Generation der Deep-Learning-Entwicklung weisen. Sie sollten also auf jeden Fall untersuchen, was mit Swift los ist.

R Sprache

R steht am Ende unserer Liste und geht nach unten. R ist die Sprache, die Datenwissenschaftler lieben. Andere Programmierer empfinden R jedoch aufgrund seines datenrahmenorientierten Ansatzes häufig als etwas verwirrend. Wenn Sie eine dedizierte Gruppe von R-Entwicklern haben, kann es sinnvoll sein, die Integrationen mit TensorFlow, Keras oder H2O für Forschung, Prototyping und Experimente zu verwenden. Ich zögere jedoch, R für den Einsatz in der Produktion oder für die Entwicklung auf der grünen Wiese zu empfehlen Leistung und betriebliche Belange. Während Sie performanten R-Code schreiben können, der auf Produktionsservern bereitgestellt werden kann, ist es mit ziemlicher Sicherheit einfacher, diesen R-Prototyp zu nehmen und in Java oder Python neu zu codieren.

Andere AI-Programmieroptionen

Natürlich sind Python, C ++, Java, JavaScript, Swift und R nicht die einzigen Sprachen, die für die AI-Programmierung verfügbar sind. Hier sind zwei weitere Programmiersprachen, die Sie vielleicht interessant oder hilfreich finden, obwohl ich sie nicht als oberste Priorität für das Lernen betrachten würde.

Lua

Vor einigen Jahren war Lua aufgrund des Torch-Frameworks, einer der beliebtesten Bibliotheken für maschinelles Lernen für Forschungs- und Produktionszwecke, in der Welt der künstlichen Intelligenz führend. Wenn Sie sich mit der Geschichte der Deep-Learning-Modelle beschäftigen, finden Sie in alten GitHub-Repositories häufig zahlreiche Verweise auf Torch und viel Lua-Quellcode.

Zu diesem Zweck kann es hilfreich sein, über Kenntnisse der Torch-API zu verfügen, die nicht allzu weit von der Basis-API von PyTorch entfernt ist. Wenn Sie jedoch, wie die meisten von uns, wirklich nicht viel historische Recherche für Ihre Anwendungen durchführen müssen, können Sie wahrscheinlich auskommen, ohne sich um Luas kleine Macken kümmern zu müssen.

Julia

Julia ist eine leistungsstarke Programmiersprache, die sich auf numerisches Rechnen konzentriert und sich daher gut in die mathematikintensive Welt der KI einfügt. Während es derzeit als Sprachwahl nicht allzu beliebt ist, bieten Wrapper wie TensorFlow.jl und Mocha (stark von Caffe beeinflusst) eine gute Unterstützung für tiefes Lernen. Wenn Ihnen das relativ kleine Ökosystem nichts ausmacht und Sie von Julias Fokus auf einfache und schnelle Hochleistungsberechnungen profitieren möchten, ist Julia wahrscheinlich einen Blick wert.