Nouvelle interface d'apprentissage automatique "Apache Flink" et module Flink-Python

Dans ce blog, nous examinerons de plus près ** Apache ** Flink 1.9.0, y compris la nouvelle interface d'apprentissage automatique et le module Flink - ** Python **.

Langage de programmation le plus populaire

L'image ci-dessous est le classement du langage de programmation RedMonk.

image.png

Les 10 meilleurs classements de l'image ci-dessus sont basés sur la popularité sur GitHub et Stack Overflow.

Python est à la troisième place. D'autres langages de programmation populaires, R et Go, sont classés respectivement 15e et 16e. Ce classement prestigieux est un bon témoignage de la vaste base de fans de Python. Inclure le support Python dans un projet est un moyen efficace d'augmenter l'audience du projet.

Domaines de tendance de l'industrie Internet

Le Big Data Computing est aujourd'hui l'un des domaines les plus en vogue de l'industrie Internet. L'ère de l'informatique autonome est révolue. La puissance de traitement autonome est loin derrière la croissance des données. Voyons pourquoi le Big Data Computing est l'un des domaines les plus importants de l'industrie Internet.

Augmentation des données à l'ère du Big Data

En raison du développement rapide des technologies de l'information telles que le cloud computing, l'IoT et l'intelligence artificielle, la quantité de données augmente considérablement. L'image ci-dessous montre que la quantité totale de données dans le monde devrait passer de 16,1 ZB à 163 ZB en seulement 10 ans, une augmentation significative du fait qu'un serveur autonome ne peut plus répondre aux exigences de stockage et de traitement des données. Je suis.

image.png

Soit ZB les données de la figure précédente. Ici, je voudrais aborder brièvement les unités statistiques de données par ordre croissant. Bit, octet, Ko, Mo, Go, TB, PB, EB, ZB, YB, BB, NB, DB. Ces unités sont converties comme suit:

Il est naturel de remettre en question la taille des données mondiales et d'en explorer les causes. En fait, j'étais sceptique quand j'ai vu les statistiques. Lorsque j'ai recueilli des informations et les ai recherchées, j'ai constaté que les données mondiales augmentaient certainement rapidement. Par exemple, des millions de photos sont publiées quotidiennement sur Facebook et un TB de données de transaction est créé quotidiennement sur le New York Exchange. Lors de l'événement promotionnel Double 11 de l'année dernière, la valeur de la transaction a atteint un niveau record de 213,5 milliards de yuans, mais derrière ce succès, les journaux de surveillance internes d'Alibaba ont à eux seuls une capacité de traitement des données de 162 Go / s. Les sociétés Internet comme Alibaba contribuent également à la croissance rapide des données, comme le montre le double 11 valeur des transactions au cours de la dernière décennie.

image.png

Valeur des données par l'analyse des données

Sans aucun doute pour explorer la valeur des mégadonnées, l'analyse statistique des mégadonnées peut vous aider à prendre des décisions éclairées. Par exemple, un système de recommandation peut analyser les habitudes d'achat à long terme d'un acheteur et son historique d'achat pour découvrir ce que l'acheteur aime et fournir de meilleures recommandations. Comme mentionné précédemment, un serveur autonome ne peut pas gérer une telle quantité de données. Alors, comment toutes les données peuvent-elles être analysées statistiquement dans un laps de temps limité? À cet égard, nous devons remercier Google d'avoir fourni ces trois documents utiles.

image.png

image.png

Cependant, pour développer des applications MapReduce à l'aide de Hadoop, les développeurs doivent se familiariser avec le langage Java et bien comprendre le fonctionnement de MapReduce. Cela élève la barre pour le développement de MapReduce. Pour faciliter le développement de MapReduce, plusieurs frameworks open source ont été créés dans la communauté open source, dont le principal projet Hive. HSQL vous permet de définir et d'écrire des calculs MapReduce à la manière SQL. Par exemple, les opérations de décompte de mots, qui nécessitaient auparavant des dizaines ou des centaines de lignes de code, peuvent désormais être implémentées avec une seule instruction SQL, ce qui réduit considérablement le seuil d'utilisation de MapReduce pour le développement. À mesure que l'écosystème Hadoop mûrit, l'informatique distribuée basée sur Hadoop pour le Big Data se généralisera dans tout le secteur.

Valeur maximale et actualité des données

Chaque entrée de données contient des informations spécifiques. L'actualité des informations est mesurée par l'intervalle de temps et l'efficacité des informations depuis le moment où les informations sont envoyées depuis la source jusqu'au moment où les informations sont reçues, traitées, transférées et utilisées. Plus l'intervalle de temps est court, plus l'information est opportune et, en général, plus elle est opportune, plus elle est précieuse. Par exemple, dans un scénario de recommandation de préférence, si un acheteur se voit proposer une bonne affaire sur un four quelques secondes après l'achat d'un cuiseur à vapeur, l'acheteur est susceptible d'acheter également le four et une analyse du comportement d'achat du cuiseur. Si vous voyez une recommandation de four après une journée, il est peu probable que l'acheteur achète un four. Cela révèle l'un des inconvénients du calcul par lots de Hadoop, qui est sa faible rapidité. Plusieurs plates-formes informatiques en temps réel de premier plan ont été développées pour répondre aux exigences de l'ère du Big Data. En 2009, Spark est né au AMP Lab de l'Université de Californie à Berkeley. En 2010, Nathan a proposé BackType, le concept de base de Storm, et en 2010 a lancé Flink en tant que projet de recherche à Berlin, en Allemagne.

AlphaGo et AI

Dans le jeu Go en 2016, AlphaGo de Google a battu Lee Se-dol (4: 1), le joueur de Go au neuvième rang et le vainqueur du championnat du monde de Go. En conséquence, de plus en plus de gens en sont venus à voir l'apprentissage profond sous un nouveau jour, provoquant l'épidémie d'IA. Selon la définition donnée dans l'Encyclopédie Hyakudo, l'intelligence artificielle (IA) est une nouvelle branche de l'informatique qui recherche et développe des théories, des méthodes, des techniques, des applications et des systèmes qui stimulent, étendent et étendent l'intelligence humaine. ..

L'apprentissage automatique est une technique et un outil d'exploration de l'intelligence artificielle. L'apprentissage automatique est une priorité élevée pour les plates-formes Big Data telles que Spark et Flink, et Spark a réalisé d'énormes investissements dans l'apprentissage automatique ces dernières années. PySpark intègre de nombreuses grandes bibliothèques de classes ML (par exemple Pandas, par exemple) et offre un support beaucoup plus complet que Flink. En conséquence, Flink 1.9 permet le développement de nouvelles interfaces ML et de modules flink-python pour compenser ses lacunes.

Quelle est la relation entre l'apprentissage automatique et Python? Jetons également un coup d'œil aux données statistiques sur le langage le plus populaire en apprentissage automatique.

Jean-François Puget, le data scientist d'IBM, a déjà fait une analyse intéressante. Il a recueilli des informations sur l'évolution des exigences de recrutement sur des sites d'emploi bien connus et a recherché le langage de programmation le plus populaire de l'époque. En recherchant l'apprentissage automatique, il est arrivé à une conclusion similaire.

image.png

À cette époque, il s'est avéré que Python était le langage de programmation le plus populaire pour l'apprentissage automatique. Cette étude, menée en 2016, est suffisante pour prouver que Python joue un rôle important dans l'apprentissage automatique, ce qui peut être davantage démontré par les statistiques RedMonk mentionnées ci-dessus. Je peux le faire.

Non seulement la recherche, mais aussi les caractéristiques de Python et de l'écosystème Python existant révèlent pourquoi Python est le meilleur langage pour l'apprentissage automatique.

Python est un langage de programmation interprétatif orienté objet créé en 1989 par le programmeur néerlandais Guido van Rossum et lancé pour la première fois en 1991. Les langages interprétés sont très lents, mais la philosophie de conception de Python est "le seul moyen". Lors du développement d'une nouvelle syntaxe Python et ayant de nombreux choix, les développeurs Python choisissent généralement une syntaxe claire avec peu ou pas d'ambiguïté. En raison de sa simplicité, Python a de nombreux utilisateurs. En outre, de nombreuses bibliothèques de classes d'apprentissage automatique ont été développées en Python, telles que NumPy, SciPy et Pandas (pour le traitement de données structurées). Sans surprise, Python est devenu le langage de programmation le plus populaire pour l'apprentissage automatique, car le riche écosystème de Python offre une grande commodité pour l'apprentissage automatique.

Aperçu

Dans cet article, j'ai essayé de comprendre pourquoi Apache Flink a ajouté la prise en charge de l'API Python. En regardant des statistiques spécifiques, nous pouvons voir que nous entrons dans l'ère du big data. Une analyse des mégadonnées est nécessaire pour explorer la valeur des données. La rapidité des données a donné naissance à la célèbre plate-forme de calcul de flux Apache Flink.

À l'ère du Big Data Computing, l'IA est une tendance de développement à chaud et l'apprentissage automatique est l'un des aspects clés de l'IA. En raison des caractéristiques du langage Python et des avantages de l'écosystème, Python est le meilleur langage pour l'apprentissage automatique. C'est l'une des principales raisons pour lesquelles Apache Flink prévoit de prendre en charge l'API Python. La prise en charge par Apache Flink de l'API Python est une tendance inévitable pour répondre aux exigences de l'ère du Big Data.

Recommended Posts

Nouvelle interface d'apprentissage automatique "Apache Flink" et module Flink-Python
Défis et opportunités Apache Flink
Apprentissage automatique et optimisation mathématique
Importance de l'apprentissage automatique et de l'apprentissage par mini-lots
Classification et régression dans l'apprentissage automatique
Organisez des plateformes d'apprentissage automatique et d'apprentissage en profondeur
[Apprentissage automatique] OOB (Out-Of-Bag) et son ratio
Notes personnelles et liens sur l'apprentissage automatique ① (Machine learning)
Résumé de la classification et de la mise en œuvre des algorithmes d'apprentissage automatique
Créer un environnement pour Python et l'apprentissage automatique (macOS)
"Tutoriels OpenCV-Python" et "Système d'apprentissage automatique pratique"
Apprentissage automatique
Étudiez l'apprentissage automatique et l'informatique. Liste des ressources
Tournoi Numerai - Fusion de quants traditionnels et apprentissage automatique -
Division des données de formation en apprentissage automatique et apprentissage / prédiction / vérification