{"id":86387,"date":"2021-06-07T09:00:11","date_gmt":"2021-06-07T16:00:11","guid":{"rendered":"https:\/\/cloudblogs.microsoft.com\/opensource\/?p=86387"},"modified":"2024-06-19T10:50:25","modified_gmt":"2024-06-19T17:50:25","slug":"onnx-runtime-1-8-mobile-web-and-accelerated-training","status":"publish","type":"post","link":"https:\/\/opensource.microsoft.com\/blog\/2021\/06\/07\/onnx-runtime-1-8-mobile-web-and-accelerated-training\/","title":{"rendered":"ONNX Runtime 1.8: mobile, web, and accelerated training"},"content":{"rendered":"<p>The V1.8 release of ONNX Runtime includes many exciting new features. This release launches ONNX Runtime machine learning model inferencing acceleration for Android and iOS mobile ecosystems (previously in preview) and introduces ONNX Runtime Web. Additionally, the release also debuts official packages for accelerating model training workloads in PyTorch.<\/p>\n<p><a href=\"https:\/\/onnxruntime.ai\" target=\"_blank\" rel=\"noopener\">ONNX Runtime<\/a> is a cross-platform runtime accelerator for machine learning models that takes advantage of hardware accelerators to performantly execute machine learning model inferencing and training on an array of devices.<\/p>\n<h2>ONNX Runtime for Web<\/h2>\n<p>Running AI capabilities in the browser has been a hot topic given the benefits web-side inferencing can provide. This includes reducing server-client communication, protecting user privacy, as well as offering install-free and cross-platform in-browser machine learning experience. ONNX Runtime Web is a new feature of ONNX Runtime that enables AI developers to build machine learning-powered web experience on both central processing unit (CPU) and graphics processing unit (GPU).<\/p>\n<p>For CPU workloads, WebAssembly is used to execute models at near-native speed. ONNX Runtime Web compiles the native ONNX Runtime CPU engine into WebAssembly backend by using Emscripten. This allows it to run any ONNX model and support most functionalities native ONNX Runtime offers, including full ONNX operator coverage, multi-threading, <a href=\"https:\/\/www.onnxruntime.ai\/docs\/how-to\/quantization.html\" target=\"_blank\" rel=\"noopener\">quantization<\/a>, and <a href=\"https:\/\/www.onnxruntime.ai\/docs\/how-to\/mobile\/overview.html\" target=\"_blank\" rel=\"noopener\">ONNX Runtime on Mobile<\/a>.<\/p>\n<p>For accelerated performance on GPUs, ONNX Runtime Web leverages WebGL, a popular standard for accessing GPU capabilities. Operator coverage and performance optimizations with the WebGL backend are continuously improving, and we are also exploring new techniques such as WebGPU to further speed up ONNX Runtime Web inference on GPUs.<\/p>\n<p>Follow the <a href=\"https:\/\/github.com\/microsoft\/onnxruntime-inference-examples\/tree\/main\/js\" target=\"_blank\" rel=\"noopener\">examples of ONNX Runtime Web<\/a> to try it out.<\/p>\n<h2>ONNX Runtime on Mobile<\/h2>\n<p>Supporting AI execution on mobile devices is also a popular use case, particularly for offline processing, privacy, or latency sensitive scenarios. We previewed the <a href=\"https:\/\/cloudblogs.microsoft.com\/opensource\/2020\/10\/12\/introducing-onnx-runtime-mobile-reduced-size-high-performance-package-edge-devices\/\" target=\"_blank\" rel=\"noopener\">ONNX Runtime Mobile feature in V1.6<\/a> and have since added many new features, including support for NNAPI and CoreML execution providers to accelerate model execution on mobile phones. We are announcing the preview of the pod for C\/C++ library for integrating ONNX Runtime Mobile with iOS applications. Both Android and iOS (in preview) packages are available as pre-built packages for installation from Maven Central and CocoaPods respectively. The Android package utilizes the native NNAPI accelerator on Android devices when available. The iOS package utilizes CoreML for accelerating model execution in addition to supporting direct execution on the ARM CPU.<\/p>\n<h2>ONNX Runtime Training for PyTorch<\/h2>\n<p>As part of the PyTorch ecosystem and available via the <a href=\"https:\/\/pypi.org\/project\/torch-ort\/\" target=\"_blank\" rel=\"noopener\">torch-ort package<\/a>, ONNX Runtime Training is a backend for PyTorch to accelerate distributed training experiments of large transformer models. The training time and infrastructure cost are reduced with a one-line code change to the original PyTorch training script to add ONNX Runtime in the training loop. ONNX Runtime Training includes optimized kernels for GPU execution and efficient GPU memory management. This delivers up to 1.4X training throughput acceleration and enables large models to fit onto smaller GPUs thereby improving GPU utilization efficiency. Because the PyTorch training loop is unmodified, ONNX Runtime for PyTorch can compose with other acceleration libraries such as DeepSpeed, Fairscale, and Megatron for even faster and more efficient training. This release includes support for using ONNX Runtime Training on both NVIDIA and AMD GPUs.<\/p>\n<p>For the full list of new features in this release, please see the <a href=\"https:\/\/github.com\/microsoft\/onnxruntime\/releases\/tag\/v1.8.0\" target=\"_blank\" rel=\"noopener\">release notes<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The V1.8 release of ONNX Runtime includes many exciting new features. This release launches ONNX Runtime machine learning model inferencing acceleration for Android and iOS mobile ecosystems (previously in preview) and introduces ONNX Runtime Web. Additionally, the release also debuts official packages for accelerating model training workloads in PyTorch.<\/p>\n","protected":false},"author":5562,"featured_media":95486,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"msxcm_post_with_no_image":false,"ep_exclude_from_search":false,"_classifai_error":"","_classifai_text_to_speech_error":"","footnotes":""},"post_tag":[2030],"content-type":[],"topic":[],"programming-languages":[],"coauthors":[657],"class_list":["post-86387","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-onnx-runtime-training","review-flag-1593580428-734","review-flag-1593580419-521","review-flag-1-1593580432-963","review-flag-6-1593580457-852","review-flag-8-1593580468-572","review-flag-free-1593619513-693","review-flag-machi-1680214156-53","review-flag-new-1593580248-669"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>ONNX Runtime 1.8: mobile, web, and accelerated training | Microsoft Open Source Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/opensource.microsoft.com\/blog\/2021\/06\/07\/onnx-runtime-1-8-mobile-web-and-accelerated-training\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ONNX Runtime 1.8: mobile, web, and accelerated training | Microsoft Open Source Blog\" \/>\n<meta property=\"og:description\" content=\"The V1.8 release of ONNX Runtime includes many exciting new features. This release launches ONNX Runtime machine learning model inferencing acceleration for Android and iOS mobile ecosystems (previously in preview) and introduces ONNX Runtime Web. Additionally, the release also debuts official packages for accelerating model training workloads in PyTorch.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/opensource.microsoft.com\/blog\/2021\/06\/07\/onnx-runtime-1-8-mobile-web-and-accelerated-training\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Open Source Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-06-07T16:00:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-06-19T17:50:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/STB13_Jaden_06.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1170\" \/>\n\t<meta property=\"og:image:height\" content=\"640\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Faith Xu\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@OpenAtMicrosoft\" \/>\n<meta name=\"twitter:site\" content=\"@OpenAtMicrosoft\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Faith Xu\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 min read\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2021\/06\/07\/onnx-runtime-1-8-mobile-web-and-accelerated-training\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2021\/06\/07\/onnx-runtime-1-8-mobile-web-and-accelerated-training\/\"},\"author\":[{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/author\/faith-xu\/\",\"@type\":\"Person\",\"@name\":\"Faith Xu\"}],\"headline\":\"ONNX Runtime 1.8: mobile, web, and accelerated training\",\"datePublished\":\"2021-06-07T16:00:11+00:00\",\"dateModified\":\"2024-06-19T17:50:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2021\/06\/07\/onnx-runtime-1-8-mobile-web-and-accelerated-training\/\"},\"wordCount\":560,\"publisher\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2021\/06\/07\/onnx-runtime-1-8-mobile-web-and-accelerated-training\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/STB13_Jaden_06.webp\",\"keywords\":[\"ONNX Runtime Training\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2021\/06\/07\/onnx-runtime-1-8-mobile-web-and-accelerated-training\/\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/2021\/06\/07\/onnx-runtime-1-8-mobile-web-and-accelerated-training\/\",\"name\":\"ONNX Runtime 1.8: mobile, web, and accelerated training | Microsoft Open Source Blog\",\"isPartOf\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2021\/06\/07\/onnx-runtime-1-8-mobile-web-and-accelerated-training\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2021\/06\/07\/onnx-runtime-1-8-mobile-web-and-accelerated-training\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/STB13_Jaden_06.webp\",\"datePublished\":\"2021-06-07T16:00:11+00:00\",\"dateModified\":\"2024-06-19T17:50:25+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2021\/06\/07\/onnx-runtime-1-8-mobile-web-and-accelerated-training\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/opensource.microsoft.com\/blog\/2021\/06\/07\/onnx-runtime-1-8-mobile-web-and-accelerated-training\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2021\/06\/07\/onnx-runtime-1-8-mobile-web-and-accelerated-training\/#primaryimage\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/STB13_Jaden_06.webp\",\"contentUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/STB13_Jaden_06.webp\",\"width\":1170,\"height\":640},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2021\/06\/07\/onnx-runtime-1-8-mobile-web-and-accelerated-training\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/opensource.microsoft.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"ONNX Runtime 1.8: mobile, web, and accelerated training\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#website\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/\",\"name\":\"Microsoft Open Source Blog\",\"description\":\"Open dialogue about openness at Microsoft \u2013 open source, standards, interoperability\",\"publisher\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/opensource.microsoft.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#organization\",\"name\":\"Microsoft Open Source Blog\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png\",\"contentUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png\",\"width\":259,\"height\":194,\"caption\":\"Microsoft Open Source Blog\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/OpenAtMicrosoft\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"ONNX Runtime 1.8: mobile, web, and accelerated training | Microsoft Open Source Blog","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:\/\/opensource.microsoft.com\/blog\/2021\/06\/07\/onnx-runtime-1-8-mobile-web-and-accelerated-training\/","og_locale":"en_US","og_type":"article","og_title":"ONNX Runtime 1.8: mobile, web, and accelerated training | Microsoft Open Source Blog","og_description":"The V1.8 release of ONNX Runtime includes many exciting new features. This release launches ONNX Runtime machine learning model inferencing acceleration for Android and iOS mobile ecosystems (previously in preview) and introduces ONNX Runtime Web. Additionally, the release also debuts official packages for accelerating model training workloads in PyTorch.","og_url":"https:\/\/opensource.microsoft.com\/blog\/2021\/06\/07\/onnx-runtime-1-8-mobile-web-and-accelerated-training\/","og_site_name":"Microsoft Open Source Blog","article_published_time":"2021-06-07T16:00:11+00:00","article_modified_time":"2024-06-19T17:50:25+00:00","og_image":[{"width":1170,"height":640,"url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/STB13_Jaden_06.png","type":"image\/png"}],"author":"Faith Xu","twitter_card":"summary_large_image","twitter_creator":"@OpenAtMicrosoft","twitter_site":"@OpenAtMicrosoft","twitter_misc":{"Written by":"Faith Xu","Est. reading time":"2 min read"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/opensource.microsoft.com\/blog\/2021\/06\/07\/onnx-runtime-1-8-mobile-web-and-accelerated-training\/#article","isPartOf":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2021\/06\/07\/onnx-runtime-1-8-mobile-web-and-accelerated-training\/"},"author":[{"@id":"https:\/\/opensource.microsoft.com\/blog\/author\/faith-xu\/","@type":"Person","@name":"Faith Xu"}],"headline":"ONNX Runtime 1.8: mobile, web, and accelerated training","datePublished":"2021-06-07T16:00:11+00:00","dateModified":"2024-06-19T17:50:25+00:00","mainEntityOfPage":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2021\/06\/07\/onnx-runtime-1-8-mobile-web-and-accelerated-training\/"},"wordCount":560,"publisher":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#organization"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2021\/06\/07\/onnx-runtime-1-8-mobile-web-and-accelerated-training\/#primaryimage"},"thumbnailUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/STB13_Jaden_06.webp","keywords":["ONNX Runtime Training"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/opensource.microsoft.com\/blog\/2021\/06\/07\/onnx-runtime-1-8-mobile-web-and-accelerated-training\/","url":"https:\/\/opensource.microsoft.com\/blog\/2021\/06\/07\/onnx-runtime-1-8-mobile-web-and-accelerated-training\/","name":"ONNX Runtime 1.8: mobile, web, and accelerated training | Microsoft Open Source Blog","isPartOf":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2021\/06\/07\/onnx-runtime-1-8-mobile-web-and-accelerated-training\/#primaryimage"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2021\/06\/07\/onnx-runtime-1-8-mobile-web-and-accelerated-training\/#primaryimage"},"thumbnailUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/STB13_Jaden_06.webp","datePublished":"2021-06-07T16:00:11+00:00","dateModified":"2024-06-19T17:50:25+00:00","breadcrumb":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2021\/06\/07\/onnx-runtime-1-8-mobile-web-and-accelerated-training\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/opensource.microsoft.com\/blog\/2021\/06\/07\/onnx-runtime-1-8-mobile-web-and-accelerated-training\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/opensource.microsoft.com\/blog\/2021\/06\/07\/onnx-runtime-1-8-mobile-web-and-accelerated-training\/#primaryimage","url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/STB13_Jaden_06.webp","contentUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/STB13_Jaden_06.webp","width":1170,"height":640},{"@type":"BreadcrumbList","@id":"https:\/\/opensource.microsoft.com\/blog\/2021\/06\/07\/onnx-runtime-1-8-mobile-web-and-accelerated-training\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/opensource.microsoft.com\/blog\/"},{"@type":"ListItem","position":2,"name":"ONNX Runtime 1.8: mobile, web, and accelerated training"}]},{"@type":"WebSite","@id":"https:\/\/opensource.microsoft.com\/blog\/#website","url":"https:\/\/opensource.microsoft.com\/blog\/","name":"Microsoft Open Source Blog","description":"Open dialogue about openness at Microsoft \u2013 open source, standards, interoperability","publisher":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/opensource.microsoft.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/opensource.microsoft.com\/blog\/#organization","name":"Microsoft Open Source Blog","url":"https:\/\/opensource.microsoft.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png","contentUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png","width":259,"height":194,"caption":"Microsoft Open Source Blog"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/OpenAtMicrosoft"]}]}},"msxcm_display_generated_audio":false,"msxcm_animated_featured_image":null,"distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Microsoft Open Source Blog","distributor_original_site_url":"https:\/\/opensource.microsoft.com\/blog","push-errors":false,"_links":{"self":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts\/86387","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/users\/5562"}],"replies":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/comments?post=86387"}],"version-history":[{"count":1,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts\/86387\/revisions"}],"predecessor-version":[{"id":95725,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts\/86387\/revisions\/95725"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/media\/95486"}],"wp:attachment":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/media?parent=86387"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/post_tag?post=86387"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/content-type?post=86387"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/topic?post=86387"},{"taxonomy":"programming-languages","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/programming-languages?post=86387"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/coauthors?post=86387"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}