{"id":8111,"date":"2020-08-27T09:00:00","date_gmt":"2020-08-27T07:00:00","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=8111"},"modified":"2022-01-05T20:06:00","modified_gmt":"2022-01-05T19:06:00","slug":"google-ai-hub","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/ai-ml\/google-ai-hub\/","title":{"rendered":"Google AI Hub: what, why, how"},"content":{"rendered":"\t\t\t\t<div class=\"wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-7f3e3d9a      \"\n\t\t\t\t\tdata-scroll= \"1\"\n\t\t\t\t\tdata-offset= \"30\"\n\t\t\t\t\tstyle=\"\"\n\t\t\t\t>\n\t\t\t\t<div class=\"uagb-toc__wrap\">\n\t\t\t\t\t\t<div class=\"uagb-toc__title\">\n\t\t\t\t\t\t\tTable Of Contents\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"uagb-toc__list-wrap \">\n\t\t\t\t\t\t<ol class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#why-you-may-need-artificial-intelligence\" class=\"uagb-toc-link__trigger\">Why you may need artificial intelligence?<\/a><li class=\"uagb-toc__list\"><a href=\"#what-is-google-ai-hub\" class=\"uagb-toc-link__trigger\">What is Google AI Hub?<\/a><li class=\"uagb-toc__list\"><a href=\"#how-to-benefit-from-google-ai-hub\" class=\"uagb-toc-link__trigger\">How to benefit from Google AI Hub<\/a><\/ol>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\n\n\n<p><span id=\"urn:enhancement-b0d5615d\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/artificial_intelligence\">Artificial intelligence<\/span> (<span id=\"urn:enhancement-8ea62cd0\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/artificial_intelligence\">AI<\/span>) and <span id=\"urn:local-annotation-988547\" class=\"textannotation disambiguated\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/machine_learning_2\">machine learning<\/span> (ML) increasingly seem to be indispensable <span id=\"urn:enhancement-875c8acc\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/tool\">tools<\/span> that <span id=\"urn:enhancement-bb7761ad\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_developer\">developers<\/span> need to be able to handle. There are many ways these <span id=\"urn:enhancement-5287c63f\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/tool\">tools<\/span> can be put to use, applied to <span id=\"urn:enhancement-d14e9cbd\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_software\">applications<\/span> and <span id=\"urn:enhancement-100e9abd\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/product_business\">products<\/span>. In <span id=\"urn:enhancement-aa5c8917\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/research\">research<\/span> and academia, the subject has been around for 70 years or so &#8211; more or less the same time span which separates the birth of <span id=\"urn:enhancement-9a0ecf8d\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/computer\">computers<\/span> and <span id=\"urn:enhancement-c50c6d6\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/information_technology\">information technology<\/span> from the present day. However the popularity of this field has fluctuated considerably in the last few decades, experiencing dark times (the infamous \u2018<span id=\"urn:enhancement-3d3f4ccd\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/artificial_intelligence\">AI<\/span> Winter\u2019) and golden eras, such as the present (a phase that does not seem destined to end any time soon).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why you may need artificial intelligence?<\/h2>\n\n\n\n<p>The immediate impact on everyday lives of <span id=\"urn:enhancement-11921475\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/artificial_intelligence\">Artificial Intelligence<\/span> and similar <span id=\"urn:enhancement-4c7d59eb\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/technology\">technologies<\/span> has never been as popular and widely (if not wildly) acknowledged as in the present day. Every <span id=\"urn:enhancement-5ec7c3f9\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/chief_executive_officer\">CEO<\/span> wants their <span id=\"urn:enhancement-3440e221\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/company\">company<\/span> to use it, produce it, develop it &#8211; and every <span id=\"urn:enhancement-b670b27c\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_developer\">developer<\/span> wants to join the party. Of course, there is nothing wrong with that: on the contrary, for an entrepreneur it is a natural impulse to exploit state of the art technologies in order to keep pace with competitors and to try to take a forward step before them. It is also perfectly natural for a <span id=\"urn:enhancement-269d2afe\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_developer\">developer<\/span> to be intrigued, at the very least, by an impressive and pervasive <span id=\"urn:enhancement-436bb9da\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/technology\">technology<\/span> that, although still rather intricate from the theoretical point of view, is largely accessible in terms of both <span id=\"urn:enhancement-40f53f4c\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/tool\">tools<\/span> and programming systems.<\/p>\n\n\n\n<p>Even if you don\u2019t want to learn <span id=\"urn:local-annotation-182154\" class=\"textannotation disambiguated\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/python_programming_language\">Python<\/span>, <span id=\"urn:local-annotation-634185\" class=\"textannotation disambiguated\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/r\">R<\/span> or <span id=\"urn:enhancement-79bf5c5d\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/scala_programming_language\">Scala<\/span> (though you should!) and prefer to stick to the <span id=\"urn:local-annotation-810121\" class=\"textannotation disambiguated\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/java_software_platform\">Java<\/span> and <span id=\"urn:enhancement-f3deb00\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/c_sharp_programming_language\">C#<\/span> you probably use in your daily work, ready to use libraries and frameworks will be found within your favourite computer language. If readers will permit a personal digression, my first <span id=\"urn:enhancement-5cff32e9\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/experience\">experiences<\/span> with <span id=\"urn:enhancement-d0087f23\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/artificial_intelligence\">AI<\/span> were in BASIC(!) and my first professional <span id=\"urn:enhancement-f23886ab\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/project\">project<\/span> in the field (being paid to deliver an AI product) some twenty years ago was in C: at the time I had to do most of the work \u2018by hand\u2019, due to a lack of standardised libraries (or indeed any libraries at all) suited to my purpose.<\/p>\n\n\n\n<p>Today, things are simpler for <span id=\"urn:enhancement-52ddd3fc\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_developer\">developers<\/span> in this respect: one can learn a library or framework for an already-familiar language, or learn the foundations of an easier <span id=\"urn:enhancement-b66567b0\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/interactivity\">interactive<\/span> <span id=\"urn:local-annotation-524718\" class=\"textannotation disambiguated\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/programming_languages\">language<\/span>, such as Python or R, and start using <em>de facto<\/em> the standard libraries such as <span id=\"urn:enhancement-cd0b9862\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/tensorflow\">TensorFlow<\/span> that are available for many mainstream languages (even for <span id=\"urn:enhancement-59054a54\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/javascript\">Javascript<\/span>).<\/p>\n\n\n\n<p>In short, it is a natural and healthy instinct for a <span id=\"urn:enhancement-bd2d6b92\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_developer\">developer<\/span> to be interested in participating in and delivering AI projects. The easiest introduction involves finding <span id=\"urn:enhancement-fb6ae416\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/tutorial\">tutorials<\/span>, explanations, or introductions written by other <span id=\"urn:enhancement-c6ca5572\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_developer\">developers<\/span>, and downloading <span id=\"urn:enhancement-826253e3\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/open_source\">open source<\/span> <span id=\"urn:enhancement-d5508230\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/programming_tool\">tools<\/span>. Such <span id=\"urn:enhancement-82015344\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/programming_tool\">tools<\/span> (Jupyter notebooks, for example) are usually easy to install and easy to use for those who are just starting to code and to solve problems using AI <span id=\"urn:enhancement-9913f407\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/method_computer_programming\">methods<\/span>.<\/p>\n\n\n\n<p>Of course, where both CEOs and <span id=\"urn:enhancement-475ac8b\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_developer\">developers<\/span> (whose <span id=\"urn:enhancement-d560375\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/salary\">salaries<\/span> are paid by CEOs) want to work with <span id=\"urn:enhancement-4ae3d5e\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/artificial_intelligence\">AI<\/span>, it is obvious that the <span id=\"urn:enhancement-b3c35be3\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/team\">team<\/span>\u2019s joint efforts will result in the delivery of AI <span id=\"urn:enhancement-a9e30aa5\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/product_business\">products<\/span> or solutions to sell to <span id=\"urn:enhancement-3d489887\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/customer\">customers<\/span>.<\/p>\n\n\n\n<p>However, it is precisely at this point that things become difficult: while a single <span id=\"urn:enhancement-1d813f21\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_developer\">developer<\/span> may create a Jupyter notebook that brilliantly solves some regression, prediction or generation problem, to transform that solitary effort into a standard delivery pipeline is very difficult \u2013 often, it may be better to restart from scratch.<\/p>\n\n\n\n<p>On the one hand, <span id=\"urn:enhancement-b689da66\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/project\">projects<\/span> &#8211; collective efforts performed by <span id=\"urn:enhancement-83a0cb70\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/team\">teams<\/span> \u2013 are what leads to delivery; on the other hand, an enterprising solution needs to satisfy <span id=\"urn:enhancement-feb6b06a\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/business_requirements\">business requirements<\/span> &#8211; the first goal of any profitable <span id=\"urn:enhancement-9b5456b6\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/project\">project<\/span>. In other words, first the <span id=\"urn:enhancement-2d0c0634\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/business\">business<\/span> case, next the <span id=\"urn:enhancement-8aebe835\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/technology\">technology<\/span> <span id=\"urn:enhancement-fda6fcb7\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/requirement\">required<\/span> to efficiently satisfy that need.<\/p>\n\n\n\n<p><span id=\"urn:enhancement-76f647ea\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_developer\">Developers<\/span> playing with <span id=\"urn:local-annotation-384587\" class=\"textannotation disambiguated\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/pytorch\">Pytorch<\/span> late at night may produce interesting <span id=\"urn:enhancement-bef65797\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/prototype\">prototypes<\/span>, which may suggest ways to solve a problem or need experienced by the <span id=\"urn:enhancement-e58d68a6\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/company\">company<\/span> but creating a new <span id=\"urn:enhancement-63a15bc4\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/product_business\">product<\/span> on the strength of that idea alone is another matter entirely. A production pipeline with delivery of an AI-based <span id=\"urn:enhancement-691826eb\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/product_business\">product<\/span>, made for a specific purpose as its goal is needed, and will need to be managed properly. <span id=\"urn:enhancement-a7ffee39\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/artificial_intelligence\">Artificial Intelligence<\/span> <span id=\"urn:enhancement-a7a9074\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/project\">project<\/span> management is another interesting issue but will be dealt with elsewhere.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is Google AI Hub?<\/h2>\n\n\n\n<p>The time has now come to introduce our main character, <strong><span id=\"urn:enhancement-bc3c6447\" class=\"textannotation disambiguated wl-organization\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/google\">Google<\/span> AI Hub<\/strong>: at first glance, this is just a <span id=\"urn:enhancement-9bdb1cb1\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_repository\">repository<\/span> of <span id=\"urn:enhancement-c2c408d\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/tool\">tools<\/span> able to provide the individual parts of the pipeline mentioned above. It is also an ecosystem of <span id=\"urn:enhancement-8410bbb4\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/plug-in_computing\">plugins<\/span> and goes as far as supplying end-to-end pipelines to support the delivery of an <span id=\"urn:enhancement-2f4410d0\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/artificial_intelligence\">AI<\/span> <span id=\"urn:enhancement-f6dd61f0\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/product_business\">product<\/span>, at different levels of abstractions, according to the <span id=\"urn:enhancement-44fc03f2\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/resource\">resources<\/span> available to produce it.<\/p>\n\n\n\n<p>In fact, <span id=\"urn:enhancement-71ae459d\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/artificial_intelligence\">AI<\/span> Hub is more than a <span id=\"urn:enhancement-5c966a1a\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_repository\">repository<\/span>, providing different assets for different goals: for example, it can be used to learn ML algorithms, or to use built artefacts available either in the public domain via <span id=\"urn:enhancement-343b26b3\" class=\"textannotation disambiguated wl-organization\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/google\">Google<\/span>, or shared as <span id=\"urn:enhancement-ed44fb07\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/plug-in_computing\">plug-ins<\/span> within your organisation. Alternatively, one can use <span id=\"urn:enhancement-6333a180\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/artificial_intelligence\">AI<\/span> Hub to share one\u2019s own <span id=\"urn:enhancement-6517a4d5\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/scientific_modelling\">models<\/span>, code and more with peers in the same organisation &#8211; a hub that facilitates <span id=\"urn:enhancement-4188d4d8\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/collaboration\">collaboration<\/span> on <span id=\"urn:enhancement-2e9327af\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/artificial_intelligence\">AI<\/span> projects by means of reuse, sharing and factoring.Let\u2019s begin by finding something useful just to play with &#8211; something ready to use. Visit the <a href=\"https:\/\/aihub.cloud.google.com\/\">site homepage<\/a> on which assets are classified in categories in a menu of the left hand side. Choose the \u2018Notebook\u2019 category for this example:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"457\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image1-3-1024x457.png\" alt=\"Google AI Hub\" class=\"wp-image-8113\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image1-3-1024x457.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image1-3-300x134.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image1-3-768x343.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image1-3.png 1365w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p>This offers a list of notebooks provided by <span id=\"urn:enhancement-1bd4d250\" class=\"textannotation disambiguated wl-organization\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/google\">Google<\/span>. For our current purposes, we could open the first and start using it.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"553\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image3-3-1024x553.png\" alt=\"\" class=\"wp-image-8114\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image3-3-1024x553.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image3-3-300x162.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image3-3-768x415.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image3-3.png 1366w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p>Once we access the asset &#8211; in this case a Notebook &#8211; we can open it in <span id=\"urn:enhancement-9cbfec14\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/colab\">Colab<\/span> to explore and exploit. This is a simple asset exploitation of course, but <span id=\"urn:enhancement-880058ee\" class=\"textannotation disambiguated wl-organization\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/google\">Google<\/span>-provided notebooks are great; well documented and easy to use, they\u2019re a good way to learn by doing.<\/p>\n\n\n\n<p>Among the available assets we find <span id=\"urn:enhancement-977eea6\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/data_set\">datasets<\/span>, services (<span id=\"urn:enhancement-ff1fcdc7\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_programming_interface\">API<\/span>, for example, which may be called on by your <span id=\"urn:enhancement-73dd9221\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_software\">application<\/span> to use built-in functionalities, or to train your <span id=\"urn:enhancement-ceca09e9\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/conceptual_model\">model<\/span> via transfer learning, etc.), trained <span id=\"urn:enhancement-6e4b63f1\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/scientific_modelling\">models<\/span>, TensorFlow <span id=\"urn:enhancement-72a5693e\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/modular_programming\">modules<\/span>, virtual machine images, and Kubeflow pipelines. All these assets occur somewhere in the <span id=\"urn:enhancement-2d0b3b9e\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_development_process\">development process<\/span> of an AI <span id=\"urn:enhancement-e486a88b\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_software\">application<\/span>. The importance of Kubeflow pipelines &#8211; an interesting way to embed AI models inside an <span id=\"urn:enhancement-65d9bcdd\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_software\">application<\/span> \u2013 should be particularly stressed, but more on that later.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to benefit from Google AI Hub<\/h2>\n\n\n\n<p>In this introductory note we cannot give a general overview of all the <span id=\"urn:enhancement-832701dc\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/tool\">tools<\/span> available on the <span id=\"urn:enhancement-6040faf8\" class=\"textannotation disambiguated wl-organization\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/google\">Google<\/span> AI Hub dashboard (the platform itself provides several <span id=\"urn:enhancement-8682c498\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/tutorial\">tutorials<\/span> on how to start using each <span id=\"urn:enhancement-900a5b32\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/tool\">tool<\/span> and <span id=\"urn:enhancement-aa4117c2\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/resource\">resource<\/span> it makes available). In place of this, we offer some hints on the task of deploying a <span id=\"urn:enhancement-1371dd0b\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/scalability\">scalable<\/span> ML <span id=\"urn:enhancement-f372140c\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_software\">application<\/span> through the hub.<\/p>\n\n\n\n<p>An important initial note about using AI Hub for practice is that you will need a Google <span id=\"urn:enhancement-72db9c2\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/cloud_computing\">Cloud<\/span> Platform account. Starter accounts that are essentially <span id=\"urn:enhancement-3af81aac\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/gratis\">free of charge<\/span> are available, but you\u2019ll need to provide <span id=\"urn:enhancement-1bf1a5b5\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/bank_account\">bank account<\/span> details. It\u2019s probably best to operate inside an organisation account instead &#8211; typically one belonging to your <span id=\"urn:enhancement-67b39cf0\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/company\">company<\/span>: organisations have the ability to use and share assets via the Hub. For example, if you work in <span id=\"urn:enhancement-4d6d9db5\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/research_and_development\">R&amp;D<\/span> you can share <span id=\"urn:enhancement-5cbac4fe\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/prototype\">prototypes<\/span> with your colleagues working on architecture, delivery or another aspect of the <span id=\"urn:enhancement-828b1f78\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/product_business\">product<\/span>.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"519\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image2-3-1024x519.png\" alt=\"Google Cloud Platform AI\" class=\"wp-image-8115\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image2-3-1024x519.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image2-3-300x152.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image2-3-768x389.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image2-3.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p>The dashboard of the platform allows <span id=\"urn:enhancement-aed310f1\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/management\">management<\/span> of <span id=\"urn:enhancement-1501cf14\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/project\">projects<\/span> using assets from the hub. A <span id=\"urn:enhancement-965b382d\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/project\">project<\/span> may start as a simple <span id=\"urn:local-annotation-691064\" class=\"textannotation disambiguated\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/project_jupyter\">Jupyter notebook<\/span>, for which you can choose not only the language (Python 2\/3, R, \u2026) but also the computational sizing (e.g. if you need some kind of GPU to properly run it, etc.) and other parameters. All of these factors determine the cost of the service needed to run the notebook.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"517\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image5-1-1024x517.png\" alt=\"\" class=\"wp-image-8116\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image5-1-1024x517.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image5-1-300x152.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image5-1-768x388.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image5-1.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"515\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image4-3-1024x515.png\" alt=\"\" class=\"wp-image-8117\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image4-3-1024x515.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image4-3-300x151.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image4-3-768x387.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image4-3.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p>Needless to say, you can edit and run your notebook on the cloud platform as you would in your local environment: you\u2019ll find all the main tools already available for whichever language and framework you chose; for example, <a href=\"https:\/\/www.codemotion.com\/magazine\/dev-hub\/machine-learning-dev\/tensorflow-furthers-the-development-of-machine-learning\/\">TensorFlow<\/a> is already installed in the Python environments, and you can \u2018Pip\u2019 whatever additional packages you need.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"516\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image7-1024x516.png\" alt=\"Create new notebook instance on Google Cloud Platform\" class=\"wp-image-8118\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image7-1024x516.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image7-300x151.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image7-768x387.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image7.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p>It is also easy to pull and push your notebooks from and to Git repositories, or to containerize your notebook in order to install specific libraries and acquire the level of customization your code requires to run properly.<\/p>\n\n\n\n<p>At a certain point (probably at the start!) you\u2019ll need to handle a dataset, perhaps to train your model or to fine tune a pre-trained model. AI Hub provides a section on datasets that is not simply a bookmark or repository but allows for labelling data. This is a practical need in many projects, and the lack of a dataset appropriate for your supervised model is a frequent issue when trying to build a product based on ML models.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"516\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image6-1024x516.png\" alt=\"Datasets on Google Cloud Platform\" class=\"wp-image-8119\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image6-1024x516.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image6-300x151.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image6-768x387.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image6.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p>In this section of the hub you can add a dataset for which you can specify the kind of data and its source, upload data and specify a label set which provides the complete list (to the best of your knowledge) of labels of your data. This is not only for recording purposes: in fact you can also add a set of instructions and rules according to which human labellers may attach labels to the elements of your dataset. This feature allows you to specify the requirements of a labelling activity to be performed by someone paid to do it on your behalf.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"467\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image9-1024x467.png\" alt=\"\" class=\"wp-image-8120\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image9-1024x467.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image9-300x137.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image9-768x351.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image9.png 1367w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p>However, labelling data is not an easy task and is subject to ambiguities (people do this task instead of a machine for some very good reasons!) so one may need to refine instructions and initially provide a limited trial dataset on which to assess both the quality of labelling and the level of description actually required in the instructions. Since this is a crucial step in training a ML model, real life projects will require people to manage this activity by collaborating closely with the developers to get a useful, and as unbiased as possible, dataset on which to train the ML model.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"468\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image8-1024x468.png\" alt=\"\" class=\"wp-image-8121\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image8-1024x468.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image8-300x137.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image8-768x351.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image8.png 1366w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"467\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image12-1024x467.png\" alt=\"\" class=\"wp-image-8122\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image12-1024x467.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image12-300x137.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image12-768x350.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image12.png 1367w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p>\u2018Jobs\u2019 is another interesting feature from the AI platform. Used to train models, you may define these using standard built-in algorithms or your own algorithm, according to your model\u2019s needs. In most cases algorithms built in the platform will suffice for training purposes.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"524\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image10-1024x524.png\" alt=\"\" class=\"wp-image-8123\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image10-1024x524.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image10-300x154.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image10-768x393.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image10.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"517\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image11-1024x517.png\" alt=\"\" class=\"wp-image-8124\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image11-1024x517.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image11-300x152.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image11-768x388.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image11.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p>Up to this point we have talked about models, datasets (and the interesting labelling feature) and training jobs: these tasks form the bulk of an AI developer\u2019s day-to-day work, whether on their local systems or on the shared tools provided by their organisations.<\/p>\n\n\n\n<p>A complete, end-to-end ML pipeline is somewhat more complicated, however, requiring at least the following steps<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Data ingestion to encapsulate data sourcing and persistence: this should be an independent process for each dataset needed, and is a typical job;<\/li><li>Data preparation: to extract, transform and select features which increase efficiency and should not deteriorate performances;<\/li><li>Data segregation, to split datasets into the parts needed for different purposes, for example: training set and validation set, as required by different validation strategies.<\/li><li>Model training on training datasets, which may be parallelized using either datasets or models (most applications put different models to work).<\/li><li>Model assessment on validation datasets, when performance measurements are also taken.<\/li><li>Model deployment: the model could be programmed in a framework which is not the native framework of the application (e.g. R for modelling, C# for production code) so that deployment may demand containerization, service exposition, wrapping, etc.<\/li><li>Model use in the production environment with new data.<\/li><li>Model maintenance &#8211; mostly performance measurement and monitoring, to correct and recalibrate the model if needed.<\/li><\/ul>\n\n\n\n<p>In this \u2018model lifecycle\u2019, the final step, i.e., the integration with the application which needs the model, is typically not covered by AI frameworks and hence is the most problematic step for a developer team, yet the most important step for the business.<\/p>\n\n\n\n<p>The ecosystem which AI Hub embraces to achieve these results is based on Kubeflow&nbsp;(in turn based on <a href=\"https:\/\/www.codemotion.com\/magazine\/dev-hub\/web-developer\/from-0-to-kubernetes-using-net-core-angular-e-jenkins\/\">Kubernetes<\/a>), which is essentially used as the infrastructure for deploying containerized models in different clusters, and as the basic tool to access scalable solutions.<\/p>\n\n\n\n<p>A possible lifecycle&nbsp;could be as follows (for more information on this specific tool check <a aria-label=\"undefined (opens in a new tab)\" href=\"https:\/\/www.kubeflow.org\/docs\/about\/kubeflow\/\" target=\"_blank\" rel=\"noreferrer noopener\">this link<\/a>).<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Set up the system in a development environment, for example on premises e.g., on your laptop.<\/li><li>Use the same tools that work for large cloud infrastructures in the development environment, particularly in designs based on decoupled microservices etc.<\/li><li>Deploy the same solution to a production environment (on premises&nbsp;or cloud cluster) and scale it according to real need.<\/li><\/ol>\n\n\n\n<p>Kubeflow began as the way Google ran Tensorflow internally, using a specific pipeline designed to let TensorFlow jobs run on Kubernetes.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"500\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image13-1024x500.png\" alt=\"\" class=\"wp-image-8125\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image13-1024x500.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image13-300x146.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image13-768x375.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image13.png 1367w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"500\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image14-1024x500.png\" alt=\"\" class=\"wp-image-8126\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image14-1024x500.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image14-300x146.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image14-768x375.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/image14.png 1367w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p>A final word on sharing: as we have said, all these tasks cannot be accomplished by a single developer alone, unless they are experimenting by themselves: in production environments a team of developers, analysts and architects usually cooperate to deliver the project. Developers in particular cooperate, and sharing is an essential part of cooperation.<\/p>\n\n\n\n<p>Assets uploaded or configured on AI Hub can be shared in different ways:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>simply add a colleague by using their email address, much as in other Google tools when sharing documents, etc.<\/li><li>share with a Google group<\/li><li>share with the entire organisation to which one belongs.<\/li><\/ul>\n\n\n\n<p>Moreover, different profiles may be assigned to people we are sharing with, essentially a read only profile and an edit profile.<\/p>\n\n\n\n<p>All in all, although it is not always easy to use and is subject to several constraints, Google AI Hub is a complex tool which may be used to deploy and scale ML applications or ML models to integrate into business applications, within a uniform framework. It is difficult to say if this will become the standard of ML deployment but it certainly traces a roadmap toward a flexible engineering of the ML model lifecycle.<\/p>\n\n\n","protected":false},"excerpt":{"rendered":"<p>Artificial intelligence (AI) and machine learning (ML) increasingly seem to be indispensable tools that developers need to be able to handle. There are many ways these tools can be put to use, applied to applications and products. In research and academia, the subject has been around for 70 years or so &#8211; more or less&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/ai-ml\/google-ai-hub\/\">Read more<\/a><\/p>\n","protected":false},"author":5,"featured_media":8112,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":10,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[46],"tags":[70,68],"collections":[],"class_list":{"0":"post-8111","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-ai-ml","8":"tag-google","9":"tag-python","10":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Google AI Hub: what, why, how - Codemotion Magazine<\/title>\n<meta name=\"description\" content=\"Google AI Hub provides a set of tools for AI and machine learning, accessible to everyone. In this article we&#039;ll learn more about this platform\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/ai-ml\/google-ai-hub\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Google AI Hub: what, why, how\" \/>\n<meta property=\"og:description\" content=\"Google AI Hub provides a set of tools for AI and machine learning, accessible to everyone. In this article we&#039;ll learn more about this platform\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/ai-ml\/google-ai-hub\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-08-27T07:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-01-05T19:06:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/Google-AI-Lab-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1012\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Paolo Caressa\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@www_caressa_it\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Paolo Caressa\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/ai-ml\/google-ai-hub\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/ai-ml\/google-ai-hub\/\"},\"author\":{\"name\":\"Paolo Caressa\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/11b502309bc50a6923aafd79c6259f85\"},\"headline\":\"Google AI Hub: what, why, how\",\"datePublished\":\"2020-08-27T07:00:00+00:00\",\"dateModified\":\"2022-01-05T19:06:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/ai-ml\/google-ai-hub\/\"},\"wordCount\":2349,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/ai-ml\/google-ai-hub\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/Google-AI-Lab-scaled.jpg\",\"keywords\":[\"Google\",\"Python\"],\"articleSection\":[\"AI\/ML\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/ai-ml\/google-ai-hub\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/ai-ml\/google-ai-hub\/\",\"name\":\"Google AI Hub: what, why, how - Codemotion Magazine\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/ai-ml\/google-ai-hub\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/ai-ml\/google-ai-hub\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/Google-AI-Lab-scaled.jpg\",\"datePublished\":\"2020-08-27T07:00:00+00:00\",\"dateModified\":\"2022-01-05T19:06:00+00:00\",\"description\":\"Google AI Hub provides a set of tools for AI and machine learning, accessible to everyone. In this article we'll learn more about this platform\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/ai-ml\/google-ai-hub\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/ai-ml\/google-ai-hub\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/ai-ml\/google-ai-hub\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/Google-AI-Lab-scaled.jpg\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/Google-AI-Lab-scaled.jpg\",\"width\":1012,\"height\":675,\"caption\":\"Google AI\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/ai-ml\/google-ai-hub\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"AI\/ML\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/ai-ml\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Machine Learning\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/ai-ml\/machine-learning\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Google AI Hub: what, why, how\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/11b502309bc50a6923aafd79c6259f85\",\"name\":\"Paolo Caressa\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b55795d60b54b1cc8b605f9967dbbe68b3fcf826249490cecafd797ee4f18d4c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b55795d60b54b1cc8b605f9967dbbe68b3fcf826249490cecafd797ee4f18d4c?s=96&d=mm&r=g\",\"caption\":\"Paolo Caressa\"},\"description\":\"I spent the first part of my life enjoying studies up to a math BS+MS and PhD. Next I worked both as math researcher (differential geometry) and as IT consultant (R&amp;D, feasibility studies, business analysis). Eventually I left academia and worked some years in finance (maths &amp; implementation of derivative pricings and risk management models), then again in IT (as technical consultant and writer, project manager, program manager). In the meanwhile I write books and articles on maths and computer science and I give lectures on workshops and conferences (applied maths, AI, etc.). I also serve as adjunct professor in the Engineering Department of \\\"Sapienza\\\" University of Rome (calculus and CS classes).\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/paolocaressa\/\",\"https:\/\/x.com\/www_caressa_it\"],\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/paolo-caressa\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Google AI Hub: what, why, how - Codemotion Magazine","description":"Google AI Hub provides a set of tools for AI and machine learning, accessible to everyone. In this article we'll learn more about this platform","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codemotion.com\/magazine\/ai-ml\/google-ai-hub\/","og_locale":"en_US","og_type":"article","og_title":"Google AI Hub: what, why, how","og_description":"Google AI Hub provides a set of tools for AI and machine learning, accessible to everyone. In this article we'll learn more about this platform","og_url":"https:\/\/www.codemotion.com\/magazine\/ai-ml\/google-ai-hub\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2020-08-27T07:00:00+00:00","article_modified_time":"2022-01-05T19:06:00+00:00","og_image":[{"width":1012,"height":675,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/Google-AI-Lab-scaled.jpg","type":"image\/jpeg"}],"author":"Paolo Caressa","twitter_card":"summary_large_image","twitter_creator":"@www_caressa_it","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Paolo Caressa","Est. reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/ai-ml\/google-ai-hub\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/ai-ml\/google-ai-hub\/"},"author":{"name":"Paolo Caressa","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/11b502309bc50a6923aafd79c6259f85"},"headline":"Google AI Hub: what, why, how","datePublished":"2020-08-27T07:00:00+00:00","dateModified":"2022-01-05T19:06:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/ai-ml\/google-ai-hub\/"},"wordCount":2349,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/ai-ml\/google-ai-hub\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/Google-AI-Lab-scaled.jpg","keywords":["Google","Python"],"articleSection":["AI\/ML"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/ai-ml\/google-ai-hub\/","url":"https:\/\/www.codemotion.com\/magazine\/ai-ml\/google-ai-hub\/","name":"Google AI Hub: what, why, how - Codemotion Magazine","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/ai-ml\/google-ai-hub\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/ai-ml\/google-ai-hub\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/Google-AI-Lab-scaled.jpg","datePublished":"2020-08-27T07:00:00+00:00","dateModified":"2022-01-05T19:06:00+00:00","description":"Google AI Hub provides a set of tools for AI and machine learning, accessible to everyone. In this article we'll learn more about this platform","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/ai-ml\/google-ai-hub\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/ai-ml\/google-ai-hub\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/ai-ml\/google-ai-hub\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/Google-AI-Lab-scaled.jpg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/Google-AI-Lab-scaled.jpg","width":1012,"height":675,"caption":"Google AI"},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/ai-ml\/google-ai-hub\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"AI\/ML","item":"https:\/\/www.codemotion.com\/magazine\/ai-ml\/"},{"@type":"ListItem","position":3,"name":"Machine Learning","item":"https:\/\/www.codemotion.com\/magazine\/ai-ml\/machine-learning\/"},{"@type":"ListItem","position":4,"name":"Google AI Hub: what, why, how"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/11b502309bc50a6923aafd79c6259f85","name":"Paolo Caressa","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/b55795d60b54b1cc8b605f9967dbbe68b3fcf826249490cecafd797ee4f18d4c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b55795d60b54b1cc8b605f9967dbbe68b3fcf826249490cecafd797ee4f18d4c?s=96&d=mm&r=g","caption":"Paolo Caressa"},"description":"I spent the first part of my life enjoying studies up to a math BS+MS and PhD. Next I worked both as math researcher (differential geometry) and as IT consultant (R&amp;D, feasibility studies, business analysis). Eventually I left academia and worked some years in finance (maths &amp; implementation of derivative pricings and risk management models), then again in IT (as technical consultant and writer, project manager, program manager). In the meanwhile I write books and articles on maths and computer science and I give lectures on workshops and conferences (applied maths, AI, etc.). I also serve as adjunct professor in the Engineering Department of \"Sapienza\" University of Rome (calculus and CS classes).","sameAs":["https:\/\/www.linkedin.com\/in\/paolocaressa\/","https:\/\/x.com\/www_caressa_it"],"url":"https:\/\/www.codemotion.com\/magazine\/author\/paolo-caressa\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/Google-AI-Lab-scaled-600x400.jpg","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/Google-AI-Lab-scaled-600x600.jpg","author_info":{"display_name":"Paolo Caressa","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/paolo-caressa\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/Google-AI-Lab-scaled.jpg",1012,675,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/Google-AI-Lab-scaled-150x150.jpg",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/Google-AI-Lab-scaled-300x200.jpg",300,200,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/Google-AI-Lab-scaled-768x512.jpg",768,512,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/Google-AI-Lab-scaled.jpg",1012,675,false],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/Google-AI-Lab-scaled.jpg",1012,675,false],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/Google-AI-Lab-scaled.jpg",1012,675,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/Google-AI-Lab-scaled.jpg",100,67,false],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/Google-AI-Lab-scaled-180x128.jpg",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/Google-AI-Lab-scaled-896x504.jpg",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/Google-AI-Lab-scaled-400x225.jpg",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/Google-AI-Lab-scaled-600x400.jpg",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/08\/Google-AI-Lab-scaled-600x600.jpg",600,600,true]},"uagb_author_info":{"display_name":"Paolo Caressa","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/paolo-caressa\/"},"uagb_comment_info":0,"uagb_excerpt":"Artificial intelligence (AI) and machine learning (ML) increasingly seem to be indispensable tools that developers need to be able to handle. There are many ways these tools can be put to use, applied to applications and products. In research and academia, the subject has been around for 70 years or so &#8211; more or less&#8230;&hellip;","lang":"en","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/8111","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=8111"}],"version-history":[{"count":3,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/8111\/revisions"}],"predecessor-version":[{"id":8171,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/8111\/revisions\/8171"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/8112"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=8111"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=8111"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=8111"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=8111"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}