CINXE.COM
Build a Hugging Face text classification model in Amazon SageMaker JumpStart | AWS Machine Learning Blog
<!doctype html> <html lang="en-US" class="no-js aws-lng-en_US" xmlns="http://www.w3.org/1999/xhtml" data-aws-assets="https://a0.awsstatic.com" data-js-version="1.0.681" data-css-version="1.0.538" data-static-assets="https://a0.awsstatic.com" prefix="og: https://ogp.me/ns#"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Build a Hugging Face text classification model in Amazon SageMaker JumpStart | AWS Machine Learning Blog</title> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: https://a0.awsstatic.com https://prod.us-east-1.ui.gcr-chat.marketing.aws.dev; base-uri 'none'; connect-src 'self' *.akamaized.net *.googlevideo.com/videoplayback https://*.analytics.console.aws.a2z.com https://*.harmony.a2z.com https://*.panorama.console.api.aws https://*.prod.chc-features.uxplatform.aws.dev https://112-tzm-766.mktoresp.com https://112-tzm-766.mktoutil.com https://a0.awsstatic.com https://a0.p.awsstatic.com https://a1.awsstatic.com https://amazonwebservices.d2.sc.omtrdc.net https://amazonwebservicesinc.tt.omtrdc.net https://api-v2.builderprofile.aws.dev https://api.regional-table.region-services.aws.a2z.com https://api.us-west-2.prod.pricing.aws.a2z.com https://auth.aws.amazon.com/ https://aws.amazon.com/p/sf/ https://aws.demdex.net https://b0.p.awsstatic.com https://c0.b0.p.awsstatic.com https://calculator.aws https://chat.us-east-1.prod.mrc-sunrise.marketing.aws.dev https://chatbot-api.us-east-1.prod.mrc-sunrise.marketing.aws.dev https://chatbot-stream-api.us-east-1.prod.mrc-sunrise.marketing.aws.dev https://cm.everesttech.net https://d-90676d7478.awsapps.com https://d0.awsstatic.com https://d1.awsstatic.com https://d1fgizr415o1r6.cloudfront.net https://d2c.aws.amazon.com https://d3borx6sfvnesb.cloudfront.net https://dftu77xade0tc.cloudfront.net https://dpm.demdex.net https://edge.adobedc.net https://fls-na.amazon.com https://i18n-string.us-west-2.prod.pricing.aws.a2z.com https://iad.staging.prod.tv.awsstatic.com https://infra-api.us-east-1.prod.mrc-sunrise.marketing.aws.dev https://ingestion.aperture-public-api.feedback.console.aws.dev https://livechat-api.us-east-1.prod.mrc-sunrise.marketing.aws.dev https://oidc.us-east-1.amazonaws.com https://pricing-table.us-west-2.prod.site.p.awsstatic.com https://prod-api.cosmic.aws.dev https://prod-us-west-2.csp-report.marketing.aws.dev https://prod-us-west-2.csp-report.marketing.aws.dev/submit https://prod.log.shortbread.aws.dev https://prod.tools.shortbread.aws.dev https://prod.us-east-1.api.gcr-chat.marketing.aws.dev https://prod.us-east-1.rest-bot.gcr-chat.marketing.aws.dev https://prod.us-east-1.ui.gcr-chat.marketing.aws.dev https://prod2.clientlogger.cn-northwest-1.marketplace.aws.a2z.org.cn https://public.lotus.awt.aws.a2z.com https://s0.awsstatic.com https://s3.amazonaws.com/aws-messaging-pricing-information/ https://s3.amazonaws.com/public-pricing-agc/ https://spot-bid-advisor.s3.amazonaws.com https://t0.m.awsstatic.com https://token.us-west-2.prod.site.p.awsstatic.com https://tv.awsstatic.com https://view-stage.us-west-2.prod.pricing.aws.a2z.com https://view-staging.us-east-1.prod.plc1-prod.pricing.aws.a2z.com https://vs.aws.amazon.com https://webchat-aws.clink.cn https://www.youtube-nocookie.com https://www.youtube.com https://xcxrmtkxx5.execute-api.us-east-1.amazonaws.com/prod/ wss://*.transport.connect.us-east-1.amazonaws.com wss://prod.us-east-1.wss-bot.gcr-chat.marketing.aws.dev wss://webchat-aws.clink.cn; font-src 'self' data: https://a0.awsstatic.com https://f0.awsstatic.com https://fonts.gstatic.com https://prod.us-east-1.ui.gcr-chat.marketing.aws.dev; frame-src 'self' https://*.widget.console.aws.amazon.com https://aws.demdex.net https://c0.b0.p.awsstatic.com https://calculator.aws https://commenting.awsblogs.com https://conversational-experience-worker.widget.console.aws.amazon.com/lotus/isolatedIFrame https://dpm.demdex.net https://player.vimeo.com https://pricing-table.us-west-2.prod.site.p.awsstatic.com https://token.us-west-2.prod.site.p.awsstatic.com https://www.youtube-nocookie.com https://www.youtube.com; img-src 'self' blob: data: https://*.vidyard.com https://*.ytimg.com https://a0.awsstatic.com https://amazonwebservices.d2.sc.omtrdc.net https://avatars.builderprofile.aws.dev https://aws-clink2-resource.s3.cn-northwest-1.amazonaws.com.cn https://aws-quickstart.s3.amazonaws.com https://aws.amazon.com https://aws.demdex.net https://awsmedia.s3.amazonaws.com https://chat.us-east-1.prod.mrc-sunrise.marketing.aws.dev https://cm.everesttech.net https://d1.awsstatic.com https://d1d1et6laiqoh9.cloudfront.net https://d2908q01vomqb2.cloudfront.net https://d2c.aws.amazon.com https://d2cpw7vd6a2efr.cloudfront.net https://d36cz9buwru1tt.cloudfront.net https://d7umqicpi7263.cloudfront.net https://docs.aws.amazon.com https://dpm.demdex.net https://fls-na.amazon.com https://google.ca https://google.co.in https://google.co.jp https://google.co.th https://google.co.uk https://google.com https://google.com.ar https://google.com.au https://google.com.br https://google.com.hk https://google.com.mx https://google.com.tr https://google.com.tw https://google.de https://google.es https://google.fr https://google.it https://google.nl https://google.pl https://google.ru https://iad.staging.prod.tv.awsstatic.com https://img.youtube.com https://marketingplatform.google.com https://media.amazonwebservices.com https://p.adsymptotic.com https://pages.awscloud.com https://prod.cosmic.aws.dev https://prod.us-east-1.ui.gcr-chat.marketing.aws.dev https://s3.amazonaws.com/aws-quickstart/ https://s3.cn-north-1.amazonaws.com.cn/awschinablog/ https://s3.cn-north-1.amazonaws.com.cn/images-bjs/ https://ssl-static.libsyn.com https://static-cdn.jtvnw.net https://tv.awsstatic.com https://webchat-aws.clink.cn https://www.google.com https://www.linkedin.com https://yt3.ggpht.com; media-src 'self' https://*.libsyn.com https://a0.awsstatic.com https://anchor.fm https://awsmedia.s3.amazonaws.com https://awspodcastsiberiaent.s3.eu-west-3.amazonaws.com https://chat.us-east-1.prod.mrc-sunrise.marketing.aws.dev https://chtbl.com https://content.production.cdn.art19.com https://d1.awsstatic.com https://d1hemuljm71t2j.cloudfront.net https://d1le29qyzha1u4.cloudfront.net https://d1oqpvwii7b6rh.cloudfront.net https://d1vo51ubqkiilx.cloudfront.net https://d1yyh5dhdgifnx.cloudfront.net https://d2908q01vomqb2.cloudfront.net https://d2a6igt6jhaluh.cloudfront.net https://d3ctxlq1ktw2nl.cloudfront.net https://d3h2ozso0dirfl.cloudfront.net https://dgen8gghn3u86.cloudfront.net https://dk261l6wntthl.cloudfront.net https://download.stormacq.com/aws/podcast/ https://dts.podtrac.com https://iad.staging.prod.tv.awsstatic.com https://media.amazonwebservices.com https://mktg-apac.s3-ap-southeast-1.amazonaws.com https://rss.art19.com https://s3-ap-northeast-1.amazonaws.com/aws-china-media/ https://tv.awsstatic.com https://www.buzzsprout.com; object-src 'none'; script-src 'nonce-yc1+xiepHtYsQ4uLCXEi6oHfI52D0eyO6chNPR/sRxQ=' 'self' blob: https://*.cdn.console.awsstatic.com/ https://*.cdn.uis.awsstatic.com/ https://a.b.cdn.console.awsstatic.com https://a0.awsstatic.com https://amazonwebservicesinc.tt.omtrdc.net https://cdn.builderprofile.aws.dev https://chat.us-east-1.prod.mrc-sunrise.marketing.aws.dev https://d2c.aws.amazon.com https://googleads.g.doubleclick.net https://loader.us-east-1.prod.mrc-sunrise.marketing.aws.dev https://prod.cosmic.aws.dev https://prod.us-east-1.ui.gcr-chat.marketing.aws.dev https://spot-price.s3.amazonaws.com https://static.doubleclick.net https://t0.m.awsstatic.com https://token.us-west-2.prod.site.p.awsstatic.com https://website.spot.ec2.aws.a2z.com https://www.google.com https://www.gstatic.com https://www.youtube.com/iframe_api https://www.youtube.com/s/player/; style-src 'self' 'unsafe-inline' https://a0.awsstatic.com https://prod.us-east-1.ui.gcr-chat.marketing.aws.dev https://token.us-west-2.prod.site.p.awsstatic.com; report-uri https://prod-us-west-2.csp-report.marketing.aws.dev/submit" data-report-uri="https://prod-us-west-2.csp-report.marketing.aws.dev/submit"> <script src="https://a0.awsstatic.com/libra/1.0.590/csp/csp-report.js"></script> <meta name="robots" content="max-image-preview:large"> <link rel="dns-prefetch" href="//a0.awsstatic.com"> <style id="global-styles-inline-css" type="text/css"> body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--duotone--dark-grayscale: url('#wp-duotone-dark-grayscale');--wp--preset--duotone--grayscale: url('#wp-duotone-grayscale');--wp--preset--duotone--purple-yellow: url('#wp-duotone-purple-yellow');--wp--preset--duotone--blue-red: url('#wp-duotone-blue-red');--wp--preset--duotone--midnight: url('#wp-duotone-midnight');--wp--preset--duotone--magenta-yellow: url('#wp-duotone-magenta-yellow');--wp--preset--duotone--purple-green: url('#wp-duotone-purple-green');--wp--preset--duotone--blue-orange: url('#wp-duotone-blue-orange');--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} </style> <link rel="canonical" href="https://aws.amazon.com/blogs/machine-learning/build-a-hugging-face-text-classification-model-in-amazon-sagemaker-jumpstart/"> <meta property="og:locale" content="en_US"> <meta property="og:site_name" content="Amazon Web Services"> <meta property="og:title" content="Build a Hugging Face text classification model in Amazon SageMaker JumpStart | Amazon Web Services"> <meta property="og:type" content="article"> <meta property="og:url" content="https://aws.amazon.com/blogs/machine-learning/build-a-hugging-face-text-classification-model-in-amazon-sagemaker-jumpstart/"> <meta property="og:description" content="Amazon SageMaker JumpStart provides a suite of built-in algorithms, pre-trained models, and pre-built solution templates to help data scientists and machine learning (ML) practitioners get started on training and deploying ML models quickly. You can use these algorithms and models for both supervised and unsupervised learning. They can process various types of input data, including […]"> <meta property="og:image" content="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2024/05/08/hugging-face-classifier.jpg"> <meta property="og:image:width" content="895"> <meta property="og:image:height" content="501"> <meta property="og:updated_time" content="2024-05-08T12:43:02-08:00"> <meta property="article:publisher" content="https://www.facebook.com/amazonwebservices"> <meta property="article:section" content="Amazon SageMaker"> <meta property="article:tag" content="Amazon SageMaker"> <meta property="article:tag" content="Amazon SageMaker JumpStart"> <meta property="article:tag" content="Artificial Intelligence"> <meta property="article:tag" content="Expert (400)"> <meta property="article:published_time" content="2024-05-08T12:43:02-08:00"> <meta property="article:modified_time" content="2024-05-08T12:43:02-08:00"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:site" content="@awscloud"> <meta name="twitter:domain" content="https://aws.amazon.com/blogs/"> <meta name="twitter:title" content="Build a Hugging Face text classification model in Amazon SageMaker JumpStart | Amazon Web Services"> <meta name="twitter:description" content="Amazon SageMaker JumpStart provides a suite of built-in algorithms, pre-trained models, and pre-built solution templates to help data scientists and machine learning (ML) practitioners get started on training and deploying ML models quickly. You can use these algorithms and models for both supervised and unsupervised learning. They can process various types of input data, including […]"> <meta name="twitter:image" content="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2024/05/08/hugging-face-classifier.jpg"> <link rel="icon" type="image/ico" href="https://a0.awsstatic.com/main/images/site/fav/favicon.ico"> <link rel="shortcut icon" type="image/ico" href="https://a0.awsstatic.com/main/images/site/fav/favicon.ico"> <link rel="apple-touch-icon" sizes="57x57" href="https://a0.awsstatic.com/main/images/site/touch-icon-iphone-114-smile.png"> <link rel="apple-touch-icon" sizes="72x72" href="https://a0.awsstatic.com/main/images/site/touch-icon-ipad-144-smile.png"> <link rel="apple-touch-icon" sizes="114x114" href="https://a0.awsstatic.com/main/images/site/touch-icon-iphone-114-smile.png"> <link rel="apple-touch-icon" sizes="144x144" href="https://a0.awsstatic.com/main/images/site/touch-icon-ipad-144-smile.png"> <link rel="home" type="application/rss+xml" title="RSS 2.0 Feed" href="https://aws.amazon.com/blogs/machine-learning/feed/"> <meta name="robots" content="index, follow"> <link rel="stylesheet" href="https://a0.awsstatic.com/libra-css/css/1.0.506/style-awsm.css"> <link rel="stylesheet" href="https://a0.awsstatic.com/aws-blog/1.0.83/css/blog.css"> <script type="application/json" id="aws-page-settings"> {"blogPageTitle":"Build a Hugging Face text classification model in Amazon SageMaker JumpStart","currentLanguage":"en-US","libraCSSPath":"https:\/\/a0.awsstatic.com\/libra-css\/css\/1.0.506","requireBaseUrl":"https:\/\/a0.awsstatic.com","requirePackages":[{"name":"libra","location":"libra\/1.0.590"}],"requirePaths":{"aws-blog":"https:\/\/a0.awsstatic.com\/aws-blog\/1.0.83\/js","directories":"https:\/\/a0.awsstatic.com\/libra\/1.0.590\/directories","librastandardlib":"https:\/\/a0.awsstatic.com\/libra\/1.0.590\/librastandardlib","scripts":"https:\/\/a0.awsstatic.com\/libra\/1.0.590\/v1-polyfills\/scripts"},"supportedLanguages":["ar","de","en","es","fr","id","it","jp","ko","pt","ru","th","tr","vi","cn","tw"],"currentStage":"Prod"} </script> <script src="https://a0.awsstatic.com/aws-blog/1.0.83/js/blog-head.js"></script> <script src="https://a0.awsstatic.com/s_code/js/3.0/awshome_s_code.js"></script> <script type="application/json" id="target-mediator"> {"supportedLanguages":["ar","de","en","es","fr","id","it","jp","ko","pt","ru","th","tr","vi","cn","tw"],"pageLanguage":"en","customParams":{"category0":"Amazon SageMaker","category1":"Amazon SageMaker JumpStart","category2":"Artificial Intelligence","category3":"Expert (400)"}} </script> <script src="https://a0.awsstatic.com/target/1.0.122/aws-target-mediator.js"></script> <noscript> <style>.js-mbox { visibility: visible; }</style> </noscript> </head> <body class="awsm aws-blogs-page aws-blogs-page-type-single"> <script id="awsc-panorama-bundle" src="https://prod.pa.cdn.uis.awsstatic.com/panorama-nav-init.js" data-config="{"appEntity":"aws-marketing","region":"us-west-1","service":"blogs-site"}" async="true"></script> <a id="aws-page-skip-to-main" class="lb-sr-only lb-sr-only-focusable lb-bold lb-skip-el" href="#aws-page-content-main"> Skip to Main Content</a> <header id="aws-page-header" class="awsm m-page-header lb-with-mobile-subrow" role="banner"> <div id="m-nav" class="m-nav" role="navigation" aria-label="Global Navigation"> <div class="m-nav-header lb-clearfix" data-menu-url="https://s0.awsstatic.com/en_US/nav/v3/panel-content/desktop/index.html"> <div class="m-nav-logo"> <div class="lb-bg-logo aws-amazon_web_services_smile-header-desktop-en"> <a href="https://aws.amazon.com/?nc2=h_lg"><span>Click here to return to Amazon Web Services homepage</span></a> </div> </div> <nav class="m-nav-secondary-links" style="min-width: 620px" aria-label="Secondary Global Navigation"> <a href="https://aws.amazon.com/about-aws/?nc2=h_header">About AWS</a> <a href="https://aws.amazon.com/contact-us/?nc2=h_header">Contact Us</a> <a class="lb-txt-none lb-tiny-iblock lb-txt-13 lb-txt lb-has-trigger-indicator" href="#" data-mbox-ignore="true" data-lb-popover-trigger="popover-support-selector" role="button" aria-expanded="false" aria-label="Explore support options" id="popover-popover-support-selector-trigger" aria-controls="popover-support-selector" aria-haspopup="true"> Support <svg viewbox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" class="icon-chevron-down lb-trigger-mount"> <path d="M1 4.5L8 11.5L15 4.5" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /> </svg> </a> <a id="m-nav-language-selector" class="lb-tiny-iblock lb-txt lb-has-trigger-indicator" href="#" data-lb-popover-trigger="popover-language-selector" data-language="en" aria-label="Set site language" role="button" aria-controls="popover-language-selector" aria-expanded="false" aria-haspopup="true"> English <svg viewbox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" class="icon-chevron-down lb-trigger-mount"> <path d="M1 4.5L8 11.5L15 4.5" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /> </svg> </a> <a class="lb-tiny-iblock lb-txt lb-has-trigger-indicator" href="#" data-lb-popover-trigger="popover-my-account" aria-label="Access account options" role="button" aria-controls="popover-my-account" aria-expanded="false" aria-haspopup="true"> My Account <svg viewbox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" class="icon-chevron-down lb-trigger-mount"> <path d="M1 4.5L8 11.5L15 4.5" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" /> </svg> </a> <div class="m-nav-cta-btn"> <div class="lb-mbox js-mbox" data-lb-comp="mbox" data-lb-comp-ignore="true" data-mbox="en_header_nav_cta"> <div class="lb-data-attr-wrapper data-attr-wrapper" data-da-type="so" data-da-so-type="viewport" data-da-so-language="en" data-da-so-category="monitoring" data-da-so-name="nav-buttons" data-da-so-version="sign-up-sign-in-all" data-da-so-url="nav"> <div class="data-attr-wrapper lb-tiny-iblock lb-none-pad lb-box" data-da-type="so" data-da-so-type="viewport" data-da-so-language="en" data-da-so-category="monitoring" data-da-so-name="nav-buttons" data-da-so-version="prospect-sign-in" data-da-so-url="all"> <a class="lb-txt-none lb-tiny-iblock lb-txt-13 lb-txt" style="padding-top:8px; padding-right:13px;" href="https://console.aws.amazon.com/console/home?nc2=h_ct&src=header-signin"> Sign In</a> </div> <div class="data-attr-wrapper lb-tiny-iblock lb-none-v-margin lb-btn" data-da-type="so" data-da-so-type="viewport" data-da-so-language="en" data-da-so-category="monitoring" data-da-so-name="nav-buttons" data-da-so-version="prospect-signup" data-da-so-url="all"> <a class="lb-btn-p-primary" href="https://portal.aws.amazon.com/gp/aws/developer/registration/index.html?nc2=h_ct&src=header_signup" data-trk-params="{"trkOverrideWithQs":true}" role="button"> <span> Create an AWS Account</span> </a> </div> </div> </div> <div class="lb-mbox js-mbox" data-lb-comp="mbox" data-lb-comp-ignore="true" data-mbox="en_header_desktop_nav_cta_test"> </div> </div> </nav> <div class="m-nav-primary-group"> <nav class="m-nav-primary-links" aria-label="Primary Global Navigation"> <i class="m-nav-angle-left-icon" aria-hidden="true"></i> <ul> <li aria-expanded="false"><span><a href="https://aws.amazon.com/q/?nc2=h_ql_prod_l1_q" class="m-nav-featured">Amazon Q</a></span></li> <li aria-expanded="false"><span><a href="https://aws.amazon.com/products/?nc2=h_ql_prod" data-panel="m-nav-panel-products">Products</a></span></li> <li aria-expanded="false"><span><a href="https://aws.amazon.com/solutions/?nc2=h_ql_sol" data-panel="m-nav-panel-solutions">Solutions</a></span></li> <li aria-expanded="false"><span><a href="https://aws.amazon.com/pricing/?nc2=h_ql_pr" data-panel="m-nav-panel-pricing">Pricing</a></span></li> <li aria-expanded="false"><span><a href="https://aws.amazon.com/documentation-overview/?nc2=h_ql_doc_do" data-panel="m-nav-panel-documentation">Documentation</a></span></li> <li aria-expanded="false"><span><a href="https://aws.amazon.com/getting-started/?nc2=h_ql_le" data-panel="m-nav-panel-learn">Learn</a></span></li> <li aria-expanded="false"><span><a href="https://aws.amazon.com/partners/?nc2=h_ql_pn" data-panel="m-nav-panel-partner">Partner Network</a></span></li> <li aria-expanded="false"><span><a href="https://aws.amazon.com/marketplace/?nc2=h_ql_mp" data-panel="m-nav-panel-marketplace">AWS Marketplace</a></span></li> <li aria-expanded="false"><span><a href="https://aws.amazon.com/customer-enablement/?nc2=h_ql_ce" data-panel="m-nav-panel-customer">Customer Enablement</a></span></li> <li aria-expanded="false"><span><a href="https://aws.amazon.com/events/?nc2=h_ql_ev" data-panel="m-nav-panel-events">Events</a></span></li> <li aria-expanded="false"><span><a href="https://aws.amazon.com/contact-us/?nc2=h_ql_exm" data-panel="m-nav-panel-more">Explore More </a></span></li> </ul> <div class="m-nav-icon-group"> <i class="m-nav-angle-right-icon" aria-hidden="true"></i> <button class="m-nav-search-icon" tabindex="0" aria-expanded="false" aria-label="Search"> <svg viewbox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" class="icon-magnify"> <path d="M10.5 10.5L14.5 14.5" stroke-width="2" stroke-linejoin="round" /> <path d="M7 12.5C10.0376 12.5 12.5 10.0376 12.5 7C12.5 3.96243 10.0376 1.5 7 1.5C3.96243 1.5 1.5 3.96243 1.5 7C1.5 10.0376 3.96243 12.5 7 12.5Z" stroke-width="2" stroke-linejoin="round" /> </svg> </button> </div> </nav> <div id="m-nav-desktop-search" class="m-nav-search"> <form action="https://aws.amazon.com/search/" role="search"> <div class="m-typeahead" data-directory-id="typeahead-suggestions" data-lb-comp="typeahead"> <input class="m-nav-search-field" placeholder="Search" autocomplete="off" spellcheck="false" dir="auto" type="text" name="searchQuery"> </div> </form> <i class="m-nav-close-icon" role="button" aria-label="Close"></i> </div> </div> </div> <div class="lb-popover lb-popover-aui lb-popover-tiny" data-lb-comp="popover" data-id="popover-language-selector" id="popover-language-selector" aria-modal="false" aria-labelledby="popover-popover-language-selector-trigger" data-action="hover" data-position="top"> <a class="lb-popover-close" role="button" tabindex="0" aria-label="Close" title="Close"> <span class="lb-sr-only">Close</span> </a> <div class="lb-grid lb-row lb-row-max-large lb-snap"> <div class="lb-col lb-tiny-24 lb-mid-12"> <ul class="lb-txt-none lb-ul lb-list-style-none lb-tiny-ul-block"> <li lang="ar-SA" translate="no" data-language="ar"><a href="https://aws.amazon.com/ar/?nc1=h_ls">عربي</a></li> <li lang="id-ID" translate="no" data-language="id"><a href="https://aws.amazon.com/id/?nc1=h_ls">Bahasa Indonesia</a></li> <li lang="de-DE" translate="no" data-language="de"><a href="https://aws.amazon.com/de/?nc1=h_ls">Deutsch</a></li> <li lang="en-US" translate="no" data-language="en"><a href="https://aws.amazon.com/?nc1=h_ls">English</a></li> <li lang="es-ES" translate="no" data-language="es"><a href="https://aws.amazon.com/es/?nc1=h_ls">Español</a></li> <li lang="fr-FR" translate="no" data-language="fr"><a href="https://aws.amazon.com/fr/?nc1=h_ls">Français</a></li> <li lang="it-IT" translate="no" data-language="it"><a href="https://aws.amazon.com/it/?nc1=h_ls">Italiano</a></li> <li lang="pt-BR" translate="no" data-language="pt"><a href="https://aws.amazon.com/pt/?nc1=h_ls">Português</a></li> </ul> </div> <div class="lb-col lb-tiny-24 lb-mid-12"> <ul class="lb-txt-none lb-ul lb-list-style-none lb-tiny-ul-block"> <li lang="vi-VN" translate="no" data-language="vi"><a href="https://aws.amazon.com/vi/?nc1=f_ls">Tiếng Việt</a></li> <li lang="tr-TR" translate="no" data-language="tr"><a href="https://aws.amazon.com/tr/?nc1=h_ls">Türkçe</a></li> <li lang="ru-RU" translate="no" data-language="ru"><a href="https://aws.amazon.com/ru/?nc1=h_ls">Ρусский</a></li> <li lang="th-TH" translate="no" data-language="th"><a href="https://aws.amazon.com/th/?nc1=f_ls">ไทย</a></li> <li lang="ja-JP" translate="no" data-language="jp"><a href="https://aws.amazon.com/jp/?nc1=h_ls">日本語</a></li> <li lang="ko-KR" translate="no" data-language="ko"><a href="https://aws.amazon.com/ko/?nc1=h_ls">한국어</a></li> <li lang="zh-CN" translate="no" data-language="cn"><a href="https://aws.amazon.com/cn/?nc1=h_ls">中文 (简体)</a></li> <li lang="zh-TW" translate="no" data-language="tw"><a href="https://aws.amazon.com/tw/?nc1=h_ls">中文 (繁體)</a></li> </ul> </div> </div> </div> <div class="lb-popover lb-popover-aui lb-popover-tiny" data-lb-comp="popover" data-id="popover-my-account" id="popover-my-account" aria-modal="false" aria-labelledby="popover-popover-my-account-trigger" data-action="hover" data-position="top"> <a class="lb-popover-close" role="button" tabindex="0" aria-label="Close" title="Close"> <span class="lb-sr-only">Close</span> </a> <ul class="lb-txt-none lb-ul lb-list-style-none lb-tiny-ul-block"> <li class="m-no-auth" data-myaws-auth-only="true"><a href="https://aws.amazon.com/profile/?nc2=h_m_mc">My Profile</a></li> <li class="m-no-auth" data-myaws-auth-only="true"><a href="https://auth.aws.amazon.com/sign-out/?nc2=h_m_mc">Sign out of AWS Builder ID</a></li> <li><a href="https://console.aws.amazon.com/?nc2=h_m_mc">AWS Management Console</a></li> <li><a href="https://console.aws.amazon.com/billing/home#/account?nc2=h_m_ma">Account Settings</a></li> <li><a href="https://console.aws.amazon.com/billing/home?nc2=h_m_bc">Billing & Cost Management</a></li> <li><a href="https://console.aws.amazon.com/iam/home?nc2=h_m_sc#security_credential">Security Credentials</a></li> <li><a href="https://phd.aws.amazon.com/?nc2=h_m_sc">AWS Personal Health Dashboard</a></li> </ul> </div> <div class="lb-popover lb-popover-aui lb-popover-tiny" data-lb-comp="popover" data-id="popover-support-selector" id="popover-support-selector" aria-modal="false" aria-labelledby="popover-popover-support-selector-trigger" data-action="hover" data-position="top"> <a class="lb-popover-close" role="button" tabindex="0" aria-label="Close" title="Close"> <span class="lb-sr-only">Close</span> </a> <ul class="lb-txt-none lb-ul lb-list-style-none lb-tiny-ul-block"> <li><a href="https://console.aws.amazon.com/support/home/?nc2=h_ql_cu">Support Center</a></li> <li><a href="https://iq.aws.amazon.com/?utm=mkt.nav">Expert Help</a></li> <li><a href="https://repost.aws/knowledge-center/?nc2=h_m_ma">Knowledge Center</a></li> <li><a href="https://aws.amazon.com/premiumsupport/?nc2=h_m_bc">AWS Support Overview</a></li> <li><a href="https://repost.aws/">AWS re:Post</a></li> </ul> </div> <script type="text/x-handlebars-template" data-hbs-template-path="nav-desktop/suggestions" data-hbs-context="{"pricingText":"Pricing","documentationText":"Documentation","calculatorText":"Calculator"}"></script> <script type="text/x-handlebars-template" data-hbs-template-path="nav-desktop/products-head" data-hbs-context="{"productsText":"Products"}"></script> <script type="text/x-handlebars-template" data-hbs-template-path="nav-desktop/keypages-head" data-hbs-context="{"relatedPagesText":"Related Pages"}"></script> <script type="text/x-handlebars-template" data-hbs-template-path="nav-desktop/tutorials-head" data-hbs-context="{"tutorialsText":"Tutorials"}"></script> <script type="text/x-handlebars-template" data-hbs-template-path="nav-desktop/blogs-head" data-hbs-context="{"blogsText":"Blogs"}"></script> <script type="text/x-handlebars-template" data-hbs-template-path="nav-desktop/see-all" data-hbs-context="{"resultsText":"See more results for"}"></script> </div> <div id="m-nav-mobile" class="m-nav-mobile" role="navigation" aria-label="Global Navigation for Mobile"> <div id="m-nav-mobile-header" class="m-nav-mobile-header m-nav-mobile-with-sub-row" data-menu-url="https://s0.awsstatic.com/en_US/nav/v3/panel-content/mobile/index.html"> <div class="lb-bg-logo aws-amazon_web_services_smile-header-mobile-en"> <a href="https://aws.amazon.com/?nc2=h_lg"><span>Click here to return to Amazon Web Services homepage</span></a> </div> <div class="m-nav-mobile-button-group"> <button class="m-nav-mobile-button icon-search" tabindex="0" aria-expanded="false" aria-label="Search"> <svg viewbox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M10.5 10.5L14.5 14.5" stroke-width="2" stroke-linejoin="round" /> <path d="M7 12.5C10.0376 12.5 12.5 10.0376 12.5 7C12.5 3.96243 10.0376 1.5 7 1.5C3.96243 1.5 1.5 3.96243 1.5 7C1.5 10.0376 3.96243 12.5 7 12.5Z" stroke-width="2" stroke-linejoin="round" /> </svg> </button> <button class="m-nav-mobile-button icon-reorder" tabindex="0" aria-expanded="false" aria-label="Menu"> <svg viewbox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M15 3H1" stroke-width="2" stroke-linejoin="round" /> <path d="M15 8H1" stroke-width="2" stroke-linejoin="round" /> <path d="M15 13H1" stroke-width="2" stroke-linejoin="round" /> </svg> </button> <div class="lb-mbox js-mbox" data-lb-comp="mbox" data-lb-comp-ignore="true" data-mbox="en_header_mobile_nav_cta_test"> </div> </div> <div id="m-nav-mobile-sub-row" class="m-nav-mobile-sub-row"> <div class="data-attr-wrapper lb-btn" data-da-type="so" data-da-so-category="monitoring" data-da-so-language="en" data-da-so-name="global-mobile-sticky-cta-buttons" data-da-so-type="viewport" data-da-so-version="get-started-for-free-cta" data-da-so-url="all"> <a class="lb-btn-p-primary" href="https://portal.aws.amazon.com/gp/aws/developer/registration/index.html?nc2=h_mobile" role="button"> <span> Get Started for Free</span> </a> </div> <div class="data-attr-wrapper lb-btn" data-da-type="so" data-da-so-category="monitoring" data-da-so-language="en" data-da-so-name="global-mobile-sticky-cta-buttons" data-da-so-type="viewport" data-da-so-version="contact-us"> <a class="lb-btn-p" href="https://aws.amazon.com/contact-us/?nc2=h_mobile" role="button"> <span> Contact Us</span> </a> </div> </div> </div> <div id="m-nav-mobile-search" class="m-nav-mobile-search"> <form action="https://aws.amazon.com/search" role="search"> <div class="m-typeahead"> <input class="m-nav-search-field" placeholder="Search" autocomplete="off" spellcheck="false" dir="auto" type="text" name="searchQuery"> </div> </form> </div> <nav id="m-nav-trimdown" aria-label="Condensed Global Navigation for Mobile"> <ul class="m-nav-mobile-menu-group"> <li> <a href="https://aws.amazon.com/products/?nc2=h_mo">Products</a> </li> <li> <a href="https://aws.amazon.com/solutions/?nc2=h_mo">Solutions</a> </li> <li> <a href="https://aws.amazon.com/pricing/?nc2=h_mo">Pricing</a> </li> <li> <a href="https://aws.amazon.com/what-is-aws/?nc2=h_mo">Introduction to AWS</a> </li> <li> <a href="https://aws.amazon.com/getting-started/?nc2=h_mo">Getting Started</a> </li> <li> <a href="https://aws.amazon.com/documentation-overview/?nc2=h_mo">Documentation</a> </li> <li> <a href="https://aws.amazon.com/training/?nc2=h_mo">Training and Certification</a> </li> <li> <a href="https://aws.amazon.com/developer/?nc2=h_mo">Developer Center</a> </li> <li> <a href="https://aws.amazon.com/solutions/case-studies/?nc2=h_mo">Customer Success</a> </li> <li> <a href="https://aws.amazon.com/partners/?nc2=h_mo">Partner Network</a> </li> <li> <a href="https://aws.amazon.com/marketplace/?nc2=h_mo">AWS Marketplace</a> </li> <li> <a href="https://console.aws.amazon.com/support/home?nc2=h_ql_cu">Support</a> </li> <li> <a href="https://repost.aws/">AWS re:Post</a> </li> <li> <a href="https://console.aws.amazon.com/console/home">Log into Console</a> </li> <li> <a href="https://aws.amazon.com/console/mobile/">Download the Mobile App</a> </li> </ul> </nav> </div> </header> <div class="awsm"> <div class="lb-blog-nav" data-lb-comp="aws-blog:blog-nav" data-lb-sticky-header="true"> <div class="lb-row lb-row-max-xlarge lb-snap"> <div class="lb-blog-nav-content"> <div class="lb-blog-nav-links"> <a class="lb-txt-none lb-txt" href="/blogs" data-trk-params="{"trkOverrideWithQs":true}"> AWS Blog Home</a> <a class="lb-txt-none lb-txt lb-has-trigger-indicator" href="#" data-mbox-ignore="true" data-lb-popover-trigger="blog-category" role="button" aria-expanded="false" aria-label="Select blog category" id="popover-blog-category-trigger" aria-controls="blog-category" aria-haspopup="true" data-trk-params="{"trkOverrideWithQs":true}"> Blogs <i class="icon-caret-down lb-trigger-mount"></i></a> <a class="lb-txt-none lb-txt lb-has-trigger-indicator" href="#" data-mbox-ignore="true" data-lb-popover-trigger="blog-editions" role="button" aria-expanded="false" aria-label="Select blog language" id="popover-blog-editions-trigger" aria-controls="blog-editions" aria-haspopup="true" data-trk-params="{"trkOverrideWithQs":true}"> Editions <i class="icon-caret-down lb-trigger-mount"></i></a> </div> </div> </div> </div> <div class="lb-popover lb-popover-aui lb-popover-xlarge" data-lb-comp="popover" data-id="blog-category" id="blog-category" aria-modal="false" aria-labelledby="popover-blog-category-trigger" data-action="hover" data-position="top"> <a class="lb-popover-close" role="button" tabindex="0" aria-label="Close" title="Close"> <span class="lb-sr-only">Close</span> </a> <div class="lb-none-pad lb-none-v-margin lb-grid lb-row lb-row-max-large lb-snap"> <div class="lb-col lb-tiny-24 lb-mid-12"> <div class="lb-none-pad lb-none-v-margin lb-box"> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/architecture/"> Architecture</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/mt/" data-trk-params="{"trkOverrideWithQs":true}"> AWS Cloud Operations</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/gametech/" data-trk-params="{"trkOverrideWithQs":true}"> AWS for Games</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/aws-insights/"> AWS Insights</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/awsmarketplace/"> AWS Marketplace</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/aws/"> AWS News</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/apn/"> AWS Partner Network</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/smb/"> AWS Smart Business</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/big-data/"> Big Data</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/business-intelligence/"> Business Intelligence</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/business-productivity/"> Business Productivity</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/enterprise-strategy/" data-trk-params="{"trkOverrideWithQs":true}"> Cloud Enterprise Strategy</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/aws-cloud-financial-management/"> Cloud Financial Management</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/compute/"> Compute</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/contact-center/"> Contact Center</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/containers/"> Containers</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/database/"> Database</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/desktop-and-application-streaming/"> Desktop & Application Streaming</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/developer/" data-trk-params="{"trkOverrideWithQs":true}"> Developer Tools</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/devops/" data-trk-params="{"trkOverrideWithQs":true}"> DevOps & Developer Productivity</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/mobile/"> Front-End Web & Mobile</a> </div> </div> <div class="lb-col lb-tiny-24 lb-mid-12"> <div class="lb-none-pad lb-none-v-margin lb-box"> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/hpc/"> HPC</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/ibm-redhat/"> IBM and Red Hat</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/industries/"> Industries</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/infrastructure-and-automation/"> Integration & Automation</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/iot/"> Internet of Things</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/machine-learning/"> Machine Learning</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/media/"> Media</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/messaging-and-targeting/"> Messaging & Targeting</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/modernizing-with-aws/"> Microsoft Workloads on AWS</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/migration-and-modernization/"> Migration and Modernization</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/dotnet/"> .NET on AWS</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/networking-and-content-delivery/"> Networking & Content Delivery</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/opensource/"> Open Source</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/publicsector/"> Public Sector</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/quantum-computing/" data-trk-params="{"trkOverrideWithQs":true}"> Quantum Computing</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/robotics/"> Robotics</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/awsforsap/"> SAP</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/security/blogs/" data-trk-params="{"trkOverrideWithQs":true}"> Security</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/spatial/"> Spatial Computing</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/startups/"> Startups</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/storage/"> Storage</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/supply-chain/"> Supply Chain & Logistics</a> <a class="lb-txt-none lb-txt" href="https://aws.amazon.com/blogs/training-and-certification/"> Training & Certification</a> </div> </div> </div> </div> <div class="lb-popover lb-popover-aui lb-popover-tiny" data-lb-comp="popover" data-id="blog-editions" id="blog-editions" aria-modal="false" aria-labelledby="popover-blog-editions-trigger" data-action="hover" data-position="top"> <a class="lb-popover-close" role="button" tabindex="0" aria-label="Close" title="Close"> <span class="lb-sr-only">Close</span> </a> <ul class="lb-txt-none lb-none-v-margin lb-ul lb-list-style-none lb-li-micro-v-margin lb-tiny-ul-block"> <li translate="no" lang="zh-CN"><a href="https://aws.amazon.com/cn/blogs/china/">中国版</a></li> <li translate="no" lang="ja-JP"><a href="https://aws.amazon.com/jp/blogs/news/">日本版</a></li> <li translate="no" lang="ko-KR"><a href="https://aws.amazon.com/ko/blogs/korea/">한국 에디션</a></li> <li translate="no" lang="ko-KR"><a href="https://aws.amazon.com/ko/blogs/tech/">기술 블로그</a></li> <li translate="no" lang="id-ID"><a href="https://aws.amazon.com/id/blogs/indonesia/">Edisi Bahasa Indonesia</a></li> <li translate="no" lang="tr-TR"><a href="https://aws.amazon.com/th/blogs/thailand/">AWS Thai Blog</a></li> <li translate="no" lang="fr-FR"><a href="https://aws.amazon.com/fr/blogs/france/">Édition Française</a></li> <li translate="no" lang="de-DE"><a href="https://aws.amazon.com/de/blogs/germany/">Deutsche Edition</a></li> <li translate="no" lang="pt-BR"><a href="https://aws.amazon.com/pt/blogs/aws-brasil/">Edição em Português</a></li> <li translate="no" lang="es-ES"><a href="https://aws.amazon.com/es/blogs/aws-spanish/">Edición en Español</a></li> <li translate="no" lang="ru-RU"><a href="https://aws.amazon.com/ru/blogs/rus/">Версия на русском</a></li> <li translate="no" lang="tr-TR"><a href="https://aws.amazon.com/tr/blogs/turkey/">Türkçe Sürüm</a></li> </ul> </div> </div> <div id="aws-page-content" class="aws-blog-has-related-posts lb-page-content lb-page-with-sticky-subnav blog-page" data-page-alert-target="true"> <div class="aws-blog-content lb-row lb-row-max-large lb-snap lb-gutter-mid"> <main class="lb-col lb-tiny-24 lb-mid-16" role="main" id="aws-page-content-main" tabindex="-1"> <h2 class="lb-h5 blog-title"><a href="https://aws.amazon.com/blogs/machine-learning/">AWS Machine Learning Blog</a></h2> <article class="blog-post" vocab="https://schema.org/" typeof="TechArticle"> <meta property="inLanguage" content="en-US"> <meta property="image" content="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2024/05/08/hugging-face-classifier.jpg"> <h1 class="lb-h2 blog-post-title" property="name headline">Build a Hugging Face text classification model in Amazon SageMaker JumpStart</h1> <footer class="blog-post-meta" data-lb-comp="aws-blog:share-dialog"> <span>by <span property="author" typeof="Person"><span property="name">Hemant Singh</span></span>, <span property="author" typeof="Person"><span property="name">Rachna Chadha</span></span>, and <span property="author" typeof="Person"><span property="name">Ashish Khetan</span></span></span> <span>on <time property="datePublished" datetime="2024-05-08T12:43:02-08:00">08 MAY 2024</time></span> <span>in <span class="blog-post-categories"><a href="https://aws.amazon.com/blogs/machine-learning/category/artificial-intelligence/sagemaker/" title="View all posts in Amazon SageMaker"><span property="articleSection">Amazon SageMaker</span></a>, <a href="https://aws.amazon.com/blogs/machine-learning/category/artificial-intelligence/sagemaker/amazon-sagemaker-jumpstart/" title="View all posts in Amazon SageMaker JumpStart"><span property="articleSection">Amazon SageMaker JumpStart</span></a>, <a href="https://aws.amazon.com/blogs/machine-learning/category/artificial-intelligence/" title="View all posts in Artificial Intelligence"><span property="articleSection">Artificial Intelligence</span></a>, <a href="https://aws.amazon.com/blogs/machine-learning/category/learning-levels/expert-400/" title="View all posts in Expert (400)"><span property="articleSection">Expert (400)</span></a></span></span> <span><a href="https://aws.amazon.com/blogs/machine-learning/build-a-hugging-face-text-classification-model-in-amazon-sagemaker-jumpstart/" property="url">Permalink</a></span> <span><a href="https://aws.amazon.com/blogs/machine-learning/build-a-hugging-face-text-classification-model-in-amazon-sagemaker-jumpstart/#Comments"><i class="icon-comment"></i> Comments</a> </span> <span><a href="#" role="button" data-share-dialog-toggle><span class="span icon-share"></span> Share</a></span> <div class="blog-share-dialog" data-share-dialog style="display: none;"> <ul> <li> <a class="lb-txt" href="https://www.facebook.com/sharer/sharer.php?u=https://aws.amazon.com/blogs/machine-learning/build-a-hugging-face-text-classification-model-in-amazon-sagemaker-jumpstart/" target="_blank" rel="noopener noreferrer" aria-label="Share on Facebook"><span class="icon-facebook-square"></span></a> </li> <li> <a class="lb-txt" href="https://twitter.com/intent/tweet/?text=Build%20a%20Hugging%20Face%20text%20classification%20model%20in%20Amazon%20SageMaker%20JumpStart&via=awscloud&url=https://aws.amazon.com/blogs/machine-learning/build-a-hugging-face-text-classification-model-in-amazon-sagemaker-jumpstart/" target="_blank" rel="noopener noreferrer" aria-label="Share on Twitter"><span class="icon-twitter-square"></span></a> </li> <li> <a class="lb-txt" href="https://www.linkedin.com/shareArticle?mini=true&title=Build%20a%20Hugging%20Face%20text%20classification%20model%20in%20Amazon%20SageMaker%20JumpStart&source=Amazon%20Web%20Services&url=https://aws.amazon.com/blogs/machine-learning/build-a-hugging-face-text-classification-model-in-amazon-sagemaker-jumpstart/" target="_blank" rel="noopener noreferrer" aria-label="Share on LinkedIn"><span class="icon-linkedin-square"></span></a> </li> <li> <a class="lb-txt" href="mailto:?subject=Build%20a%20Hugging%20Face%20text%20classification%20model%20in%20Amazon%20SageMaker%20JumpStart&body=Build%20a%20Hugging%20Face%20text%20classification%20model%20in%20Amazon%20SageMaker%20JumpStart%0A%0Ahttps://aws.amazon.com/blogs/machine-learning/build-a-hugging-face-text-classification-model-in-amazon-sagemaker-jumpstart/" target="_blank" rel="noopener noreferrer" aria-label="Share on Email"><span class="icon-envelope-square"></span></a> </li> <li class="blog-share-dialog-url"><input type="text" value="https://aws.amazon.com/blogs/machine-learning/build-a-hugging-face-text-classification-model-in-amazon-sagemaker-jumpstart/" title="Link to Build a Hugging Face text classification model in Amazon SageMaker JumpStart" readonly data-share-dialog-url></li> </ul> </div> </footer> <section class="blog-post-content lb-rtxt" property="articleBody"> <p><a href="https://aws.amazon.com/sagemaker/jumpstart/" target="_blank" rel="noopener">Amazon SageMaker JumpStart</a> provides a suite of <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html" target="_blank" rel="noopener">built-in algorithms</a>, <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/studio-jumpstart.html#jumpstart-models" target="_blank" rel="noopener">pre-trained models</a>, and <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/jumpstart-solutions.html" target="_blank" rel="noopener">pre-built solution templates</a> to help data scientists and machine learning (ML) practitioners get started on training and deploying ML models quickly. You can use these algorithms and models for both supervised and unsupervised learning. They can process various types of input data, including image, text, and tabular.</p> <p>This post introduces using the <a href="https://huggingface.co/models?pipeline_tag=text-classification&sort=downloads" target="_blank" rel="noopener">text classification</a> and <a href="https://huggingface.co/models?pipeline_tag=fill-mask&sort=downloads" target="_blank" rel="noopener">fill-mask</a> models available on Hugging Face in SageMaker JumpStart for text classification on a custom dataset. We also demonstrate performing real-time and batch inference for these models. This supervised learning algorithm supports transfer learning for all pre-trained models available on Hugging Face. It takes a piece of text as input and outputs the probability for each of the class labels. You can fine-tune these pre-trained models using transfer learning even when a large corpus of text isn’t available. It’s available in the <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/studio-jumpstart.html" target="_blank" rel="noopener">SageMaker JumpStart UI</a> in <a href="https://aws.amazon.com/sagemaker/studio/" target="_blank" rel="noopener">Amazon SageMaker Studio</a>. You can also use it through the SageMaker Python SDK, as demonstrated in the example notebook <a href="https://github.com/aws/amazon-sagemaker-examples/blob/main/introduction_to_amazon_algorithms/jumpstart_text_classification/Amazon_JumpStart_HuggingFace_Text_Classification.ipynb" target="_blank" rel="noopener">Introduction to SageMaker HuggingFace – Text Classification</a>.</p> <h2>Solution overview</h2> <p>Text classification with Hugging Face in SageMaker provides transfer learning on all pre-trained models available on Hugging Face. According to the number of class labels in the training data, a classification layer is attached to the pre-trained Hugging Face model. Then either the whole network, including the pre-trained model, or only the top classification layer can be fine-tuned on the custom training data. In this transfer learning mode, training can be achieved even with a smaller dataset.</p> <p>In this post, we demonstrate how to do the following:</p> <ul> <li>Use the new Hugging Face text classification algorithm</li> <li>Perform inference with the Hugging Face text classification algorithm</li> <li>Fine-tune the pre-trained model on a custom dataset</li> <li>Perform batch inference with the Hugging Face text classification algorithm</li> </ul> <h2>Prerequisites</h2> <p>Before you run the notebook, you must complete some initial setup steps. Let’s set up the SageMaker execution role so it has permissions to run AWS services on your behalf:</p> <div class="hide-language"> <pre><code class="lang-python">!pip install sagemaker --upgrade --quiet import sagemaker, boto3, json from sagemaker.session import Session sagemaker_session = Session() aws_role = sagemaker_session.get_caller_identity_arn() aws_region = boto3.Session().region_name sess = sagemaker.Session()</code></pre> </div> <h2>Run inference on the pre-trained model</h2> <p>SageMaker JumpStart support inference for any <a href="https://huggingface.co/models?pipeline_tag=text-classification&sort=downloads" target="_blank" rel="noopener">text classification model available through Hugging Face</a>. The model can be hosted for inference and support text as the application/x-text content type. This will not only allow you to use a set of pre-trained models, but also enable you to choose other classification tasks.</p> <p>The output contains the probability values, class labels for all classes, and the predicted label corresponding to the class index with the highest probability encoded in JSON format. The model processes a single string per request and outputs only one line. The following is an example of a JSON format response:</p> <div class="hide-language"> <pre><code class="lang-python">accept: application/json;verbose {"probabilities": [prob_0, prob_1, prob_2, ...], "labels": [label_0, label_1, label_2, ...], "predicted_label": predicted_label}</code></pre> </div> <p>If <code>accept</code> is set to <code>application/json</code>, then the model only outputs probabilities. For more details on training and inference, see the sample <a href="https://github.com/aws/amazon-sagemaker-examples/blob/main/introduction_to_amazon_algorithms/jumpstart_text_classification/Amazon_JumpStart_HuggingFace_Text_Classification.ipynb" target="_blank" rel="noopener">notebook</a>.</p> <p>You can run inference on the text classification model by passing the <code>model_id</code> in the environment variable while creating the object of the <a href="https://sagemaker.readthedocs.io/en/stable/api/inference/model.html" target="_blank" rel="noopener">Model</a> class. See the following code:</p> <div class="hide-language"> <pre><code class="lang-python">from sagemaker.jumpstart.model import JumpStartModel hub = {} HF_MODEL_ID = 'distilbert-base-uncased-finetuned-sst-2-english' # Pass any other HF_MODEL_ID from - https://huggingface.co/models?pipeline_tag=text-classification&sort=downloads hub['HF_MODEL_ID'] = HF_MODEL_ID hub['HF_TASK'] = 'text-classification' model = JumpStartModel(model_id=infer_model_id, env =hub, enable_network_isolation=False</code></pre> </div> <h2>Fine-tune the pre-trained model on a custom dataset</h2> <p>You can fine-tune each of the pre-trained <a href="https://huggingface.co/models?pipeline_tag=fill-mask&sort=downloads" target="_blank" rel="noopener">fill-mask</a> or <a href="https://huggingface.co/models?pipeline_tag=text-classification&sort=downloads" target="_blank" rel="noopener">text classification</a> models to any given dataset made up of text sentences with any number of classes. The pretrained model attaches a classification layer to the text embedding model and initializes the layer parameters to random values. The output dimension of the classification layer is determined based on the number of classes detected in the input data. The objective is to minimize classification errors on the input data. Then you can deploy the fine-tuned model for inference.</p> <p>The following are the instructions for how the training data should be formatted for input to the model:</p> <ul> <li><strong>Input</strong> – A directory containing a <code>data.csv</code> file. Each row of the first column should have an integer class label between 0 and the number of classes. Each row of the second column should have the corresponding text data.</li> <li><strong>Output</strong> – A fine-tuned model that can be deployed for inference or further trained using incremental training.</li> </ul> <p>The following is an example of an input CSV file. The file should not have any header. The file should be hosted in an <a href="http://aws.amazon.com/s3" target="_blank" rel="noopener">Amazon Simple Storage Service</a> (Amazon S3) bucket with a path similar to the following: <code>s3://bucket_name/input_directory/</code>. The trailing <code>/</code> is required.</p> <div class="hide-language"> <pre><code class="lang-python">|0 |hide new secretions from the parental units| |0 |contains no wit , only labored gags| |1 |that loves its characters and communicates something rather beautiful about human nature| |...|...|</code></pre> </div> <p>The algorithm also supports transfer learning for Hugging Face <a href="https://sagemaker.readthedocs.io/en/stable/doc_utils/pretrainedmodels.html" target="_blank" rel="noopener">pre-trained models</a>. Each model is identified by a unique <code>model_id</code>. The following example shows how to fine-tune a BERT base model identified by <code>model_id=huggingface-tc-bert-base-cased</code> on a custom training dataset. The pre-trained model tarballs have been pre-downloaded from Hugging Face and saved with the appropriate model signature in S3 buckets, such that the training job runs in network isolation.</p> <p>For transfer learning on your custom dataset, you might need to change the default values of the training hyperparameters. You can fetch a Python dictionary of these hyperparameters with their default values by calling <code>hyperparameters.retrieve_default</code>, update them as needed, and then pass them to the Estimator class. The hyperparameter <code>Train_only_top_layer</code> defines which model parameters change during the fine-tuning process. If <code>train_only_top_layer</code> is <code>True</code>, parameters of the classification layers change and the rest of the parameters remain constant during the fine-tuning process. If <code>train_only_top_layer</code> is <code>False</code>, all parameters of the model are fine-tuned. See the following code:</p> <div class="hide-language"> <pre><code class="lang-python">from sagemaker import hyperparameters# Retrieve the default hyper-parameters for fine-tuning the model hyperparameters = hyperparameters.retrieve_default(model_id=model_id, model_version=model_version)# [Optional] Override default hyperparameters with custom values hyperparameters["epochs"] = "5"</code></pre> </div> <p>For this use case, we provide <a href="https://www.tensorflow.org/datasets/catalog/glue#gluesst2" target="_blank" rel="noopener">SST2</a> as a default dataset for fine-tuning the models. The dataset contains positive and negative movie reviews. It has been downloaded from <a href="https://www.tensorflow.org/datasets/catalog/tf_flowers" target="_blank" rel="noopener">TensorFlow</a> under the <a href="https://jumpstart-cache-prod-us-west-2.s3-us-west-2.amazonaws.com/licenses/Apache-License/LICENSE-2.0.txt" target="_blank" rel="noopener">Apache 2.0 License</a>. The following code provides the default training dataset hosted in S3 buckets:</p> <div class="hide-language"> <pre><code class="lang-python"># Sample training data is available in this bucket training_data_bucket = f"jumpstart-cache-prod-{aws_region}" training_data_prefix = "training-datasets/SST/" training_dataset_s3_path = f"s3://{training_data_bucket}/{training_data_prefix}"</code></pre> </div> <p>We create an Estimator object by providing the <code>model_id</code> and hyperparameters values as follows:</p> <div class="hide-language"> <pre><code class="lang-python"># Create SageMaker Estimator instance tc_estimator = JumpStartEstimator( hyperparameters=hyperparameters, model_id=dropdown.value, instance_type=training_instance_type, metric_definitions=training_metric_definitions, output_path=s3_output_location, enable_network_isolation=False if model_id == "huggingface-tc-models" else True )</code></pre> </div> <p>To launch the SageMaker training job for fine-tuning the model, call <code>.fit</code> on the object of the Estimator class, while passing the S3 location of the training dataset:</p> <div class="hide-language"> <pre><code class="lang-python"># Launch a SageMaker Training job by passing s3 path of the training data tc_estimator.fit({"training": training_dataset_s3_path}, logs=True)</code></pre> </div> <p>You can view performance metrics such as training loss and validation accuracy/loss through <a href="http://aws.amazon.com/cloudwatch" target="_blank" rel="noopener">Amazon CloudWatch</a> while training. You can also fetch these metrics and analyze them using <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/training-metrics.html" target="_blank" rel="noopener">TrainingJobAnalytics</a>:</p> <div class="hide-language"> <pre><code class="lang-python">df = TrainingJobAnalytics(training_job_name=training_job_name).dataframe() #It will produce a dataframe with different metrics df.head(10)</code></pre> </div> <p>The following graph shows different metrics collected from the CloudWatch log using <code>TrainingJobAnalytics</code>.</p> <p><img class="alignnone size-full wp-image-72473" src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2024/03/14/ml-15990-img1.jpg" alt="" width="1311" height="451"></p> <p>For more information about how to use the new SageMaker Hugging Face text classification algorithm for transfer learning on a custom dataset, deploy the fine-tuned model, run inference on the deployed model, and deploy the pre-trained model as is without first fine-tuning on a custom dataset, see the following example <a href="https://github.com/aws/amazon-sagemaker-examples/blob/main/introduction_to_amazon_algorithms/jumpstart_text_classification/Amazon_JumpStart_HuggingFace_Text_Classification.ipynb" target="_blank" rel="noopener">notebook</a>.</p> <h3>Fine-tune any Hugging Face fill-mask or text classification model</h3> <p>SageMaker JumpStart supports the fine-tuning of any pre-trained fill-mask or text classification Hugging Face model. You can download the required model from the Hugging Face hub and perform the fine-tuning. To use these models, the <code>model_id</code> is provided in the hyperparameters as <code>hub_key</code>. See the following code:</p> <div class="hide-language"> <pre><code class="lang-python">HF_MODEL_ID = "distilbert-base-uncased" # Specify the HF_MODEL_ID here from https://huggingface.co/models?pipeline_tag=fill-mask&sort=downloads or https://huggingface.co/models?pipeline_tag=text-classification&sort=downloads hyperparameters["hub_key"] = HF_MODEL_ID</code></pre> </div> <p>Now you can construct an object of the <a href="https://sagemaker.readthedocs.io/en/stable/api/training/estimators.html" target="_blank" rel="noopener">Estimator</a> class by passing the updated hyperparameters. You call <code>.fit</code> on the object of the Estimator class while passing the S3 location of the training dataset to perform the SageMaker training job for fine-tuning the model.</p> <h3>Fine-tune a model with automatic model tuning</h3> <p>SageMaker <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning.html" target="_blank" rel="noopener">automatic model tuning</a> (ATM), also known as hyperparameter tuning, finds the best version of a model by running many training jobs on your dataset using the algorithm and ranges of hyperparameters that you specify. It then chooses the hyperparameter values that result in a model that performs the best, as measured by a metric that you choose. In the following code, you use a HyperparameterTuner object to interact with SageMaker hyperparameter tuning APIs:</p> <div class="hide-language"> <pre><code class="lang-python">from sagemaker.tuner import ContinuousParameter # Define objective metric based on which the best model will be selected. amt_metric_definitions = { "metrics": [{"Name": "val_accuracy", "Regex": "'eval_accuracy': ([0-9\\.]+)"}], "type": "Maximize", } # You can select from the hyperparameters supported by the model, and configure ranges of values to be searched for training the optimal model.(https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning-define-ranges.html) hyperparameter_ranges = { "learning_rate": ContinuousParameter(0.00001, 0.0001, scaling_type="Logarithmic") } # Increase the total number of training jobs run by AMT, for increased accuracy (and training time). max_jobs = 6 # Change parallel training jobs run by AMT to reduce total training time, constrained by your account limits. # if max_jobs=max_parallel_jobs then Bayesian search turns to Random. max_parallel_jobs = 2</code></pre> </div> <p>After you have defined the arguments for the <code>HyperparameterTuner</code> object, you pass it the Estimator and start the training. This will find the best-performing model.</p> <h2>Perform batch inference with the Hugging Face text classification algorithm</h2> <p>If the goal of inference is to generate predictions from a trained model on a large dataset where minimizing latency isn’t a concern, then the <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform.html" target="_blank" rel="noopener">batch inference</a> functionality may be most straightforward, more scalable, and more appropriate.</p> <p>Batch inference is useful in the following scenarios:</p> <ul> <li>Preprocess datasets to remove noise or bias that interferes with training or inference from your dataset</li> <li>Get inference from large datasets</li> <li>Run inference when you don’t need a persistent endpoint</li> <li>Associate input records with inferences to assist the interpretation of results</li> </ul> <p>For running batch inference in this use case, you first download the <a href="https://www.tensorflow.org/datasets/catalog/glue#gluesst2" target="_blank" rel="noopener">SST2</a> dataset locally. Remove the class label from it and upload it to Amazon S3 for batch inference. You create the object of <a href="https://sagemaker.readthedocs.io/en/stable/api/inference/model.html" target="_blank" rel="noopener">Model</a> class without providing the endpoint and create the batch transformer object from it. You use this object to provide batch predictions on the input data. See the following code:</p> <div class="hide-language"> <pre><code class="lang-python">batch_transformer = model.transformer( instance_count=1, instance_type=inference_instance_type, output_path=output_path, assemble_with="Line", accept="text/csv" ) batch_transformer.transform( input_path, content_type="text/csv", split_type="Line" ) batch_transformer.wait()</code></pre> </div> <p>After you run batch inference, you can compare the predication accuracy on the SST2 dataset.</p> <h2>Conclusion</h2> <p>In this post, we discussed the SageMaker Hugging Face text classification algorithm. We provided example code to perform transfer learning on a custom dataset using a pre-trained model in network isolation using this algorithm. We also provided the functionality to use any Hugging Face fill-mask or text classification model for inference and transfer learning. Lastly, we used batch inference to run inference on large datasets. For more information, check out the example <a href="https://github.com/aws/amazon-sagemaker-examples/blob/main/introduction_to_amazon_algorithms/jumpstart_text_classification/Amazon_JumpStart_HuggingFace_Text_Classification.ipynb" target="_blank" rel="noopener">notebook</a>.</p> <hr> <h3>About the authors</h3> <p style="clear: both"><strong><img loading="lazy" class="size-full wp-image-66696 alignleft" src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2023/11/20/hemant-singh.png" alt="" width="100" height="133">Hemant Singh</strong> is an Applied Scientist with experience in Amazon SageMaker JumpStart. He got his master’s from Courant Institute of Mathematical Sciences and B.Tech from IIT Delhi. He has experience in working on a diverse range of machine learning problems within the domain of natural language processing, computer vision, and time series analysis.</p> <p style="clear: both"><strong><img loading="lazy" class="size-full wp-image-54726 alignleft" src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2023/04/25/rachna-new.png" alt="" width="100" height="104">Rachna Chadha</strong> is a Principal Solutions Architect AI/ML in Strategic Accounts at AWS. Rachna is an optimist who believes that the ethical and responsible use of AI can improve society in the future and bring economic and social prosperity. In her spare time, Rachna likes spending time with her family, hiking, and listening to music.</p> <p style="clear: both"><strong><img loading="lazy" class="size-full wp-image-69026 alignleft" src="https://d2908q01vomqb2.cloudfront.net/f1f836cb4ea6efb2a0b1b99f41ad8b103eff4b59/2023/12/27/Ashish-Khetan.jpg" alt="" width="100" height="132">Dr. Ashish Khetan</strong> is a Senior Applied Scientist with Amazon SageMaker built-in algorithms and helps develop machine learning algorithms. He got his PhD from University of Illinois Urbana-Champaign. He is an active researcher in machine learning and statistical inference, and has published many papers in NeurIPS, ICML, ICLR, JMLR, ACL, and EMNLP conferences.</p> <!-- '"` --> </section> <footer> </footer> <aside id="Comments" class="blog-comments"> <div data-lb-comp="aws-blog:cosmic-comments" data-env="prod" data-content-id="c35757c0-b0cd-4c25-8d29-155a841a33f4" data-title="Build a Hugging Face text classification model in Amazon SageMaker JumpStart" data-url="https://aws.amazon.com/blogs/machine-learning/build-a-hugging-face-text-classification-model-in-amazon-sagemaker-jumpstart/"> <p data-failed-message="Comments cannot be loaded… Please refresh and try again.">Loading comments…</p> </div> </aside> <div class="js-mbox" data-mbox="en_blog_post_comments"></div> </article> </main> <div class="blog-sidebar lb-col lb-tiny-24 lb-mid-8"> <div class="awsm"> <div class="lb-box" style="padding-left:30px;"> <h3 id="Resources" class="lb-txt-none lb-h3 lb-title" style="margin-top:30px;"> Resources</h3> <div class="data-attr-wrapper lb-none-pad lb-none-v-margin lb-box" data-da-type="ha" data-da-channel="ha" data-da-language="en" data-da-placement="blog-sb-resources" data-da-campaign="acq_awsblogsb" data-da-content="machine-learning-resources" data-da-trk="blog_initial"> <ul class="lb-txt-none lb-ul lb-list-style-none lb-li-none-v-margin lb-tiny-ul-block"> <li><a href="https://aws.amazon.com/getting-started?sc_ichannel=ha&sc_icampaign=acq_awsblogsb&sc_icontent=machine-learning-resources">Getting Started</a></li> <li><a href="https://aws.amazon.com/new?sc_ichannel=ha&sc_icampaign=acq_awsblogsb&sc_icontent=machine-learning-resources">What's New</a></li> </ul> <div class="lb-grid lb-row lb-row-max-large lb-snap"> <div class="lb-col lb-tiny-24 lb-mid-8"> <hr class="lb-divider"> </div> <div class="lb-col lb-tiny-24 lb-mid-8"> </div> <div class="lb-col lb-tiny-24 lb-mid-8"> </div> </div> <h3 id="Blog_Topics" class="lb-txt-none lb-h3 lb-title" style="margin-top:30px;"> Blog Topics</h3> </div> <div class="data-attr-wrapper lb-none-pad lb-none-v-margin lb-box" data-da-type="ha" data-da-channel="ha" data-da-language="en" data-da-placement="blog-sb-resources" data-da-campaign="acq_awsblogsb" data-da-content="machine-learning-resources" data-da-trk="blog_initial"> <ul class="lb-txt-none lb-ul lb-list-style-none lb-li-none-v-margin lb-tiny-ul-block"> <li><a href="https://aws.amazon.com/blogs/machine-learning/category/artificial-intelligence/amazon-machine-learning/amazon-bedrock/">Amazon Bedrock</a></li> <li><a href="https://aws.amazon.com/blogs/machine-learning/category/artificial-intelligence/amazon-comprehend/">Amazon Comprehend</a></li> <li><a href="https://aws.amazon.com/blogs/machine-learning/category/artificial-intelligence/amazon-kendra/">Amazon Kendra</a></li> <li><a href="https://aws.amazon.com/blogs/machine-learning/category/artificial-intelligence/amazon-lex/">Amazon Lex</a></li> <li><a href="https://aws.amazon.com/blogs/machine-learning/category/artificial-intelligence/amazon-polly/">Amazon Polly</a></li> <li><a href="https://aws.amazon.com/blogs/machine-learning/category/amazon-q/">Amazon Q</a></li> <li><a href="https://aws.amazon.com/blogs/machine-learning/category/artificial-intelligence/amazon-rekognition/">Amazon Rekognition</a></li> <li><a href="https://aws.amazon.com/blogs/machine-learning/category/artificial-intelligence/sagemaker/">Amazon SageMaker</a></li> <li><a href="https://aws.amazon.com/blogs/machine-learning/category/artificial-intelligence/amazon-textract/">Amazon Textract</a></li> </ul> <div class="lb-grid lb-row lb-row-max-large lb-snap"> <div class="lb-col lb-tiny-24 lb-mid-8"> <hr class="lb-divider"> </div> <div class="lb-col lb-tiny-24 lb-mid-8"> </div> <div class="lb-col lb-tiny-24 lb-mid-8"> </div> </div> </div> <h3 id="Follow" class="lb-txt-none lb-h3 lb-title"> Follow</h3> <div class="data-attr-wrapper lb-none-pad lb-none-v-margin lb-box" data-da-type="ha" data-da-channel="ha" data-da-language="en" data-da-placement="blog-sb-social" data-da-campaign="acq_awsblogsb" data-da-content="machine-learning-social" data-da-trk="blog_initial"> <ul class="lb-txt-none lb-ul lb-list-style-none lb-li-none-v-margin lb-tiny-ul-block"> <li><a href="https://twitter.com/awscloud"><i class="icon-twitter-square"></i> Twitter</a></li> <li><a href="https://www.facebook.com/amazonwebservices"><i class="icon-facebook-square"></i> Facebook</a></li> <li><a href="https://www.linkedin.com/company/amazon-web-services/"><i class="icon-linkedin-square"></i> LinkedIn</a></li> <li><a href="https://www.twitch.tv/aws"><i class="icon-twitch"></i> Twitch</a></li> <li><a href="https://pages.awscloud.com/communication-preferences?sc_ichannel=ha&sc_icampaign=acq_awsblogsb&sc_icontent=maching-learning-social"><i class="icon-envelope-square"></i> Email Updates</a></li> </ul> </div> </div> </div> <div class="js-mbox" data-mbox="en_blog_post_sidebar"></div> </div> </div> </div> <div class="awsm"> <footer id="aws-page-footer" class="m-page-footer" role="contentinfo"> <div class="data-attr-wrapper lb-none-v-margin lb-xb-grid-wrap" style="background-color:#141f2e;" data-da-type="so" data-da-so-type="viewport" data-da-so-language="en" data-da-so-category="monitoring" data-da-so-name="footer" data-da-so-version="a"> <div class="lb-xb-grid lb-row-max-large lb-snap lb-tiny-xb-1 lb-small-xb-3 lb-large-xb-5"> <div class="lb-xbcol"> <div class="data-attr-wrapper lb-small-hide lb-btn" data-da-type="so" data-da-so-type="viewport" data-da-so-language="en" data-da-so-category="monitoring" data-da-so-name="footer_buttons" data-da-so-url="all" data-da-so-version="footer_signin-mobile-default"> <a class="lb-btn-p-primary" href="https://console.aws.amazon.com/console/home?nc1=f_ct&src=footer-signin-mobile" role="button"> <span> Sign In to the Console</span> </a> </div> <h3 class="lb-txt-none lb-txt-white lb-tiny-v-margin lb-h3 lb-title"> Learn About AWS</h3> <ul class="lb-txt-white lb-ul lb-list-style-none lb-li-micro-v-margin lb-tiny-ul-block" style="margin-bottom:0px;"> <li><a href="https://aws.amazon.com/what-is-aws/?nc1=f_cc" target="_blank" rel="noopener noreferrer">What Is AWS?</a></li> <li><a href="https://aws.amazon.com/what-is-cloud-computing/?nc1=f_cc" target="_blank" rel="noopener noreferrer">What Is Cloud Computing?</a></li> <li><a href="https://aws.amazon.com/accessibility/?nc1=f_cc" target="_blank" rel="noopener noreferrer">AWS Accessibility</a></li> <li><a href="https://aws.amazon.com/diversity-inclusion/?nc1=f_cc" target="_blank" rel="noopener noreferrer">AWS Inclusion, Diversity & Equity</a></li> <li><a href="https://aws.amazon.com/devops/what-is-devops/?nc1=f_cc" target="_blank" rel="noopener noreferrer">What Is DevOps?</a></li> <li><a href="https://aws.amazon.com/containers/?nc1=f_cc" target="_blank" rel="noopener noreferrer">What Is a Container?</a></li> <li><a href="https://aws.amazon.com/what-is/data-lake/?nc1=f_cc" target="_blank" rel="noopener noreferrer">What Is a Data Lake?</a></li> <li><a href="https://aws.amazon.com/what-is/artificial-intelligence/?nc1=f_cc" target="_blank" rel="noopener noreferrer">What is Artificial Intelligence (AI)?</a></li> <li><a href="https://aws.amazon.com/what-is/generative-ai/?nc1=f_cc" target="_blank" rel="noopener noreferrer">What is Generative AI?</a></li> <li><a href="https://aws.amazon.com/what-is/machine-learning/?nc1=f_cc" target="_blank" rel="noopener noreferrer">What is Machine Learning (ML)?</a></li> <li><a href="https://aws.amazon.com/security/?nc1=f_cc" target="_blank" rel="noopener noreferrer">AWS Cloud Security</a></li> <li><a href="https://aws.amazon.com/new/?nc1=f_cc" target="_blank" rel="noopener noreferrer">What's New</a></li> <li><a href="https://aws.amazon.com/blogs/?nc1=f_cc" target="_blank" rel="noopener noreferrer">Blogs</a></li> <li><a href="https://press.aboutamazon.com/press-releases/aws" target="_blank" rel="noopener noreferrer" title="Press Releases" alt="Press Releases">Press Releases</a></li> </ul> </div> <div class="lb-xbcol"> <h3 class="lb-txt-none lb-txt-white lb-tiny-v-margin lb-h3 lb-title"> Resources for AWS</h3> <ul class="lb-txt-white lb-ul lb-list-style-none lb-li-micro-v-margin lb-tiny-ul-block" style="margin-bottom:0px;"> <li><a href="https://aws.amazon.com/getting-started/?nc1=f_cc" target="_blank" rel="noopener noreferrer">Getting Started</a></li> <li><a href="https://aws.amazon.com/training/?nc1=f_cc" target="_blank" rel="noopener noreferrer">Training and Certification</a></li> <li><a href="https://aws.amazon.com/solutions/?nc1=f_cc" target="_blank" rel="noopener noreferrer">AWS Solutions Library</a></li> <li><a href="https://aws.amazon.com/architecture/?nc1=f_cc" target="_blank" rel="noopener noreferrer">Architecture Center</a></li> <li><a href="https://aws.amazon.com/faqs/?nc1=f_dr" target="_blank" rel="noopener noreferrer">Product and Technical FAQs</a></li> <li><a href="https://aws.amazon.com/resources/analyst-reports/?nc1=f_cc" target="_blank" rel="noopener noreferrer">Analyst Reports</a></li> <li><a href="https://aws.amazon.com/partners/work-with-partners/?nc1=f_dr" target="_blank" rel="noopener noreferrer">AWS Partners</a></li> </ul> </div> <div class="lb-xbcol"> <h3 class="lb-txt-none lb-txt-white lb-tiny-v-margin lb-h3 lb-title"> Developers on AWS</h3> <ul class="lb-txt-white lb-ul lb-list-style-none lb-li-micro-v-margin lb-tiny-ul-block" style="margin-bottom:0px;"> <li><a href="https://aws.amazon.com/developer/?nc1=f_dr" target="_blank" rel="noopener noreferrer">Developer Center</a></li> <li><a href="https://aws.amazon.com/developer/tools/?nc1=f_dr" target="_blank" rel="noopener noreferrer">SDKs & Tools</a></li> <li><a href="https://aws.amazon.com/developer/language/net/?nc1=f_dr" target="_blank" rel="noopener noreferrer">.NET on AWS</a></li> <li><a href="https://aws.amazon.com/developer/language/python/?nc1=f_dr" target="_blank" rel="noopener noreferrer">Python on AWS</a></li> <li><a href="https://aws.amazon.com/developer/language/java/?nc1=f_dr" target="_blank" rel="noopener noreferrer">Java on AWS</a></li> <li><a href="https://aws.amazon.com/developer/language/php/?nc1=f_cc" target="_blank" rel="noopener noreferrer">PHP on AWS</a></li> <li><a href="https://aws.amazon.com/developer/language/javascript/?nc1=f_dr" target="_blank" rel="noopener noreferrer">JavaScript on AWS</a></li> </ul> </div> <div class="lb-xbcol"> <h3 class="lb-txt-none lb-txt-white lb-tiny-v-margin lb-h3 lb-title"> Help</h3> <ul class="lb-txt-white lb-ul lb-list-style-none lb-li-micro-v-margin lb-tiny-ul-block" style="margin-bottom:0px;"> <li><a href="https://aws.amazon.com/contact-us/?nc1=f_m" target="_blank" rel="noopener noreferrer">Contact Us</a></li> <li><a href="https://iq.aws.amazon.com/?utm=mkt.foot/?nc1=f_m" target="_blank" rel="noopener noreferrer">Get Expert Help</a></li> <li><a href="https://console.aws.amazon.com/support/home/?nc1=f_dr" target="_blank" rel="noopener noreferrer">File a Support Ticket</a></li> <li><a href="https://repost.aws/?nc1=f_dr" target="_blank" rel="noopener noreferrer">AWS re:Post</a></li> <li><a href="https://repost.aws/knowledge-center/?nc1=f_dr" target="_blank" rel="noopener noreferrer">Knowledge Center</a></li> <li><a href="https://aws.amazon.com/premiumsupport/?nc1=f_dr" target="_blank" rel="noopener noreferrer">AWS Support Overview</a></li> <li><a href="https://aws.amazon.com/legal/?nc1=f_cc" target="_blank" rel="noopener noreferrer">Legal</a></li> <li><a href="https://aws.amazon.com/careers/">AWS Careers</a></li> </ul> <div class="lb-mbox js-mbox" data-lb-comp="mbox" data-lb-comp-ignore="true" data-mbox="en_footer-v3_addl-help"> </div> </div> <div class="lb-xbcol"> <div class="lb-mbox js-mbox" data-lb-comp="mbox" data-lb-comp-ignore="true" data-mbox="en_footer-v3_cta"> <div class="data-attr-wrapper lb-tiny-hide lb-small-show lb-btn" data-da-type="so" data-da-so-type="viewport" data-da-so-language="en" data-da-so-category="monitoring" data-da-so-name="footer_buttons" data-da-so-url="all" data-da-so-version="footer_signup-default"> <a class="lb-btn-p-primary" href="https://portal.aws.amazon.com/gp/aws/developer/registration/index.html?nc1=f_ct&src=default" role="button"> <span> Create an AWS Account</span> </a> </div> </div> <div class="lb-xb-grid-wrap" style="padding-left:0px; margin-top:20px; margin-bottom:0px;"> <div class="lb-xb-grid lb-row-max-large lb-xb-equal-height lb-snap lb-gutter-collapse lb-vgutter-collapse lb-tiny-xb-4"> <div class="lb-xbcol"> <a class="lb-txt-none lb-txt-white lb-none-pad lb-txt" style="padding-left:0px; padding-right:5px;" href="https://twitter.com/awscloud" target="_blank" rel="noopener noreferrer" title="Twitter" alt="Twitter"> <i class="icon-twitter lb-before"></i></a> </div> <div class="lb-xbcol"> <a class="lb-txt-none lb-txt-white lb-none-pad lb-none-v-margin lb-txt" style="padding-right:5px;" href="https://www.facebook.com/amazonwebservices" target="_blank" rel="noopener noreferrer" title="Facebook" alt="Facebook"> <i class="icon-facebook lb-before"></i></a> </div> <div class="lb-xbcol"> <a class="lb-txt-none lb-txt-white lb-none-pad lb-txt" style="padding-right:5px;" href="https://www.linkedin.com/company/amazon-web-services/" target="_blank" rel="noopener noreferrer" title="Linkedin" alt="Linkedin"> <i class="icon-linkedin lb-before"></i></a> </div> <div class="lb-xbcol"> <a class="lb-txt-none lb-txt-white lb-none-pad lb-txt" style="padding-right:5px;" href="https://www.instagram.com/amazonwebservices/" target="_blank" rel="noopener noreferrer" title="Instagram" alt="Instagram"> <i class="icon-instagram lb-before"></i></a> </div> </div> </div> <div class="lb-xb-grid-wrap" style="padding-left:0px; margin-top:10px;"> <div class="lb-xb-grid lb-row-max-large lb-xb-equal-height lb-snap lb-gutter-collapse lb-vgutter-collapse lb-tiny-xb-4"> <div class="lb-xbcol"> <a class="lb-txt-none lb-txt-white lb-none-pad lb-txt" style="padding-right:5px;" href="https://www.twitch.tv/aws" target="_blank" rel="noopener noreferrer" title="Twitch" alt="Twitch"> <i class="icon-twitch lb-before"></i></a> </div> <div class="lb-xbcol"> <a class="lb-txt-none lb-txt-white lb-none-pad lb-txt" style="padding-right:5px;" href="https://www.youtube.com/user/AmazonWebServices/Cloud/" target="_blank" rel="noopener noreferrer" title="YouTube" alt="YouTube"> <i class="icon-youtube lb-before"></i></a> </div> <div class="lb-xbcol"> <a class="lb-txt-none lb-txt-white lb-none-pad lb-txt" style="padding-right:5px;" href="https://aws.amazon.com/podcasts/" target="_blank" rel="noopener noreferrer" title="Podcast" alt="Podcast"> <i class="icon-podcast lb-before"></i></a> </div> <div class="lb-xbcol"> <a class="lb-txt-none lb-txt-white lb-none-pad lb-txt" style="padding-right:5px;" href="https://pages.awscloud.com/communication-preferences?trk=homepage" target="_blank" rel="noopener noreferrer" title="Email" alt="Email"> <i class="icon-envelope-o lb-before"></i></a> </div> </div> </div> <div class="lb-txt-normal lb-txt-white lb-txt-14 lb-rtxt" style="color:#eaeded; margin-top:0px;"> <div> Amazon is an Equal Opportunity Employer: <i> Minority / Women / Disability / Veteran / Gender Identity / Sexual Orientation / Age.</i> </div> </div> </div> </div> </div> <div class="lb-none-pad lb-none-v-margin lb-xb-grid-wrap" style="background-color:#141f2e;"> <div class="lb-xb-grid lb-row-max-large lb-snap lb-tiny-xb-1"> <div class="lb-xbcol"> <ul class="lb-txt-white lb-tiny-iblock lb-none-v-margin lb-ul lb-list-style-none lb-li-micro-v-margin lb-tiny-ul-iblock"> <li class="lb-txt-bold">Language</li> <li data-language="ar" lang="ar-SA" translate="no"><a href="https://aws.amazon.com/ar/?nc1=h_ls">عربي</a></li> <li data-language="id" lang="id-ID" translate="no"><a href="https://aws.amazon.com/id/?nc1=h_ls">Bahasa Indonesia</a></li> <li data-language="de" lang="de-DE" translate="no"><a href="https://aws.amazon.com/de/?nc1=h_ls">Deutsch</a></li> <li data-language="en" lang="en-US" translate="no"><a href="https://aws.amazon.com/?nc1=h_ls">English</a></li> <li data-language="es" lang="es-ES" translate="no"><a href="https://aws.amazon.com/es/?nc1=h_ls">Español</a></li> <li data-language="fr" lang="fr-FR" translate="no"><a href="https://aws.amazon.com/fr/?nc1=h_ls">Français</a></li> <li data-language="it" lang="it-IT" translate="no"><a href="https://aws.amazon.com/it/?nc1=h_ls">Italiano</a></li> <li data-language="pt" lang="pt-BR" translate="no"><a href="https://aws.amazon.com/pt/?nc1=h_ls">Português</a></li> <li data-language="vi" lang="vi-VN" translate="no"><a href="https://aws.amazon.com/vi/?nc1=f_ls">Tiếng Việt</a></li> <li data-language="tr" lang="tr-TR" translate="no"><a href="https://aws.amazon.com/tr/?nc1=h_ls">Türkçe</a></li> <li data-language="ru" lang="ru-RU" translate="no"><a href="https://aws.amazon.com/ru/?nc1=h_ls">Ρусский</a></li> <li data-language="th" lang="th-TH" translate="no"><a href="https://aws.amazon.com/th/?nc1=f_ls">ไทย</a></li> <li data-language="jp" lang="ja-JP" translate="no"><a href="https://aws.amazon.com/jp/?nc1=h_ls">日本語</a></li> <li data-language="ko" lang="ko-KR" translate="no"><a href="https://aws.amazon.com/ko/?nc1=h_ls">한국어</a></li> <li data-language="cn" lang="zh-CN" translate="no"><a href="https://aws.amazon.com/cn/?nc1=h_ls">中文 (简体)</a></li> <li data-language="tw" lang="zh-TW" translate="no"><a href="https://aws.amazon.com/tw/?nc1=h_ls">中文 (繁體)</a></li> </ul> </div> </div> </div> <div class="lb-none-pad lb-none-v-margin lb-xb-grid-wrap" style="background-color:#EAEDED; padding-top:5px;"> <div class="lb-xb-grid lb-row-max-large lb-snap lb-tiny-xb-1"> <div class="lb-xbcol"> <div class="lb-mbox js-mbox" data-lb-comp="mbox" data-lb-comp-ignore="true" data-mbox="en_footer-legal-links"> <ul class="lb-txt-squid lb-none-v-margin lb-ul lb-list-style-none lb-li-none-v-margin lb-tiny-ul-iblock"> <li><a href="https://aws.amazon.com/privacy/?nc1=f_pr">Privacy</a></li> <li>|</li> <li><a href="https://aws.amazon.com/accessibility/?nc1=f_acc">Accessibility</a></li> <li>|</li> <li><a href="https://aws.amazon.com/terms/?nc1=f_pr">Site Terms</a></li> <li>|</li> <li data-cookie-consent-modal="1"><a href="#"> Cookie Preferences </a></li> <li>|</li> <li>© 2024, Amazon Web Services, Inc. or its affiliates. All rights reserved.</li> </ul> </div> </div> </div> </div> </footer> </div> <div id="aws-page-end"></div> <div id="lb-page-end"></div> <script src="https://a0.awsstatic.com/da/js/1.0.50/aws-da.js" async></script> <script src="https://a0.awsstatic.com/aws-blog/1.0.83/js/vendor/prism.js" data-default-language="markup"></script> </body> </html>