CINXE.COM

Towards Data Science

<!DOCTYPE html><html xmlns:cc="http://creativecommons.org/ns#"><head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# medium-com: http://ogp.me/ns/fb/medium-com#"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=contain"><title>Towards Data Science</title><link rel="canonical" href="https://towardsdatascience.com"><link id="feedLink" rel="alternate" type="application/rss+xml" title="RSS" href="https://towardsdatascience.com/feed"><meta name="robots" content="index,follow"><meta name="title" content="Towards Data Science"><meta name="referrer" content="unsafe-url"><meta name="description" content="Your home for data science &amp; AI. The world’s leading publication for data science, data analytics, data engineering, machine learning, and artificial intelligence professionals."><meta name="keywords" content="DATA SCIENCE, MACHINE LEARNING, ARTIFICIAL INTELLIGENCE, DATA ENGINEERING, DATA"><meta name="theme-color" content="#000000"><meta property="og:title" content="Towards Data Science"><meta property="twitter:title" content="Towards Data Science"><meta property="og:url" content="https://towardsdatascience.com/"><meta property="og:image" content="https://cdn-images-1.medium.com/max/1200/1*CJe3891yB1A1mzMdqemkdg.jpeg"><meta property="fb:app_id" content="542599432471018"><meta property="og:description" content="Your home for data science &amp; AI. The world’s leading publication for data science, data analytics, data engineering, machine learning, and artificial intelligence professionals."><meta name="twitter:description" content="Your home for data science &amp; AI. The world’s leading publication for data science, data analytics, data engineering, machine learning, and artificial intelligence professionals."><meta name="twitter:image:src" content="https://cdn-images-1.medium.com/max/1200/1*CJe3891yB1A1mzMdqemkdg.jpeg"><meta property="og:type" content="medium-com:collection"><meta name="twitter:card" content="summary_large_image"><meta property="medium-com:creator" content="https://towardsdatascience.com/@engineering_48478"><meta name="twitter:site" content="@TDataScience"><meta property="og:site_name" content="Towards Data Science"><meta name="twitter:app:name:iphone" content="Medium"><meta name="twitter:app:id:iphone" content="828256236"><meta name="twitter:app:url:iphone" content="medium://towards-data-science"><meta property="al:ios:app_name" content="Medium"><meta property="al:ios:app_store_id" content="828256236"><meta property="al:android:package" content="com.medium.reader"><meta property="al:android:app_name" content="Medium"><meta property="al:ios:url" content="medium://towards-data-science"><meta property="al:android:url" content="medium://towards-data-science"><meta property="al:web:url" content="https://towardsdatascience.com/"><link rel="search" type="application/opensearchdescription+xml" title="Medium" href="/osd.xml" /><link rel="alternate" href="android-app://com.medium.reader/https/medium.com/towards-data-science" /><script type="application/ld+json">{"@context": "http://schema.org", "@graph": [{"@type": "WebSite", "url": "https:\/\/towardsdatascience.com", "name": "Towards Data Science", "alternateName": "Your home for data science \x26amp; AI. The world’s leading publication for data science, data analytics, data engineering, machine learning, and artificial intelligence professionals."},{"@type": "Organization", "url": "https:\/\/towardsdatascience.com", "name": "Towards Data Science"}]}</script><link rel="stylesheet" href="https://cdn-static-1.medium.com/_/fp/css/main-branding-base.ouwh4uMviI3QQWIjxRhkHA.12.css"><script>!function(n,e){var t,o,i,c=[],f={passive:!0,capture:!0},r=new Date,a="pointerup",u="pointercancel";function p(n,c){t||(t=c,o=n,i=new Date,w(e),s())}function s(){o>=0&&o<i-r&&(c.forEach(function(n){n(o,t)}),c=[])}function l(t){if(t.cancelable){var o=(t.timeStamp>1e12?new Date:performance.now())-t.timeStamp;"pointerdown"==t.type?function(t,o){function i(){p(t,o),r()}function c(){r()}function r(){e(a,i,f),e(u,c,f)}n(a,i,f),n(u,c,f)}(o,t):p(o,t)}}function w(n){["click","mousedown","keydown","touchstart","pointerdown"].forEach(function(e){n(e,l,f)})}w(n),self.perfMetrics=self.perfMetrics||{},self.perfMetrics.onFirstInputDelay=function(n){c.push(n),s()}}(addEventListener,removeEventListener);</script><script>document.domain = document.domain;</script><script>if (window.top !== window.self) window.location = 'about:blank';var OB_startTime = new Date().getTime(); var OB_loadErrors = []; function _onerror(e) { OB_loadErrors.push(e) }; if (document.addEventListener) document.addEventListener("error", _onerror, true); else if (document.attachEvent) document.attachEvent("onerror", _onerror); function _asyncScript(u) {var d = document, f = d.getElementsByTagName("script")[0], s = d.createElement("script"); s.type = "text/javascript"; s.async = true; s.src = u; f.parentNode.insertBefore(s, f);}function _asyncStyles(u) {var d = document, f = d.getElementsByTagName("script")[0], s = d.createElement("link"); s.rel = "stylesheet"; s.href = u; f.parentNode.insertBefore(s, f); return s}(new Image()).src = "/_/stat?event=pixel.load&origin=" + encodeURIComponent(location.origin);</script><script>window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; ga("create", "G-7JY7T788PK", "auto", {"allowLinker": true, "legacyCookieDomain": window.location.hostname});ga("send", "pageview");</script><script async src="https://www.google-analytics.com/analytics.js"></script><script>(function () {var height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; var width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; document.write("<style>section.section-image--fullBleed.is-backgrounded {padding-top: " + Math.round(1.1 * height) + "px;}section.section-image--fullScreen.is-backgrounded, section.section-image--coverFade.is-backgrounded {min-height: " + height + "px; padding-top: " + Math.round(0.5 * height) + "px;}.u-height100vh {height: " + height + "px !important;}.u-height110vh {height: " + Math.round(1.1 * height) + "px !important;}.u-minHeight100vh {min-height: " + height + "px !important;}.u-maxHeight100vh {max-height: " + height + "px !important;}section.section-image--coverFade {height: " + height + "px;}.section-aspectRatioViewportPlaceholder, .section-aspectRatioViewportCropPlaceholder {max-height: " + height + "px;}.section-aspectRatioViewportBottomSpacer, .section-aspectRatioViewportBottomPlaceholder {max-height: " + Math.round(0.5 * height) + "px;}.zoomable:before {top: " + (-1 * height) + "px; left: " + (-1 * width) + "px; padding: " + height + "px " + width + "px;}</style>");})()</script><!--[if lt IE 9]><script charset="UTF-8" src="https://cdn-static-1.medium.com/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.12.js"></script><![endif]--><link rel="icon" href="https://cdn-images-1.medium.com/fit/c/256/256/1*VzTUkfeGymHP4Bvav-T-lA.png" class="js-favicon"><link rel="apple-touch-icon" sizes="152x152" href="https://cdn-images-1.medium.com/fit/c/304/304/1*CJe3891yB1A1mzMdqemkdg.jpeg"><link rel="apple-touch-icon" sizes="120x120" href="https://cdn-images-1.medium.com/fit/c/240/240/1*CJe3891yB1A1mzMdqemkdg.jpeg"><link rel="apple-touch-icon" sizes="76x76" href="https://cdn-images-1.medium.com/fit/c/152/152/1*CJe3891yB1A1mzMdqemkdg.jpeg"><link rel="apple-touch-icon" sizes="60x60" href="https://cdn-images-1.medium.com/fit/c/120/120/1*CJe3891yB1A1mzMdqemkdg.jpeg"><link rel="mask-icon" href="https://cdn-static-1.medium.com/_/fp/icons/monogram-mask.KPLCSFEZviQN0jQ7veN2RQ.12.svg" color="#171717"></head><body itemscope class=" browser-ie os-windows v-unbound v-glyph v-glyph--m2-unbound-source-serif-pro is-noJs"><script>document.body.className = document.body.className.replace(/(^|\s)is-noJs(\s|$)/, "$1is-js$2")</script><div class="site-main" id="container"><div class="butterBar butterBar--error"></div><div class="surface"><div id="prerendered" class="screenContent"><div class="metabar u-clearfix u-textColorTransparentWhiteDarker u-tintBgColor u-tintSpectrum js-metabar"><div class="branch-journeys-top"></div><div class="js-metabarMiddle metabar-inner u-marginAuto u-maxWidth1032 u-flexCenter u-justifyContentSpaceBetween u-height65 u-xs-height56 u-paddingHorizontal20"><div class="metabar-block u-flex1 u-flexCenter"><div class="js-metabarLogoLeft"><a href="https://medium.com/" data-log-event="home" class="siteNav-logo u-fillWhite u-flex0 u-flexCenter u-paddingTop0"><span class="svgIcon svgIcon--wordmarkMedium svgIcon--120x26px u-flex"><svg class="svgIcon-use" width="120" height="26" ><path d="M29.57 1.404l.036-.008V1.12h-7.27l-6.75 15.979-6.75-15.98H1.003v.278l.035.008c1.327.302 2 .752 2 2.374v18.993c0 1.623-.676 2.073-2.003 2.374L1 25.153v.279h5.315v-.278l-.035-.008c-1.327-.302-2-.751-2-2.374V4.88l8.67 20.552h.492l8.924-21.125V23.24c-.114 1.282-.782 1.677-1.983 1.95l-.036.009v.275h9.259V25.2l-.036-.008c-1.203-.274-1.886-.67-2-1.95l-.006-19.464h.006c0-1.622.674-2.072 2-2.374zm4.23 12.582c.15-3.412 1.367-5.875 3.41-5.918.629.01 1.157.219 1.568.62.872.852 1.282 2.634 1.219 5.298h-6.198zm-.092.962h10.85v-.046c-.03-2.61-.78-4.64-2.228-6.033-1.25-1.204-3.103-1.867-5.048-1.867h-.043c-1.01 0-2.248.246-3.13.693a7.316 7.316 0 00-2.623 2.086c-1.185 1.479-1.903 3.477-2.078 5.724a13.717 13.717 0 00-.04.755c-.004.195-.005.39-.001.587.117 5.087 2.846 9.153 7.692 9.153 4.254 0 6.73-3.132 7.348-7.336l-.312-.11c-1.085 2.259-3.034 3.628-5.252 3.461-3.028-.228-5.347-3.32-5.137-7.066m23.122 6.893c-.356.85-1.099 1.319-2.094 1.319-.995 0-1.905-.689-2.552-1.939-.694-1.342-1.06-3.24-1.06-5.487 0-4.678 1.445-7.704 3.68-7.704.937 0 1.674.468 2.026 1.284v12.527zm7.198 3.335c-1.327-.316-2-.787-2-2.492V0l-8.062 2.392v.293l.05-.004c1.111-.09 1.866.064 2.304.472.343.32.51.809.51 1.498v3.11C56.033 7.25 55.088 7 53.94 7c-2.326 0-4.453.987-5.986 2.779-1.599 1.867-2.444 4.42-2.444 7.38 0 5.287 2.584 8.84 6.43 8.84 2.25 0 4.06-1.242 4.888-3.336v2.811h7.233v-.29l-.035-.008zM70.94 3.085c0-1.65-1.236-2.896-2.875-2.896-1.632 0-2.908 1.272-2.908 2.896 0 1.624 1.278 2.896 2.908 2.896 1.64 0 2.875-1.245 2.875-2.896zm1.903 22.092c-1.327-.316-2-.787-2-2.492h-.006V7.055l-7.234 2.092v.284l.043.004c1.566.14 1.994.683 1.994 2.525v13.515h7.24v-.29l-.037-.008zm18.536 0c-1.327-.316-2-.787-2-2.492V7.055L82.49 9.078v.285l.04.004c1.28.136 1.65.71 1.65 2.56v9.88c-.426.85-1.227 1.356-2.196 1.39-1.573 0-2.439-1.07-2.439-3.012V7.055l-7.234 2.092v.284l.044.004c1.565.14 1.994.683 1.994 2.525v8.362a9.443 9.443 0 00.15 1.741l.13.57C75.243 24.845 76.848 26 79.362 26c2.129 0 3.996-1.328 4.818-3.405v2.885h7.233v-.291l-.034-.012zm28.102.298v-.291l-.035-.009c-1.44-.334-2.001-.964-2.001-2.248V12.295C117.445 8.98 115.597 7 112.5 7c-2.257 0-4.16 1.314-4.893 3.36-.582-2.168-2.257-3.36-4.734-3.36-2.175 0-3.88 1.156-4.612 3.11V7.056l-7.233 2.006v.286l.043.004c1.547.138 1.994.697 1.994 2.492v13.631h6.75v-.29l-.037-.01c-1.148-.271-1.519-.767-1.519-2.04V10.95c.304-.715.917-1.562 2.127-1.562 1.504 0 2.266 1.05 2.266 3.116v12.972h6.751v-.29l-.035-.01c-1.149-.271-1.52-.767-1.52-2.04V12.294a7.107 7.107 0 00-.095-1.21c.322-.777.97-1.696 2.23-1.696 1.524 0 2.265 1.02 2.265 3.116v12.972h7.233z"/></svg></span><span class="u-textScreenReader">Homepage</span></a></div><div class="u-paddingLeft10 u-sm-show r-paddingRight10"><a href="https://rsci.app.link/?%24canonical_url=https%3A%2F%2Fmedium.com/towards-data-science%3F~feature=LoMobileNavBar&~channel=ShowCollectionHome&~stage=m2">Open in app</a></div></div><div class="metabar-block u-flex0 u-flexCenter"><div class="u-flexCenter u-height65 u-xs-height56"><div class="buttonSet buttonSet--wide u-lineHeightInherit"><a class="button button--primary button--light button--chromeless u-accentColor--buttonNormal is-inSiteNavBar u-xs-hide js-signInButton" href="https://medium.com/m/signin?redirect=https%3A%2F%2Ftowardsdatascience.com%2F%3Fsource%3Duser_profile_page---blogroll-------------------4f0a66fe889e---------------&amp;source=--------------------------nav_reg&amp;operation=login" data-action="sign-in-prompt" data-redirect="https://towardsdatascience.com/?source=user_profile_page---blogroll-------------------4f0a66fe889e---------------" data-action-source="--------------------------nav_reg">Sign in</a><a class="button button--primary button--light button--withChrome u-accentColor--buttonNormal is-inSiteNavBar js-signUpButton" href="https://medium.com/m/signin?redirect=https%3A%2F%2Ftowardsdatascience.com%2F%3Fsource%3Duser_profile_page---blogroll-------------------4f0a66fe889e---------------&amp;source=--------------------------nav_reg&amp;operation=register" data-action="sign-up-prompt" data-redirect="https://towardsdatascience.com/?source=user_profile_page---blogroll-------------------4f0a66fe889e---------------" data-action-source="--------------------------nav_reg">Get started</a></div></div></div></div></div><div class="metabar metabar--spacer js-metabarSpacer u-tintBgColor u-height65 u-xs-height56"></div><div class="collectionHeader js-collectionHeaderContainer u-relative collectionHeader--layoutMedium collectionHeader--alignmentLeft collectionHeader--withLogo collectionHeader--withoutBackground collectionHeader--colorBehaviorBold collectionHeader--withNavigation collectionHeader--editorLayoutTitleAndLogo is-modeView is-whiteLabel u-tintBgColor"><div class="collectionHeader-aspectRatioTable"><div class="collectionHeader-aspectRatioContent u-backgroundSizeCover js-collectionHeaderBackground"><div class="collectionHeader-overlayBackground u-height100vh"></div><header class="collectionHeader-heroAndInlineNav u-borderBox u-maxWidth1072 u-paddingLeft20 u-paddingRight20 u-marginAuto u-foreground js-collectionHeader"><div class="collectionHeader-hero js-collectionHeaderHero u-clearfix u-tintSpectrum"><div class="collectionHeader-heroInner"><div class="collectionHeader-logo js-collectionHeaderLogo" style="max-width: 221px;"><a class="link u-baseColor--link" href="https://towardsdatascience.com" title="Go to Towards Data Science" aria-label="Go to Towards Data Science" data-collection-slug="towards-data-science"><div class="u-relative u-marginAuto"><div style="padding-bottom: 41.59848961611076%"></div><img class="collectionHeader-logoImage js-collectionHeaderLogoImage" src="https://cdn-images-1.medium.com/max/442/1*1m9fjwOZWwXIP82RWvRH5A@2x.png" data-image-id="1*1m9fjwOZWwXIP82RWvRH5A@2x.png" data-width="1589" data-height="661" /></div></a></div><div class="collectionHeader-nameAndDescription"><h2 class="collectionHeader-description js-collectionDescription u-foreground u-baseColor--textNormal u-contentSansRegular u-fontSize24 u-xs-fontSize18">The world’s leading publication for data science, AI, data analytics, data engineering and ML professionals.</h2></div></div></div></header></div><div class="collectionHeader-aspectRatioCell"><div class="collectionHeader-aspectRatioFullWidth"></div></div></div><div class="collectionHeader-blockNav"><div class="u-borderBox u-maxWidth1072 u-paddingLeft20 u-paddingRight20 u-marginAuto"><nav class="collectionHeader-nav u-clearfix js-collectionHeaderNav u-lineHeight40 u-overflowHiddenY u-tintSpectrum"><div class="buttonSet u-flex1 u-noWrap u-overflowX u-paddingBottom100 u-xs-marginRight15"><li class="collectionHeader-navItem js-collectionNavItem u-inlineBlock u-fontSize13 u-textUppercase u-letterSpacing1px u-textColorNormal u-xs-paddingRight12 u-xs-marginRight0"><a class="link link--darken u-accentColor--textDarken link--noUnderline u-baseColor--link js-navItemLink" href="https://towardsdatascience.com/latest">Latest</a></li><li class="collectionHeader-navItem js-collectionNavItem u-inlineBlock u-fontSize13 u-textUppercase u-letterSpacing1px u-textColorNormal u-xs-paddingRight12 u-xs-marginRight0"><a class="link link--darken u-accentColor--textDarken link--noUnderline u-baseColor--link js-navItemLink" href="https://towardsdatascience.com/editors-picks/home">Editors&#39; Picks</a></li><li class="collectionHeader-navItem js-collectionNavItem u-inlineBlock u-fontSize13 u-textUppercase u-letterSpacing1px u-textColorNormal u-xs-paddingRight12 u-xs-marginRight0"><a class="link link--darken u-accentColor--textDarken link--noUnderline u-baseColor--link js-navItemLink" href="https://towardsdatascience.com/deep-dives/home">Deep Dives</a></li><li class="collectionHeader-navItem js-collectionNavItem u-inlineBlock u-fontSize13 u-textUppercase u-letterSpacing1px u-textColorNormal u-xs-paddingRight12 u-xs-marginRight0"><a class="link link--darken u-accentColor--textDarken link--noUnderline u-baseColor--link js-navItemLink" href="https://towardsdatascience.com/about-us/home">About</a></li><li class="collectionHeader-navItem js-collectionNavItem u-inlineBlock u-fontSize13 u-textUppercase u-letterSpacing1px u-textColorNormal u-xs-paddingRight12 u-xs-marginRight0"><a class="link link--darken u-accentColor--textDarken link--noUnderline u-baseColor--link js-navItemLink" href="https://towardsdatascience.com/questions-96667b06af5">Contribute</a></li><span class="u-borderLeft1 u-paddingLeft22 u-xs-paddingLeft12 u-baseColor--borderLight"></span><li class="collectionHeader-navItem js-collectionNavItem u-inlineBlock u-fontSize13 u-textUppercase u-letterSpacing1px u-textColorNormal u-xs-paddingRight12 u-xs-marginRight0 is-external"><a class="link link--darkenOnHover u-accentColor--textDarken link--noUnderline u-baseColor--link js-navItemLink" href="https://medium.com/towards-data-science/newsletter" rel="nofollow noopener" target="_blank">Newsletter</a></li></div><div class="buttonSet u-textAlignRight u-marginLeft18 u-flex0 u-noWrap"><label class="button button--small button--chromeless button--withIcon button--withSvgIcon inputGroup u-sm-hide metabar-predictiveSearch u-baseColor--buttonNormal u-baseColor--placeholderNormal" title="Search"><span class="svgIcon svgIcon--search svgIcon--25px u-baseColor--iconLight"><svg class="svgIcon-use" width="25" height="25" ><path d="M20.067 18.933l-4.157-4.157a6 6 0 10-.884.884l4.157 4.157a.624.624 0 10.884-.884zM6.5 11c0-2.62 2.13-4.75 4.75-4.75S16 8.38 16 11s-2.13 4.75-4.75 4.75S6.5 13.62 6.5 11z"/></svg></span><input class="js-predictiveSearchInput textInput textInput--rounded textInput--darkText u-baseColor--textNormal textInput--transparent" type="search" placeholder="Search" required="true" data-collection-id="7f60cf5620c9" /></label><a class="button button--light button--chromeless is-touchIconBlackPulse u-baseColor--buttonLight button--withIcon button--withSvgIcon button--chromeless u-verticalAlignMiddle" href="https://twitter.com/TDataScience" title="Visit “Towards Data Science” on X" aria-label="Visit “Towards Data Science” on X" rel="me" target="_blank"><span class="button-defaultState"><span class="svgIcon svgIcon--twitter svgIcon--25px"><svg class="svgIcon-use" width="25" height="25" fill="none" ><path d="M14.215 11.3l5.764-6.7h-1.366l-5.005 5.818L9.611 4.6H5l6.045 8.798L5 20.424h1.366l5.286-6.144 4.221 6.144h4.61L14.216 11.3zm-1.871 2.175l-.612-.876-4.874-6.97h2.098l3.933 5.625.613.876 5.112 7.312h-2.098l-4.172-5.966z" fill="#242424"/></svg></span></span></a><button class="button button--primary button--smallest u-noUserSelect button--withChrome u-accentColor--buttonNormal button--followCollection js-followCollectionButton" data-action="sign-up-prompt" data-sign-in-action="toggle-subscribe-collection" data-requires-token="true" data-redirect="https://medium.com/_/subscribe/collection/towards-data-science" data-action-source="header----7f60cf5620c9----------------------follow_pub"><span class="button-label button-defaultState js-buttonLabel">Follow</span><span class="button-label button-activeState">Following</span></button></div></nav></div></div></div><div class="u-marginBottom40 js-collectionStream"><div class="streamItem streamItem--section js-streamItem"><section class="u-marginTop30 u-xs-margin0 u-marginBottom15 u-maxWidth1032 u-sm-paddingLeft20 u-sm-paddingRight20 u-borderBox u-marginAuto"><div class="row u-marginTop30 u-marginLeftNegative12 u-marginRightNegative12"><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size6of12" data-source="collection_home---4------0-----------------------" data-post-id="6d718ac40b7d" data-index="0"><div class="u-lineHeightBase postItem"><a href="https://towardsdatascience.com/nlp-illustrated-part-2-word-embeddings-6d718ac40b7d?source=collection_home---4------0-----------------------" data-action="open-post" data-action-value="https://towardsdatascience.com/nlp-illustrated-part-2-word-embeddings-6d718ac40b7d?source=collection_home---4------0-----------------------" class="u-block u-xs-height170 u-width600 u-height272 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/1200/1*UZx9K92bV1eRa32-EzsSWA.png&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">NLP Illustrated, Part 2: Word Embeddings</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://towardsdatascience.com/nlp-illustrated-part-2-word-embeddings-6d718ac40b7d?source=collection_home---4------0-----------------------" data-action-source="collection_home---4------0-----------------------" data-post-id="6d718ac40b7d"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">NLP Illustrated, Part 2: Word Embeddings</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">An illustrated and intuitive guide to word embeddings</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://towardsdatascience.com/@shreya.rao" data-action="show-user-card" data-action-value="99b63de2f2c3" data-action-type="hover" data-user-id="99b63de2f2c3" data-collection-slug="towards-data-science" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*Dw7i9_T729qQE7ieepVvKw.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Shreya Rao"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://towardsdatascience.com/@shreya.rao" data-action="show-user-card" data-action-value="99b63de2f2c3" data-action-type="hover" data-user-id="99b63de2f2c3" data-collection-slug="towards-data-science" dir="auto">Shreya Rao</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2024-11-27T00:15:37.347Z">Nov 26</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="8 min read"></span><span class="u-paddingLeft4"><span class="svgIcon svgIcon--star svgIcon--15px"><svg class="svgIcon-use" width="15" height="15" ><path d="M7.438 2.324c.034-.099.09-.099.123 0l1.2 3.53a.29.29 0 00.26.19h3.884c.11 0 .127.049.038.111L9.8 8.327a.271.271 0 00-.099.291l1.2 3.53c.034.1-.011.131-.098.069l-3.142-2.18a.303.303 0 00-.32 0l-3.145 2.182c-.087.06-.132.03-.099-.068l1.2-3.53a.271.271 0 00-.098-.292L2.056 6.146c-.087-.06-.071-.112.038-.112h3.884a.29.29 0 00.26-.19l1.2-3.52z"/></svg></span></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size6of12" data-source="collection_home---4------1-----------------------" data-post-id="f6f7920bcc55" data-index="1"><div class="u-lineHeightBase postItem"><a href="https://towardsdatascience.com/addressing-missing-data-f6f7920bcc55?source=collection_home---4------1-----------------------" data-action="open-post" data-action-value="https://towardsdatascience.com/addressing-missing-data-f6f7920bcc55?source=collection_home---4------1-----------------------" class="u-block u-xs-height170 u-width600 u-height272 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/1200/0*2azp79om7UNFWEGR&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Addressing Missing Data</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://towardsdatascience.com/addressing-missing-data-f6f7920bcc55?source=collection_home---4------1-----------------------" data-action-source="collection_home---4------1-----------------------" data-post-id="f6f7920bcc55"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Addressing Missing Data</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">Understand missing data patterns (MCAR, MNAR, MAR) for better model performance with Missingno</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://towardsdatascience.com/@gizkaya" data-action="show-user-card" data-action-value="bd281fad5f8a" data-action-type="hover" data-user-id="bd281fad5f8a" data-collection-slug="towards-data-science" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*zp87uWSKMigrw0kxY20Dag.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Gizem Kaya"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://towardsdatascience.com/@gizkaya" data-action="show-user-card" data-action-value="bd281fad5f8a" data-action-type="hover" data-user-id="bd281fad5f8a" data-collection-slug="towards-data-science" dir="auto">Gizem Kaya</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2024-11-26T18:50:58.156Z">Nov 26</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="8 min read"></span><span class="u-paddingLeft4"><span class="svgIcon svgIcon--star svgIcon--15px"><svg class="svgIcon-use" width="15" height="15" ><path d="M7.438 2.324c.034-.099.09-.099.123 0l1.2 3.53a.29.29 0 00.26.19h3.884c.11 0 .127.049.038.111L9.8 8.327a.271.271 0 00-.099.291l1.2 3.53c.034.1-.011.131-.098.069l-3.142-2.18a.303.303 0 00-.32 0l-3.145 2.182c-.087.06-.132.03-.099-.068l1.2-3.53a.271.271 0 00-.098-.292L2.056 6.146c-.087-.06-.071-.112.038-.112h3.884a.29.29 0 00.26-.19l1.2-3.52z"/></svg></span></span></div></div></div></div></div></div></div></section></div><div class="streamItem streamItem--section js-streamItem"><section class="u-marginTop30 u-xs-margin0 u-marginBottom15 u-maxWidth1032 u-sm-paddingLeft20 u-sm-paddingRight20 u-borderBox u-marginAuto"><header class="heading heading--borderedBottom u-fontSize18 u-contentSansThin" ><div class="u-clearfix"><div class="heading-content u-floatLeft"><span class="heading-title heading-title--dark heading-title--lineHeightTight u-fontSize18 u-contentSansThin">Latest</span></div></div></header><div class="row u-marginTop30 u-marginLeftNegative12 u-marginRightNegative12"><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------0-----------------------" data-post-id="7f9c6e6b7251" data-index="0"><div class="u-lineHeightBase postItem"><a href="https://towardsdatascience.com/mistral-7b-explained-towards-more-efficient-language-models-7f9c6e6b7251?source=collection_home---4------0-----------------------" data-action="open-post" data-action-value="https://towardsdatascience.com/mistral-7b-explained-towards-more-efficient-language-models-7f9c6e6b7251?source=collection_home---4------0-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/1*TRfxFbnLDx9IqpvghpbURA.jpeg&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Mistral 7B Explained: Towards More Efficient Language Models</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://towardsdatascience.com/mistral-7b-explained-towards-more-efficient-language-models-7f9c6e6b7251?source=collection_home---4------0-----------------------" data-action-source="collection_home---4------0-----------------------" data-post-id="7f9c6e6b7251"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Mistral 7B Explained: Towards More Efficient Language Models</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">RMS Norm, RoPE, GQA, SWA, KV Cache, and more!</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://towardsdatascience.com/@bradneysmith" data-action="show-user-card" data-action-value="d18c7303c5a2" data-action-type="hover" data-user-id="d18c7303c5a2" data-collection-slug="towards-data-science" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*tVLKwOvdthd64kORuXntTg.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Bradney Smith"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://towardsdatascience.com/@bradneysmith" data-action="show-user-card" data-action-value="d18c7303c5a2" data-action-type="hover" data-user-id="d18c7303c5a2" data-collection-slug="towards-data-science" dir="auto">Bradney Smith</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2024-11-26T18:26:18.729Z">Nov 26</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="42 min read"></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------1-----------------------" data-post-id="4e77aa46336f" data-index="1"><div class="u-lineHeightBase postItem"><a href="https://towardsdatascience.com/data-scientist-answers-the-most-popular-data-science-questions-4e77aa46336f?source=collection_home---4------1-----------------------" data-action="open-post" data-action-value="https://towardsdatascience.com/data-scientist-answers-the-most-popular-data-science-questions-4e77aa46336f?source=collection_home---4------1-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/0*ks-c7RLyaHiphYSw&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Data Scientist Answers the Most Popular Data Science Questions</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://towardsdatascience.com/data-scientist-answers-the-most-popular-data-science-questions-4e77aa46336f?source=collection_home---4------1-----------------------" data-action-source="collection_home---4------1-----------------------" data-post-id="4e77aa46336f"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Data Scientist Answers the Most Popular Data Science Questions</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">All-around guidance for prospective data scientists</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://towardsdatascience.com/@egorhowell" data-action="show-user-card" data-action-value="1cac491223b2" data-action-type="hover" data-user-id="1cac491223b2" data-collection-slug="towards-data-science" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*GjTgnF9urbcpls3Y9LEzWw.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Egor Howell"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://towardsdatascience.com/@egorhowell" data-action="show-user-card" data-action-value="1cac491223b2" data-action-type="hover" data-user-id="1cac491223b2" data-collection-slug="towards-data-science" dir="auto">Egor Howell</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2024-11-26T17:50:14.376Z">Nov 26</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="6 min read"></span><span class="u-paddingLeft4"><span class="svgIcon svgIcon--star svgIcon--15px"><svg class="svgIcon-use" width="15" height="15" ><path d="M7.438 2.324c.034-.099.09-.099.123 0l1.2 3.53a.29.29 0 00.26.19h3.884c.11 0 .127.049.038.111L9.8 8.327a.271.271 0 00-.099.291l1.2 3.53c.034.1-.011.131-.098.069l-3.142-2.18a.303.303 0 00-.32 0l-3.145 2.182c-.087.06-.132.03-.099-.068l1.2-3.53a.271.271 0 00-.098-.292L2.056 6.146c-.087-.06-.071-.112.038-.112h3.884a.29.29 0 00.26-.19l1.2-3.52z"/></svg></span></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------2-----------------------" data-post-id="2494ca1b3f96" data-index="2"><div class="u-lineHeightBase postItem"><a href="https://towardsdatascience.com/explainable-generic-ml-pipeline-with-mlflow-2494ca1b3f96?source=collection_home---4------2-----------------------" data-action="open-post" data-action-value="https://towardsdatascience.com/explainable-generic-ml-pipeline-with-mlflow-2494ca1b3f96?source=collection_home---4------2-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/1*rxeyWMHZrwJBbfRVQMv_JA.jpeg&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Explainable Generic ML Pipeline with MLflow</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://towardsdatascience.com/explainable-generic-ml-pipeline-with-mlflow-2494ca1b3f96?source=collection_home---4------2-----------------------" data-action-source="collection_home---4------2-----------------------" data-post-id="2494ca1b3f96"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Explainable Generic ML Pipeline with MLflow</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">An end-to-end demo to wrap a pre-processor and explainer into an algorithm-agnostic ML pipeline with mlflow.pyfunc</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://towardsdatascience.com/@menawang" data-action="show-user-card" data-action-value="2b42227db6a9" data-action-type="hover" data-user-id="2b42227db6a9" data-collection-slug="towards-data-science" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*qUfWZCdwnb6Bn7k4cO0O3Q.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Mena Wang, PhD"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://towardsdatascience.com/@menawang" data-action="show-user-card" data-action-value="2b42227db6a9" data-action-type="hover" data-user-id="2b42227db6a9" data-collection-slug="towards-data-science" dir="auto">Mena Wang, PhD</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2024-11-26T17:47:56.402Z">Nov 26</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="13 min read"></span></div></div></div></div></div></div></div><div class="row u-marginTop30 u-marginLeftNegative12 u-marginRightNegative12"><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------3-----------------------" data-post-id="19fb88fddf71" data-index="3"><div class="u-lineHeightBase postItem"><a href="https://towardsdatascience.com/optimizing-transformer-models-for-variable-length-input-sequences-19fb88fddf71?source=collection_home---4------3-----------------------" data-action="open-post" data-action-value="https://towardsdatascience.com/optimizing-transformer-models-for-variable-length-input-sequences-19fb88fddf71?source=collection_home---4------3-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/0*KTgbpA3zQGTR4ugq&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Optimizing Transformer Models for Variable-Length Input Sequences</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://towardsdatascience.com/optimizing-transformer-models-for-variable-length-input-sequences-19fb88fddf71?source=collection_home---4------3-----------------------" data-action-source="collection_home---4------3-----------------------" data-post-id="19fb88fddf71"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Optimizing Transformer Models for Variable-Length Input Sequences</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">How PyTorch NestedTensors, FlashAttention2, and xFormers can Boost Performance and Reduce AI Costs</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://towardsdatascience.com/@chaimrand" data-action="show-user-card" data-action-value="9440b37e27fe" data-action-type="hover" data-user-id="9440b37e27fe" data-collection-slug="towards-data-science" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*u4pzP95sl2wOlLhWKFgczg.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Chaim Rand"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://towardsdatascience.com/@chaimrand" data-action="show-user-card" data-action-value="9440b37e27fe" data-action-type="hover" data-user-id="9440b37e27fe" data-collection-slug="towards-data-science" dir="auto">Chaim Rand</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2024-11-26T14:45:19.169Z">Nov 26</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="14 min read"></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------4-----------------------" data-post-id="40c1c7c05e5c" data-index="4"><div class="u-lineHeightBase postItem"><a href="https://towardsdatascience.com/from-data-scientist-to-data-manager-my-first-3-months-leading-a-team-40c1c7c05e5c?source=collection_home---4------4-----------------------" data-action="open-post" data-action-value="https://towardsdatascience.com/from-data-scientist-to-data-manager-my-first-3-months-leading-a-team-40c1c7c05e5c?source=collection_home---4------4-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/0*JSbKz8U-uRQE7hCQ&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">From Data Scientist to Data Manager: My First 3 Months Leading a Team</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://towardsdatascience.com/from-data-scientist-to-data-manager-my-first-3-months-leading-a-team-40c1c7c05e5c?source=collection_home---4------4-----------------------" data-action-source="collection_home---4------4-----------------------" data-post-id="40c1c7c05e5c"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">From Data Scientist to Data Manager: My First 3 Months Leading a Team</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">Reflections on moving from hands-on work to mentoring and leading</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://towardsdatascience.com/@ydong029" data-action="show-user-card" data-action-value="5462c48cfc57" data-action-type="hover" data-user-id="5462c48cfc57" data-collection-slug="towards-data-science" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*29MqzRR7m5m93unBH1o7lw.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Yu Dong"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://towardsdatascience.com/@ydong029" data-action="show-user-card" data-action-value="5462c48cfc57" data-action-type="hover" data-user-id="5462c48cfc57" data-collection-slug="towards-data-science" dir="auto">Yu Dong</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2024-11-26T14:02:16.948Z">Nov 26</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="8 min read"></span><span class="u-paddingLeft4"><span class="svgIcon svgIcon--star svgIcon--15px"><svg class="svgIcon-use" width="15" height="15" ><path d="M7.438 2.324c.034-.099.09-.099.123 0l1.2 3.53a.29.29 0 00.26.19h3.884c.11 0 .127.049.038.111L9.8 8.327a.271.271 0 00-.099.291l1.2 3.53c.034.1-.011.131-.098.069l-3.142-2.18a.303.303 0 00-.32 0l-3.145 2.182c-.087.06-.132.03-.099-.068l1.2-3.53a.271.271 0 00-.098-.292L2.056 6.146c-.087-.06-.071-.112.038-.112h3.884a.29.29 0 00.26-.19l1.2-3.52z"/></svg></span></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------5-----------------------" data-post-id="3c18470ed2ee" data-index="5"><div class="u-lineHeightBase postItem"><a href="https://towardsdatascience.com/introducing-ft-q-improving-vector-compression-with-feature-level-quantization-3c18470ed2ee?source=collection_home---4------5-----------------------" data-action="open-post" data-action-value="https://towardsdatascience.com/introducing-ft-q-improving-vector-compression-with-feature-level-quantization-3c18470ed2ee?source=collection_home---4------5-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/1*rGbMBcRKV3W1forC_SlvPg.png&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Introducing ft-Q: Improving Vector Compression with Feature-Level Quantization</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://towardsdatascience.com/introducing-ft-q-improving-vector-compression-with-feature-level-quantization-3c18470ed2ee?source=collection_home---4------5-----------------------" data-action-source="collection_home---4------5-----------------------" data-post-id="3c18470ed2ee"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Introducing ft-Q: Improving Vector Compression with Feature-Level Quantization</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">Pushing quantization to its limits by performing it at the feature level with ft-Quantization (ft-Q)</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://towardsdatascience.com/@ardito.bryan" data-action="show-user-card" data-action-value="153452706ad7" data-action-type="hover" data-user-id="153452706ad7" data-collection-slug="towards-data-science" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/2*MkUxrUogzkaAyb_Nf76wRQ.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Michelangiolo Mazzeschi"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://towardsdatascience.com/@ardito.bryan" data-action="show-user-card" data-action-value="153452706ad7" data-action-type="hover" data-user-id="153452706ad7" data-collection-slug="towards-data-science" dir="auto">Michelangiolo Mazzeschi</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2024-11-26T13:02:14.163Z">Nov 26</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="10 min read"></span></div></div></div></div></div></div></div><div class="row u-marginTop30 u-marginLeftNegative12 u-marginRightNegative12"><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------6-----------------------" data-post-id="d1bca7c1772f" data-index="6"><div class="u-lineHeightBase postItem"><a href="https://towardsdatascience.com/every-step-of-the-machine-learning-life-cycle-simply-explained-d1bca7c1772f?source=collection_home---4------6-----------------------" data-action="open-post" data-action-value="https://towardsdatascience.com/every-step-of-the-machine-learning-life-cycle-simply-explained-d1bca7c1772f?source=collection_home---4------6-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/1*_dlG-Cju5ke-DKp8DQ9hiA@2x.jpeg&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Every Step of the Machine Learning Life Cycle Simply Explained</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://towardsdatascience.com/every-step-of-the-machine-learning-life-cycle-simply-explained-d1bca7c1772f?source=collection_home---4------6-----------------------" data-action-source="collection_home---4------6-----------------------" data-post-id="d1bca7c1772f"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Every Step of the Machine Learning Life Cycle Simply Explained</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">A comprehensive guide to the ML life cycle with examples in Python</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://towardsdatascience.com/@pelletierhaden" data-action="show-user-card" data-action-value="b14d1de976eb" data-action-type="hover" data-user-id="b14d1de976eb" data-collection-slug="towards-data-science" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*a0nmhdOP6fSXKTkniLMsNw@2x.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Haden Pelletier"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://towardsdatascience.com/@pelletierhaden" data-action="show-user-card" data-action-value="b14d1de976eb" data-action-type="hover" data-user-id="b14d1de976eb" data-collection-slug="towards-data-science" dir="auto">Haden Pelletier</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2024-11-26T04:53:37.161Z">Nov 25</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="15 min read"></span><span class="u-paddingLeft4"><span class="svgIcon svgIcon--star svgIcon--15px"><svg class="svgIcon-use" width="15" height="15" ><path d="M7.438 2.324c.034-.099.09-.099.123 0l1.2 3.53a.29.29 0 00.26.19h3.884c.11 0 .127.049.038.111L9.8 8.327a.271.271 0 00-.099.291l1.2 3.53c.034.1-.011.131-.098.069l-3.142-2.18a.303.303 0 00-.32 0l-3.145 2.182c-.087.06-.132.03-.099-.068l1.2-3.53a.271.271 0 00-.098-.292L2.056 6.146c-.087-.06-.071-.112.038-.112h3.884a.29.29 0 00.26-.19l1.2-3.52z"/></svg></span></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------7-----------------------" data-post-id="3d26b3ebd627" data-index="7"><div class="u-lineHeightBase postItem"><a href="https://towardsdatascience.com/ragops-guide-building-and-scaling-retrieval-augmented-generation-systems-3d26b3ebd627?source=collection_home---4------7-----------------------" data-action="open-post" data-action-value="https://towardsdatascience.com/ragops-guide-building-and-scaling-retrieval-augmented-generation-systems-3d26b3ebd627?source=collection_home---4------7-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/1*C9g9dY3ryVlQJ6TmlasFYA.png&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">RAGOps Guide: Building and Scaling Retrieval Augmented Generation Systems</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://towardsdatascience.com/ragops-guide-building-and-scaling-retrieval-augmented-generation-systems-3d26b3ebd627?source=collection_home---4------7-----------------------" data-action-source="collection_home---4------7-----------------------" data-post-id="3d26b3ebd627"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">RAGOps Guide: Building and Scaling Retrieval Augmented Generation Systems</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">The Architecture, Operational Layers, and Best Practices for Effective RAG Implementation</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://towardsdatascience.com/@abhinavkimothi" data-action="show-user-card" data-action-value="d11c06040ced" data-action-type="hover" data-user-id="d11c06040ced" data-collection-slug="towards-data-science" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*NXr2cLlsDxBc665b7SEKeA.png" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Abhinav Kimothi"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://towardsdatascience.com/@abhinavkimothi" data-action="show-user-card" data-action-value="d11c06040ced" data-action-type="hover" data-user-id="d11c06040ced" data-collection-slug="towards-data-science" dir="auto">Abhinav Kimothi</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2024-11-26T04:50:10.763Z">Nov 25</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="22 min read"></span><span class="u-paddingLeft4"><span class="svgIcon svgIcon--star svgIcon--15px"><svg class="svgIcon-use" width="15" height="15" ><path d="M7.438 2.324c.034-.099.09-.099.123 0l1.2 3.53a.29.29 0 00.26.19h3.884c.11 0 .127.049.038.111L9.8 8.327a.271.271 0 00-.099.291l1.2 3.53c.034.1-.011.131-.098.069l-3.142-2.18a.303.303 0 00-.32 0l-3.145 2.182c-.087.06-.132.03-.099-.068l1.2-3.53a.271.271 0 00-.098-.292L2.056 6.146c-.087-.06-.071-.112.038-.112h3.884a.29.29 0 00.26-.19l1.2-3.52z"/></svg></span></span></div></div></div></div></div></div><div class="col u-xs-size12of12 js-trackPostPresentation u-paddingLeft12 u-marginBottom15 u-paddingRight12 u-size4of12" data-source="collection_home---4------8-----------------------" data-post-id="b884d85eb00a" data-index="8"><div class="u-lineHeightBase postItem"><a href="https://towardsdatascience.com/statistical-analysis-using-python-insights-from-cancer-treatment-data-b884d85eb00a?source=collection_home---4------8-----------------------" data-action="open-post" data-action-value="https://towardsdatascience.com/statistical-analysis-using-python-insights-from-cancer-treatment-data-b884d85eb00a?source=collection_home---4------8-----------------------" class="u-block u-xs-height170 u-height172 u-backgroundSizeCover u-backgroundOriginBorderBox u-backgroundColorGrayLight u-borderLighter" style="background-image: url(&quot;https://cdn-images-1.medium.com/max/800/1*BPH8yH0BZnlLIEfioHRtTQ.png&quot;); background-position: 50% 50% !important;"><span class="u-textScreenReader">Statistical Analysis Using Python: Insights from Cancer Treatment Data</span></a></div><div class="col u-xs-marginBottom10 u-paddingLeft0 u-paddingRight0 u-paddingTop15 u-marginBottom30"><a class="" href="https://towardsdatascience.com/statistical-analysis-using-python-insights-from-cancer-treatment-data-b884d85eb00a?source=collection_home---4------8-----------------------" data-action-source="collection_home---4------8-----------------------" data-post-id="b884d85eb00a"><h3 class="u-contentSansBold u-lineHeightTightest u-xs-fontSize24 u-paddingBottom2 u-paddingTop5 u-fontSize32"><div class="u-letterSpacingTight u-lineHeightTighter u-breakWord u-textOverflowEllipsis u-lineClamp3 u-fontSize24">Statistical Analysis Using Python: Insights from Cancer Treatment Data</div></h3><div class="u-contentSansThin u-lineHeightBaseSans u-fontSize24 u-xs-fontSize18 u-textColorNormal u-baseColor--textNormal"><div class="u-fontSize18 u-letterSpacingTight u-lineHeightTight u-marginTop7 u-textColorNormal u-baseColor--textNormal">Step-by-step exploration of statistical methods, data visualization, and regression analysis</div></div></a><div class="u-clearfix u-marginTop20"><div class="u-flexCenter"><div class="postMetaInline-avatar u-flex0"><a class="link u-baseColor--link avatar" href="https://towardsdatascience.com/@panData" data-action="show-user-card" data-action-value="1c040843e458" data-action-type="hover" data-user-id="1c040843e458" data-collection-slug="towards-data-science" dir="auto"><img src="https://cdn-images-1.medium.com/fit/c/72/72/1*Dn6n6ct8Y_AL4zvtFcUetQ.jpeg" class="avatar-image u-size36x36 u-xs-size32x32" alt="Go to the profile of Leo Anello"></a></div><div class="postMetaInline postMetaInline-authorLockup ui-captionStrong u-flex1 u-noWrapWithEllipsis"><a class="ds-link ds-link--styleSubtle link link--darken link--accent u-accentColor--textNormal u-accentColor--textDarken" href="https://towardsdatascience.com/@panData" data-action="show-user-card" data-action-value="1c040843e458" data-action-type="hover" data-user-id="1c040843e458" data-collection-slug="towards-data-science" dir="auto">Leo Anello</a><div class="ui-caption u-fontSize12 u-baseColor--textNormal u-textColorNormal js-postMetaInlineSupplemental"><time datetime="2024-11-25T19:20:20.429Z">Nov 25</time><span class="middotDivider u-fontSize12"></span><span class="readingTime" title="31 min read"></span><span class="u-paddingLeft4"><span class="svgIcon svgIcon--star svgIcon--15px"><svg class="svgIcon-use" width="15" height="15" ><path d="M7.438 2.324c.034-.099.09-.099.123 0l1.2 3.53a.29.29 0 00.26.19h3.884c.11 0 .127.049.038.111L9.8 8.327a.271.271 0 00-.099.291l1.2 3.53c.034.1-.011.131-.098.069l-3.142-2.18a.303.303 0 00-.32 0l-3.145 2.182c-.087.06-.132.03-.099-.068l1.2-3.53a.271.271 0 00-.098-.292L2.056 6.146c-.087-.06-.071-.112.038-.112h3.884a.29.29 0 00.26-.19l1.2-3.52z"/></svg></span></span></div></div></div></div></div></div></div></section></div></div><style class="js-collectionStyle"> .u-accentColor--borderLight {border-color: #668AAA !important;} .u-accentColor--borderNormal {border-color: #668AAA !important;} .u-accentColor--borderDark {border-color: #5A7690 !important;} .u-accentColor--iconLight .svgIcon,.u-accentColor--iconLight.svgIcon {fill: #668AAA !important;} .u-accentColor--iconNormal .svgIcon,.u-accentColor--iconNormal.svgIcon {fill: #668AAA !important;} .u-accentColor--iconDark .svgIcon,.u-accentColor--iconDark.svgIcon {fill: #5A7690 !important;} .u-accentColor--textNormal {color: #5A7690 !important;} .u-accentColor--hoverTextNormal:hover {color: #5A7690 !important;} .u-accentColor--textNormal.u-accentColor--textDarken:hover {color: #546C83 !important;} .u-accentColor--textDark {color: #546C83 !important;} .u-accentColor--backgroundLight {background-color: #668AAA !important;} .u-accentColor--backgroundNormal {background-color: #668AAA !important;} .u-accentColor--backgroundDark {background-color: #5A7690 !important;} .u-accentColor--buttonDark {border-color: #5A7690 !important; color: #546C83 !important;} .u-accentColor--buttonDark:hover {border-color: #546C83 !important;} .u-accentColor--buttonDark .icon:before,.u-accentColor--buttonDark .svgIcon{color: #5A7690 !important; fill: #5A7690 !important;} .u-accentColor--buttonNormal:not(.clapButton--largePill) {border-color: #668AAA !important; color: #5A7690 !important;} .u-accentColor--buttonNormal:hover {border-color: #5A7690 !important;} .u-accentColor--buttonNormal .icon:before,.u-accentColor--buttonNormal .svgIcon{color: #668AAA !important; fill: #668AAA !important;} .u-accentColor--buttonNormal.button--filled .icon:before,.u-accentColor--buttonNormal.button--filled .svgIcon{color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-accentColor--buttonDark.button--filled,.u-accentColor--buttonDark.button--withChrome.is-active,.u-accentColor--fillWhenActive.is-active {background-color: #5A7690 !important; border-color: #5A7690 !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-accentColor--buttonNormal.button--filled:not(.clapButton--largePill),.u-accentColor--buttonNormal.button--withChrome.is-active:not(.clapButton--largePill) {background-color: #668AAA !important; border-color: #668AAA !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .postArticle.is-withAccentColors .markup--user,.postArticle.is-withAccentColors .markup--query {color: #5A7690 !important;}.u-tintBgColor {background-color: rgba(53, 88, 118, 1) !important;}.u-tintBgColor .u-fadeLeft:before {background-image: linear-gradient(to right, rgba(53, 88, 118, 1) 0%, rgba(53, 88, 118, 0) 100%) !important;}.u-tintBgColor .u-fadeRight:after {background-image: linear-gradient(to right, rgba(53, 88, 118, 0) 0%, rgba(53, 88, 118, 1) 100%) !important;} .u-tintSpectrum .u-baseColor--borderLight {border-color: #9FB3C6 !important;} .u-tintSpectrum .u-baseColor--borderNormal {border-color: #C5D2E1 !important;} .u-tintSpectrum .u-baseColor--borderDark {border-color: #E9F1FA !important;} .u-tintSpectrum .u-baseColor--iconLight .svgIcon,.u-tintSpectrum .u-baseColor--iconLight.svgIcon {fill: #9FB3C6 !important;} .u-tintSpectrum .u-baseColor--iconNormal .svgIcon,.u-tintSpectrum .u-baseColor--iconNormal.svgIcon {fill: #C5D2E1 !important;} .u-tintSpectrum .u-baseColor--iconDark .svgIcon,.u-tintSpectrum .u-baseColor--iconDark.svgIcon {fill: #E9F1FA !important;} .u-tintSpectrum .u-baseColor--textNormal {color: #C5D2E1 !important;} .u-tintSpectrum .u-baseColor--textNormal.u-baseColor--textDarken:hover {color: #FBFFFF !important;} .u-tintSpectrum .u-baseColor--textDark {color: #FBFFFF !important;} .u-tintSpectrum .u-baseColor--textDarker {color: #FBFFFF !important;} .u-tintSpectrum .u-baseColor--backgroundLight {background-color: #9FB3C6 !important;} .u-tintSpectrum .u-baseColor--backgroundNormal {background-color: #C5D2E1 !important;} .u-tintSpectrum .u-baseColor--backgroundDark {background-color: #E9F1FA !important;} .u-tintSpectrum .u-baseColor--buttonLight {border-color: #9FB3C6 !important; color: #9FB3C6 !important;} .u-tintSpectrum .u-baseColor--buttonLight:hover {border-color: #9FB3C6 !important;} .u-tintSpectrum .u-baseColor--buttonLight .icon:before,.u-tintSpectrum .u-baseColor--buttonLight .svgIcon {color: #9FB3C6 !important; fill: #9FB3C6 !important;} .u-tintSpectrum .u-baseColor--buttonDark {border-color: #E9F1FA !important; color: #FBFFFF !important;} .u-tintSpectrum .u-baseColor--buttonDark:hover {border-color: #FBFFFF !important;} .u-tintSpectrum .u-baseColor--buttonDark .icon:before,.u-tintSpectrum .u-baseColor--buttonDark .svgIcon {color: #E9F1FA !important; fill: #E9F1FA !important;} .u-tintSpectrum .u-baseColor--buttonNormal {border-color: #C5D2E1 !important; color: #C5D2E1 !important;} .u-tintSpectrum .u-baseColor--buttonNormal:hover {border-color: #E9F1FA !important;} .u-tintSpectrum .u-baseColor--buttonNormal .icon:before,.u-tintSpectrum .u-baseColor--buttonNormal .svgIcon {color: #C5D2E1 !important; fill: #C5D2E1 !important;} .u-tintSpectrum .u-baseColor--buttonDark.button--filled,.u-tintSpectrum .u-baseColor--buttonDark.button--withChrome.is-active {background-color: #E9F1FA !important; border-color: #E9F1FA !important; color: rgba(53, 88, 118, 1) !important; fill: rgba(53, 88, 118, 1) !important;} .u-tintSpectrum .u-baseColor--buttonNormal.button--filled,.u-tintSpectrum .u-baseColor--buttonNormal.button--withChrome.is-active {background-color: #C5D2E1 !important; border-color: #C5D2E1 !important; color: rgba(53, 88, 118, 1) !important; fill: rgba(53, 88, 118, 1) !important;} .u-tintSpectrum .u-baseColor--link {color: #C5D2E1 !important;} .u-tintSpectrum .u-baseColor--link.link--darkenOnHover:hover {color: #FBFFFF !important;} .u-tintSpectrum .u-baseColor--link.link--darken:hover,.u-tintSpectrum .u-baseColor--link.link--darken:focus,.u-tintSpectrum .u-baseColor--link.link--darken:active {color: #FBFFFF !important;} .u-tintSpectrum .u-baseColor--link.link--dark {color: #FBFFFF !important;} .u-tintSpectrum .u-baseColor--link.link--dark.link--darken:hover,.u-tintSpectrum .u-baseColor--link.link--dark.link--darken:focus,.u-tintSpectrum .u-baseColor--link.link--dark.link--darken:active {color: #FBFFFF !important;} .u-tintSpectrum .u-baseColor--link.link--darker {color: #FBFFFF !important;} .u-tintSpectrum .u-baseColor--placeholderNormal ::-webkit-input-placeholder {color: #9FB3C6;} .u-tintSpectrum .u-baseColor--placeholderNormal ::-moz-placeholder {color: #9FB3C6;} .u-tintSpectrum .u-baseColor--placeholderNormal :-ms-input-placeholder {color: #9FB3C6;} .u-tintSpectrum .ui-h1,.u-tintSpectrum .ui-h2,.u-tintSpectrum .ui-h3,.u-tintSpectrum .ui-h4,.u-tintSpectrum .ui-brand1,.u-tintSpectrum .ui-brand2,.u-tintSpectrum .ui-captionStrong {color: #FBFFFF !important; fill: #FBFFFF !important;} .u-tintSpectrum .ui-body,.u-tintSpectrum .ui-caps {color: #FBFFFF !important; fill: #FBFFFF !important;} .u-tintSpectrum .ui-summary,.u-tintSpectrum .ui-caption {color: #9FB3C6 !important; fill: #9FB3C6 !important;} .u-tintSpectrum .u-accentColor--borderLight {border-color: #9FB3C6 !important;} .u-tintSpectrum .u-accentColor--borderNormal {border-color: #C5D2E1 !important;} .u-tintSpectrum .u-accentColor--borderDark {border-color: #E9F1FA !important;} .u-tintSpectrum .u-accentColor--iconLight .svgIcon,.u-tintSpectrum .u-accentColor--iconLight.svgIcon {fill: #9FB3C6 !important;} .u-tintSpectrum .u-accentColor--iconNormal .svgIcon,.u-tintSpectrum .u-accentColor--iconNormal.svgIcon {fill: #C5D2E1 !important;} .u-tintSpectrum .u-accentColor--iconDark .svgIcon,.u-tintSpectrum .u-accentColor--iconDark.svgIcon {fill: #E9F1FA !important;} .u-tintSpectrum .u-accentColor--textNormal {color: #C5D2E1 !important;} .u-tintSpectrum .u-accentColor--hoverTextNormal:hover {color: #C5D2E1 !important;} .u-tintSpectrum .u-accentColor--textNormal.u-accentColor--textDarken:hover {color: #FBFFFF !important;} .u-tintSpectrum .u-accentColor--textDark {color: #FBFFFF !important;} .u-tintSpectrum .u-accentColor--backgroundLight {background-color: #9FB3C6 !important;} .u-tintSpectrum .u-accentColor--backgroundNormal {background-color: #C5D2E1 !important;} .u-tintSpectrum .u-accentColor--backgroundDark {background-color: #E9F1FA !important;} .u-tintSpectrum .u-accentColor--buttonDark {border-color: #E9F1FA !important; color: #FBFFFF !important;} .u-tintSpectrum .u-accentColor--buttonDark:hover {border-color: #FBFFFF !important;} .u-tintSpectrum .u-accentColor--buttonDark .icon:before,.u-tintSpectrum .u-accentColor--buttonDark .svgIcon{color: #E9F1FA !important; fill: #E9F1FA !important;} .u-tintSpectrum .u-accentColor--buttonNormal:not(.clapButton--largePill) {border-color: #C5D2E1 !important; color: #C5D2E1 !important;} .u-tintSpectrum .u-accentColor--buttonNormal:hover {border-color: #E9F1FA !important;} .u-tintSpectrum .u-accentColor--buttonNormal .icon:before,.u-tintSpectrum .u-accentColor--buttonNormal .svgIcon{color: #C5D2E1 !important; fill: #C5D2E1 !important;} .u-tintSpectrum .u-accentColor--buttonNormal.button--filled .icon:before,.u-tintSpectrum .u-accentColor--buttonNormal.button--filled .svgIcon{color: rgba(53, 88, 118, 1) !important; fill: rgba(53, 88, 118, 1) !important;} .u-tintSpectrum .u-accentColor--buttonDark.button--filled,.u-tintSpectrum .u-accentColor--buttonDark.button--withChrome.is-active,.u-tintSpectrum .u-accentColor--fillWhenActive.is-active {background-color: #E9F1FA !important; border-color: #E9F1FA !important; color: rgba(53, 88, 118, 1) !important; fill: rgba(53, 88, 118, 1) !important;} .u-tintSpectrum .u-accentColor--buttonNormal.button--filled:not(.clapButton--largePill),.u-tintSpectrum .u-accentColor--buttonNormal.button--withChrome.is-active:not(.clapButton--largePill) {background-color: #C5D2E1 !important; border-color: #C5D2E1 !important; color: rgba(53, 88, 118, 1) !important; fill: rgba(53, 88, 118, 1) !important;} .u-tintSpectrum .postArticle.is-withAccentColors .markup--user,.u-tintSpectrum .postArticle.is-withAccentColors .markup--query {color: #C5D2E1 !important;} .u-accentColor--highlightFaint {background-color: rgba(233, 242, 253, 1) !important;} .u-accentColor--highlightStrong.is-active .svgIcon {fill: rgba(200, 228, 255, 1) !important;} .postArticle.is-withAccentColors .markup--quote.is-other {background-color: rgba(233, 242, 253, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-other {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(233, 242, 253, 1), rgba(233, 242, 253, 1));} .postArticle.is-withAccentColors .markup--quote.is-me {background-color: rgba(215, 235, 254, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-me {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(215, 235, 254, 1), rgba(215, 235, 254, 1));} .postArticle.is-withAccentColors .markup--quote.is-targeted {background-color: rgba(200, 228, 255, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-targeted {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(200, 228, 255, 1), rgba(200, 228, 255, 1));} .postArticle.is-withAccentColors .markup--quote.is-selected {background-color: rgba(200, 228, 255, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--quote.is-selected {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(200, 228, 255, 1), rgba(200, 228, 255, 1));} .postArticle.is-withAccentColors .markup--highlight {background-color: rgba(200, 228, 255, 1) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .markup--highlight {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(200, 228, 255, 1), rgba(200, 228, 255, 1));}</style><style class="js-collectionStyleConstant">.u-imageBgColor {background-color: rgba(0, 0, 0, 0.24705882352941178);} .u-imageSpectrum .u-baseColor--borderLight {border-color: rgba(255, 255, 255, 0.6980392156862745) !important;} .u-imageSpectrum .u-baseColor--borderNormal {border-color: rgba(255, 255, 255, 0.8980392156862745) !important;} .u-imageSpectrum .u-baseColor--borderDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--iconLight .svgIcon,.u-imageSpectrum .u-baseColor--iconLight.svgIcon {fill: rgba(255, 255, 255, 0.8) !important;} .u-imageSpectrum .u-baseColor--iconNormal .svgIcon,.u-imageSpectrum .u-baseColor--iconNormal.svgIcon {fill: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--iconDark .svgIcon,.u-imageSpectrum .u-baseColor--iconDark.svgIcon {fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--textNormal {color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--textNormal.u-baseColor--textDarken:hover {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--textDark {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--textDarker {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--backgroundLight {background-color: rgba(255, 255, 255, 0.8980392156862745) !important;} .u-imageSpectrum .u-baseColor--backgroundNormal {background-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--backgroundDark {background-color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--buttonLight {border-color: rgba(255, 255, 255, 0.6980392156862745) !important; color: rgba(255, 255, 255, 0.8) !important;} .u-imageSpectrum .u-baseColor--buttonLight:hover {border-color: rgba(255, 255, 255, 0.6980392156862745) !important;} .u-imageSpectrum .u-baseColor--buttonLight .icon:before,.u-imageSpectrum .u-baseColor--buttonLight .svgIcon {color: rgba(255, 255, 255, 0.8) !important; fill: rgba(255, 255, 255, 0.8) !important;} .u-imageSpectrum .u-baseColor--buttonDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--buttonDark:hover {border-color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--buttonDark .icon:before,.u-imageSpectrum .u-baseColor--buttonDark .svgIcon {color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--buttonNormal {border-color: rgba(255, 255, 255, 0.8980392156862745) !important; color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--buttonNormal:hover {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--buttonNormal .icon:before,.u-imageSpectrum .u-baseColor--buttonNormal .svgIcon {color: rgba(255, 255, 255, 0.9490196078431372) !important; fill: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--buttonDark.button--filled,.u-imageSpectrum .u-baseColor--buttonDark.button--withChrome.is-active {background-color: rgba(255, 255, 255, 1) !important; border-color: rgba(255, 255, 255, 1) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;} .u-imageSpectrum .u-baseColor--buttonNormal.button--filled,.u-imageSpectrum .u-baseColor--buttonNormal.button--withChrome.is-active {background-color: rgba(255, 255, 255, 0.9490196078431372) !important; border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;} .u-imageSpectrum .u-baseColor--link {color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-baseColor--link.link--darkenOnHover:hover {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--link.link--darken:hover,.u-imageSpectrum .u-baseColor--link.link--darken:focus,.u-imageSpectrum .u-baseColor--link.link--darken:active {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--link.link--dark {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--link.link--dark.link--darken:hover,.u-imageSpectrum .u-baseColor--link.link--dark.link--darken:focus,.u-imageSpectrum .u-baseColor--link.link--dark.link--darken:active {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--link.link--darker {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-baseColor--placeholderNormal ::-webkit-input-placeholder {color: rgba(255, 255, 255, 0.8);} .u-imageSpectrum .u-baseColor--placeholderNormal ::-moz-placeholder {color: rgba(255, 255, 255, 0.8);} .u-imageSpectrum .u-baseColor--placeholderNormal :-ms-input-placeholder {color: rgba(255, 255, 255, 0.8);} .u-imageSpectrum .ui-h1,.u-imageSpectrum .ui-h2,.u-imageSpectrum .ui-h3,.u-imageSpectrum .ui-h4,.u-imageSpectrum .ui-brand1,.u-imageSpectrum .ui-brand2,.u-imageSpectrum .ui-captionStrong {color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .ui-body,.u-imageSpectrum .ui-caps {color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .ui-summary,.u-imageSpectrum .ui-caption {color: rgba(255, 255, 255, 0.8) !important; fill: rgba(255, 255, 255, 0.8) !important;} .u-imageSpectrum .u-accentColor--borderLight {border-color: rgba(255, 255, 255, 0.6980392156862745) !important;} .u-imageSpectrum .u-accentColor--borderNormal {border-color: rgba(255, 255, 255, 0.8980392156862745) !important;} .u-imageSpectrum .u-accentColor--borderDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--iconLight .svgIcon,.u-imageSpectrum .u-accentColor--iconLight.svgIcon {fill: rgba(255, 255, 255, 0.8) !important;} .u-imageSpectrum .u-accentColor--iconNormal .svgIcon,.u-imageSpectrum .u-accentColor--iconNormal.svgIcon {fill: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--iconDark .svgIcon,.u-imageSpectrum .u-accentColor--iconDark.svgIcon {fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--textNormal {color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--hoverTextNormal:hover {color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--textNormal.u-accentColor--textDarken:hover {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--textDark {color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--backgroundLight {background-color: rgba(255, 255, 255, 0.8980392156862745) !important;} .u-imageSpectrum .u-accentColor--backgroundNormal {background-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--backgroundDark {background-color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--buttonDark {border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--buttonDark:hover {border-color: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--buttonDark .icon:before,.u-imageSpectrum .u-accentColor--buttonDark .svgIcon{color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-imageSpectrum .u-accentColor--buttonNormal:not(.clapButton--largePill) {border-color: rgba(255, 255, 255, 0.8980392156862745) !important; color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--buttonNormal:hover {border-color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--buttonNormal .icon:before,.u-imageSpectrum .u-accentColor--buttonNormal .svgIcon{color: rgba(255, 255, 255, 0.9490196078431372) !important; fill: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--buttonNormal.button--filled .icon:before,.u-imageSpectrum .u-accentColor--buttonNormal.button--filled .svgIcon{color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;} .u-imageSpectrum .u-accentColor--buttonDark.button--filled,.u-imageSpectrum .u-accentColor--buttonDark.button--withChrome.is-active,.u-imageSpectrum .u-accentColor--fillWhenActive.is-active {background-color: rgba(255, 255, 255, 1) !important; border-color: rgba(255, 255, 255, 1) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;} .u-imageSpectrum .u-accentColor--buttonNormal.button--filled:not(.clapButton--largePill),.u-imageSpectrum .u-accentColor--buttonNormal.button--withChrome.is-active:not(.clapButton--largePill) {background-color: rgba(255, 255, 255, 0.9490196078431372) !important; border-color: rgba(255, 255, 255, 0.9490196078431372) !important; color: rgba(0, 0, 0, 0.24705882352941178) !important; fill: rgba(0, 0, 0, 0.24705882352941178) !important;} .u-imageSpectrum .postArticle.is-withAccentColors .markup--user,.u-imageSpectrum .postArticle.is-withAccentColors .markup--query {color: rgba(255, 255, 255, 0.9490196078431372) !important;} .u-imageSpectrum .u-accentColor--highlightFaint {background-color: rgba(255, 255, 255, 0.2) !important;} .u-imageSpectrum .u-accentColor--highlightStrong.is-active .svgIcon {fill: rgba(255, 255, 255, 0.6) !important;} .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-other {background-color: rgba(255, 255, 255, 0.2) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-other {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.2));} .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-me {background-color: rgba(255, 255, 255, 0.4) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-me {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.4));} .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-targeted {background-color: rgba(255, 255, 255, 0.6) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-targeted {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.6));} .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-selected {background-color: rgba(255, 255, 255, 0.6) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--quote.is-selected {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.6));} .postArticle.is-withAccentColors .u-imageSpectrum .markup--highlight {background-color: rgba(255, 255, 255, 0.6) !important;} body.is-withMagicUnderlines .postArticle.is-withAccentColors .u-imageSpectrum .markup--highlight {background-color: transparent !important; background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.6));}.u-resetSpectrum .u-tintBgColor {background-color: rgba(255, 255, 255, 1) !important;}.u-resetSpectrum .u-tintBgColor .u-fadeLeft:before {background-image: linear-gradient(to right, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%) !important;}.u-resetSpectrum .u-tintBgColor .u-fadeRight:after {background-image: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%) !important;} .u-resetSpectrum .u-baseColor--borderLight {border-color: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--borderNormal {border-color: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--borderDark {border-color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--iconLight .svgIcon,.u-resetSpectrum .u-baseColor--iconLight.svgIcon {fill: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--iconNormal .svgIcon,.u-resetSpectrum .u-baseColor--iconNormal.svgIcon {fill: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--iconDark .svgIcon,.u-resetSpectrum .u-baseColor--iconDark.svgIcon {fill: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--textNormal {color: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--textNormal.u-baseColor--textDarken:hover {color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--textDark {color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--textDarker {color: rgba(0, 0, 0, 0.8) !important;} .u-resetSpectrum .u-baseColor--backgroundLight {background-color: rgba(0, 0, 0, 0.09803921568627451) !important;} .u-resetSpectrum .u-baseColor--backgroundNormal {background-color: rgba(0, 0, 0, 0.2) !important;} .u-resetSpectrum .u-baseColor--backgroundDark {background-color: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonLight {border-color: rgba(0, 0, 0, 0.2980392156862745) !important; color: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonLight:hover {border-color: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonLight .icon:before,.u-resetSpectrum .u-baseColor--buttonLight .svgIcon {color: rgba(0, 0, 0, 0.2980392156862745) !important; fill: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonDark {border-color: rgba(0, 0, 0, 0.6) !important; color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--buttonDark:hover {border-color: rgba(0, 0, 0, 0.8) !important;} .u-resetSpectrum .u-baseColor--buttonDark .icon:before,.u-resetSpectrum .u-baseColor--buttonDark .svgIcon {color: rgba(0, 0, 0, 0.6) !important; fill: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--buttonNormal {border-color: rgba(0, 0, 0, 0.4980392156862745) !important; color: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonNormal:hover {border-color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--buttonNormal .icon:before,.u-resetSpectrum .u-baseColor--buttonNormal .svgIcon {color: rgba(0, 0, 0, 0.4980392156862745) !important; fill: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--buttonDark.button--filled,.u-resetSpectrum .u-baseColor--buttonDark.button--withChrome.is-active {background-color: rgba(0, 0, 0, 0.2980392156862745) !important; border-color: rgba(0, 0, 0, 0.2980392156862745) !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-resetSpectrum .u-baseColor--buttonNormal.button--filled,.u-resetSpectrum .u-baseColor--buttonNormal.button--withChrome.is-active {background-color: rgba(0, 0, 0, 0.2) !important; border-color: rgba(0, 0, 0, 0.2) !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-resetSpectrum .u-baseColor--link {color: rgba(0, 0, 0, 0.4980392156862745) !important;} .u-resetSpectrum .u-baseColor--link.link--darkenOnHover:hover {color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--link.link--darken:hover,.u-resetSpectrum .u-baseColor--link.link--darken:focus,.u-resetSpectrum .u-baseColor--link.link--darken:active {color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--link.link--dark {color: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .u-baseColor--link.link--dark.link--darken:hover,.u-resetSpectrum .u-baseColor--link.link--dark.link--darken:focus,.u-resetSpectrum .u-baseColor--link.link--dark.link--darken:active {color: rgba(0, 0, 0, 0.8) !important;} .u-resetSpectrum .u-baseColor--link.link--darker {color: rgba(0, 0, 0, 0.8) !important;} .u-resetSpectrum .u-baseColor--placeholderNormal ::-webkit-input-placeholder {color: rgba(0, 0, 0, 0.2980392156862745);} .u-resetSpectrum .u-baseColor--placeholderNormal ::-moz-placeholder {color: rgba(0, 0, 0, 0.2980392156862745);} .u-resetSpectrum .u-baseColor--placeholderNormal :-ms-input-placeholder {color: rgba(0, 0, 0, 0.2980392156862745);} .u-resetSpectrum .ui-h1,.u-resetSpectrum .ui-h2,.u-resetSpectrum .ui-h3,.u-resetSpectrum .ui-h4,.u-resetSpectrum .ui-brand1,.u-resetSpectrum .ui-brand2,.u-resetSpectrum .ui-captionStrong {color: rgba(0, 0, 0, 0.8) !important; fill: rgba(0, 0, 0, 0.8) !important;} .u-resetSpectrum .ui-body,.u-resetSpectrum .ui-caps {color: rgba(0, 0, 0, 0.6) !important; fill: rgba(0, 0, 0, 0.6) !important;} .u-resetSpectrum .ui-summary,.u-resetSpectrum .ui-caption {color: rgba(0, 0, 0, 0.2980392156862745) !important; fill: rgba(0, 0, 0, 0.2980392156862745) !important;} .u-resetSpectrum .u-accentColor--borderLight {border-color: rgba(26, 137, 23, 1) !important;} .u-resetSpectrum .u-accentColor--borderNormal {border-color: rgba(26, 137, 23, 1) !important;} .u-resetSpectrum .u-accentColor--borderDark {border-color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--iconLight .svgIcon,.u-resetSpectrum .u-accentColor--iconLight.svgIcon {fill: rgba(26, 137, 23, 1) !important;} .u-resetSpectrum .u-accentColor--iconNormal .svgIcon,.u-resetSpectrum .u-accentColor--iconNormal.svgIcon {fill: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--iconDark .svgIcon,.u-resetSpectrum .u-accentColor--iconDark.svgIcon {fill: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--textNormal {color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--hoverTextNormal:hover {color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--textNormal.u-accentColor--textDarken:hover {color: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--textDark {color: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--backgroundLight {background-color: rgba(26, 137, 23, 1) !important;} .u-resetSpectrum .u-accentColor--backgroundNormal {background-color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--backgroundDark {background-color: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--buttonDark {border-color: rgba(17, 128, 14, 1) !important; color: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--buttonDark:hover {border-color: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--buttonDark .icon:before,.u-resetSpectrum .u-accentColor--buttonDark .svgIcon{color: rgba(15, 115, 12, 1) !important; fill: rgba(15, 115, 12, 1) !important;} .u-resetSpectrum .u-accentColor--buttonNormal:not(.clapButton--largePill) {border-color: rgba(26, 137, 23, 1) !important; color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--buttonNormal:hover {border-color: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--buttonNormal .icon:before,.u-resetSpectrum .u-accentColor--buttonNormal .svgIcon{color: rgba(17, 128, 14, 1) !important; fill: rgba(17, 128, 14, 1) !important;} .u-resetSpectrum .u-accentColor--buttonNormal.button--filled .icon:before,.u-resetSpectrum .u-accentColor--buttonNormal.button--filled .svgIcon{color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-resetSpectrum .u-accentColor--buttonDark.button--filled,.u-resetSpectrum .u-accentColor--buttonDark.button--withChrome.is-active,.u-resetSpectrum .u-accentColor--fillWhenActive.is-active {background-color: rgba(15, 115, 12, 1) !important; border-color: rgba(15, 115, 12, 1) !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-resetSpectrum .u-accentColor--buttonNormal.button--filled:not(.clapButton--largePill),.u-resetSpectrum .u-accentColor--buttonNormal.button--withChrome.is-active:not(.clapButton--largePill) {background-color: rgba(17, 128, 14, 1) !important; border-color: rgba(17, 128, 14, 1) !important; color: rgba(255, 255, 255, 1) !important; fill: rgba(255, 255, 255, 1) !important;} .u-resetSpectrum .postArticle.is-withAccentColors .markup--user,.u-resetSpectrum .postArticle.is-withAccentColors .markup--query {color: rgba(17, 128, 14, 1) !important;}</style><div class="js-collectionFooter u-tintBgColor u-hide"><div class="container u-maxWidth1040"><div class="u-marginTop10 u-paddingTop10 u-paddingBottom30 u-tintSpectrum"><div class="linkSet u-clearfix"><div class="u-floatRight u-textColorNormal u-baseColor--textNormal u-xs-floatLeft"><a class="button button--chromeless u-baseColor--buttonNormal u-marginLeft15 u-lineHeight35 u-xs-block u-xs-marginLeft0" href="https://towardsdatascience.com/about" title="About Towards Data Science" aria-label="About Towards Data Science" data-collection-slug="towards-data-science">About Towards Data Science</a><span class="middotDivider u-xs-hide"></span><a class="button button--chromeless u-baseColor--buttonNormal u-lineHeight35 u-xs-block" href="https://towardsdatascience.com/latest" title="Latest Stories for Towards Data Science" aria-label="Latest Stories for Towards Data Science" data-collection-slug="towards-data-science">Latest Stories</a><span class="middotDivider u-xs-hide"></span><a class="button button--chromeless u-baseColor--buttonNormal u-lineHeight35 u-xs-block" href="https://towardsdatascience.com/archive" title="Archive for Towards Data Science" aria-label="Archive for Towards Data Science" data-collection-slug="towards-data-science">Archive</a><span class="middotDivider u-xs-hide"></span><a class="button button--chromeless u-baseColor--buttonNormal u-lineHeight35 u-xs-block" href="https://medium.com/about">About Medium</a><span class="middotDivider u-xs-hide"></span><a class="button button--chromeless u-baseColor--buttonNormal u-lineHeight35 u-xs-block" href="https://policy.medium.com/medium-terms-of-service-9db0094a1e0f">Terms</a><span class="middotDivider u-xs-hide"></span><a class="button button--chromeless u-baseColor--buttonNormal u-lineHeight35 u-xs-block" href="https://policy.medium.com/medium-privacy-policy-f03bf92035c9">Privacy</a><span class="middotDivider u-xs-hide"></span><a class="button button--chromeless u-baseColor--buttonNormal u-lineHeight35 u-xs-block" href="https://medium.com/business">Teams</a></div></div></div></div></div></div></div></div><div class="loadingBar"></div><script>// <![CDATA[ window["obvInit"] = function (opt_embedded) {window["obvInit"]["embedded"] = opt_embedded; window["obvInit"]["ready"] = true;} // ]]></script><script>// <![CDATA[ var GLOBALS = {"audioUrl":"https://d1fcbxp97j4nb2.cloudfront.net","baseUrl":"https://towardsdatascience.com","buildLabel":"20241126-1740-root","currentUser":{"userId":"lo_5f54f129e73b","isVerified":false,"subscriberEmail":"","hasPastMemberships":false,"isEnrolledInHightower":false,"isEligibleForHightower":true,"hightowerLastLockedAt":0,"isWriterProgramEnrolled":true,"isWriterProgramInvited":false,"isWriterProgramOptedOut":false,"writerProgramVersion":0,"writerProgramEnrolledAt":0,"friendLinkOnboarding":0,"hasAdditionalUnlocks":false,"hasApiAccess":false,"writerProgramDistributionSettingOptedIn":false,"isSuspended":false,"collectionOnboardingSeen":0,"atsQualifiedAt":0},"currentUserHasUnverifiedEmail":false,"isAuthenticated":false,"isCurrentUserVerified":false,"miroUrl":"https://cdn-images-1.medium.com","moduleUrls":{"base":"https://cdn-static-1.medium.com/_/fp/gen-js/main-base.bundle.95z8xpkUEidhPbIWsh2BVw.12.js","common-async":"https://cdn-static-1.medium.com/_/fp/gen-js/main-common-async.bundle.zqOu8dxaQRtqDyChHdOWlQ.12.js","hightower":"https://cdn-static-1.medium.com/_/fp/gen-js/main-hightower.bundle.y0UkxCxPBUbLlduk5XbwLQ.12.js","home-screens":"https://cdn-static-1.medium.com/_/fp/gen-js/main-home-screens.bundle.eZhPgaD8AglnbC5Rzxqvhg.12.js","misc-screens":"https://cdn-static-1.medium.com/_/fp/gen-js/main-misc-screens.bundle.XeRjm4FlHTBOsUvoOQ6Ppg.12.js","notes":"https://cdn-static-1.medium.com/_/fp/gen-js/main-notes.bundle.r9MSvtAmj0CMkyIC0CCCbA.12.js","payments":"https://cdn-static-1.medium.com/_/fp/gen-js/main-payments.bundle.AiXyuYj3AvxRA1-7HEyP9Q.12.js","posters":"https://cdn-static-1.medium.com/_/fp/gen-js/main-posters.bundle.fsLyLvZO4VZXL_zb4RXgeg.12.js","power-readers":"https://cdn-static-1.medium.com/_/fp/gen-js/main-power-readers.bundle.6Dyc-nVN2MDV_AM9XDAZug.12.js","pubs":"https://cdn-static-1.medium.com/_/fp/gen-js/main-pubs.bundle.rUyrVjlTpUj61voxnZosQw.12.js","stats":"https://cdn-static-1.medium.com/_/fp/gen-js/main-stats.bundle.2I2tXSo7-rbez_WYXfga0Q.12.js"},"previewConfig":{"weightThreshold":1,"weightImageParagraph":0.51,"weightIframeParagraph":0.8,"weightTextParagraph":0.08,"weightEmptyParagraph":0,"weightP":0.003,"weightH":0.005,"weightBq":0.003,"minPTextLength":60,"truncateBoundaryChars":20,"detectTitle":true,"detectTitleLevThreshold":0.15},"productName":"Medium","supportsEdit":false,"termsUrl":"//policy.medium.com/medium-terms-of-service-9db0094a1e0f","textshotHost":"textshot.textshot-production.svc.cluster.local","transactionId":"1732685371206:30d62b9403c1","useragent":{"browser":"ie","family":"ie","os":"windows","version":7,"supportsDesktopEdit":false,"supportsInteract":false,"supportsView":true,"isMobile":false,"isTablet":false,"isNative":false,"supportsFileAPI":false,"isTier1":false,"clientVersion":"","clientChannel":"","supportsRealScrollEvents":false,"supportsVhUnits":false,"ruinsViewportSections":false,"supportsHtml5Video":false,"supportsMagicUnderlines":false,"isWebView":false,"isFacebookWebView":false,"supportsProgressiveMedia":false,"supportsPromotedPosts":true,"isBot":false,"isNativeIphone":false,"supportsCssVariables":false,"supportsVideoSections":true,"emojiSupportLevel":1,"isSearchBot":false,"isSyndicationBot":false,"isNativeAndroid":false,"isNativeIos":false,"isSeoAuditBot":false,"isInternalApp":false,"supportsApplePay":false,"supportsScrollableMetabar":false},"variants":{"allow_access":true,"allow_signup":true,"allow_test_auth":"disallow","android_enable_editor_new_publishing_flow":true,"android_enable_friend_links_creation":true,"android_enable_friend_links_postpage_banners":true,"android_enable_image_sharer":true,"android_enable_lists_v2":true,"android_enable_syntax_highlight":true,"android_enable_topic_portals":true,"android_rating_prompt_stories_read_threshold":2,"android_two_hour_refresh":true,"available_annual_plan":"2c754bcc2995","available_annual_premium_plan":"4a442ace1476","available_monthly_plan":"60e220181034","available_monthly_premium_plan":"12a660186432","browsable_stream_config_bucket":"curated-topics","can_receive_tips_v0":true,"can_send_tips_v0":true,"coronavirus_topic_recirc":true,"disable_partner_program_enrollment":true,"enable_abandoned_cart_promotion_email":true,"enable_android_dynamic_aspirational_paywall":true,"enable_android_dynamic_programming_paywall":true,"enable_android_miro_v2":true,"enable_android_offline_reading":true,"enable_android_verified_author":true,"enable_app_flirty_thirty":true,"enable_apple_sign_in":true,"enable_apple_webhook":true,"enable_aurora_pub_follower_page":true,"enable_author_cards":true,"enable_author_cards_byline":true,"enable_auto_follow_on_subscribe":true,"enable_automod":true,"enable_bayesian_average_pub_search":true,"enable_bg_post_post":true,"enable_billing_frequency_on_step2":"group_1","enable_boost_nia_v01":true,"enable_braintree_apple_pay":true,"enable_braintree_client":true,"enable_braintree_google_pay":true,"enable_braintree_integration":true,"enable_braintree_paypal":true,"enable_braintree_trial_membership":true,"enable_braintree_webhook":true,"enable_branch_io":true,"enable_cache_less_following_feed":true,"enable_configure_pronouns":true,"enable_conversion_model_v2":"group_2","enable_conversion_ranker_v2":"control","enable_creator_welcome_email":true,"enable_deprecate_legacy_providers_v3":true,"enable_diversification_rex":true,"enable_entities_to_follow_v2":true,"enable_eventstats_event_processing":true,"enable_explicit_signals":true,"enable_explicit_signals_updated_post_previews":true,"enable_footer_app_buttons":true,"enable_google_one_tap":true,"enable_google_webhook":true,"enable_group_gifting":true,"enable_iceland_forced_android":true,"enable_import":true,"enable_intrinsic_automatic_actions":true,"enable_ios_autorefresh":true,"enable_ios_dynamic_paywall_aspiriational":true,"enable_ios_dynamic_paywall_programming":true,"enable_ios_easy_resubscribe":true,"enable_ios_offline_reading":true,"enable_legacy_feed_in_iceland":true,"enable_lite_archive_page":true,"enable_lite_continue_this_thread":true,"enable_lite_homepage":true,"enable_lite_response_markup":true,"enable_lite_server_upstream_deadlines":true,"enable_lo_homepage":"control","enable_maim_the_meter":true,"enable_marketing_emails":true,"enable_mastodon_avatar_upload":true,"enable_mastodon_for_members":true,"enable_mastodon_for_members_username_selection":true,"enable_medium2_kbfd":true,"enable_members_only_audio":true,"enable_ml_rank_rex_anno":true,"enable_moc_load_processor_all_recs_surfaces":true,"enable_moc_load_processor_c":true,"enable_moc_load_processor_first_story":true,"enable_new_manage_membership_flow":true,"enable_new_stripe_customers":true,"enable_newsletter_lo_flow_custom_domains":true,"enable_pill_based_home_feed":true,"enable_post_bottom_responses":true,"enable_post_bottom_responses_input":true,"enable_pp_country_expansion":true,"enable_pp_v4":true,"enable_pre_pp_v4":true,"enable_premium_tier":true,"enable_premium_tier_badge":true,"enable_publication_hierarchy_web":true,"enable_ranker_v10":"control","enable_recaptcha_enterprise":true,"enable_recirc_model":true,"enable_recommended_publishers_query":true,"enable_rex_aggregator_v2":true,"enable_rex_new_push_notification_endpoint":true,"enable_rex_reading_history":true,"enable_rito_upstream_deadlines":true,"enable_seamless_social_sharing":true,"enable_see_pronouns":true,"enable_sharer_create_post_share_key":true,"enable_sharer_validate_post_share_key":true,"enable_simplified_digest_v2_b":true,"enable_speechify_ios":true,"enable_speechify_widget":true,"enable_sprig":true,"enable_starspace":true,"enable_susi_redesign_android":true,"enable_susi_redesign_ios":true,"enable_switch_plan_premium_tier":true,"enable_tag_recs":true,"enable_tick_landing_page":true,"enable_tipping_v0_android":true,"enable_tipping_v0_ios":true,"enable_tribute_landing_page":true,"enable_update_explore_wtf":true,"enable_update_topic_portals_wtf":true,"enable_updated_pub_recs_ui":true,"enable_verifications_service":true,"glyph_font_set":"m2-unbound-source-serif-pro","goliath_externalsearch_enable_comment_deindexation":true,"ios_display_paywall_after_onboarding":true,"ios_enable_friend_links_creation":true,"ios_enable_friend_links_postpage_banners":true,"ios_enable_home_post_menu":true,"ios_enable_lock_responses":true,"ios_enable_verified_book_author":true,"ios_iceland_nux":true,"ios_in_app_free_trial":true,"ios_remove_twitter_onboarding_step":true,"ios_social_share_sheet":true,"limit_post_referrers":true,"limit_user_follows":true,"mobile_custom_app_icon":true,"num_post_bottom_responses_to_show":"1","onboarding_tags_from_top_views":true,"reader_fair_distribution_non_qp":true,"redefined_top_posts":true,"reengagement_notification_duration":3,"rex_generator_max_candidates":1000,"signin_services":"twitter,facebook,google,email,google-fastidv,google-one-tap,apple","signup_services":"twitter,facebook,google,email,google-fastidv,google-one-tap,apple","skip_fs_cache_user_vals":true},"xsrfToken":"","iosAppId":"828256236","supportEmail":"yourfriends@medium.com","fp":{"/icons/monogram-mask.svg":"https://cdn-static-1.medium.com/_/fp/icons/monogram-mask.KPLCSFEZviQN0jQ7veN2RQ.12.svg","/icons/favicon-medium-editor.ico":"https://cdn-static-1.medium.com/_/fp/icons/favicon-medium-editor.PiakrZWB7Yb80quUVQWM6g.12.ico"},"authBaseUrl":"https://medium.com","imageUploadSizeMb":25,"isAuthDomainRequest":false,"domainCollectionSlug":"towards-data-science","algoliaApiEndpoint":"https://MQ57UUUQZ2-dsn.algolia.net","algoliaAppId":"MQ57UUUQZ2","algoliaSearchOnlyApiKey":"394474ced050e3911ae2249ecc774921","iosAppStoreUrl":"https://itunes.apple.com/app/medium-everyones-stories/id828256236?pt=698524&mt=8","iosAppLinkBaseUrl":"medium:","algoliaIndexPrefix":"medium_","androidPlayStoreUrl":"https://play.google.com/store/apps/details?id=com.medium.reader","googleClientId":"216296035834-k1k6qe060s2tp2a2jam4ljdcms00sttg.apps.googleusercontent.com","androidPackage":"com.medium.reader","androidPlayStoreMarketScheme":"market://details?id=com.medium.reader","googleAuthUri":"https://accounts.google.com/o/oauth2/auth","androidScheme":"medium","layoutData":{"useDynamicScripts":false,"googleAnalyticsTrackingCode":"G-7JY7T788PK","jsShivUrl":"https://cdn-static-1.medium.com/_/fp/js/shiv.RI2ePTZ5gFmMgLzG5bEVAA.12.js","useDynamicCss":false,"faviconUrl":"https://miro.medium.com/v2/5d8de952517e8160e40ef9841c781cdc14a5db313057fa3c3de41c6f5b494b19","faviconImageId":"5d8de952517e8160e40ef9841c781cdc14a5db313057fa3c3de41c6f5b494b19","fontSets":[{"id":8,"url":"https://glyph.medium.com/css/e/sr/latin/e/ssr/latin/e/ssb/latin/m2-unbound-source-serif-pro.css"},{"id":11,"url":"https://glyph.medium.com/css/m2-unbound-source-serif-pro.css"},{"id":9,"url":"https://glyph.medium.com/css/mkt.css"}],"glyphUrl":"https://glyph.medium.com"},"authBaseUrlRev":"moc.muidem//:sptth","stripePublishableKey":"pk_live_7FReX44VnNIInZwrIIx6ghjl","archiveUploadSizeMb":100,"previewConfig2":{"weightThreshold":1,"weightImageParagraph":0.05,"raiseImage":true,"enforceHeaderHierarchy":true,"isImageInsetRight":true},"isAmp":false,"iosScheme":"medium","facebook":{"key":"542599432471018","namespace":"medium-com","scope":{"default":["public_profile","email"],"connect":["public_profile","email"],"login":["public_profile","email"],"share":["public_profile","email"]}},"memberContentTopicId":"13d7efd82fb2","audioContentTopicId":"3792abbd134","isDoNotAuth":false,"buggle":{"videoUrl":"https://cdn-videos-1.medium.com","audioUrl":"https://cdn-audio-1.medium.com"},"referrerType":5,"partnerProgramEmail":"partnerprogram@medium.com","recaptchaKey":"6Lfc37IUAAAAAKGGtC6rLS13R1Hrw_BqADfS1LRk","countryCode":"SG","bypassMeter":false,"branchKey":"key_live_ofxXr2qTrrU9NqURK8ZwEhknBxiI6KBm","paypal":{"clientMode":"production","oneYearGift":{"name":"Medium Membership (1 Year, Digital Gift Code)","description":"Unlimited access to the best and brightest stories on Medium. Gift codes can be redeemed at medium.com/redeem.","price":"50.00","currency":"USD","sku":"membership-gift-1-yr"}},"collectionConfig":{"mediumOwnedAndOperatedCollectionIds":["8a9336e5bb4","b7e45b22fec3","193b68bd4fba","8d6b8a439e32","54c98c43354d","3f6ecf56618","d944778ce714","92d2092dc598","ae2a65f35510","1285ba81cada","544c7006046e","fc8964313712","40187e704f1c","88d9857e584e","7b6769f2748b","bcc38c8f6edf","cef6983b292","cb8577c9149e","444d13b52878","713d7dbc99b0","ef8e90590e66","191186aaafa0","55760f21cdc5","9dc80918cc93","bdc4052bbdba","8ccfed20cbb2"]},"bypassMeterWithShareKey":false,"recaptcha3Key":"6Lf8R9wUAAAAABMI_85Wb8melS7Zj6ziuf99Yot5","braintreeClientKey":"production_zjkj96jm_m56f8fqpf7ngnrd4","cdcMessaging":[{"text":"For more information on the novel coronavirus and Covid-19, visit ","href":"","type":"text","start":0,"end":0},{"text":"cdc.gov","href":"https://www.cdc.gov/coronavirus/2019-nCoV","type":"link","start":66,"end":73},{"text":".","href":"","type":"text","start":0,"end":0}],"braintree":{"merchantId":"m56f8fqpf7ngnrd4"},"diagnostics":{},"domain":"medium.com"} // ]]></script><script charset="UTF-8" src="https://cdn-static-1.medium.com/_/fp/gen-js/main-base.bundle.95z8xpkUEidhPbIWsh2BVw.12.js" async></script><script>// <![CDATA[ window["obvInit"]({"references":{"Collection":{"7f60cf5620c9":{"id":"7f60cf5620c9","name":"Towards Data Science","slug":"towards-data-science","tags":["DATA SCIENCE","MACHINE LEARNING","ARTIFICIAL INTELLIGENCE","DATA ENGINEERING","DATA"],"creatorId":"9c70285657bb","description":"Your home for data science & AI. The world’s leading publication for data science, data analytics, data engineering, machine learning, and artificial intelligence professionals.","shortDescription":"Your home for data science & AI.","image":{"imageId":"1*CJe3891yB1A1mzMdqemkdg.jpeg","filter":"","backgroundSize":"","originalWidth":2861,"originalHeight":2861,"strategy":"resample","height":0,"width":0},"metadata":{"followerCount":768454,"activeAt":1732681627983},"virtuals":{"permissions":{"canPublish":false,"canPublishAll":false,"canRepublish":false,"canRemove":false,"canManageAll":false,"canSubmit":false,"canEditPosts":false,"canAddWriters":false,"canViewStats":false,"canSendNewsletter":false,"canViewLockedPosts":false,"canViewCloaked":false,"canEditOwnPosts":false,"canBeAssignedAuthor":false,"canEnrollInHightower":false,"canLockPostsForMediumMembers":false,"canLockOwnPostsForMediumMembers":false,"canViewNewsletterV2Stats":false,"canCreateNewsletterV3":false},"isSubscribed":false,"isEnrolledInHightower":false,"isEligibleForHightower":false,"isSubscribedToCollectionEmails":false,"isMuted":false,"canToggleEmail":false,"isWriter":false},"logo":{"imageId":"1*cFFKn8rFH4ZndmaYeAs6iQ.png","filter":"","backgroundSize":"","originalWidth":2381,"originalHeight":743,"strategy":"resample","height":0,"width":0},"twitterUsername":"TDataScience","collectionMastheadId":"8b6aceffde6","domain":"towardsdatascience.com","sections":[{"type":2,"collectionHeaderMetadata":{"title":"","description":"The world’s leading publication for data science, AI, data analytics, data engineering and ML professionals.","backgroundImage":{},"logoImage":{"id":"1*1m9fjwOZWwXIP82RWvRH5A@2x.png","originalWidth":1589,"originalHeight":661,"alt":"Towards Data Science"},"alignment":2,"layout":5}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":2,"postIds":[]}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":9,"postIds":[],"sectionHeader":"Latest"}},{"type":3,"promoMetadata":{"sectionHeader":"","promoId":"f9f3fdba6ebf"}},{"type":1,"postListMetadata":{"source":4,"layout":4,"number":6,"postIds":[],"tagSlug":"Editors Pick","sectionHeader":"Editors' Picks"}},{"type":1,"postListMetadata":{"source":4,"layout":4,"number":2,"postIds":[],"tagSlug":"Tds Features","sectionHeader":"Features"}},{"type":3,"promoMetadata":{"sectionHeader":"","promoId":"efaedc412a41"}},{"type":1,"postListMetadata":{"source":3,"layout":4,"number":3,"postIds":["60bb69a22759","c57724e9c461","69019493b259"],"sectionHeader":"Trending articles"}},{"type":1,"postListMetadata":{"source":3,"layout":4,"number":3,"postIds":["182a5ef6588c","e24b50e1d292","68b2303cc9c5"],"sectionHeader":"Popular from our archive"}},{"type":1,"postListMetadata":{"source":4,"layout":4,"number":6,"postIds":[],"tagSlug":"Deep Dives","sectionHeader":"Deep Dives"}},{"type":1,"postListMetadata":{"source":3,"layout":5,"number":3,"postIds":["d691af11cc2f","c2c8e712c971","3bf37f75a345"],"sectionHeader":"About"}},{"type":1,"postListMetadata":{"source":1,"layout":5,"number":16,"postIds":[],"sectionHeader":"Latest"}}],"tintColor":"#FF355876","lightText":true,"favicon":{"imageId":"1*VzTUkfeGymHP4Bvav-T-lA.png","filter":"","backgroundSize":"","originalWidth":207,"originalHeight":206,"strategy":"resample","height":0,"width":0},"colorPalette":{"defaultBackgroundSpectrum":{"colorPoints":[{"color":"#FF668AAA","point":0},{"color":"#FF61809D","point":0.1},{"color":"#FF5A7690","point":0.2},{"color":"#FF546C83","point":0.3},{"color":"#FF4D6275","point":0.4},{"color":"#FF455768","point":0.5},{"color":"#FF3D4C5A","point":0.6},{"color":"#FF34414C","point":0.7},{"color":"#FF2B353E","point":0.8},{"color":"#FF21282F","point":0.9},{"color":"#FF161B1F","point":1}],"backgroundColor":"#FFFFFFFF"},"tintBackgroundSpectrum":{"colorPoints":[{"color":"#FF355876","point":0},{"color":"#FF4D6C88","point":0.1},{"color":"#FF637F99","point":0.2},{"color":"#FF7791A8","point":0.3},{"color":"#FF8CA2B7","point":0.4},{"color":"#FF9FB3C6","point":0.5},{"color":"#FFB2C3D4","point":0.6},{"color":"#FFC5D2E1","point":0.7},{"color":"#FFD7E2EE","point":0.8},{"color":"#FFE9F1FA","point":0.9},{"color":"#FFFBFFFF","point":1}],"backgroundColor":"#FF355876"},"highlightSpectrum":{"colorPoints":[{"color":"#FFEDF4FC","point":0},{"color":"#FFE9F2FD","point":0.1},{"color":"#FFE6F1FD","point":0.2},{"color":"#FFE2EFFD","point":0.3},{"color":"#FFDFEEFD","point":0.4},{"color":"#FFDBECFE","point":0.5},{"color":"#FFD7EBFE","point":0.6},{"color":"#FFD4E9FE","point":0.7},{"color":"#FFD0E7FF","point":0.8},{"color":"#FFCCE6FF","point":0.9},{"color":"#FFC8E4FF","point":1}],"backgroundColor":"#FFFFFFFF"},"darkBackgroundSpectrum":{"colorPoints":[{"color":"#FF7EA2C3","point":0},{"color":"#FF8AAAC9","point":0.1},{"color":"#FF95B2CE","point":0.2},{"color":"#FFA0BAD3","point":0.3},{"color":"#FFABC2D9","point":0.4},{"color":"#FFB6CADE","point":0.5},{"color":"#FFC1D2E3","point":0.6},{"color":"#FFCBD9E8","point":0.7},{"color":"#FFD6E1EC","point":0.8},{"color":"#FFE0E8F1","point":0.9},{"color":"#FFEAEFF6","point":1}],"backgroundColor":"#FF000000"}},"navItems":[{"type":8,"title":"Latest","url":"https://towardsdatascience.com/latest"},{"type":4,"title":"Editors' Picks","url":"https://towardsdatascience.com/editors-picks/home","topicId":"20b4f3e27fbe","source":"topicId"},{"type":4,"title":"Deep Dives","url":"https://towardsdatascience.com/deep-dives/home","topicId":"8ad314313527","source":"topicId"},{"type":4,"title":"About","url":"https://towardsdatascience.com/about-us/home","topicId":"e4bc46bb3ab0","source":"topicId"},{"type":2,"title":"Contribute","postId":"96667b06af5","url":"https://towardsdatascience.com/questions-96667b06af5","source":"postId"},{"type":3,"title":"Newsletter","url":"https://medium.com/towards-data-science/newsletter"}],"colorBehavior":2,"collectionFeatures":[29,30,27,25],"ampLogo":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"header":{"title":"","description":"The world’s leading publication for data science, AI, data analytics, data engineering and ML professionals.","backgroundImage":{},"logoImage":{"id":"1*1m9fjwOZWwXIP82RWvRH5A@2x.png","originalWidth":1589,"originalHeight":661,"alt":"Towards Data Science"},"alignment":2,"layout":5},"paidForDomainAt":1509037374118,"subscriberCount":768454,"tagline":"A Medium publication sharing concepts, ideas and codes.","isOptedIntoAurora":false,"newsletterV3":{"newsletterV3Id":"d6fe9076899","type":1,"name":"The Variable","description":"Every Thursday, the Variable delivers the very best of Towards Data Science: from hands-on tutorials and cutting-edge research to the latest on data science and machine learning tools.","collectionId":"7f60cf5620c9","newsletterSlug":"the-variable","isSubscribed":false,"showPromo":true,"avatarImageId":"","creatorId":"895063a310f4","showNewsletterPostsInCollectionHome":true,"exportableSubscribersCount":52142,"subscribersCount":132117,"promoHeadline":"","promoBody":"","replyToEmail":""},"isCurationAllowedByDefault":false,"polarisCoverImage":{"imageId":"1*CJe3891yB1A1mzMdqemkdg.jpeg","filter":"","backgroundSize":"","originalWidth":2861,"originalHeight":2861,"strategy":"resample","height":0,"width":0},"ptsQualifiedAt":1616092952992,"type":"Collection"}},"User":{"99b63de2f2c3":{"userId":"99b63de2f2c3","name":"Shreya Rao","username":"shreya.rao","createdAt":1628576668665,"imageId":"1*Dw7i9_T729qQE7ieepVvKw.jpeg","backgroundImageId":"","bio":"Philomath | LinkedIn: https://www.linkedin.com/in/shreyarao24/","twitterScreenName":"","allowNotes":1,"mediumMemberAt":1700768228000,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedIosApp":1669436997224,"isMembershipTrialEligible":false,"facebookDisplayName":"","optInToIceland":true,"userFlags":[3],"hasCompletedProfile":true,"isCreatorPartnerProgramEnrolled":true,"userDismissableFlags":[32,29,22,21,19,18,47,12,44,11,8,7,37,30,3,20,2,1,33],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"bd281fad5f8a":{"userId":"bd281fad5f8a","name":"Gizem Kaya","username":"gizkaya","createdAt":1640349200027,"imageId":"1*zp87uWSKMigrw0kxY20Dag.jpeg","backgroundImageId":"","bio":"Data Science @BASF Agricultural Solutions💚 I'm a passionate data analytics professional, committed to continual growth. Reach me for any questions & feedback!","twitterScreenName":"","allowNotes":1,"mediumMemberAt":1728648541959,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedAndroidApp":1732648757194,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"subdomainCreatedAt":1713510747293,"hasCompletedProfile":false,"isCreatorPartnerProgramEnrolled":true,"userDismissableFlags":[50,29,12,33,49],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"d18c7303c5a2":{"userId":"d18c7303c5a2","name":"Bradney Smith","username":"bradneysmith","createdAt":1646074158275,"imageId":"1*tVLKwOvdthd64kORuXntTg.jpeg","backgroundImageId":"","bio":"AI Lead @ Spotted Zebra 🦓 My work focuses on Natural Language Processing (NLP) and data science communication. Check out my \"LLMs from Scratch\" series !","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedAndroidApp":1702116149825,"isMembershipTrialEligible":false,"facebookDisplayName":"Brad Smith","optInToIceland":true,"hasCompletedProfile":true,"isCreatorPartnerProgramEnrolled":true,"userDismissableFlags":[48,47,29,12,41,8,50,19,2,33],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-gb","type":"User"},"1cac491223b2":{"userId":"1cac491223b2","name":"Egor Howell","username":"egorhowell","createdAt":1611675930858,"imageId":"1*GjTgnF9urbcpls3Y9LEzWw.jpeg","backgroundImageId":"","bio":"Top Writer: DS, ML, AI , Statistics & Optimization. 🎬 https://www.youtube.com/@egorhowell. ---- All opinions here are my own.","twitterScreenName":"","allowNotes":1,"mediumMemberAt":1628447448000,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedIosApp":1628892904182,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"userFlags":[3],"hasCompletedProfile":false,"isCreatorPartnerProgramEnrolled":true,"userDismissableFlags":[32,29,22,21,19,18,47,12,44,11,9,8,7,6,38,5,37,36,3,2,1,33],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-gb","type":"User"},"2b42227db6a9":{"userId":"2b42227db6a9","name":"Mena Wang, PhD","username":"menawang","createdAt":1505881636492,"imageId":"1*qUfWZCdwnb6Bn7k4cO0O3Q.jpeg","backgroundImageId":"","bio":"🔍 Data Scientist | 💡 ML Top Voice | 📚 Author | 🎓 ex-Uni Lecturer https://www.linkedin.com/in/mena-ning-wang/","twitterScreenName":"","allowNotes":1,"mediumMemberAt":1638526607000,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedIosApp":1631886581191,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"subdomainCreatedAt":1639181412243,"hasCompletedProfile":false,"userDismissableFlags":[29,12,36,3,2,42],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en","type":"User"},"9440b37e27fe":{"userId":"9440b37e27fe","name":"Chaim Rand","username":"chaimrand","createdAt":1592815358750,"imageId":"1*u4pzP95sl2wOlLhWKFgczg.jpeg","backgroundImageId":"","bio":"I am a Machine Learning Algorithm Developer working on Autonomous Vehicle technologies at Mobileye. The views expressed in my posts are my own.","twitterScreenName":"","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedAndroidApp":1621346349911,"isMembershipTrialEligible":true,"facebookDisplayName":"","optInToIceland":true,"subdomainCreatedAt":1605679446532,"hasCompletedProfile":false,"userDismissableFlags":[32,29,12,50,21,2,18,1],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"5462c48cfc57":{"userId":"5462c48cfc57","name":"Yu Dong","username":"ydong029","createdAt":1550362649246,"imageId":"1*29MqzRR7m5m93unBH1o7lw.jpeg","backgroundImageId":"","bio":"Data Science at Brex | Data Storyteller","twitterScreenName":"","allowNotes":1,"mediumMemberAt":1581278420000,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedIosApp":1581389450191,"isMembershipTrialEligible":true,"facebookDisplayName":"YU Dong","optInToIceland":true,"subdomainCreatedAt":1716674525506,"hasCompletedProfile":true,"isCreatorPartnerProgramEnrolled":true,"userDismissableFlags":[32,47,29,12,8,6,5,21,19,2,1,33],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en","type":"User"},"153452706ad7":{"userId":"153452706ad7","name":"Michelangiolo Mazzeschi","username":"ardito.bryan","createdAt":1566977232434,"imageId":"2*MkUxrUogzkaAyb_Nf76wRQ.jpeg","backgroundImageId":"","bio":"AI in Retail, with a specialty in Search Engines","twitterScreenName":"ardito_bryan","allowNotes":1,"mediumMemberAt":0,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedIosApp":1568459321981,"isMembershipTrialEligible":true,"facebookDisplayName":"Michelangiolo Mazzeschi","optInToIceland":true,"hasCompletedProfile":false,"isCreatorPartnerProgramEnrolled":true,"userDismissableFlags":[32,29,21,19,12,11,9,8,5,3,2,1,33],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"b14d1de976eb":{"userId":"b14d1de976eb","name":"Haden Pelletier","username":"pelletierhaden","createdAt":1691262684557,"imageId":"1*a0nmhdOP6fSXKTkniLMsNw@2x.jpeg","backgroundImageId":"","bio":"Data scientist, traveler, writer.","twitterScreenName":"","allowNotes":1,"mediumMemberAt":1701986610000,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedIosApp":1694466144983,"isMembershipTrialEligible":false,"facebookDisplayName":"","optInToIceland":true,"hasCompletedProfile":true,"isCreatorPartnerProgramEnrolled":true,"userDismissableFlags":[47,29,37,19],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"d11c06040ced":{"userId":"d11c06040ced","name":"Abhinav Kimothi","username":"abhinavkimothi","createdAt":1502183574120,"imageId":"1*NXr2cLlsDxBc665b7SEKeA.png","backgroundImageId":"","bio":"Co-founder and Head of AI @ Yarnit.app || Author : A Simple Guide to RAG (https://mng.bz/jXJ9) || AIML since 2007 || BITS-Pilani, ISB-Hyderabad","twitterScreenName":"abhinav_kimothi","allowNotes":1,"mediumMemberAt":1718350185000,"isWriterProgramEnrolled":true,"isSuspended":false,"isMembershipTrialEligible":false,"facebookDisplayName":"Abhinav Kimothi","optInToIceland":true,"hasCompletedProfile":false,"isCreatorPartnerProgramEnrolled":true,"userDismissableFlags":[32,47,29,8,6,21,3,19,2,18,1,33],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"en-us","type":"User"},"1c040843e458":{"userId":"1c040843e458","name":"Leo Anello","username":"panData","createdAt":1675551357378,"imageId":"1*Dn6n6ct8Y_AL4zvtFcUetQ.jpeg","backgroundImageId":"","bio":"☕ My personal repository showcasing the Projects I've applied, studied, & self-taught skills.","allowNotes":1,"mediumMemberAt":1711738655000,"isWriterProgramEnrolled":true,"isSuspended":false,"firstOpenedIosApp":1690592255357,"firstOpenedAndroidApp":1675690938453,"isMembershipTrialEligible":true,"optInToIceland":true,"hasCompletedProfile":true,"isCreatorPartnerProgramEnrolled":true,"userDismissableFlags":[47,29,44,6,50,37,30,36,19,2,33,49],"hasSeenIcelandOnboarding":true,"postSubscribeMembershipUpsellShownAt":0,"languageCode":"pt-br","type":"User"}},"Post":{"6d718ac40b7d":{"id":"6d718ac40b7d","versionId":"911a0a6bd4c1","creatorId":"99b63de2f2c3","homeCollectionId":"7f60cf5620c9","title":"NLP Illustrated, Part 2: Word Embeddings","detectedLanguage":"en","latestVersion":"911a0a6bd4c1","latestPublishedVersion":"911a0a6bd4c1","hasUnpublishedEdits":false,"latestRev":443,"createdAt":1732395336877,"updatedAt":1732671823628,"acceptedAt":0,"firstPublishedAt":1732666537347,"latestPublishedAt":1732666537347,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"An illustrated and intuitive guide to word embeddings","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*UZx9K92bV1eRa32-EzsSWA.png","filter":"","backgroundSize":"","originalWidth":1583,"originalHeight":1000,"strategy":"resample","height":0,"width":0},"wordCount":1520,"imageCount":25,"readingTime":7.735849056603773,"subtitle":"An illustrated and intuitive guide to word embeddings","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":7,"isBookmarked":false,"tags":[{"slug":"deep-learning","name":"Deep Learning","postCount":101237,"metadata":{"postCount":101237,"coverImage":{"id":"1*Soi19aBmSGjEvaSVD6qmbA.jpeg","originalWidth":736,"originalHeight":1129}},"type":"Tag"},{"slug":"llm","name":"Llm","postCount":27693,"metadata":{"postCount":27693,"coverImage":{"id":"1*8yJrgGPFwHBY8lpIFg7ERQ.png","originalWidth":940,"originalHeight":788,"isFeatured":true}},"type":"Tag"},{"slug":"machine-learning","name":"Machine Learning","postCount":354197,"metadata":{"postCount":354197,"coverImage":{"id":"1*8yJrgGPFwHBY8lpIFg7ERQ.png","originalWidth":940,"originalHeight":788,"isFeatured":true}},"type":"Tag"},{"slug":"artificial-intelligence","name":"Artificial Intelligence","postCount":458956,"metadata":{"postCount":458956,"coverImage":{"id":"1*gAn_BSffVBcwCIR6bDgK1g.jpeg"}},"type":"Tag"},{"slug":"data-science","name":"Data Science","postCount":347124,"metadata":{"postCount":347124,"coverImage":{"id":"1*Dle6kaxhQo1a0zVb96eBkw.jpeg","originalWidth":1280,"originalHeight":1280}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"https://en.wikipedia.org/wiki/Love_Actually","alts":[],"httpStatus":200},{"url":"https://en.wikipedia.org/wiki/Glass_Onion:_A_Knives_Out_Mystery#/media/File:Glass_Onion_poster.jpg","alts":[],"httpStatus":200},{"url":"https://www.geeksforgeeks.org/cosine-similarity/","alts":[],"httpStatus":200},{"url":"https://en.wikipedia.org/wiki/Knives_Out#/media/File:Knives_Out_poster.jpeg","alts":[],"httpStatus":200},{"url":"https://mathinsight.org/vector_introduction#:~:text=A%20vector%20is%20an%20object,an%20arrow%20indicating%20the%20direction","alts":[],"httpStatus":0},{"url":"https://www.imdb.com/title/tt11564570/","alts":[],"httpStatus":200},{"url":"https://towardsdatascience.com/nlp-illustrated-part-1-text-encoding-41ba06c0f512","alts":[{"type":3,"url":"medium://p/41ba06c0f512"},{"type":2,"url":"medium://p/41ba06c0f512"}],"httpStatus":200},{"url":"https://www.imdb.com/title/tt0314331/?ref_=tt_mv_close","alts":[],"httpStatus":200},{"url":"https://medium.com/@shreya.rao/list/ae6c27de1640","alts":[{"type":3,"url":"medium://@shreya.rao/list/deep-learning-illustrated-ae6c27de1640"},{"type":2,"url":"medium://@shreya.rao/list/deep-learning-illustrated-ae6c27de1640"}],"httpStatus":200},{"url":"https://medium.com/towards-data-science/nlp-illustrated-part-1-text-encoding-41ba06c0f512","alts":[{"type":3,"url":"medium://p/41ba06c0f512"},{"type":2,"url":"medium://p/41ba06c0f512"}],"httpStatus":200},{"url":"https://medium.com/@shreya.rao/list/deep-learning-illustrated-ae6c27de1640","alts":[{"type":3,"url":"medium://@shreya.rao/list/deep-learning-illustrated-ae6c27de1640"},{"type":2,"url":"medium://@shreya.rao/list/deep-learning-illustrated-ae6c27de1640"}],"httpStatus":200},{"url":"https://www.linkedin.com/in/shreyarao24/","alts":[],"httpStatus":999},{"url":"https://www.imdb.com/title/tt8946378/?ref_=tt_mv_close","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1732666538579},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":67,"sectionCount":2,"readingList":0,"topics":[{"topicId":"1eca0103fff3","slug":"machine-learning","createdAt":1534449726145,"deletedAt":0,"image":{"id":"1*gFJS3amhZEg_z39D5EErVg@2x.png","originalWidth":2800,"originalHeight":1750},"name":"Machine Learning","description":"Teaching the learners.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Machine Learning News and Articles — Medium","type":"Topic"},{"topicId":"ae5d4995e225","slug":"data-science","createdAt":1493923906289,"deletedAt":0,"image":{"id":"1*NHWOEki_ncCX-xzbKtkEWw@2x.jpeg","originalWidth":5760,"originalHeight":3840},"name":"Data Science","description":"Query this.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Data Science News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"nlp-illustrated-part-2-word-embeddings","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":2,"uniqueSlug":"nlp-illustrated-part-2-word-embeddings-6d718ac40b7d","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*UZx9K92bV1eRa32-EzsSWA.png","originalWidth":1583,"originalHeight":1000,"isFeatured":true}},{"name":"d1e6","type":3,"text":"NLP Illustrated, Part 2: Word Embeddings","markups":[],"alignment":1},{"name":"a7ae","type":13,"text":"An illustrated and intuitive guide to word embeddings","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"An illustrated and intuitive guide to word embeddings"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"7f60cf5620c9","isNewsletter":false,"newsletterId":"e385ead8f3fb","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":true,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":true,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":1,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":0,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":1732395902559,"primaryTopicId":"1eca0103fff3","isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"d1e6","type":3,"text":"NLP Illustrated, Part 2: Word Embeddings","markups":[]},{"name":"a7ae","type":13,"text":"An illustrated and intuitive guide to word embeddings","markups":[]},{"name":"2b41","type":1,"text":"Welcome to Part 2 of our NLP series. If you caught Part 1, you’ll remember that the challenge we’re tackling is translating text into numbers so that we can feed it into our machine learning models or neural networks.","markups":[{"type":3,"start":50,"end":57,"href":"https://medium.com/towards-data-science/nlp-illustrated-part-1-text-encoding-41ba06c0f512","title":"","rel":"","anchorType":0}]},{"name":"64ad","type":14,"text":"NLP Illustrated, Part 1: Text Encoding\nAn illustrated guide to text-to-number translation, with codetowardsdatascience.com","markups":[{"type":3,"start":0,"end":122,"href":"https://towardsdatascience.com/nlp-illustrated-part-1-text-encoding-41ba06c0f512","title":"https://towardsdatascience.com/nlp-illustrated-part-1-text-encoding-41ba06c0f512","rel":"","anchorType":0},{"type":1,"start":0,"end":38},{"type":2,"start":39,"end":100}],"mixtapeMetadata":{"mediaResourceId":"38294e6bf65f74596573110457443f2e","thumbnailImageId":"1*QLqkDcu8i2r55MV6CCmn8w.png","href":"https://towardsdatascience.com/nlp-illustrated-part-1-text-encoding-41ba06c0f512"}},{"name":"f3c6","type":1,"text":"Previously, we explored some basic (and pretty naive) approaches to this…","markups":[]}],"sections":[{"name":"99a6","startIndex":0}]},"isFullContent":false,"subtitle":"An illustrated and intuitive guide to word embeddings"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":true,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"f6f7920bcc55":{"id":"f6f7920bcc55","versionId":"ead59451c3d9","creatorId":"bd281fad5f8a","homeCollectionId":"7f60cf5620c9","title":"Addressing Missing Data","detectedLanguage":"en","latestVersion":"ead59451c3d9","latestPublishedVersion":"ead59451c3d9","hasUnpublishedEdits":false,"latestRev":2387,"createdAt":1729585203332,"updatedAt":1732675934946,"acceptedAt":0,"firstPublishedAt":1732647058156,"latestPublishedAt":1732647058156,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Understand missing data patterns (MCAR, MNAR, MAR) for better model performance with Missingno","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*2azp79om7UNFWEGR","filter":"","backgroundSize":"","originalWidth":3725,"originalHeight":2508,"strategy":"resample","height":0,"width":0},"wordCount":1627,"imageCount":8,"readingTime":7.272955974842768,"subtitle":"Understand missing data patterns (MCAR, MNAR, MAR) for better model performance with Missingno","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":8,"isBookmarked":false,"tags":[{"slug":"missing-data","name":"Missing Data","postCount":402,"metadata":{"postCount":402,"coverImage":{"id":"0*2azp79om7UNFWEGR","originalWidth":3725,"originalHeight":2508,"isFeatured":true,"unsplashPhotoId":"cWMhxNmQVq0"}},"type":"Tag"},{"slug":"data-preprocessing","name":"Data Preprocessing","postCount":1651,"metadata":{"postCount":1651,"coverImage":{"id":"1*zLEk51lxUWetlzbZohaebg.png","originalWidth":833,"originalHeight":332,"isFeatured":true}},"type":"Tag"},{"slug":"data-science","name":"Data Science","postCount":347124,"metadata":{"postCount":347124,"coverImage":{"id":"1*Dle6kaxhQo1a0zVb96eBkw.jpeg","originalWidth":1280,"originalHeight":1280}},"type":"Tag"},{"slug":"data-visualization","name":"Data Visualization","postCount":66742,"metadata":{"postCount":66742,"coverImage":{"id":"1*PyPJX_tl8OnGbPrJi3XIkA.png","originalWidth":1129,"originalHeight":724,"isFeatured":true}},"type":"Tag"},{"slug":"machine-learning","name":"Machine Learning","postCount":354197,"metadata":{"postCount":354197,"coverImage":{"id":"1*8yJrgGPFwHBY8lpIFg7ERQ.png","originalWidth":940,"originalHeight":788,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"https://unsplash.com?utm_source=medium&utm_medium=referral","alts":[],"httpStatus":200},{"url":"https://wwwn.cdc.gov/Nchs/Nhanes/2021-2022/DIQ_L.htm","alts":[],"httpStatus":200},{"url":"https://wwwn.cdc.gov/nchs/nhanes/search/datapage.aspx?Component=Questionnaire&Cycle=2021-2023","alts":[],"httpStatus":200},{"url":"https://unsplash.com/@ttepavac?utm_source=medium&utm_medium=referral","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1732647059272},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":99,"sectionCount":4,"readingList":0,"topics":[{"topicId":"1eca0103fff3","slug":"machine-learning","createdAt":1534449726145,"deletedAt":0,"image":{"id":"1*gFJS3amhZEg_z39D5EErVg@2x.png","originalWidth":2800,"originalHeight":1750},"name":"Machine Learning","description":"Teaching the learners.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Machine Learning News and Articles — Medium","type":"Topic"},{"topicId":"ae5d4995e225","slug":"data-science","createdAt":1493923906289,"deletedAt":0,"image":{"id":"1*NHWOEki_ncCX-xzbKtkEWw@2x.jpeg","originalWidth":5760,"originalHeight":3840},"name":"Data Science","description":"Query this.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Data Science News and Articles — Medium","type":"Topic"},{"topicId":"decb52b64abf","slug":"programming","createdAt":1493934116328,"deletedAt":0,"image":{"id":"1*iPa136b1cGEO7lvoXg6uHQ@2x.jpeg","originalWidth":6016,"originalHeight":4016},"name":"Programming","description":"The good, the bad, the buggy.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Programming News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"addressing-missing-data","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":2,"uniqueSlug":"addressing-missing-data-f6f7920bcc55","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*2azp79om7UNFWEGR","originalWidth":3725,"originalHeight":2508,"isFeatured":true,"unsplashPhotoId":"cWMhxNmQVq0"}},{"name":"7ea0","type":3,"text":"Addressing Missing Data","markups":[{"type":1,"start":0,"end":23}],"alignment":1},{"name":"c7e8","type":13,"text":"Understand missing data patterns (MCAR, MNAR, MAR) for better model…","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Understand missing data patterns (MCAR, MNAR, MAR) for better model performance with Missingno"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"7f60cf5620c9","isNewsletter":false,"newsletterId":"","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":true,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":true,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":1,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":0,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":1732640105168,"primaryTopicId":"ae5d4995e225","isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"7ea0","type":3,"text":"Addressing Missing Data","markups":[{"type":1,"start":0,"end":23}]},{"name":"c7e8","type":13,"text":"Understand missing data patterns (MCAR, MNAR, MAR) for better model performance with Missingno","markups":[]},{"name":"c77d","type":1,"text":"In an ideal world, we would like to work with datasets that are clean, complete and accurate. However, real-world data rarely meets our expectation. We often encounter datasets with noise, inconsistencies, outliers and missingness, which requires careful handling to get effective results. Especially, missing data is an unavoidable challenge, and…","markups":[]}],"sections":[{"name":"982c","startIndex":0}]},"isFullContent":false,"subtitle":"Understand missing data patterns (MCAR, MNAR, MAR) for better model performance with Missingno"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":false,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"7f9c6e6b7251":{"id":"7f9c6e6b7251","versionId":"1fbff7f06258","creatorId":"d18c7303c5a2","homeCollectionId":"7f60cf5620c9","title":"Mistral 7B Explained: Towards More Efficient Language Models","detectedLanguage":"en","latestVersion":"1fbff7f06258","latestPublishedVersion":"1fbff7f06258","hasUnpublishedEdits":false,"latestRev":4382,"createdAt":1731444967946,"updatedAt":1732675628818,"acceptedAt":0,"firstPublishedAt":1732645578729,"latestPublishedAt":1732645578729,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"RMS Norm, RoPE, GQA, SWA, KV Cache, and more!","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*TRfxFbnLDx9IqpvghpbURA.jpeg","filter":"","backgroundSize":"","originalWidth":1152,"originalHeight":896,"strategy":"resample","height":0,"width":0},"wordCount":10304,"imageCount":36,"readingTime":41.433018867924524,"subtitle":"RMS Norm, RoPE, GQA, SWA, KV Cache, and more!","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":16,"isBookmarked":false,"tags":[{"slug":"mistral","name":"Mistral","postCount":375,"metadata":{"postCount":375,"coverImage":{"id":"1*TRfxFbnLDx9IqpvghpbURA.jpeg","originalWidth":1152,"originalHeight":896,"isFeatured":true}},"type":"Tag"},{"slug":"large-language-models","name":"Large Language Models","postCount":15001,"metadata":{"postCount":15001,"coverImage":{"id":"1*RfVrOxzmxJamOqv-Q4oyWA.png","originalWidth":3756,"originalHeight":2317,"isFeatured":true}},"type":"Tag"},{"slug":"artificial-intelligence","name":"Artificial Intelligence","postCount":458956,"metadata":{"postCount":458956,"coverImage":{"id":"1*gAn_BSffVBcwCIR6bDgK1g.jpeg"}},"type":"Tag"},{"slug":"machine-learning","name":"Machine Learning","postCount":354197,"metadata":{"postCount":354197,"coverImage":{"id":"1*8yJrgGPFwHBY8lpIFg7ERQ.png","originalWidth":940,"originalHeight":788,"isFeatured":true}},"type":"Tag"},{"slug":"deep-dives","name":"Deep Dives","postCount":2280,"metadata":{"postCount":2280,"coverImage":{"id":"1*Aja1M1MtLsRmsFCTdPeoJg.png","originalWidth":951,"originalHeight":828,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":1,"links":{"entries":[{"url":"#5dd1","alts":[],"httpStatus":0},{"url":"#2364","alts":[],"httpStatus":0},{"url":"#c780","alts":[],"httpStatus":0},{"url":"#f353","alts":[],"httpStatus":0},{"url":"#d81b","alts":[],"httpStatus":0},{"url":"#a0d1","alts":[],"httpStatus":0},{"url":"#bc24","alts":[],"httpStatus":0},{"url":"#4436","alts":[],"httpStatus":0},{"url":"#a121","alts":[],"httpStatus":0},{"url":"https://huggingface.co/mistralai","alts":[],"httpStatus":200},{"url":"https://arxiv.org/abs/2310.06825","alts":[],"httpStatus":200},{"url":"https://arxiv.org/abs/1803.02155","alts":[],"httpStatus":200},{"url":"https://arxiv.org/abs/1910.07467","alts":[],"httpStatus":200},{"url":"https://arxiv.org/abs/1607.06450","alts":[],"httpStatus":200},{"url":"https://arxiv.org/abs/1910.10683","alts":[],"httpStatus":200},{"url":"https://arxiv.org/abs/2304.06364","alts":[],"httpStatus":200},{"url":"https://arxiv.org/abs/2009.03300","alts":[],"httpStatus":200},{"url":"https://arxiv.org/abs/1901.02860","alts":[],"httpStatus":200},{"url":"https://arxiv.org/abs/2210.09261","alts":[],"httpStatus":200},{"url":"https://arxiv.org/pdf/2305.13245","alts":[],"httpStatus":200},{"url":"https://arxiv.org/pdf/1911.02150","alts":[],"httpStatus":200},{"url":"https://arxiv.org/pdf/2104.09864","alts":[],"httpStatus":200},{"url":"https://arxiv.org/pdf/2004.05150","alts":[],"httpStatus":200},{"url":"https://arxiv.org/pdf/1612.08083","alts":[],"httpStatus":200},{"url":"https://arxiv.org/pdf/1910.10683","alts":[],"httpStatus":200},{"url":"https://arxiv.org/pdf/1706.03762","alts":[],"httpStatus":200},{"url":"https://arxiv.org/pdf/2204.02311","alts":[],"httpStatus":200},{"url":"https://github.com/huggingface/transformers/blob/main/src/transformers/models/llama/modeling_llama.py","alts":[],"httpStatus":200},{"url":"https://medium.com/p/cedc9f72de4e","alts":[{"type":2,"url":"medium://p/cedc9f72de4e"},{"type":3,"url":"medium://p/cedc9f72de4e"}],"httpStatus":200},{"url":"https://medium.com/p/eb9326c6ab7c/","alts":[{"type":3,"url":"medium://p/eb9326c6ab7c"},{"type":2,"url":"medium://p/eb9326c6ab7c"}],"httpStatus":200},{"url":"https://link.springer.com/article/10.1007/BF00342633","alts":[],"httpStatus":200},{"url":"https://medium.com/p/d7a9f0f4d94e","alts":[{"type":3,"url":"medium://p/d7a9f0f4d94e"},{"type":2,"url":"medium://p/d7a9f0f4d94e"}],"httpStatus":200},{"url":"https://medium.com/p/eb9326c6ab7c","alts":[{"type":3,"url":"medium://p/eb9326c6ab7c"},{"type":2,"url":"medium://p/eb9326c6ab7c"}],"httpStatus":200},{"url":"https://medium.com/p/9f87602e4a11","alts":[{"type":2,"url":"medium://p/9f87602e4a11"},{"type":3,"url":"medium://p/9f87602e4a11"}],"httpStatus":200}],"version":"0.3","generatedAt":1732645582236},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":121,"sectionCount":1,"readingList":0,"topics":[{"topicId":"1af65db9c2f8","slug":"artificial-intelligence","createdAt":1487916832419,"deletedAt":0,"image":{"id":"1*A28aHchbaA8zNVXraBq0Ug@2x.jpeg","originalWidth":4866,"originalHeight":3244},"name":"Artificial Intelligence","description":"Born to be bot.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"AI News and Artificial Intelligence Articles — Medium","type":"Topic"},{"topicId":"1eca0103fff3","slug":"machine-learning","createdAt":1534449726145,"deletedAt":0,"image":{"id":"1*gFJS3amhZEg_z39D5EErVg@2x.png","originalWidth":2800,"originalHeight":1750},"name":"Machine Learning","description":"Teaching the learners.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Machine Learning News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"mistral-7b-explained-towards-more-efficient-language-models","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"mistral-7b-explained-towards-more-efficient-language-models-7f9c6e6b7251","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*TRfxFbnLDx9IqpvghpbURA.jpeg","originalWidth":1152,"originalHeight":896,"isFeatured":true}},{"name":"b57a","type":3,"text":"Mistral 7B Explained: Towards More Efficient Language Models","markups":[],"alignment":1},{"name":"9c20","type":13,"text":"RMS Norm, RoPE, GQA, SWA, KV Cache, and…","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"RMS Norm, RoPE, GQA, SWA, KV Cache, and more!"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"7f60cf5620c9","isNewsletter":false,"newsletterId":"0f164e675ad2","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":1,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"primaryTopicId":"1eca0103fff3","isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"b57a","type":3,"text":"Mistral 7B Explained: Towards More Efficient Language Models","markups":[]},{"name":"9c20","type":13,"text":"RMS Norm, RoPE, GQA, SWA, KV Cache, and more!","markups":[]},{"name":"f08d","type":1,"text":"Part 5 in the “LLMs from Scratch” series — a complete guide to understanding and building Large Language Models. If you are interested in learning more about how these models work I encourage you to read:","markups":[{"type":1,"start":0,"end":204}]},{"name":"1153","type":9,"text":"Part 1: Tokenization — A Complete Guide","markups":[{"type":3,"start":0,"end":39,"href":"https://medium.com/p/cedc9f72de4e","title":"","rel":"","anchorType":0}]},{"name":"ab90","type":9,"text":"Part 2: Word Embeddings with word2vec from…","markups":[{"type":3,"start":0,"end":60,"href":"https://medium.com/p/eb9326c6ab7c/","title":"","rel":"","anchorType":0}]}],"sections":[{"name":"0d80","startIndex":0}]},"isFullContent":false,"subtitle":"RMS Norm, RoPE, GQA, SWA, KV Cache, and more!"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":true,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"4e77aa46336f":{"id":"4e77aa46336f","versionId":"2cc0ea23dbd8","creatorId":"1cac491223b2","homeCollectionId":"7f60cf5620c9","title":"Data Scientist Answers the Most Popular Data Science Questions","detectedLanguage":"en","latestVersion":"2cc0ea23dbd8","latestPublishedVersion":"2cc0ea23dbd8","hasUnpublishedEdits":false,"latestRev":987,"createdAt":1732004046123,"updatedAt":1732676244895,"acceptedAt":0,"firstPublishedAt":1732643414376,"latestPublishedAt":1732644646706,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"All-around guidance for prospective data scientists","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*ks-c7RLyaHiphYSw","filter":"","backgroundSize":"","originalWidth":5184,"originalHeight":3456,"strategy":"resample","height":0,"width":0},"wordCount":1381,"imageCount":1,"readingTime":5.411320754716981,"subtitle":"All-around guidance for prospective data scientists","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":6,"isBookmarked":false,"tags":[{"slug":"data-science","name":"Data Science","postCount":347124,"metadata":{"postCount":347124,"coverImage":{"id":"1*Dle6kaxhQo1a0zVb96eBkw.jpeg","originalWidth":1280,"originalHeight":1280}},"type":"Tag"},{"slug":"machine-learning","name":"Machine Learning","postCount":354197,"metadata":{"postCount":354197,"coverImage":{"id":"1*8yJrgGPFwHBY8lpIFg7ERQ.png","originalWidth":940,"originalHeight":788,"isFeatured":true}},"type":"Tag"},{"slug":"artificial-intelligence","name":"Artificial Intelligence","postCount":458956,"metadata":{"postCount":458956,"coverImage":{"id":"1*gAn_BSffVBcwCIR6bDgK1g.jpeg"}},"type":"Tag"},{"slug":"statistics","name":"Statistics","postCount":33662,"metadata":{"postCount":33662,"coverImage":{"id":"1*o1TEM-f7h6kCYOTGOfw0GQ.jpeg","originalWidth":2048,"originalHeight":1536,"isFeatured":true,"alt":"A small child and their distorted reflection in a funfair house of mirrors"}},"type":"Tag"},{"slug":"coding","name":"Coding","postCount":146822,"metadata":{"postCount":146822,"coverImage":{"id":"1*IodtST4Qfwjaur7Pnn9kXg.png","originalWidth":1280,"originalHeight":720,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":1,"links":{"entries":[{"url":"https://newsletter.egorhowell.com/","alts":[],"httpStatus":403},{"url":"https://towardsdatascience.com/sql-knowledge-you-need-for-data-science-5cf0c15515e4","alts":[{"type":3,"url":"medium://p/5cf0c15515e4"},{"type":2,"url":"medium://p/5cf0c15515e4"}],"httpStatus":200},{"url":"https://unsplash.com/@emilymorter?utm_source=medium&utm_medium=referral","alts":[],"httpStatus":200},{"url":"https://www.youtube.com/@egorhowell","alts":[{"type":2,"url":"vnd.youtube://www.youtube.com/channel/UC9Tl0-lzeDPH4y7LcRwRSQA"},{"type":3,"url":"https://www.youtube.com/channel/UC9Tl0-lzeDPH4y7LcRwRSQA?feature=applinks"}],"httpStatus":200},{"url":"https://pub.towardsai.net/best-data-science-books-courses-to-get-a-job-07e30b92f58b","alts":[{"type":2,"url":"medium://p/07e30b92f58b"},{"type":3,"url":"medium://p/07e30b92f58b"}],"httpStatus":200},{"url":"https://unsplash.com?utm_source=medium&utm_medium=referral","alts":[],"httpStatus":200},{"url":"https://www.linkedin.com/in/egorhowell/","alts":[],"httpStatus":999},{"url":"https://dishingthedata.substack.com/","alts":[],"httpStatus":403},{"url":"https://www.instagram.com/egorhowell/","alts":[],"httpStatus":200},{"url":"https://topmate.io/egorhowell","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1732644646918},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":80,"sectionCount":3,"readingList":0,"topics":[{"topicId":"1eca0103fff3","slug":"machine-learning","createdAt":1534449726145,"deletedAt":0,"image":{"id":"1*gFJS3amhZEg_z39D5EErVg@2x.png","originalWidth":2800,"originalHeight":1750},"name":"Machine Learning","description":"Teaching the learners.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Machine Learning News and Articles — Medium","type":"Topic"},{"topicId":"ae5d4995e225","slug":"data-science","createdAt":1493923906289,"deletedAt":0,"image":{"id":"1*NHWOEki_ncCX-xzbKtkEWw@2x.jpeg","originalWidth":5760,"originalHeight":3840},"name":"Data Science","description":"Query this.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Data Science News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"data-scientist-answers-the-most-popular-data-science-questions","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":2,"uniqueSlug":"data-scientist-answers-the-most-popular-data-science-questions-4e77aa46336f","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*ks-c7RLyaHiphYSw","originalWidth":5184,"originalHeight":3456,"isFeatured":true,"unsplashPhotoId":"8xAA0f9yQnE"}},{"name":"3a08","type":3,"text":"Data Scientist Answers the Most Popular Data Science Questions","markups":[],"alignment":1},{"name":"efba","type":13,"text":"All-around guidance for prospective…","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"All-around guidance for prospective data scientists"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"7f60cf5620c9","isNewsletter":false,"newsletterId":"3d002bb81b90","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":true,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":true,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":1,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":0,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":1732449388113,"primaryTopicId":"ae5d4995e225","isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"3a08","type":3,"text":"Data Scientist Answers the Most Popular Data Science Questions","markups":[]},{"name":"efba","type":13,"text":"All-around guidance for prospective data scientists","markups":[]},{"name":"9e01","type":4,"text":"Photo by Emily Morter on Unsplash","markups":[{"type":3,"start":9,"end":21,"href":"https://unsplash.com/@emilymorter?utm_source=medium&utm_medium=referral","title":"","rel":"photo-creator","anchorType":0},{"type":3,"start":25,"end":33,"href":"https://unsplash.com?utm_source=medium&utm_medium=referral","title":"","rel":"photo-source","anchorType":0}],"layout":1,"metadata":{"id":"0*ks-c7RLyaHiphYSw","originalWidth":5184,"originalHeight":3456,"isFeatured":true,"unsplashPhotoId":"8xAA0f9yQnE"}},{"name":"553f","type":1,"text":"I have been a data scientist for over three years now, so I want to write a post answering the most popular data science questions I have gotten in the comment section of my YouTube channel and Medium articles.","markups":[]},{"name":"79b8","type":1,"text":"The questions are structured by technical, career advice, and then miscellaneous…","markups":[]}],"sections":[{"name":"06c1","startIndex":0},{"name":"9873","startIndex":3}]},"isFullContent":false,"subtitle":"All-around guidance for prospective data scientists"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":true,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"2494ca1b3f96":{"id":"2494ca1b3f96","versionId":"826c126996f9","creatorId":"2b42227db6a9","homeCollectionId":"7f60cf5620c9","title":"Explainable Generic ML Pipeline with MLflow","detectedLanguage":"en","latestVersion":"826c126996f9","latestPublishedVersion":"826c126996f9","hasUnpublishedEdits":false,"latestRev":3094,"createdAt":1725968191425,"updatedAt":1732675722350,"acceptedAt":0,"firstPublishedAt":1732643276402,"latestPublishedAt":1732643276402,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"An end-to-end demo to wrap a pre-processor and explainer into an algorithm-agnostic ML pipeline with mlflow.pyfunc","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*rxeyWMHZrwJBbfRVQMv_JA.jpeg","filter":"","backgroundSize":"","originalWidth":3887,"originalHeight":2588,"strategy":"resample","height":0,"width":0},"wordCount":3104,"imageCount":5,"readingTime":12.546540880503144,"subtitle":"An end-to-end demo to wrap a pre-processor and explainer into an algorithm-agnostic ML pipeline with mlflow.pyfunc","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":5,"isBookmarked":false,"tags":[{"slug":"mlops","name":"Mlops","postCount":8132,"metadata":{"postCount":8132,"coverImage":{"id":"0*qG13YHZ1YB_GF1GZ","originalWidth":4592,"originalHeight":3448}},"type":"Tag"},{"slug":"machine-learning","name":"Machine Learning","postCount":354197,"metadata":{"postCount":354197,"coverImage":{"id":"1*8yJrgGPFwHBY8lpIFg7ERQ.png","originalWidth":940,"originalHeight":788,"isFeatured":true}},"type":"Tag"},{"slug":"mlflow","name":"Mlflow","postCount":803,"metadata":{"postCount":803,"coverImage":{"id":"0*N76qnPkROXPsOFiE","originalWidth":1024,"originalHeight":1024,"isFeatured":true}},"type":"Tag"},{"slug":"databricks","name":"Databricks","postCount":4560,"metadata":{"postCount":4560,"coverImage":{"id":"0*N76qnPkROXPsOFiE","originalWidth":1024,"originalHeight":1024,"isFeatured":true}},"type":"Tag"},{"slug":"hands-on-tutorials","name":"Hands On Tutorials","postCount":1860,"metadata":{"postCount":1860,"coverImage":{"id":"0*GsGgqHBQlZiLSxqQ","originalWidth":1792,"originalHeight":1024,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"https://x.com/mena_wang","alts":[],"httpStatus":200},{"url":"https://unsplash.com/photos/person-holding-ball-focus-on-tree-pTfdcT0hxGc?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash","alts":[],"httpStatus":200},{"url":"https://github.com/MenaWANG","alts":[],"httpStatus":200},{"url":"https://unsplash.com/@hannahj236?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash","alts":[],"httpStatus":200},{"url":"https://github.com/MenaWANG/mlflow-demo/blob/main/pyfunc_pipeline.ipynb","alts":[],"httpStatus":200},{"url":"https://menawang.medium.com/","alts":[{"type":2,"url":"medium://@menawang"},{"type":3,"url":"medium://@menawang"}],"httpStatus":200},{"url":"https://github.com/MenaWANG/ML_toy_examples/blob/main/explain%20models/shap_lightgbm_classification.ipynb","alts":[],"httpStatus":200},{"url":"https://github.com/MenaWANG/ML_toy_examples/blob/main/explain%20models/shap_basic_RF_classification.ipynb","alts":[],"httpStatus":200},{"url":"https://github.com/MenaWANG/ML_toy_examples/blob/main/explain%20models/shap_XGB_classification.ipynb","alts":[],"httpStatus":200},{"url":"https://github.com/MenaWANG/ML_toy_examples/blob/main/explain%20models/shap_basic_regression.ipynb","alts":[],"httpStatus":200},{"url":"https://towardsdatascience.com/algorithm-agnostic-model-building-with-mlflow-b106a5a29535","alts":[{"type":3,"url":"medium://p/b106a5a29535"},{"type":2,"url":"medium://p/b106a5a29535"}],"httpStatus":200},{"url":"https://www.linkedin.com/in/mena-ning-wang/","alts":[],"httpStatus":999}],"version":"0.3","generatedAt":1732643337515},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":83,"sectionCount":3,"readingList":0,"topics":[{"topicId":"1eca0103fff3","slug":"machine-learning","createdAt":1534449726145,"deletedAt":0,"image":{"id":"1*gFJS3amhZEg_z39D5EErVg@2x.png","originalWidth":2800,"originalHeight":1750},"name":"Machine Learning","description":"Teaching the learners.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Machine Learning News and Articles — Medium","type":"Topic"},{"topicId":"96f161863a28","slug":"product-management","createdAt":1545072594068,"deletedAt":0,"image":{"id":"1*FrDceIp-Kg1_gi8QKNYvYA@2x.jpeg","originalWidth":4000,"originalHeight":2666},"name":"Product Management","description":"Bridging the gaps.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Product Management: Articles and News — Medium","type":"Topic"}]},"coverless":true,"slug":"explainable-generic-ml-pipeline-with-mlflow","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"explainable-generic-ml-pipeline-with-mlflow-2494ca1b3f96","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*rxeyWMHZrwJBbfRVQMv_JA.jpeg","originalWidth":3887,"originalHeight":2588,"isFeatured":true,"alt":"A glass ball reflecting a flower tree, Photo by Hannah Murrell on Unsplash"}},{"name":"3da6","type":3,"text":"Explainable Generic ML Pipeline with MLflow","markups":[],"alignment":1},{"name":"e1b0","type":13,"text":"An end-to-end demo to wrap a pre-processor and explainer…","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"An end-to-end demo to wrap a pre-processor and explainer into an algorithm-agnostic ML pipeline with mlflow.pyfunc"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"7f60cf5620c9","isNewsletter":false,"newsletterId":"b5be51cbc6c9","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":0,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"primaryTopicId":"1eca0103fff3","isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"3da6","type":3,"text":"Explainable Generic ML Pipeline with MLflow","markups":[]},{"name":"e1b0","type":13,"text":"An end-to-end demo to wrap a pre-processor and explainer into an algorithm-agnostic ML pipeline with mlflow.pyfunc","markups":[{"type":10,"start":101,"end":114}]},{"name":"8c39","type":4,"text":"Photo by Hannah Murrell on Unsplash","markups":[{"type":3,"start":9,"end":23,"href":"https://unsplash.com/@hannahj236?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash","title":"","rel":"","anchorType":0},{"type":3,"start":27,"end":35,"href":"https://unsplash.com/photos/person-holding-ball-focus-on-tree-pTfdcT0hxGc?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash","title":"","rel":"","anchorType":0}],"layout":1,"metadata":{"id":"1*rxeyWMHZrwJBbfRVQMv_JA.jpeg","originalWidth":3887,"originalHeight":2588,"isFeatured":true,"alt":"A glass ball reflecting a flower tree, Photo by Hannah Murrell on Unsplash"}},{"name":"cf1b","type":3,"text":"Intro","markups":[{"type":1,"start":0,"end":5}]},{"name":"ab1a","type":1,"text":"One common challenge in MLOps is the hassle of migrating between various algorithms or frameworks. To tackle the challenge, this is my second article on the topic of generic model building using mlflow.pyfunc.","markups":[{"type":10,"start":195,"end":208}]},{"name":"4fbc","type":1,"text":"In my previous article, I offered a beginner-friendly step-by-step demo on creating a minimalist algorithm-agnostic model wrapper.","markups":[]},{"name":"a169","type":14,"text":"Algorithm-Agnostic Model Building with MLflow\nA beginner-friendly step-by-step guide to creating generic ML pipelines using mlflow.pyfunctowardsdatascience.com","markups":[{"type":3,"start":0,"end":159,"href":"https://towardsdatascience.com/algorithm-agnostic-model-building-with-mlflow-b106a5a29535","title":"https://towardsdatascience.com/algorithm-agnostic-model-building-with-mlflow-b106a5a29535","rel":"","anchorType":0},{"type":1,"start":0,"end":45},{"type":2,"start":46,"end":137}],"mixtapeMetadata":{"mediaResourceId":"a77de1da1db7bfcd73b8eacdf2c4a06d","thumbnailImageId":"1*I20xIXwlgYSKdchh6kDWnQ.png","href":"https://towardsdatascience.com/algorithm-agnostic-model-building-with-mlflow-b106a5a29535"}},{"name":"2ecc","type":1,"text":"…","markups":[]}],"sections":[{"name":"b4f1","startIndex":0}]},"isFullContent":false,"subtitle":"An end-to-end demo to wrap a pre-processor and explainer into an algorithm-agnostic ML pipeline with mlflow.pyfunc"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":true,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"19fb88fddf71":{"id":"19fb88fddf71","versionId":"7cdf89199189","creatorId":"9440b37e27fe","homeCollectionId":"7f60cf5620c9","title":"Optimizing Transformer Models for Variable-Length Input Sequences","detectedLanguage":"en","latestVersion":"7cdf89199189","latestPublishedVersion":"7cdf89199189","hasUnpublishedEdits":false,"latestRev":3046,"createdAt":1731955951249,"updatedAt":1732675466064,"acceptedAt":0,"firstPublishedAt":1732632319169,"latestPublishedAt":1732646897066,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"How PyTorch NestedTensors, FlashAttention2, and xFormers can Boost Performance and Reduce AI Costs","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*KTgbpA3zQGTR4ugq","filter":"","backgroundSize":"","originalWidth":5184,"originalHeight":3888,"strategy":"resample","height":0,"width":0},"wordCount":3527,"imageCount":3,"readingTime":13.859433962264152,"subtitle":"How PyTorch NestedTensors, FlashAttention2, and xFormers can Boost Performance and Reduce AI Costs","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":2,"isBookmarked":false,"tags":[{"slug":"genai","name":"Genai","postCount":7714,"metadata":{"postCount":7714,"coverImage":{"id":"1*DTC_r3ofnQ6HsIwm_lIzkQ.png","originalWidth":3244,"originalHeight":3524,"isFeatured":true}},"type":"Tag"},{"slug":"pytorch","name":"Pytorch","postCount":7182,"metadata":{"postCount":7182,"coverImage":{"id":"0*lrOei3pkOtgNhjqF","originalWidth":4928,"originalHeight":3264,"isFeatured":true,"unsplashPhotoId":"4Fi_4Q6_eFM"}},"type":"Tag"},{"slug":"transformer-model","name":"Transformer Model","postCount":430,"metadata":{"postCount":430,"coverImage":{"id":"0*lrOei3pkOtgNhjqF","originalWidth":4928,"originalHeight":3264,"isFeatured":true,"unsplashPhotoId":"4Fi_4Q6_eFM"}},"type":"Tag"},{"slug":"machine-learning","name":"Machine Learning","postCount":354197,"metadata":{"postCount":354197,"coverImage":{"id":"1*8yJrgGPFwHBY8lpIFg7ERQ.png","originalWidth":940,"originalHeight":788,"isFeatured":true}},"type":"Tag"},{"slug":"artificial-intelligence","name":"Artificial Intelligence","postCount":458956,"metadata":{"postCount":458956,"coverImage":{"id":"1*gAn_BSffVBcwCIR6bDgK1g.jpeg"}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"https://unsplash.com?utm_source=medium&utm_medium=referral","alts":[],"httpStatus":200},{"url":"https://pypi.org/project/xformers/","alts":[],"httpStatus":200},{"url":"https://huggingface.co/","alts":[],"httpStatus":200},{"url":"https://pypi.org/project/flash-attn/","alts":[],"httpStatus":200},{"url":"https://facebookresearch.github.io/xformers/components/ops.html#xformers.ops.memory_efficient_attention","alts":[],"httpStatus":200},{"url":"https://en.wikipedia.org/wiki/GPT","alts":[],"httpStatus":200},{"url":"https://www.nvidia.com/en-eu/data-center/h100/","alts":[],"httpStatus":200},{"url":"https://facebookresearch.github.io/xformers/components/ops.html","alts":[],"httpStatus":200},{"url":"https://facebookresearch.github.io/xformers/_modules/xformers/ops/fmha/attn_bias.html#BlockDiagonalMask","alts":[],"httpStatus":200},{"url":"https://pytorch.org/docs/stable/generated/torch.stack.html","alts":[],"httpStatus":200},{"url":"https://pytorch.org/tutorials/prototype/nestedtensor.html","alts":[],"httpStatus":200},{"url":"https://pytorch.org/","alts":[],"httpStatus":200},{"url":"https://pytorch.org/blog/flexattention/#document-maskingjagged-sequences","alts":[],"httpStatus":200},{"url":"https://pytorch.org/docs/stable/nested.html#supported-operations","alts":[],"httpStatus":200},{"url":"https://huggingface.co/blog/packing-with-FA2","alts":[],"httpStatus":200},{"url":"https://pytorch.org/tutorials/intermediate/scaled_dot_product_attention_tutorial.html#nestedtensor-and-dense-tensor-support","alts":[],"httpStatus":200},{"url":"https://github.com/huggingface/transformers/blob/v4.46.3/src/transformers/modeling_flash_attention_utils.py#L246","alts":[],"httpStatus":200},{"url":"https://developer.nvidia.com/cuda-toolkit","alts":[],"httpStatus":200},{"url":"https://pytorch.org/tutorials/intermediate/scaled_dot_product_attention_tutorial.html","alts":[],"httpStatus":200},{"url":"https://pytorch.org/docs/stable/generated/torch.cat.html#torch.cat","alts":[],"httpStatus":200},{"url":"https://huggingface.co/docs/transformers/v4.46.3/en/model_doc/gpt2#using-flash-attention-2","alts":[],"httpStatus":200},{"url":"https://huggingface.co/docs/transformers/v4.46.3/en/model_doc/gpt2#transformers.GPT2Config","alts":[],"httpStatus":200},{"url":"https://pytorch.org/tutorials/intermediate/scaled_dot_product_attention_tutorial.html#causal-self-attention","alts":[],"httpStatus":200},{"url":"https://pytorch.org/tutorials/prototype/nestedtensor.html#nested-tensor-operations","alts":[],"httpStatus":200},{"url":"https://pytorch.org/docs/stable/generated/torch.nn.Embedding.html","alts":[],"httpStatus":200},{"url":"https://github.com/Dao-AILab/flash-attention/blob/v2.7.0/hopper/flash_attn_interface.py#L429","alts":[],"httpStatus":200},{"url":"https://huggingface.co/docs/transformers/main/en/main_classes/data_collator#transformers.DataCollatorWithFlattening","alts":[],"httpStatus":200},{"url":"https://pytorch.org/tutorials/intermediate/torch_compile_tutorial.html","alts":[],"httpStatus":200},{"url":"https://en.wikipedia.org/wiki/Big_O_notation","alts":[],"httpStatus":200},{"url":"https://huggingface.co/docs/transformers/v4.46.3/en/model_doc/gpt2#transformers.GPT2LMHeadModel","alts":[],"httpStatus":200},{"url":"https://github.com/Dao-AILab/flash-attention","alts":[],"httpStatus":200},{"url":"https://www.linkedin.com/in/peleg-nahaliel-b304a61a5/?originalSubdomain=il","alts":[],"httpStatus":999},{"url":"https://github.com/pytorch/pytorch/blob/v2.5.1/torch/nn/modules/activation.py#L1139","alts":[],"httpStatus":200},{"url":"https://chaimrand.medium.com/","alts":[{"type":2,"url":"medium://@chaimrand"},{"type":3,"url":"medium://@chaimrand"}],"httpStatus":200},{"url":"https://www.linkedin.com/in/yitzhak-levi-49a217201/","alts":[],"httpStatus":999},{"url":"https://unsplash.com/@tanjazoellner?utm_source=medium&utm_medium=referral","alts":[],"httpStatus":200},{"url":"https://towardsdatascience.com/increasing-transformer-model-efficiency-through-attention-layer-optimization-fefa6f87b1d6","alts":[{"type":3,"url":"medium://p/fefa6f87b1d6"},{"type":2,"url":"medium://p/fefa6f87b1d6"}],"httpStatus":200},{"url":"https://github.com/karpathy/nanoGPT/tree/master","alts":[],"httpStatus":200},{"url":"https://www.youtube.com/watch?v=kCc8FmEb1nY","alts":[],"httpStatus":200},{"url":"https://github.com/huggingface/transformers/blob/v4.46.3/src/transformers/models/gpt2/modeling_gpt2.py","alts":[],"httpStatus":200},{"url":"https://github.com/huggingface/transformers/blob/v4.46.3/src/transformers/models/gpt2/modeling_gpt2.py#L985","alts":[],"httpStatus":200},{"url":"https://github.com/huggingface/transformers/blob/v4.46.3/src/transformers/models/gpt2/modeling_gpt2.py#L436","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1732646898195},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":12,"sectionCount":1,"readingList":0,"topics":[{"topicId":"1af65db9c2f8","slug":"artificial-intelligence","createdAt":1487916832419,"deletedAt":0,"image":{"id":"1*A28aHchbaA8zNVXraBq0Ug@2x.jpeg","originalWidth":4866,"originalHeight":3244},"name":"Artificial Intelligence","description":"Born to be bot.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"AI News and Artificial Intelligence Articles — Medium","type":"Topic"},{"topicId":"1eca0103fff3","slug":"machine-learning","createdAt":1534449726145,"deletedAt":0,"image":{"id":"1*gFJS3amhZEg_z39D5EErVg@2x.png","originalWidth":2800,"originalHeight":1750},"name":"Machine Learning","description":"Teaching the learners.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Machine Learning News and Articles — Medium","type":"Topic"},{"topicId":"ae5d4995e225","slug":"data-science","createdAt":1493923906289,"deletedAt":0,"image":{"id":"1*NHWOEki_ncCX-xzbKtkEWw@2x.jpeg","originalWidth":5760,"originalHeight":3840},"name":"Data Science","description":"Query this.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Data Science News and Articles — Medium","type":"Topic"},{"topicId":"decb52b64abf","slug":"programming","createdAt":1493934116328,"deletedAt":0,"image":{"id":"1*iPa136b1cGEO7lvoXg6uHQ@2x.jpeg","originalWidth":6016,"originalHeight":4016},"name":"Programming","description":"The good, the bad, the buggy.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Programming News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"optimizing-transformer-models-for-variable-length-input-sequences","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"optimizing-transformer-models-for-variable-length-input-sequences-19fb88fddf71","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*KTgbpA3zQGTR4ugq","originalWidth":5184,"originalHeight":3888,"isFeatured":true,"unsplashPhotoId":"YDeQtjjTz5g"}},{"name":"8250","type":3,"text":"Optimizing Transformer Models for Variable-Length Input Sequences","markups":[{"type":1,"start":0,"end":65}],"alignment":1},{"name":"a980","type":13,"text":"How PyTorch NestedTensors…","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"How PyTorch NestedTensors, FlashAttention2, and xFormers can Boost Performance and Reduce AI Costs"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"7f60cf5620c9","isNewsletter":false,"newsletterId":"8fd13a464a73","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":0,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"primaryTopicId":"1eca0103fff3","isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"8250","type":3,"text":"Optimizing Transformer Models for Variable-Length Input Sequences","markups":[{"type":1,"start":0,"end":65}]},{"name":"a980","type":13,"text":"How PyTorch NestedTensors, FlashAttention2, and xFormers can Boost Performance and Reduce AI Costs","markups":[]},{"name":"631d","type":4,"text":"Photo by Tanja Zöllner on Unsplash","markups":[{"type":3,"start":9,"end":22,"href":"https://unsplash.com/@tanjazoellner?utm_source=medium&utm_medium=referral","title":"","rel":"photo-creator","anchorType":0},{"type":3,"start":26,"end":34,"href":"https://unsplash.com?utm_source=medium&utm_medium=referral","title":"","rel":"photo-source","anchorType":0}],"layout":1,"metadata":{"id":"0*KTgbpA3zQGTR4ugq","originalWidth":5184,"originalHeight":3888,"isFeatured":true,"unsplashPhotoId":"YDeQtjjTz5g"}},{"name":"663a","type":1,"text":"As generative AI (genAI) models grow in both popularity and scale, so do the computational demands and costs associated with their training and deployment. Optimizing these models is crucial for enhancing their runtime performance and reducing their operational expenses. At the heart of modern genAI systems is the Transformer architecture…","markups":[]}],"sections":[{"name":"d560","startIndex":0}]},"isFullContent":false,"subtitle":"How PyTorch NestedTensors, FlashAttention2, and xFormers can Boost Performance and Reduce AI Costs"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":true,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"40c1c7c05e5c":{"id":"40c1c7c05e5c","versionId":"a3d41f64c92b","creatorId":"5462c48cfc57","homeCollectionId":"7f60cf5620c9","title":"From Data Scientist to Data Manager: My First 3 Months Leading a Team","detectedLanguage":"en","latestVersion":"a3d41f64c92b","latestPublishedVersion":"a3d41f64c92b","hasUnpublishedEdits":false,"latestRev":1626,"createdAt":1730617652666,"updatedAt":1732675593159,"acceptedAt":0,"firstPublishedAt":1732629736948,"latestPublishedAt":1732629736948,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Reflections on moving from hands-on work to mentoring and leading","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"0*JSbKz8U-uRQE7hCQ","filter":"","backgroundSize":"","originalWidth":5184,"originalHeight":3888,"strategy":"resample","height":0,"width":0},"wordCount":1890,"imageCount":1,"readingTime":7.332075471698113,"subtitle":"Reflections on moving from hands-on work to mentoring and leading","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":7,"isBookmarked":false,"tags":[{"slug":"data-science","name":"Data Science","postCount":347124,"metadata":{"postCount":347124,"coverImage":{"id":"1*Dle6kaxhQo1a0zVb96eBkw.jpeg","originalWidth":1280,"originalHeight":1280}},"type":"Tag"},{"slug":"data-analytics","name":"Data Analytics","postCount":27701,"metadata":{"postCount":27701,"coverImage":{"id":"1*UXPfkVtDMG6CVbA6-X_URg.jpeg","originalWidth":1080,"originalHeight":1148}},"type":"Tag"},{"slug":"management","name":"Management","postCount":94190,"metadata":{"postCount":94190,"coverImage":{"id":"1*iA2gos6-vtBzDWtSNX16PQ.jpeg","originalWidth":2250,"originalHeight":1617,"isFeatured":true,"alt":"Staying or gowing away"}},"type":"Tag"},{"slug":"leadership","name":"Leadership","postCount":293651,"metadata":{"postCount":293651,"coverImage":{"id":"1*x3eOBvKInrpkalYofhODIQ.jpeg"}},"type":"Tag"},{"slug":"office-hours","name":"Office Hours","postCount":376,"metadata":{"postCount":376,"coverImage":{"id":"0*JSbKz8U-uRQE7hCQ","originalWidth":5184,"originalHeight":3888,"isFeatured":true,"unsplashPhotoId":"vdXMSiX-n6M"}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":4,"links":{"entries":[{"url":"https://unsplash.com?utm_source=medium&utm_medium=referral","alts":[],"httpStatus":200},{"url":"https://unsplash.com/@mimithian?utm_source=medium&utm_medium=referral","alts":[],"httpStatus":200},{"url":"https://towardsdatascience.com/from-insights-to-impact-presentation-skills-every-data-scientist-needs-045945a681f2","alts":[{"type":3,"url":"medium://p/045945a681f2"},{"type":2,"url":"medium://p/045945a681f2"}],"httpStatus":200},{"url":"https://towardsdatascience.com/my-medium-journey-as-a-data-scientist-6-months-18-articles-and-3-000-followers-c449306e45f7","alts":[{"type":2,"url":"medium://p/c449306e45f7"},{"type":3,"url":"medium://p/c449306e45f7"}],"httpStatus":200},{"url":"https://towardsdatascience.com/beyond-line-and-bar-charts-7-less-common-but-powerful-visualization-types-0503fbaa4131","alts":[{"type":3,"url":"medium://p/0503fbaa4131"},{"type":2,"url":"medium://p/0503fbaa4131"}],"httpStatus":200}],"version":"0.3","generatedAt":1732629737720},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":83,"sectionCount":5,"readingList":0,"topics":[{"topicId":"ae5d4995e225","slug":"data-science","createdAt":1493923906289,"deletedAt":0,"image":{"id":"1*NHWOEki_ncCX-xzbKtkEWw@2x.jpeg","originalWidth":5760,"originalHeight":3840},"name":"Data Science","description":"Query this.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Data Science News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"from-data-scientist-to-data-manager-my-first-3-months-leading-a-team","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":2,"uniqueSlug":"from-data-scientist-to-data-manager-my-first-3-months-leading-a-team-40c1c7c05e5c","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"0*JSbKz8U-uRQE7hCQ","originalWidth":5184,"originalHeight":3888,"isFeatured":true,"unsplashPhotoId":"vdXMSiX-n6M"}},{"name":"803f","type":3,"text":"From Data Scientist to Data Manager: My First 3 Months Leading a Team","markups":[{"type":1,"start":0,"end":69}],"alignment":1},{"name":"d2ab","type":13,"text":"Reflections on moving from…","markups":[{"type":1,"start":0,"end":26}],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Reflections on moving from hands-on work to mentoring and leading"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"7f60cf5620c9","isNewsletter":false,"newsletterId":"ce0bdcb90cb1","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":true,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":true,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":1,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":0,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":1732402898200,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"803f","type":3,"text":"From Data Scientist to Data Manager: My First 3 Months Leading a Team","markups":[{"type":1,"start":0,"end":69}]},{"name":"d2ab","type":13,"text":"Reflections on moving from hands-on work to mentoring and leading","markups":[{"type":1,"start":0,"end":65}]},{"name":"7e5c","type":1,"text":"This is the 7th year in my data science career, a journey filled with dashboards, metrics, analyses, and models. But in August, I stepped into a new territory: becoming a people manager for the first time. To be honest, whenever asked about my career goal in the past, I always…","markups":[]}],"sections":[{"name":"5eb4","startIndex":0}]},"isFullContent":false,"subtitle":"Reflections on moving from hands-on work to mentoring and leading"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":true,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"3c18470ed2ee":{"id":"3c18470ed2ee","versionId":"a8d8e8abb2c5","creatorId":"153452706ad7","homeCollectionId":"7f60cf5620c9","title":"Introducing ft-Q: Improving Vector Compression with Feature-Level Quantization","detectedLanguage":"en","latestVersion":"a8d8e8abb2c5","latestPublishedVersion":"a8d8e8abb2c5","hasUnpublishedEdits":false,"latestRev":2060,"createdAt":1732250757418,"updatedAt":1732675922241,"acceptedAt":0,"firstPublishedAt":1732626134163,"latestPublishedAt":1732626134163,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Pushing quantization to its limits by performing it at the feature level with ft-Quantization (ft-Q)","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*rGbMBcRKV3W1forC_SlvPg.png","filter":"","backgroundSize":"","originalWidth":6622,"originalHeight":3312,"strategy":"resample","height":0,"width":0},"wordCount":2188,"imageCount":10,"readingTime":9.506603773584906,"subtitle":"Pushing quantization to its limits by performing it at the feature level with ft-Quantization (ft-Q)","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":4,"isBookmarked":false,"tags":[{"slug":"quantization","name":"Quantization","postCount":463,"metadata":{"postCount":463,"coverImage":{"id":"1*rGbMBcRKV3W1forC_SlvPg.png","originalWidth":6622,"originalHeight":3312,"isFeatured":true}},"type":"Tag"},{"slug":"vector-database","name":"Vector Database","postCount":1929,"metadata":{"postCount":1929,"coverImage":{"id":"1*cL4lJbdwYn-0UH4SyOYqXw.jpeg","originalWidth":1792,"originalHeight":1019,"isFeatured":true}},"type":"Tag"},{"slug":"vector-embeddings","name":"Vector Embeddings","postCount":181,"metadata":{"postCount":181,"coverImage":{"id":"1*_XDfq2rwgYYSB1OgNh1bzw.png","originalWidth":2048,"originalHeight":1536,"isFeatured":true}},"type":"Tag"},{"slug":"thoughts-and-theory","name":"Thoughts And Theory","postCount":594,"metadata":{"postCount":594,"coverImage":{"id":"1*wtJOJhzuC9lSaaI_iOAReA.jpeg","originalWidth":4069,"originalHeight":2160,"isFeatured":true}},"type":"Tag"},{"slug":"llm","name":"Llm","postCount":27693,"metadata":{"postCount":27693,"coverImage":{"id":"1*8yJrgGPFwHBY8lpIFg7ERQ.png","originalWidth":940,"originalHeight":788,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":1,"links":{"entries":[{"url":"https://github.com/atlantis-nova/simtag","alts":[],"httpStatus":200},{"url":"https://github.com/atlantis-nova/ft-Q","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1732626135249},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":35,"sectionCount":1,"readingList":0,"topics":[{"topicId":"ae5d4995e225","slug":"data-science","createdAt":1493923906289,"deletedAt":0,"image":{"id":"1*NHWOEki_ncCX-xzbKtkEWw@2x.jpeg","originalWidth":5760,"originalHeight":3840},"name":"Data Science","description":"Query this.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Data Science News and Articles — Medium","type":"Topic"},{"topicId":"decb52b64abf","slug":"programming","createdAt":1493934116328,"deletedAt":0,"image":{"id":"1*iPa136b1cGEO7lvoXg6uHQ@2x.jpeg","originalWidth":6016,"originalHeight":4016},"name":"Programming","description":"The good, the bad, the buggy.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Programming News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"introducing-ft-q-improving-vector-compression-with-feature-level-quantization","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":0,"uniqueSlug":"introducing-ft-q-improving-vector-compression-with-feature-level-quantization-3c18470ed2ee","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*rGbMBcRKV3W1forC_SlvPg.png","originalWidth":6622,"originalHeight":3312,"isFeatured":true}},{"name":"01b3","type":13,"text":"Quantization","markups":[],"alignment":1},{"name":"f645","type":3,"text":"Introducing ft-Q: Improving Vector Compression with Feature-Level Quantization","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Pushing quantization to its limits by performing it at the feature level with ft-Quantization (ft-Q)"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"7f60cf5620c9","isNewsletter":false,"newsletterId":"baf764735b0a","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":false,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":false,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":0,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":0,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":0,"isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"01b3","type":13,"text":"Quantization","markups":[]},{"name":"f645","type":3,"text":"Introducing ft-Q: Improving Vector Compression with Feature-Level Quantization","markups":[]},{"name":"2117","type":13,"text":"Pushing quantization to its limits by performing it at the feature level with ft-Quantization (ft-Q)","markups":[]},{"name":"314e","type":1,"text":"***To understand this article, knowledge of embeddings and basic quantization is required. The implementation of this algorithm has been released on GitHub and is fully open-source.","markups":[{"type":3,"start":149,"end":155,"href":"https://github.com/atlantis-nova/ft-Q","title":"","rel":"","anchorType":0},{"type":1,"start":44,"end":55},{"type":1,"start":59,"end":78},{"type":2,"start":0,"end":181}]},{"name":"a004","type":1,"text":"Since the dawn of LLMs, quantization has become one of the most popular memory-saving techniques for production-ready applications. Not long after, it has been…","markups":[]}],"sections":[{"name":"5730","startIndex":0}]},"isFullContent":false,"subtitle":"Pushing quantization to its limits by performing it at the feature level with ft-Quantization (ft-Q)"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":true,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"d1bca7c1772f":{"id":"d1bca7c1772f","versionId":"a625402c032e","creatorId":"b14d1de976eb","homeCollectionId":"7f60cf5620c9","title":"Every Step of the Machine Learning Life Cycle Simply Explained","detectedLanguage":"en","latestVersion":"a625402c032e","latestPublishedVersion":"a625402c032e","hasUnpublishedEdits":false,"latestRev":1949,"createdAt":1731014907681,"updatedAt":1732675834930,"acceptedAt":0,"firstPublishedAt":1732596817161,"latestPublishedAt":1732596817161,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"A comprehensive guide to the ML life cycle with examples in Python","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*_dlG-Cju5ke-DKp8DQ9hiA@2x.jpeg","filter":"","backgroundSize":"","originalWidth":1074,"originalHeight":801,"strategy":"resample","height":0,"width":0},"wordCount":3580,"imageCount":8,"readingTime":14.642767295597483,"subtitle":"A comprehensive guide to the ML life cycle with examples in Python","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":11,"isBookmarked":false,"tags":[{"slug":"data-science","name":"Data Science","postCount":347124,"metadata":{"postCount":347124,"coverImage":{"id":"1*Dle6kaxhQo1a0zVb96eBkw.jpeg","originalWidth":1280,"originalHeight":1280}},"type":"Tag"},{"slug":"machine-learning","name":"Machine Learning","postCount":354197,"metadata":{"postCount":354197,"coverImage":{"id":"1*8yJrgGPFwHBY8lpIFg7ERQ.png","originalWidth":940,"originalHeight":788,"isFeatured":true}},"type":"Tag"},{"slug":"python","name":"Python","postCount":259576,"metadata":{"postCount":259576,"coverImage":{"id":"0*GsGgqHBQlZiLSxqQ","originalWidth":1792,"originalHeight":1024,"isFeatured":true}},"type":"Tag"},{"slug":"getting-started","name":"Getting Started","postCount":4505,"metadata":{"postCount":4505,"coverImage":{"id":"1*C9g9dY3ryVlQJ6TmlasFYA.png","originalWidth":1024,"originalHeight":1024,"isFeatured":true}},"type":"Tag"},{"slug":"ml-lifecycle","name":"Ml Lifecycle","postCount":39,"metadata":{"postCount":39,"coverImage":{"id":"1*_dlG-Cju5ke-DKp8DQ9hiA@2x.jpeg","originalWidth":1074,"originalHeight":801,"backgroundSize":"","filter":"","isFeatured":true,"externalSrc":"","focusPercentX":-1,"focusPercentY":-1,"alt":"","repairedAt":0,"unsplashPhotoId":""}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":1,"links":{"entries":[{"url":"https://creativecommons.org/publicdomain/zero/1.0/","alts":[],"httpStatus":200},{"url":"https://www.projectpro.io/article/machine-learning-model-deployment/872","alts":[],"httpStatus":200},{"url":"https://www.kaggle.com/datasets/robikscube/hourly-energy-consumption?resource=download&select=pjm_hourly_est.csv","alts":[],"httpStatus":200},{"url":"https://github.com/hadenpell/Medium-Tutorials/tree/main/ML-Life-Cycle-Tutorial","alts":[],"httpStatus":200},{"url":"https://medium.com/@pelletierhaden/subscribe","alts":[],"httpStatus":200},{"url":"https://medium.com/@pelletierhaden/what-is-model-decay-8fe69ce40348","alts":[{"type":3,"url":"medium://p/8fe69ce40348"},{"type":2,"url":"medium://p/8fe69ce40348"}],"httpStatus":200},{"url":"https://towardsdatascience.com/how-to-cross-validation-with-time-series-data-9802a06272c6","alts":[{"type":3,"url":"medium://p/9802a06272c6"},{"type":2,"url":"medium://p/9802a06272c6"}],"httpStatus":200},{"url":"https://towardsdatascience.com/baseline-models-in-time-series-c76d44a826b3","alts":[{"type":3,"url":"medium://p/c76d44a826b3"},{"type":2,"url":"medium://p/c76d44a826b3"}],"httpStatus":200},{"url":"https://towardsdatascience.com/data-scaling-101-standardization-and-min-max-scaling-explained-60789833e160","alts":[{"type":2,"url":"medium://p/60789833e160"},{"type":3,"url":"medium://p/60789833e160"}],"httpStatus":200},{"url":"https://towardsdatascience.com/how-to-handle-missing-data-for-time-series-680810f648ed","alts":[{"type":2,"url":"medium://p/680810f648ed"},{"type":3,"url":"medium://p/680810f648ed"}],"httpStatus":200},{"url":"https://python.plainenglish.io/bayesian-optimization-faster-hyperparameter-tuning-in-python-4b13c0a00454","alts":[{"type":3,"url":"medium://p/4b13c0a00454"},{"type":2,"url":"medium://p/4b13c0a00454"}],"httpStatus":200},{"url":"https://www.linkedin.com/in/hadenpelletier/","alts":[],"httpStatus":999},{"url":"https://towardsdatascience.com/cyclical-encoding-an-alternative-to-one-hot-encoding-for-time-series-features-4db46248ebba","alts":[{"type":2,"url":"medium://p/4db46248ebba"},{"type":3,"url":"medium://p/4db46248ebba"}],"httpStatus":200},{"url":"https://python.plainenglish.io/bayesian-optimization-faster-hyperparameter-tuning-in-python-4b13c0a00454?gi=fe5ed085e906","alts":[{"type":3,"url":"medium://p/4b13c0a00454"},{"type":2,"url":"medium://p/4b13c0a00454"}],"httpStatus":200},{"url":"https://towardsdatascience.com/3-simple-statistical-methods-for-outlier-detection-db762e86cd9d","alts":[{"type":3,"url":"medium://p/db762e86cd9d"},{"type":2,"url":"medium://p/db762e86cd9d"}],"httpStatus":200}],"version":"0.3","generatedAt":1732596818335},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":37,"sectionCount":1,"readingList":0,"topics":[{"topicId":"1eca0103fff3","slug":"machine-learning","createdAt":1534449726145,"deletedAt":0,"image":{"id":"1*gFJS3amhZEg_z39D5EErVg@2x.png","originalWidth":2800,"originalHeight":1750},"name":"Machine Learning","description":"Teaching the learners.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Machine Learning News and Articles — Medium","type":"Topic"},{"topicId":"96f161863a28","slug":"product-management","createdAt":1545072594068,"deletedAt":0,"image":{"id":"1*FrDceIp-Kg1_gi8QKNYvYA@2x.jpeg","originalWidth":4000,"originalHeight":2666},"name":"Product Management","description":"Bridging the gaps.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Product Management: Articles and News — Medium","type":"Topic"},{"topicId":"ae5d4995e225","slug":"data-science","createdAt":1493923906289,"deletedAt":0,"image":{"id":"1*NHWOEki_ncCX-xzbKtkEWw@2x.jpeg","originalWidth":5760,"originalHeight":3840},"name":"Data Science","description":"Query this.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Data Science News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"every-step-of-the-machine-learning-life-cycle-simply-explained","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":false,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":2,"uniqueSlug":"every-step-of-the-machine-learning-life-cycle-simply-explained-d1bca7c1772f","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*_dlG-Cju5ke-DKp8DQ9hiA@2x.jpeg","originalWidth":1074,"originalHeight":801,"backgroundSize":"","filter":"","isFeatured":true,"externalSrc":"","focusPercentX":-1,"focusPercentY":-1,"alt":"","repairedAt":0,"unsplashPhotoId":""}},{"name":"3e4c","type":2,"text":"Every Step of the Machine Learning Life Cycle Simply Explained","markups":[],"alignment":1},{"name":"1dc6","type":13,"text":"A comprehensive guide to the ML life…","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"A comprehensive guide to the ML life cycle with examples in Python"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"7f60cf5620c9","isNewsletter":false,"newsletterId":"e0dd935610a2","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":true,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":true,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":1,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":0,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":1732386575326,"primaryTopicId":"1eca0103fff3","isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"3e4c","type":2,"text":"Every Step of the Machine Learning Life Cycle Simply Explained","markups":[]},{"name":"1dc6","type":13,"text":"A comprehensive guide to the ML life cycle, step by step with examples in Python","markups":[]},{"name":"48dd","type":4,"text":"The machine learning life cycle. Image by author","markups":[],"layout":1,"metadata":{"id":"1*_dlG-Cju5ke-DKp8DQ9hiA@2x.jpeg","originalWidth":1074,"originalHeight":801,"backgroundSize":"","filter":"","isFeatured":true,"externalSrc":"","focusPercentX":-1,"focusPercentY":-1,"alt":"","repairedAt":0,"unsplashPhotoId":""}},{"name":"5995","type":3,"text":"The machine learning life cycle","markups":[{"type":1,"start":0,"end":31,"href":"","title":"","rel":"","name":"","anchorType":0,"creatorIds":[],"userId":""}]},{"name":"6186","type":1,"text":"If you’ve been in the data science space for any amount of time, you’ve most likely heard this buzz term.","markups":[]},{"name":"110c","type":1,"text":"The machine learning life cycle.","markups":[{"type":1,"start":0,"end":32}]},{"name":"0d02","type":1,"text":"It sounds fancy, but this is what it really boils down to:","markups":[]},{"name":"f213","type":9,"text":"Machine learning is an active and dynamic process — it doesn’t have a…","markups":[]}],"sections":[{"name":"10a3","startIndex":0,"textLayout":1,"imageLayout":1,"backgroundColor":1,"type":0,"videoLayout":1}]},"isFullContent":false,"subtitle":"A comprehensive guide to the ML life cycle with examples in Python"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":true,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"3d26b3ebd627":{"id":"3d26b3ebd627","versionId":"ae7a8ed66715","creatorId":"d11c06040ced","homeCollectionId":"7f60cf5620c9","title":"RAGOps Guide: Building and Scaling Retrieval Augmented Generation Systems","detectedLanguage":"en","latestVersion":"ae7a8ed66715","latestPublishedVersion":"ae7a8ed66715","hasUnpublishedEdits":false,"latestRev":2708,"createdAt":1732333512955,"updatedAt":1732676010134,"acceptedAt":0,"firstPublishedAt":1732596610763,"latestPublishedAt":1732596610763,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"The Architecture, Operational Layers, and Best Practices for Effective RAG Implementation","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*C9g9dY3ryVlQJ6TmlasFYA.png","filter":"","backgroundSize":"","originalWidth":1024,"originalHeight":1024,"strategy":"resample","height":0,"width":0},"wordCount":5384,"imageCount":17,"readingTime":21.916981132075474,"subtitle":"The Architecture, Operational Layers, and Best Practices for Effective RAG Implementation","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":15,"isBookmarked":false,"tags":[{"slug":"retrieval-augmented","name":"Retrieval Augmented","postCount":1392,"metadata":{"postCount":1392,"coverImage":{"id":"1*C9g9dY3ryVlQJ6TmlasFYA.png","originalWidth":1024,"originalHeight":1024,"isFeatured":true}},"type":"Tag"},{"slug":"llm","name":"Llm","postCount":27693,"metadata":{"postCount":27693,"coverImage":{"id":"1*8yJrgGPFwHBY8lpIFg7ERQ.png","originalWidth":940,"originalHeight":788,"isFeatured":true}},"type":"Tag"},{"slug":"generative-ai-tools","name":"Generative Ai Tools","postCount":17167,"metadata":{"postCount":17167,"coverImage":{"id":"0*9qv8c-yBhr6mgJVF.png","originalWidth":1017,"originalHeight":517,"isFeatured":true}},"type":"Tag"},{"slug":"artificial-intelligence","name":"Artificial Intelligence","postCount":458956,"metadata":{"postCount":458956,"coverImage":{"id":"1*gAn_BSffVBcwCIR6bDgK1g.jpeg"}},"type":"Tag"},{"slug":"getting-started","name":"Getting Started","postCount":4505,"metadata":{"postCount":4505,"coverImage":{"id":"1*C9g9dY3ryVlQJ6TmlasFYA.png","originalWidth":1024,"originalHeight":1024,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":0,"links":{"entries":[{"url":"https://openai.com/index/dall-e-3/","alts":[],"httpStatus":403},{"url":"https://openai.com/index/introducing-chatgpt-search/","alts":[],"httpStatus":403},{"url":"https://kafka.apache.org/","alts":[],"httpStatus":200},{"url":"https://unstructured.io/","alts":[],"httpStatus":200},{"url":"https://www.searchunify.com/blog/introducing-searchunify-virtual-assistant-suva-an-llm-powered-chatbot-for-proactive-support/","alts":[{"type":1,"url":"https://cdn.ampproject.org/c/s/www.searchunify.com/blog/introducing-searchunify-virtual-assistant-suva-an-llm-powered-chatbot-for-proactive-support/amp/"}],"httpStatus":200},{"url":"https://www.perplexity.ai/","alts":[],"httpStatus":403},{"url":"https://arxiv.org/abs/2005.11401","alts":[],"httpStatus":200},{"url":"https://aws.amazon.com/glue/","alts":[],"httpStatus":200},{"url":"https://neo4j.com/blog/graphrag-manifesto/","alts":[],"httpStatus":200},{"url":"https://www.grandviewresearch.com/industry-analysis/large-language-model-llm-market-report","alts":[],"httpStatus":200},{"url":"https://x.com/abhinav_kimothi","alts":[],"httpStatus":200},{"url":"https://www.llamaindex.ai/blog/ragarch-building-a-no-code-rag-pipeline-configuration-one-click-rag-code-generation-tool-powered-b6e8eeb70089?utm_source=chatgpt.com","alts":[],"httpStatus":200},{"url":"https://you.com/","alts":[],"httpStatus":200},{"url":"https://blog.google/products/search/generative-ai-search/","alts":[],"httpStatus":200},{"url":"https://aman.ai/recsys/LLM/","alts":[],"httpStatus":200},{"url":"https://docs.llamaindex.ai/en/stable/optimizing/production_rag/","alts":[],"httpStatus":200},{"url":"https://venturebeat.com/business/amazon-announces-new-generative-ai-version-of-alexa/","alts":[],"httpStatus":200},{"url":"https://sebastianraschka.com/","alts":[],"httpStatus":200},{"url":"https://docs.google.com/spreadsheets/d/170HErOyOkLDjQfy3TJ6a3XXXM1rHvw_779Sit-KT7uc/edit?gid=0#gid=0","alts":[],"httpStatus":200},{"url":"https://github.com/abhinav-kimothi/A-Simple-Guide-to-RAG","alts":[],"httpStatus":200},{"url":"https://www.instagram.com/akaiworks/","alts":[],"httpStatus":200},{"url":"https://www.manning.com/books/a-simple-guide-to-retrieval-augmented-generation?utm_source=kimothi&utm_medium=affiliate&utm_campaign=book_kimothi&a_aid=kimothi&a_bid=bf40dff6&chan=mm_email","alts":[],"httpStatus":200},{"url":"https://www.manning.com/books/a-simple-guide-to-retrieval-augmented-generation?utm_source=kimothi&utm_medium=affiliate&utm_campaign=book_kimothi&a_aid=kimothi&a_bid=bf40dff6&chan=mm_linkedin","alts":[],"httpStatus":200},{"url":"https://www.manning.com/books/build-a-large-language-model-from-scratch?utm_source=kimothi&utm_medium=affiliate&utm_campaign=book_kimothi&a_aid=kimothi&a_bid=bf40dff6&chan=mm_email","alts":[],"httpStatus":200},{"url":"http://www.yarnit.app/","alts":[],"httpStatus":200},{"url":"https://hellorag.ai/","alts":[],"httpStatus":200},{"url":"https://mng.bz/jXJ9","alts":[],"httpStatus":200},{"url":"https://www.ibm.com/topics/knowledge-graph#:~:text=IBM-,What%20is%20a%20knowledge%20graph?,illustrates%20the%20relationship%20between%20them.","alts":[],"httpStatus":200},{"url":"https://intelliarts.com/blog/retrieval-augmented-generation-language-models/#:~:text=As%20evidence%2C%20Databricks%20reports%20that,RAG%20seems%20more%20than%20beneficial.","alts":[],"httpStatus":200},{"url":"https://medium.com/the-rag-explorer/creating-impact-a-spotlight-on-6-practical-retrieval-augmented-generation-use-cases-b76c41e3f276","alts":[{"type":3,"url":"medium://p/b76c41e3f276"},{"type":2,"url":"medium://p/b76c41e3f276"}],"httpStatus":200},{"url":"https://pub.towardsai.net/a-taxonomy-of-retrieval-augmented-generation-a39eb2c4e2ab","alts":[{"type":3,"url":"medium://p/a39eb2c4e2ab"},{"type":2,"url":"medium://p/a39eb2c4e2ab"}],"httpStatus":200},{"url":"https://cloud.google.com/shell/docs/cloud-shell-tutorials/deploystack/etl-pipeline?gad_source=1&gclid=CjwKCAiAl4a6BhBqEiwAqvrqusTuzd1-FKdlR4pZ-zDk1Hsp8OmEVBi8ByAzVxDf7yOuOhhXHaXqbBoCiSMQAvD_BwE","alts":[],"httpStatus":200},{"url":"https://medium.com/@abhinavkimothi/conversing-with-documents-unleashing-the-power-of-llms-and-langchain-397838127fd","alts":[{"type":3,"url":"medium://p/397838127fd"},{"type":2,"url":"medium://p/397838127fd"}],"httpStatus":200},{"url":"https://medium.com/@abhinavkimothi/3-llm-architectures-f527ed781ba9","alts":[{"type":3,"url":"medium://p/f527ed781ba9"},{"type":2,"url":"medium://p/f527ed781ba9"}],"httpStatus":200},{"url":"https://medium.com/the-rag-explorer/getting-the-most-from-llms-building-a-knowledge-brain-for-retrieval-augmented-generation-3c1568667742","alts":[{"type":3,"url":"medium://p/3c1568667742"},{"type":2,"url":"medium://p/3c1568667742"}],"httpStatus":200},{"url":"https://medium.com/the-rag-explorer/context-is-key-the-significance-of-rag-in-language-models-29a7e8610843","alts":[{"type":2,"url":"medium://p/29a7e8610843"},{"type":3,"url":"medium://p/29a7e8610843"}],"httpStatus":200},{"url":"https://towardsdatascience.com/stop-guessing-and-measure-your-rag-system-to-drive-real-improvements-bfc03f29ede3","alts":[{"type":3,"url":"medium://p/bfc03f29ede3"},{"type":2,"url":"medium://p/bfc03f29ede3"}],"httpStatus":200},{"url":"https://towardsdatascience.com/breaking-it-down-chunking-techniques-for-better-rag-3fd288bf25a0","alts":[{"type":3,"url":"medium://p/3fd288bf25a0"},{"type":2,"url":"medium://p/3fd288bf25a0"}],"httpStatus":200},{"url":"https://www.sportsbusinessjournal.com/Articles/2023/08/29/us-open-ibm-usta.aspx#:~:text=AI%20Commentary%20is%20built%20across,generative%20and%20analytical%20AI%20output.","alts":[],"httpStatus":200},{"url":"https://pub.towardsai.net/generative-ai-terminology-an-evolving-taxonomy-to-get-you-started-4ca487bfe2d8","alts":[{"type":3,"url":"medium://p/4ca487bfe2d8"},{"type":2,"url":"medium://p/4ca487bfe2d8"}],"httpStatus":200},{"url":"https://towardsdatascience.com/beyond-na%C3%AFve-rag-advanced-techniques-for-building-smarter-and-reliable-ai-systems-c4fbcf8718b8","alts":[{"type":3,"url":"medium://p/c4fbcf8718b8"},{"type":2,"url":"medium://p/c4fbcf8718b8"}],"httpStatus":200},{"url":"https://otterly.ai/blog/knowledge-cutoff/","alts":[],"httpStatus":200},{"url":"https://www.linkedin.com/in/abhinav-kimothi/","alts":[],"httpStatus":999},{"url":"https://medium.com/@abhinavkimothi","alts":[{"type":2,"url":"medium://@abhinavkimothi"},{"type":3,"url":"medium://@abhinavkimothi"}],"httpStatus":200},{"url":"https://www.ibm.com/topics/ai-hallucinations","alts":[],"httpStatus":200},{"url":"https://generativeai.pub/rag-value-chain-retrieval-strategies-in-information-augmentation-for-large-language-models-3a44845e1e26","alts":[{"type":3,"url":"medium://p/3a44845e1e26"},{"type":2,"url":"medium://p/3a44845e1e26"}],"httpStatus":200},{"url":"https://pub.towardsai.net/7-retrieval-metrics-for-better-rag-systems-f04c098abbe7","alts":[{"type":3,"url":"medium://p/f04c098abbe7"},{"type":2,"url":"medium://p/f04c098abbe7"}],"httpStatus":200},{"url":"https://azure.microsoft.com/en-in/products/data-factory/?ef_id=_k_CjwKCAiAl4a6BhBqEiwAqvrquuA3VVnprqCI2diCSwwl06WFJKM0ec-ZwB-nJZovpAKS0qZVnMY9LRoCvE8QAvD_BwE_k_&OCID=AIDcmmf1elj9v5_SEM__k_CjwKCAiAl4a6BhBqEiwAqvrquuA3VVnprqCI2diCSwwl06WFJKM0ec-ZwB-nJZovpAKS0qZVnMY9LRoCvE8QAvD_BwE_k_&gad_source=1&gclid=CjwKCAiAl4a6BhBqEiwAqvrquuA3VVnprqCI2diCSwwl06WFJKM0ec-ZwB-nJZovpAKS0qZVnMY9LRoCvE8QAvD_BwE","alts":[],"httpStatus":200},{"url":"https://linktr.ee/abhinavkimothi","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1732596612772},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":97,"sectionCount":32,"readingList":0,"topics":[{"topicId":"1af65db9c2f8","slug":"artificial-intelligence","createdAt":1487916832419,"deletedAt":0,"image":{"id":"1*A28aHchbaA8zNVXraBq0Ug@2x.jpeg","originalWidth":4866,"originalHeight":3244},"name":"Artificial Intelligence","description":"Born to be bot.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"AI News and Artificial Intelligence Articles — Medium","type":"Topic"},{"topicId":"1eca0103fff3","slug":"machine-learning","createdAt":1534449726145,"deletedAt":0,"image":{"id":"1*gFJS3amhZEg_z39D5EErVg@2x.png","originalWidth":2800,"originalHeight":1750},"name":"Machine Learning","description":"Teaching the learners.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Machine Learning News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"ragops-guide-building-and-scaling-retrieval-augmented-generation-systems","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":2,"uniqueSlug":"ragops-guide-building-and-scaling-retrieval-augmented-generation-systems-3d26b3ebd627","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*C9g9dY3ryVlQJ6TmlasFYA.png","originalWidth":1024,"originalHeight":1024,"isFeatured":true}},{"name":"previewTitle","type":3,"text":"RAGOps Guide: Building and Scaling Retrieval Augmented Generation Systems","alignment":1},{"name":"previewSubtitle","type":13,"text":"The Architecture…","alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"The Architecture, Operational Layers, and Best Practices for Effective RAG Implementation"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"7f60cf5620c9","isNewsletter":false,"newsletterId":"3e61d59de202","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":true,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":true,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":1,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":6,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":1732365819447,"primaryTopicId":"1eca0103fff3","isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"88ee","type":13,"text":"Learning Retrieval Augmented Generation","markups":[]},{"name":"8d93","type":3,"text":"RAGOps Guide: Building and Scaling Retrieval Augmented Generation Systems","markups":[]},{"name":"41c5","type":13,"text":"The Architecture, Operational Layers, and Best Practices for Effective RAG Implementation","markups":[]},{"name":"b413","type":4,"text":"RAG Operations (Source: Image Generated by Author using Dall-E 3)","markups":[{"type":3,"start":56,"end":64,"href":"https://openai.com/index/dall-e-3/","title":"","rel":"","anchorType":0}],"layout":1,"metadata":{"id":"1*C9g9dY3ryVlQJ6TmlasFYA.png","originalWidth":1024,"originalHeight":1024,"isFeatured":true}},{"name":"4046","type":1,"text":"It may not come as a surprise that retrieval augmented generation (RAG) is among the most applied techniques in the world of generative AI and large language model-powered applications. In fact, according to a Databricks report, more than 60% of LLM-powered applications use RAG in some form. Therefore, in the…","markups":[{"type":3,"start":211,"end":227,"href":"https://intelliarts.com/blog/retrieval-augmented-generation-language-models/#:~:text=As%20evidence%2C%20Databricks%20reports%20that,RAG%20seems%20more%20than%20beneficial.","title":"","rel":"","anchorType":0},{"type":3,"start":349,"end":406,"href":"https://www.grandviewresearch.com/industry-analysis/large-language-model-llm-market-report","title":"","rel":"","anchorType":0}],"hasDropCap":true}],"sections":[{"name":"254d","startIndex":0}]},"isFullContent":false,"subtitle":"The Architecture, Operational Layers, and Best Practices for Effective RAG Implementation"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":true,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"},"b884d85eb00a":{"id":"b884d85eb00a","versionId":"7a03482b01af","creatorId":"1c040843e458","homeCollectionId":"7f60cf5620c9","title":"Statistical Analysis Using Python: Insights from Cancer Treatment Data","detectedLanguage":"en","latestVersion":"7a03482b01af","latestPublishedVersion":"7a03482b01af","hasUnpublishedEdits":false,"latestRev":2996,"createdAt":1731929233915,"updatedAt":1732589982252,"acceptedAt":0,"firstPublishedAt":1732562420429,"latestPublishedAt":1732562420429,"vote":false,"experimentalCss":"","displayAuthor":"","content":{"subtitle":"Step-by-step exploration of statistical methods, data visualization, and regression analysis","postDisplay":{"coverless":true}},"virtuals":{"statusForCollection":"APPROVED","allowNotes":true,"previewImage":{"imageId":"1*BPH8yH0BZnlLIEfioHRtTQ.png","filter":"","backgroundSize":"","originalWidth":640,"originalHeight":514,"strategy":"resample","height":0,"width":0},"wordCount":7345,"imageCount":40,"readingTime":30.46698113207547,"subtitle":"Step-by-step exploration of statistical methods, data visualization, and regression analysis","publishedInCount":1,"usersBySocialRecommends":[],"noIndex":false,"recommends":17,"isBookmarked":false,"tags":[{"slug":"data-science","name":"Data Science","postCount":347124,"metadata":{"postCount":347124,"coverImage":{"id":"1*Dle6kaxhQo1a0zVb96eBkw.jpeg","originalWidth":1280,"originalHeight":1280}},"type":"Tag"},{"slug":"programming","name":"Programming","postCount":447678,"metadata":{"postCount":447678,"coverImage":{"id":"1*t5dwn8IabnCdEpoO-6Toog.png","originalWidth":1920,"originalHeight":1080,"isFeatured":true,"alt":"Kubernetes"}},"type":"Tag"},{"slug":"python","name":"Python","postCount":259576,"metadata":{"postCount":259576,"coverImage":{"id":"0*GsGgqHBQlZiLSxqQ","originalWidth":1792,"originalHeight":1024,"isFeatured":true}},"type":"Tag"},{"slug":"statistics","name":"Statistics","postCount":33662,"metadata":{"postCount":33662,"coverImage":{"id":"1*o1TEM-f7h6kCYOTGOfw0GQ.jpeg","originalWidth":2048,"originalHeight":1536,"isFeatured":true,"alt":"A small child and their distorted reflection in a funfair house of mirrors"}},"type":"Tag"},{"slug":"hands-on-tutorials","name":"Hands On Tutorials","postCount":1860,"metadata":{"postCount":1860,"coverImage":{"id":"0*GsGgqHBQlZiLSxqQ","originalWidth":1792,"originalHeight":1024,"isFeatured":true}},"type":"Tag"}],"socialRecommendsCount":0,"responsesCreatedCount":1,"links":{"entries":[{"url":"https://www.mcgill.ca/research/files/research/415-_humane_intervention_points_for_rodent_cancer_models.pdf","alts":[],"httpStatus":200}],"version":"0.3","generatedAt":1732562421096},"isLockedPreviewOnly":false,"metaDescription":"","totalClapCount":240,"sectionCount":1,"readingList":0,"topics":[{"topicId":"1eca0103fff3","slug":"machine-learning","createdAt":1534449726145,"deletedAt":0,"image":{"id":"1*gFJS3amhZEg_z39D5EErVg@2x.png","originalWidth":2800,"originalHeight":1750},"name":"Machine Learning","description":"Teaching the learners.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Machine Learning News and Articles — Medium","type":"Topic"},{"topicId":"ae5d4995e225","slug":"data-science","createdAt":1493923906289,"deletedAt":0,"image":{"id":"1*NHWOEki_ncCX-xzbKtkEWw@2x.jpeg","originalWidth":5760,"originalHeight":3840},"name":"Data Science","description":"Query this.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Data Science News and Articles — Medium","type":"Topic"},{"topicId":"decb52b64abf","slug":"programming","createdAt":1493934116328,"deletedAt":0,"image":{"id":"1*iPa136b1cGEO7lvoXg6uHQ@2x.jpeg","originalWidth":6016,"originalHeight":4016},"name":"Programming","description":"The good, the bad, the buggy.","relatedTopics":[],"visibility":1,"relatedTags":[],"relatedTopicIds":[],"seoTitle":"Programming News and Articles — Medium","type":"Topic"}]},"coverless":true,"slug":"statistical-analysis-using-python-insights-from-cancer-treatment-data","translationSourcePostId":"","translationSourceCreatorId":"","isApprovedTranslation":false,"inResponseToPostId":"","inResponseToRemovedAt":0,"isTitleSynthesized":true,"allowResponses":true,"importedUrl":"","importedPublishedAt":0,"visibility":2,"uniqueSlug":"statistical-analysis-using-python-insights-from-cancer-treatment-data-b884d85eb00a","previewContent":{"bodyModel":{"paragraphs":[{"name":"previewImage","type":4,"text":"","layout":10,"metadata":{"id":"1*BPH8yH0BZnlLIEfioHRtTQ.png","originalWidth":640,"originalHeight":514,"isFeatured":true}},{"name":"8d4e","type":3,"text":"Statistical Analysis Using Python: Insights from Cancer Treatment Data","markups":[],"alignment":1},{"name":"e6c7","type":13,"text":"Step-by-step exploration of…","markups":[],"alignment":1}],"sections":[{"startIndex":0}]},"isFullContent":false,"subtitle":"Step-by-step exploration of statistical methods, data visualization, and regression analysis"},"license":0,"inResponseToMediaResourceId":"","canonicalUrl":"","approvedHomeCollectionId":"7f60cf5620c9","isNewsletter":false,"newsletterId":"db281e505cae","webCanonicalUrl":"","mediumUrl":"","migrationId":"","notifyFollowers":true,"notifyTwitter":false,"notifyFacebook":false,"responseHiddenOnParentPostAt":0,"isSeries":false,"isSubscriptionLocked":true,"seriesLastAppendedAt":0,"audioVersionDurationSec":0,"sequenceId":"","isEligibleForRevenue":true,"isBlockedFromHightower":false,"deletedAt":0,"lockedPostSource":1,"hightowerMinimumGuaranteeStartsAt":0,"hightowerMinimumGuaranteeEndsAt":0,"featureLockRequestAcceptedAt":0,"mongerRequestType":1,"layerCake":6,"socialTitle":"","socialDek":"","editorialPreviewTitle":"","editorialPreviewDek":"","curationEligibleAt":1732255516661,"primaryTopicId":"ae5d4995e225","isProxyPost":false,"proxyPostFaviconUrl":"","proxyPostProviderName":"","proxyPostType":0,"isSuspended":false,"isLimitedState":false,"seoTitle":"","previewContent2":{"bodyModel":{"paragraphs":[{"name":"8d4e","type":3,"text":"Statistical Analysis Using Python: Insights from Cancer Treatment Data","markups":[]},{"name":"e6c7","type":13,"text":"Step-by-step exploration of statistical methods, data visualization, and regression analysis","markups":[]},{"name":"585b","type":4,"text":"","markups":[],"layout":1,"metadata":{"id":"1*BPH8yH0BZnlLIEfioHRtTQ.png","originalWidth":640,"originalHeight":514,"isFeatured":true}},{"name":"096b","type":3,"text":"Overview","markups":[]},{"name":"ddd1","type":1,"text":"This project focuses on statistical analysis using Python, applying various techniques to uncover insights from a fictitious dataset inspired by real-world cancer treatment experiments.","markups":[{"type":1,"start":24,"end":57},{"type":1,"start":114,"end":132}]},{"name":"c1aa","type":1,"text":"While the dataset itself is simulated, the project draws inspiration from research standards such as McGill University’s Standard Operating Procedures, emphasizing both data accuracy and ethical…","markups":[{"type":1,"start":101,"end":150},{"type":1,"start":169,"end":182},{"type":1,"start":187,"end":214}]}],"sections":[{"name":"659a","startIndex":0}]},"isFullContent":false,"subtitle":"Step-by-step exploration of statistical methods, data visualization, and regression analysis"},"cardType":0,"isDistributionAlertDismissed":false,"isShortform":false,"shortformType":0,"responsesLocked":false,"isLockedResponse":false,"isPublishToEmail":true,"responseDistribution":0,"isMarkedPaywallOnly":false,"type":"Post"}}},"paging":{"path":"/_/api/collections/7f60cf5620c9/stream","next":{"to":"1732562420429","ignoredIds":[],"page":3}},"collection":{"id":"7f60cf5620c9","name":"Towards Data Science","slug":"towards-data-science","tags":["DATA SCIENCE","MACHINE LEARNING","ARTIFICIAL INTELLIGENCE","DATA ENGINEERING","DATA"],"creatorId":"9c70285657bb","description":"Your home for data science & AI. The world’s leading publication for data science, data analytics, data engineering, machine learning, and artificial intelligence professionals.","shortDescription":"Your home for data science & AI.","image":{"imageId":"1*CJe3891yB1A1mzMdqemkdg.jpeg","filter":"","backgroundSize":"","originalWidth":2861,"originalHeight":2861,"strategy":"resample","height":0,"width":0},"metadata":{"followerCount":768454,"activeAt":1732681627983},"virtuals":{"permissions":{"canPublish":false,"canPublishAll":false,"canRepublish":false,"canRemove":false,"canManageAll":false,"canSubmit":false,"canEditPosts":false,"canAddWriters":false,"canViewStats":false,"canSendNewsletter":false,"canViewLockedPosts":false,"canViewCloaked":false,"canEditOwnPosts":false,"canBeAssignedAuthor":false,"canEnrollInHightower":false,"canLockPostsForMediumMembers":false,"canLockOwnPostsForMediumMembers":false,"canViewNewsletterV2Stats":false,"canCreateNewsletterV3":false},"isSubscribed":false,"isEnrolledInHightower":false,"isEligibleForHightower":false,"isSubscribedToCollectionEmails":false,"isMuted":false,"canToggleEmail":false,"isWriter":false},"logo":{"imageId":"1*cFFKn8rFH4ZndmaYeAs6iQ.png","filter":"","backgroundSize":"","originalWidth":2381,"originalHeight":743,"strategy":"resample","height":0,"width":0},"twitterUsername":"TDataScience","collectionMastheadId":"8b6aceffde6","domain":"towardsdatascience.com","sections":[{"type":2,"collectionHeaderMetadata":{"title":"","description":"The world’s leading publication for data science, AI, data analytics, data engineering and ML professionals.","backgroundImage":{},"logoImage":{"id":"1*1m9fjwOZWwXIP82RWvRH5A@2x.png","originalWidth":1589,"originalHeight":661,"alt":"Towards Data Science"},"alignment":2,"layout":5}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":2,"postIds":["6d718ac40b7d","f6f7920bcc55"]}},{"type":1,"postListMetadata":{"source":1,"layout":4,"number":9,"postIds":["7f9c6e6b7251","4e77aa46336f","2494ca1b3f96","19fb88fddf71","40c1c7c05e5c","3c18470ed2ee","d1bca7c1772f","3d26b3ebd627","b884d85eb00a"],"sectionHeader":"Latest"}},{"type":3,"promoMetadata":{"sectionHeader":"","promoId":"f9f3fdba6ebf"}},{"type":1,"postListMetadata":{"source":4,"layout":4,"number":6,"postIds":[],"tagSlug":"Editors Pick","tagName":"Editors Pick","sectionHeader":"Editors' Picks"}},{"type":1,"postListMetadata":{"source":4,"layout":4,"number":2,"postIds":[],"tagSlug":"Tds Features","tagName":"Tds Features","sectionHeader":"Features"}},{"type":3,"promoMetadata":{"sectionHeader":"","promoId":"efaedc412a41"}},{"type":1,"postListMetadata":{"source":3,"layout":4,"number":3,"postIds":["60bb69a22759","c57724e9c461","69019493b259"],"sectionHeader":"Trending articles"}},{"type":1,"postListMetadata":{"source":3,"layout":4,"number":3,"postIds":["182a5ef6588c","e24b50e1d292","68b2303cc9c5"],"sectionHeader":"Popular from our archive"}},{"type":1,"postListMetadata":{"source":4,"layout":4,"number":6,"postIds":[],"tagSlug":"Deep Dives","tagName":"Deep Dives","sectionHeader":"Deep Dives"}},{"type":1,"postListMetadata":{"source":3,"layout":5,"number":3,"postIds":["d691af11cc2f","c2c8e712c971","3bf37f75a345"],"sectionHeader":"About"}},{"type":1,"postListMetadata":{"source":1,"layout":5,"number":16,"postIds":[],"sectionHeader":"Latest"}}],"tintColor":"#FF355876","lightText":true,"favicon":{"imageId":"1*VzTUkfeGymHP4Bvav-T-lA.png","filter":"","backgroundSize":"","originalWidth":207,"originalHeight":206,"strategy":"resample","height":0,"width":0},"colorPalette":{"defaultBackgroundSpectrum":{"colorPoints":[{"color":"#FF668AAA","point":0},{"color":"#FF61809D","point":0.1},{"color":"#FF5A7690","point":0.2},{"color":"#FF546C83","point":0.3},{"color":"#FF4D6275","point":0.4},{"color":"#FF455768","point":0.5},{"color":"#FF3D4C5A","point":0.6},{"color":"#FF34414C","point":0.7},{"color":"#FF2B353E","point":0.8},{"color":"#FF21282F","point":0.9},{"color":"#FF161B1F","point":1}],"backgroundColor":"#FFFFFFFF"},"tintBackgroundSpectrum":{"colorPoints":[{"color":"#FF355876","point":0},{"color":"#FF4D6C88","point":0.1},{"color":"#FF637F99","point":0.2},{"color":"#FF7791A8","point":0.3},{"color":"#FF8CA2B7","point":0.4},{"color":"#FF9FB3C6","point":0.5},{"color":"#FFB2C3D4","point":0.6},{"color":"#FFC5D2E1","point":0.7},{"color":"#FFD7E2EE","point":0.8},{"color":"#FFE9F1FA","point":0.9},{"color":"#FFFBFFFF","point":1}],"backgroundColor":"#FF355876"},"highlightSpectrum":{"colorPoints":[{"color":"#FFEDF4FC","point":0},{"color":"#FFE9F2FD","point":0.1},{"color":"#FFE6F1FD","point":0.2},{"color":"#FFE2EFFD","point":0.3},{"color":"#FFDFEEFD","point":0.4},{"color":"#FFDBECFE","point":0.5},{"color":"#FFD7EBFE","point":0.6},{"color":"#FFD4E9FE","point":0.7},{"color":"#FFD0E7FF","point":0.8},{"color":"#FFCCE6FF","point":0.9},{"color":"#FFC8E4FF","point":1}],"backgroundColor":"#FFFFFFFF"},"darkBackgroundSpectrum":{"colorPoints":[{"color":"#FF7EA2C3","point":0},{"color":"#FF8AAAC9","point":0.1},{"color":"#FF95B2CE","point":0.2},{"color":"#FFA0BAD3","point":0.3},{"color":"#FFABC2D9","point":0.4},{"color":"#FFB6CADE","point":0.5},{"color":"#FFC1D2E3","point":0.6},{"color":"#FFCBD9E8","point":0.7},{"color":"#FFD6E1EC","point":0.8},{"color":"#FFE0E8F1","point":0.9},{"color":"#FFEAEFF6","point":1}],"backgroundColor":"#FF000000"}},"navItems":[{"type":8,"title":"Latest","url":"https://towardsdatascience.com/latest"},{"type":4,"title":"Editors' Picks","url":"https://towardsdatascience.com/editors-picks/home","topicId":"20b4f3e27fbe","source":"topicId"},{"type":4,"title":"Deep Dives","url":"https://towardsdatascience.com/deep-dives/home","topicId":"8ad314313527","source":"topicId"},{"type":4,"title":"About","url":"https://towardsdatascience.com/about-us/home","topicId":"e4bc46bb3ab0","source":"topicId"},{"type":2,"title":"Contribute","postId":"96667b06af5","url":"https://towardsdatascience.com/questions-96667b06af5","source":"postId"},{"type":3,"title":"Newsletter","url":"https://medium.com/towards-data-science/newsletter"}],"colorBehavior":2,"collectionFeatures":[29,30,27,25],"ampLogo":{"imageId":"","filter":"","backgroundSize":"","originalWidth":0,"originalHeight":0,"strategy":"resample","height":0,"width":0},"header":{"title":"","description":"The world’s leading publication for data science, AI, data analytics, data engineering and ML professionals.","backgroundImage":{},"logoImage":{"id":"1*1m9fjwOZWwXIP82RWvRH5A@2x.png","originalWidth":1589,"originalHeight":661,"alt":"Towards Data Science"},"alignment":2,"layout":5},"paidForDomainAt":1509037374118,"subscriberCount":768454,"tagline":"A Medium publication sharing concepts, ideas and codes.","isOptedIntoAurora":false,"newsletterV3":{"newsletterV3Id":"d6fe9076899","type":1,"name":"The Variable","description":"Every Thursday, the Variable delivers the very best of Towards Data Science: from hands-on tutorials and cutting-edge research to the latest on data science and machine learning tools.","collectionId":"7f60cf5620c9","newsletterSlug":"the-variable","isSubscribed":false,"showPromo":true,"avatarImageId":"","creatorId":"895063a310f4","showNewsletterPostsInCollectionHome":true,"exportableSubscribersCount":52142,"subscribersCount":132117,"promoHeadline":"","promoBody":"","replyToEmail":""},"isCurationAllowedByDefault":false,"polarisCoverImage":{"imageId":"1*CJe3891yB1A1mzMdqemkdg.jpeg","filter":"","backgroundSize":"","originalWidth":2861,"originalHeight":2861,"strategy":"resample","height":0,"width":0},"ptsQualifiedAt":1616092952992,"type":"Collection"},"header":{"title":"","description":"The world’s leading publication for data science, AI, data analytics, data engineering and ML professionals.","backgroundImage":{},"logoImage":{"id":"1*1m9fjwOZWwXIP82RWvRH5A@2x.png","originalWidth":1589,"originalHeight":661,"alt":"Towards Data Science"},"alignment":2,"layout":5},"streamItems":[{"createdAt":1732684831572,"randomId":"74350ee4a71f","section":{"items":[{"post":{"postId":"6d718ac40b7d"},"itemType":"post"},{"post":{"postId":"f6f7920bcc55"},"itemType":"post"}],"layout":4},"itemType":"section","type":"StreamItem"},{"createdAt":1732684831573,"randomId":"fc671ddc17ec","section":{"items":[{"post":{"postId":"7f9c6e6b7251"},"itemType":"post"},{"post":{"postId":"4e77aa46336f"},"itemType":"post"},{"post":{"postId":"2494ca1b3f96"},"itemType":"post"},{"post":{"postId":"19fb88fddf71"},"itemType":"post"},{"post":{"postId":"40c1c7c05e5c"},"itemType":"post"},{"post":{"postId":"3c18470ed2ee"},"itemType":"post"},{"post":{"postId":"d1bca7c1772f"},"itemType":"post"},{"post":{"postId":"3d26b3ebd627"},"itemType":"post"},{"post":{"postId":"b884d85eb00a"},"itemType":"post"}],"layout":4,"heading":{"fallbackTitle":"Latest","headingBasic":{"title":"Latest"},"headingType":"headingBasic"}},"itemType":"section","type":"StreamItem"}]}) // ]]></script><script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'8e8fb890ef389fa4',t:'MTczMjY4NTM3MS4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body></html>

Pages: 1 2 3 4 5 6 7 8 9 10