CINXE.COM
Machine Learning/LiftWing - Wikitech
<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-disabled skin-theme-clientpref-day vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>Machine Learning/LiftWing - Wikitech</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-disabled skin-theme-clientpref-day vector-toc-available";var cookie=document.cookie.match(/(?:^|; )labswikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":true,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat": "dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"54d3493d-37bb-475c-9fa9-26ddac9f5b06","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Machine_Learning/LiftWing","wgTitle":"Machine Learning/LiftWing","wgCurRevisionId":2229737,"wgRevisionId":2229737,"wgArticleId":448033,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":[],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"Machine_Learning/LiftWing","wgRelevantArticleId":448033,"wgIsProbablyEditable":false,"wgRelevantPageIsProbablyEditable":false,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikitech","wgCiteReferencePreviewsActive":true,"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgVisualEditor":{"pageLanguageCode":"en", "pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":20000,"wgEditSubmitButtonLabelPublish":true,"wgDiscussionToolsFeaturesEnabled":{"replytool":true,"newtopictool":true,"sourcemodetoolbar":true,"topicsubscription":false,"autotopicsub":false,"visualenhancements":false,"visualenhancements_reply":false,"visualenhancements_pageframe":false},"wgDiscussionToolsFallbackEditMode":"visual","wgULSPosition":"personal","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"wgSiteNoticeId":"2.0"};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options": "loading","ext.pygments":"ready","mediawiki.special":"ready","oojs-ui-core.styles":"ready","oojs-ui.styles.indicators":"ready","mediawiki.widgets.styles":"ready","oojs-ui-core.icons":"ready","mediawiki.htmlform.ooui.styles":"ready","ext.discussionTools.init.styles":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.pt":"ready","ext.dismissableSiteNotice.styles":"ready"};RLPAGEMODULES=["ext.pygments.view","site","mediawiki.page.ready","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.site","ext.urlShortener.toolbar","ext.centralauth.centralautologin","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.discussionTools.init","ext.eventLogging","ext.wikimediaEvents","ext.uls.interface","ext.checkUser.clientHints", "ext.dismissableSiteNotice"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&modules=ext.discussionTools.init.styles%7Cext.dismissableSiteNotice.styles%7Cext.pygments%7Cext.uls.pt%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cmediawiki.htmlform.ooui.styles%7Cmediawiki.special%7Cmediawiki.widgets.styles%7Coojs-ui-core.icons%2Cstyles%7Coojs-ui.styles.indicators%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&modules=site.styles&only=styles&skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.5"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Machine Learning/LiftWing - Wikitech"> <meta property="og:type" content="website"> <link rel="icon" href="/static/favicon/wikitech.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikitech (en)"> <link rel="EditURI" type="application/rsd+xml" href="//wikitech.wikimedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://wikitech.wikimedia.org/wiki/Machine_Learning/LiftWing"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/"> <link rel="alternate" type="application/atom+xml" title="Wikitech Atom feed" href="/w/index.php?title=Special:RecentChanges&feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="ext-discussiontools-replytool-enabled ext-discussiontools-newtopictool-enabled ext-discussiontools-sourcemodetoolbar-enabled skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Machine_Learning_LiftWing rootpage-Machine_Learning skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes in the wiki [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-Server-admin-log:-Prod" class="mw-list-item"><a href="/wiki/Server_Admin_Log"><span>Server admin log: Prod</span></a></li><li id="n-Admin-log:-RelEng" class="mw-list-item"><a href="/wiki/Release_Engineering/SAL"><span>Admin log: RelEng</span></a></li><li id="n-Incident-status" class="mw-list-item"><a href="/wiki/Incident_status"><span>Incident status</span></a></li><li id="n-Deployments" class="mw-list-item"><a href="/wiki/Deployments"><span>Deployments</span></a></li><li id="n-SRE-Team-Help" class="mw-list-item"><a href="/wiki/SRE/SRE_Team_requests"><span>SRE Team Help</span></a></li> </ul> </div> </div> <div id="p-Cloud_VPS_&_Toolforge" class="vector-menu mw-portlet mw-portlet-Cloud_VPS_Toolforge" > <div class="vector-menu-heading"> Cloud VPS & Toolforge </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-Cloud-VPS-portal" class="mw-list-item"><a href="/wiki/Portal:Cloud_VPS"><span>Cloud VPS portal</span></a></li><li id="n-Toolforge-portal" class="mw-list-item"><a href="/wiki/Portal:Toolforge"><span>Toolforge portal</span></a></li><li id="n-Request-VPS-project" class="mw-list-item"><a href="https://phabricator.wikimedia.org/project/view/2875/"><span>Request VPS project</span></a></li><li id="n-Admin-log:-Cloud-VPS" class="mw-list-item"><a href="/wiki/Cloud_VPS_Server_Admin_Log"><span>Admin log: Cloud VPS</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Main_Page" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikitech.svg" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikitech" src="/static/images/mobile/copyright/wikitech-wordmark.svg" style="width: 8.75em; height: 1.6875em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search Wikitech [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikitech" aria-label="Search Wikitech" autocapitalize="sentences" title="Search Wikitech [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-uls" class="mw-list-item active user-links-collapsible-item"><a data-mw="interface" href="#" class="uls-trigger cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet"><span class="vector-icon mw-ui-icon-wikimedia-language mw-ui-icon-wikimedia-wikimedia-language"></span> <span>English</span></a> </li> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page's font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/?wmf_source=donate&wmf_medium=sidebar&wmf_campaign=wikitech.wikimedia.org&uselang=en" class=""><span>Donate</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&returnto=Machine+Learning%2FLiftWing" title="You are encouraged to log in; however, it is not mandatory [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out user-links-collapsible-item" title="More options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/?wmf_source=donate&wmf_medium=sidebar&wmf_campaign=wikitech.wikimedia.org&uselang=en"><span>Donate</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&returnto=Machine+Learning%2FLiftWing" title="You are encouraged to log in; however, it is not mandatory [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><div id="mw-dismissablenotice-anonplace"></div><script>(function(){var node=document.getElementById("mw-dismissablenotice-anonplace");if(node){node.outerHTML="\u003Cdiv class=\"mw-dismissable-notice\"\u003E\u003Cdiv class=\"mw-dismissable-notice-close\"\u003E[\u003Ca tabindex=\"0\" role=\"button\"\u003Edismiss\u003C/a\u003E]\u003C/div\u003E\u003Cdiv class=\"mw-dismissable-notice-body\"\u003E\u003C!-- CentralNotice --\u003E\u003Cdiv id=\"localNotice\" data-nosnippet=\"\"\u003E\u003Cdiv class=\"sitenotice\" lang=\"en\" dir=\"ltr\"\u003E\u003Ctable style=\"width: 75%; background-color: var(--background-color-warning-subtle, #fdf2d5); border: var(--border-subtle, 1px solid #987027); color: var(--color-base, #202122); border-radius: 10px; padding: 5px; margin: 0 auto;\"\u003E\n\u003Ctbody\u003E\u003Ctr\u003E\n\u003Ctd style=\"width:40px; height:40px; text-align:center; vertical-align:middle; padding: 2px;\"\u003E\u003Cspan typeof=\"mw:File\"\u003E\u003Ca href=\"/wiki/File:OOjs_UI_icon_alert-warning.svg\" class=\"mw-file-description\"\u003E\u003Cimg src=\"//upload.wikimedia.org/wikipedia/commons/thumb/3/3b/OOjs_UI_icon_alert-warning.svg/30px-OOjs_UI_icon_alert-warning.svg.png\" decoding=\"async\" width=\"30\" height=\"30\" class=\"mw-file-element\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/3/3b/OOjs_UI_icon_alert-warning.svg/45px-OOjs_UI_icon_alert-warning.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/3/3b/OOjs_UI_icon_alert-warning.svg/60px-OOjs_UI_icon_alert-warning.svg.png 2x\" data-file-width=\"20\" data-file-height=\"20\" /\u003E\u003C/a\u003E\u003C/span\u003E\n\u003C/td\u003E\n\u003Ctd style=\"text-align:center; vertical-align: middle; padding: 4px; max-height: 60px;\"\u003E\u003Cb\u003EWe are migrating Wikitech to \u003Ca href=\"/wiki/Wikitech/SUL-migration\" title=\"Wikitech/SUL-migration\"\u003ESUL\u003C/a\u003E!\u003C/b\u003E\n\u003Cp\u003E\u003Cb\u003EAction may be required for your \u003Ca href=\"/wiki/Wikitech/SUL-migration#What_You_Should_Do\" title=\"Wikitech/SUL-migration\"\u003E account\u003C/a\u003E!\u003C/b\u003E\n\u003C/p\u003E\u003Cp\u003E\u003Cb\u003ETrouble logging in? Please visit \u003Ca href=\"https://phabricator.wikimedia.org/T376267\" class=\"extiw\" title=\"phab:T376267\"\u003ET376267\u003C/a\u003E\u003C/b\u003E\n\u003C/p\u003E\n\u003C/td\u003E\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E\u003C/div\u003E\u003C/div\u003E\u003C/div\u003E\u003C/div\u003E";}}());</script></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">Beginning</div> </a> </li> <li id="toc-Components" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Components"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>Components</span> </div> </a> <button aria-controls="toc-Components-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Components subsection</span> </button> <ul id="toc-Components-sublist" class="vector-toc-list"> <li id="toc-Serving_(Lift_Wing)" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Serving_(Lift_Wing)"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.1</span> <span>Serving (Lift Wing)</span> </div> </a> <ul id="toc-Serving_(Lift_Wing)-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Training_(Train_Wing)" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Training_(Train_Wing)"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.2</span> <span>Training (Train Wing)</span> </div> </a> <ul id="toc-Training_(Train_Wing)-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Model_Storage" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Model_Storage"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.3</span> <span>Model Storage</span> </div> </a> <ul id="toc-Model_Storage-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Hosting_a_model" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Hosting_a_model"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Hosting a model</span> </div> </a> <button aria-controls="toc-Hosting_a_model-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Hosting a model subsection</span> </button> <ul id="toc-Hosting_a_model-sublist" class="vector-toc-list"> <li id="toc-Ownership_of_a_model" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Ownership_of_a_model"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1</span> <span>Ownership of a model</span> </div> </a> <ul id="toc-Ownership_of_a_model-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Hosting_stages_for_a_model_server_on_Lift_Wing" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Hosting_stages_for_a_model_server_on_Lift_Wing"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.2</span> <span>Hosting stages for a model server on Lift Wing</span> </div> </a> <ul id="toc-Hosting_stages_for_a_model_server_on_Lift_Wing-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Requesting_to_update_a_model" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Requesting_to_update_a_model"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.3</span> <span>Requesting to update a model</span> </div> </a> <ul id="toc-Requesting_to_update_a_model-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Usage" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Usage"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Usage</span> </div> </a> <ul id="toc-Usage-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Streams" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Streams"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Streams</span> </div> </a> <ul id="toc-Streams-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Current_Inference_Services" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Current_Inference_Services"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Current Inference Services</span> </div> </a> <button aria-controls="toc-Current_Inference_Services-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Current Inference Services subsection</span> </button> <ul id="toc-Current_Inference_Services-sublist" class="vector-toc-list"> <li id="toc-Revscoring_models_(migrated_from_ORES)" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Revscoring_models_(migrated_from_ORES)"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.1</span> <span>Revscoring models (migrated from ORES)</span> </div> </a> <ul id="toc-Revscoring_models_(migrated_from_ORES)-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Article_topic" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Article_topic"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.2</span> <span>Article topic</span> </div> </a> <ul id="toc-Article_topic-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Vandalism_detection" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Vandalism_detection"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.3</span> <span>Vandalism detection</span> </div> </a> <ul id="toc-Vandalism_detection-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Language_models" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Language_models"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.4</span> <span>Language models</span> </div> </a> <ul id="toc-Language_models-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Content_Translation_Recommendations" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Content_Translation_Recommendations"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.5</span> <span>Content Translation Recommendations</span> </div> </a> <ul id="toc-Content_Translation_Recommendations-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Article_Descriptions" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Article_Descriptions"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.6</span> <span>Article Descriptions</span> </div> </a> <ul id="toc-Article_Descriptions-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Logo_Detection" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Logo_Detection"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.7</span> <span>Logo Detection</span> </div> </a> <ul id="toc-Logo_Detection-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Contributing_to_the_project" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Contributing_to_the_project"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>Contributing to the project</span> </div> </a> <ul id="toc-Contributing_to_the_project-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Tables_of_contents" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Tables_of_contents"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>Tables of contents</span> </div> </a> <ul id="toc-Tables_of_contents-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Machine Learning/LiftWing</span></h1> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Machine_Learning/LiftWing" title="View the content page [c]" accesskey="c"><span>Page</span></a></li><li id="ca-talk" class="new vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Talk:Machine_Learning/LiftWing&action=edit&redlink=1" rel="discussion" class="new" title="Discussion about the content page (page does not exist) [t]" accesskey="t"><span>Discussion</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Machine_Learning/LiftWing"><span>Read</span></a></li><li id="ca-viewsource" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Machine_Learning/LiftWing&action=edit" title="This page is protected. You can view its source [e]" accesskey="e"><span>View source</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Machine_Learning/LiftWing&action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Machine_Learning/LiftWing"><span>Read</span></a></li><li id="ca-more-viewsource" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Machine_Learning/LiftWing&action=edit"><span>View source</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Machine_Learning/LiftWing&action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/Machine_Learning/LiftWing" title="A list of all wiki pages that link here [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/Machine_Learning/LiftWing" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q"><span>Special pages</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Machine_Learning/LiftWing&oldid=2229737" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Machine_Learning/LiftWing&action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&page=Machine_Learning%2FLiftWing&id=2229737&wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&url=https%3A%2F%2Fwikitech.wikimedia.org%2Fwiki%2FMachine_Learning%2FLiftWing"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&url=https%3A%2F%2Fwikitech.wikimedia.org%2Fwiki%2FMachine_Learning%2FLiftWing"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-create_a_book" class="mw-list-item"><a href="/w/index.php?title=Special:Book&bookcmd=book_creator&referer=Machine+Learning%2FLiftWing"><span>Create a book</span></a></li><li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&page=Machine_Learning%2FLiftWing&action=show-download-screen"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Machine_Learning/LiftWing&printable=yes" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">From Wikitech</div> </div> <div id="contentSub"><div id="mw-content-subtitle"><div class="subpages">< <bdi dir="ltr"><a href="/wiki/Machine_Learning" title="Machine Learning">Machine Learning</a></bdi></div></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><p>A scalable machine learning model serving infrastructure on Kubernetes using KServe. It is part of a broader project aimed to <a href="https://www.mediawiki.org/wiki/Machine_Learning/Modernization" class="extiw" title="mw:Machine Learning/Modernization">modernize Machine Learning</a> at Wikimedia. This service will replace the ORES infrastructure (check <a href="/wiki/Machine_Learning/LiftWing/Usage#Differences_using_Lift_Wing_instead_of_ORES" title="Machine Learning/LiftWing/Usage">Machine Learning/LiftWing/Usage#Differences using Lift Wing instead of ORES</a> to have a quick overview of differences between Lift Wing and ORES). </p> <meta property="mw:PageProp/toc"/> <div class="mw-heading mw-heading2 ext-discussiontools-init-section"><h2 id="Components" data-mw-thread-id="h-Components"><span data-mw-comment-start="" id="h-Components"></span>Components<span data-mw-comment-end="h-Components"></span></h2><!--__DTELLIPSISBUTTON__{"threadItem":{"headingLevel":2,"name":"h-","type":"heading","level":0,"id":"h-Components","replies":["h-Serving_(Lift_Wing)-Components","h-Training_(Train_Wing)-Components","h-Model_Storage-Components"]}}--></div> <div class="mw-heading mw-heading3"><h3 id="Serving_(Lift_Wing)" data-mw-thread-id="h-Serving_(Lift_Wing)-Components"><span id="Serving_.28Lift_Wing.29"></span><span data-mw-comment-start="" id="h-Serving_(Lift_Wing)-Components"></span>Serving (Lift Wing)<span data-mw-comment-end="h-Serving_(Lift_Wing)-Components"></span></h3></div> <p>We host our Machine Learning models as <a href="/wiki/Machine_Learning/LiftWing/Inference_Services" title="Machine Learning/LiftWing/Inference Services">Inference Services</a>, which are asynchronous micro-services that can transform raw feature data and make predictions. Each inference service has production images that are published in the <a class="external text" href="https://docker-registry.wikimedia.org/">WMF Docker Registry</a> via the <a href="/wiki/Deployment_pipeline" title="Deployment pipeline">Deployment Pipeline</a>. These images are then used for an isvc configuration in our <a class="external text" href="https://gerrit.wikimedia.org/r/plugins/gitiles/operations/deployment-charts/+/refs/heads/master/helmfile.d/ml-services/">ml-services helmfile</a> in the <a class="external text" href="https://gerrit.wikimedia.org/g/operations/deployment-charts">operations/deployment-charts</a> repo. </p> <ul><li><b>Model Deployment Guide:</b> <a href="/wiki/Machine_Learning/LiftWing/Deploy" title="Machine Learning/LiftWing/Deploy">Machine Learning/LiftWing/Deploy</a></li> <li><b>Inference Service Docs:</b> <a href="/wiki/Machine_Learning/LiftWing/Inference_Services" title="Machine Learning/LiftWing/Inference Services">Machine_Learning/LiftWing/Inference Services</a></li></ul> <div class="mw-heading mw-heading3"><h3 id="Training_(Train_Wing)" data-mw-thread-id="h-Training_(Train_Wing)-Components"><span id="Training_.28Train_Wing.29"></span><span data-mw-comment-start="" id="h-Training_(Train_Wing)-Components"></span>Training (Train Wing)<span data-mw-comment-end="h-Training_(Train_Wing)-Components"></span></h3></div> <p>Still not available, we are working on it, stay tuned! For more info please feel free to reach out to the Machine Learning team :) </p> <div class="mw-heading mw-heading3"><h3 id="Model_Storage" data-mw-thread-id="h-Model_Storage-Components"><span data-mw-comment-start="" id="h-Model_Storage-Components"></span>Model Storage<span data-mw-comment-end="h-Model_Storage-Components"></span></h3></div> <p>We store model binary files in <a href="/wiki/Swift" title="Swift">Swift</a>, which is an open-source s3-compatible object store that is widely-used across the WMF. The model files are downloaded by the KServe's <code>storage-initializer</code> when an Inference Service pod is created. The <code>storage-initializer</code> then mounts the model binary in the pod at <code>/mnt/models/</code> and can be loaded by the predictor container. This is totally transparent to the user, it is provided by KServe. </p> <ul><li><b>Model Upload info:</b> <a href="/wiki/Machine_Learning/LiftWing/Deploy#How_to_upload_a_model_to_Swift" title="Machine Learning/LiftWing/Deploy">Machine_Learning/LiftWing/Deploy#How_to_upload_a_model_to_Swift</a></li></ul> <div class="mw-heading mw-heading2 ext-discussiontools-init-section"><h2 id="Hosting_a_model" data-mw-thread-id="h-Hosting_a_model"><span data-mw-comment-start="" id="h-Hosting_a_model"></span>Hosting a model<span data-mw-comment-end="h-Hosting_a_model"></span></h2><!--__DTELLIPSISBUTTON__{"threadItem":{"headingLevel":2,"name":"h-","type":"heading","level":0,"id":"h-Hosting_a_model","replies":["h-Ownership_of_a_model-Hosting_a_model","h-Hosting_stages_for_a_model_server_on_Lift_Wing-Hosting_a_model","h-Requesting_to_update_a_model-Hosting_a_model"]}}--></div> <p>If you want to host a model on Lift Wing, the first thing to do is to contact the ML team so that we are aware about it. This step is very important since we'll sync on what the model does, what kind of data it needs/handles, how the model was built, etc.. The idea is to avoid last minute surprises between who requests to host a new model and the ML team, better safe than sorry! </p><p>If you haven't done so, please make a request by <a href="https://phabricator.wikimedia.org/maniphest/task/edit/form/135/" class="extiw" title="phab:maniphest/task/edit/form/135/">filling this form</a> which requires the following information: </p> <ul><li>What use case is the model going to support/resolve?</li> <li>Do you have a <b>model card</b>? If you don't know what it is, please check <a class="external free" href="https://meta.wikimedia.org/wiki/Machine_learning_models">https://meta.wikimedia.org/wiki/Machine_learning_models</a>.</li> <li>What team created/trained/etc.. the model? What tools and frameworks have you used?</li> <li>What kind of data was the model trained with, and what kind of data the model is going to need in production (for example, calls to internal/external services, special datasources for features, etc..) ?</li> <li>If you have a minimal codebase that you used to run the first tests with the model, could you please share it?</li> <li>State what team will own the model and please share some main point of contacts (see more info in <b>Ownership of a model</b>).</li> <li>What is the current latency and throughput of the model, if you have tested it? We don't need anything precise at this stage, just some ballparks numbers to figure out how the model performs with the expected inputs. For example, does the model take ms/seconds/etc.. to respond to queries? How does it react when 1/10/20/etc.. requests in parallel are made? If you don't have these numbers don't worry, open the task and we'll figure something out while we discuss about next steps!</li> <li>Is there an expected frequency in which the model will have to be retrained with new data? What are the resources required to train the model and what was the dataset size?</li> <li>Does this model have a license? Does the code or weights the model is fine-tuned from (if applicable) have a license that allow usage?</li> <li>Does this model require a legal review? If so, have you reached out to the Legal team?</li> <li>Does this model require a human rights review? If so, have you reached out to the Human Rights team?</li> <li>Have you checked if the output of your model is safe from a human rights point of view? Is there any risk of it being offensive for somebody? Even if you have any slight worry or corner case, please tell us!</li> <li>Everything else that is relevant in your opinion :)</li></ul> <p>While the Machine Learning team processes your request, you can definitely start browsing the following pages to get more info about how we write code for Lift Wing: </p> <ul><li><b>KServe Guide:</b> <a href="/wiki/Machine_Learning/LiftWing/KServe" title="Machine Learning/LiftWing/KServe">Machine Learning/LiftWing/KServe</a></li> <li><b>Production Image Development Guide:</b> <a href="/wiki/Machine_Learning/LiftWing/Inference_Services/Production_Image_Development" title="Machine Learning/LiftWing/Inference Services/Production Image Development">Machine Learning/LiftWing/Inference Services/Production Image Development</a></li></ul> <p>After reading the above tutorials you should be able to create a Docker image with a basic KServe model server and test it locally. We realize that it may be overwhelming at first, so if you have any difficulties or doubts please ask us in the aforementioned task and we'll assist you! </p><p><u>The idea of our team is to be involved as soon as possible in the development of the model to direct you and your team to the easiest and best path to production, without incurring in misunderstandings and surprises later on (when a lot of work is already done for example).</u> </p> <div class="mw-heading mw-heading3"><h3 id="Ownership_of_a_model" data-mw-thread-id="h-Ownership_of_a_model-Hosting_a_model"><span data-mw-comment-start="" id="h-Ownership_of_a_model-Hosting_a_model"></span>Ownership of a model<span data-mw-comment-end="h-Ownership_of_a_model-Hosting_a_model"></span></h3></div> <ul><li>The Machine Learning team will guide you to the development and deployment of your model on our Kubernetes infrastructure, and we'll take care of basic monitoring and scalability maintenance tasks for you. What we ask is to state a clear ownership of the model, so that we'll be able to ping you in case we need (unexpected problems, etc..).</li> <li>The Machine Learning team will not own models but will only help teams to deploy them in a reliable Kubernetes infrastructure. The idea is to ease the task of putting a model in production for various teams, but we will not be able to also support/maintain models for resource constraints reasons (we'd need a team of 10+ people otherwise :)).</li> <li>The Machine Learning team will not be responsible for the outputs of the model, for example if it doesn't respect basic human rights or if it is offensive to any group of people. We will work with you to avoid (as much as possible) these risks, but your team will be ultimately responsible for the model's behavior once added to production.</li> <li>If your team wants to turn-off the model (namely removing it from the Production's API etc..), then you'll need to do the necessary follow ups with the community using it (for example, if exposed it outside the Wikimedia realm).</li></ul> <div class="mw-heading mw-heading3"><h3 id="Hosting_stages_for_a_model_server_on_Lift_Wing" data-mw-thread-id="h-Hosting_stages_for_a_model_server_on_Lift_Wing-Hosting_a_model"><span data-mw-comment-start="" id="h-Hosting_stages_for_a_model_server_on_Lift_Wing-Hosting_a_model"></span>Hosting stages for a model server on Lift Wing<span data-mw-comment-end="h-Hosting_stages_for_a_model_server_on_Lift_Wing-Hosting_a_model"></span></h3></div> <p>Once a model is created, the ML team will likely suggests to add it to the stagings cluster's <code>experimental</code> namespace. In here the model can be queried only from internal clients (see the <code>Usage</code> section for more info), not from the outside. Once the model is stable (doesn't consume a ton of memory/cpu, works reliably and doesn't fail randomly, etc..) it will be possible to move it to the production clusters, exposing it to the outside world via the API-Gateway (see the <code>Usage</code> section for more info). The idea is to avoid exposing prototypes to the outside Internet until they have been properly vetted and tested by ML and the requesting team. </p><p>To summarize: </p> <ol><li>A model server is created by a team in collaboration with the Machine Learning team's engineers (see the <code>Development</code> section for more info).</li> <li>The model binary is passed to a ML-Ops engineer. This step needs to be logged on Phabricator (ideally in the task that represent the work to be done for the new model server) stating the location of the model (directory on stat100x, Gsuite, etc..) and its sha512. Please don't use paste or similar, add the sha512 value directly as Phabricator comment. The MLOps engineer retrieves the file and checks the sha512 checksum to make sure the file wasn't tampered or miscopied, and acknowledges the correct verification on Phabricator. Finally the model is uploaded by the MLOps engineer to Swift. <ul><li>Example<div class="mw-highlight mw-highlight-lang-bash mw-content-ltr" dir="ltr"><pre><span></span>elukey@stat1008:~$<span class="w"> </span>sha512sum<span class="w"> </span>-b<span class="w"> </span>model.bin<span class="w"> </span> 5bd35e5e92196eec76abad880703c9caaa94e2e52eebd68cd61745549bc37d8654e7f4c6731fa1b643d6bb644ccad5dc98f738b8da8928ef27e189cb92b63e5c<span class="w"> </span>*model.bin </pre></div></li></ul></li> <li>The model server is deployed in the Lift Wing staging cluster, under the <code>experimental</code> namespace. In this limbo the model server will be available only for internal WMF clients, and not exposed to the outside internet. At this point experiments with load testing to figure out correct resource usage (even just a baseline) are performed. We err on the side of fewer resources, this can always be increased later.</li> <li>The model server is developed and it reaches a good stability level, namely its memory/cpu consumption is predictable and its performance is acceptable. The error rate is low, and the code's quality meet a certain bar. The model has also a clear owner and point of contact, so that in case of bugs/emergencies/doubts/etc.. the ML team will be able to contact them. As written before the ML team doesn't own any model, and we don't necessarily know the codebase and the design choices behind a model, so we need whoever has context to keep supporting it. If this is not possible, the model will not graduate to production.</li> <li>A basic load test is performed to figure out (indicatively) how many rps the model server can sustain (in staging). The ML team and the model owner set a target <a href="/wiki/SLO/Lift_Wing" title="SLO/Lift Wing">SLO</a> for the service.</li> <li>The model server is assigned to its own Kubernetes namespace, and it is deployed in production by the Machine Learning team. The requesting team can expose the service to the outside Internet via the API Gateway, with the help of the Machine Learning team. See the <code>Usage</code> section for more info.</li></ol> <div class="mw-heading mw-heading3"><h3 id="Requesting_to_update_a_model" data-mw-thread-id="h-Requesting_to_update_a_model-Hosting_a_model"><span data-mw-comment-start="" id="h-Requesting_to_update_a_model-Hosting_a_model"></span>Requesting to update a model<span data-mw-comment-end="h-Requesting_to_update_a_model-Hosting_a_model"></span></h3></div> <p>Please <a href="https://phabricator.wikimedia.org/maniphest/task/edit/form/136/" class="extiw" title="phab:maniphest/task/edit/form/136/">filling this form</a>. Include the following details: </p> <ul><li>Which model needs updating?</li> <li>What changes have been made to the model? (e.g., updated training data, different approach, new features, etc.)</li> <li>Do any dependent repositories/packages need updates? (e.g., knowledge integrity, sklearn, pytorch, etc.) Please provide the MR/version for reference.</li> <li>Is there a new model binary? What is its version?</li> <li>Does the input/output schema need any changes?</li> <li>Does the preprocessing stage require changes?</li> <li>Does the prediction stage require changes?</li></ul> <p>Checklist: </p> <ul><li>[] Update the model card</li> <li>[] Provide the location of the new model binary and its sha512 to the ML team.</li></ul> <p>Lastly, make sure the task includes the <code>Machine-Learning-Team</code> and <code>Lift-Wing</code> project tags. We will process your request and follow up with you soon. </p> <div class="mw-heading mw-heading2 ext-discussiontools-init-section"><h2 id="Usage" data-mw-thread-id="h-Usage"><span data-mw-comment-start="" id="h-Usage"></span>Usage<span data-mw-comment-end="h-Usage"></span></h2><!--__DTELLIPSISBUTTON__{"threadItem":{"headingLevel":2,"name":"h-","type":"heading","level":0,"id":"h-Usage","replies":[]}}--></div> <p>See <a href="/wiki/Machine_Learning/LiftWing/Usage" title="Machine Learning/LiftWing/Usage">Machine Learning/LiftWing/Usage</a> </p> <div class="mw-heading mw-heading2 ext-discussiontools-init-section"><h2 id="Streams" data-mw-thread-id="h-Streams"><span data-mw-comment-start="" id="h-Streams"></span>Streams<span data-mw-comment-end="h-Streams"></span></h2><!--__DTELLIPSISBUTTON__{"threadItem":{"headingLevel":2,"name":"h-","type":"heading","level":0,"id":"h-Streams","replies":[]}}--></div> <p>See <a href="/wiki/Machine_Learning/LiftWing/Streams" title="Machine Learning/LiftWing/Streams">Machine Learning/LiftWing/Streams</a> </p> <div class="mw-heading mw-heading2 ext-discussiontools-init-section"><h2 id="Current_Inference_Services" data-mw-thread-id="h-Current_Inference_Services"><span data-mw-comment-start="" id="h-Current_Inference_Services"></span>Current Inference Services<span data-mw-comment-end="h-Current_Inference_Services"></span></h2><!--__DTELLIPSISBUTTON__{"threadItem":{"headingLevel":2,"name":"h-","type":"heading","level":0,"id":"h-Current_Inference_Services","replies":["h-Revscoring_models_(migrated_from_ORES)-Current_Inference_Services","h-Article_topic-Current_Inference_Services","h-Vandalism_detection-Current_Inference_Services","h-Language_models-Current_Inference_Services","h-Content_Translation_Recommendations-Current_Inference_Services","h-Article_Descriptions-Current_Inference_Services","h-Logo_Detection-Current_Inference_Services"]}}--></div> <div class="mw-heading mw-heading4"><h4 id="Revscoring_models_(migrated_from_ORES)" data-mw-thread-id="h-Revscoring_models_(migrated_from_ORES)-Current_Inference_Services"><span id="Revscoring_models_.28migrated_from_ORES.29"></span><span data-mw-comment-start="" id="h-Revscoring_models_(migrated_from_ORES)-Current_Inference_Services"></span>Revscoring models (migrated from ORES)<span data-mw-comment-end="h-Revscoring_models_(migrated_from_ORES)-Current_Inference_Services"></span></h4></div> <table class="wikitable"> <tbody><tr> <th>Model type </th> <th>Model name </th> <th>Kubernetes namespace </th> <th>Docker image </th> <th>Model binary </th> <th>Model card </th></tr> <tr> <td>articlequality </td> <td>enwiki-articlequality, euwiki-articlequality, fawiki-articlequality, frwiki-articlequality, glwiki-articlequality, nlwiki-articlequality, ptwiki-articlequality, ruwiki-articlequality, svwiki-articlequality, trwiki-articlequality, ukwiki-articlequality, wikidatawiki-itemquality </td> <td>revscoring-articlequality </td> <td rowspan="7"><a class="external text" href="https://docker-registry.wikimedia.org/wikimedia/machinelearning-liftwing-inference-services-revscoring/tags/">revscoring</a> </td> <td><a class="external text" href="https://analytics.wikimedia.org/published/wmf-ml-models/articlequality/">wmf-ml-models/articlequality/</a> <p><a class="external text" href="https://analytics.wikimedia.org/published/wmf-ml-models/itemquality/">wmf-ml-models/itemquality/</a> </p> </td> <td rowspan="7"><a href="https://meta.wikimedia.org/wiki/Machine_learning_models#ORES_models" class="extiw" title="metawiki:Machine learning models">ORES_models</a> </td></tr> <tr> <td>draftquality </td> <td>enwiki-draftquality, ptwiki-draftquality </td> <td>revscoring-draftquality </td> <td><a class="external text" href="https://analytics.wikimedia.org/published/wmf-ml-models/draftquality/">wmf-ml-models/draftquality/</a> </td></tr> <tr> <td>damaging </td> <td>arwiki-damaging, bswiki-damaging, cawiki-damaging, cswiki-damaging, dewiki-damaging, enwiki-damaging, eswikibooks-damaging, eswiki-damaging, eswikiquote-damaging, etwiki-damaging, fawiki-damaging, fiwiki-damaging, frwiki-damaging, hewiki-damaging, hiwiki-damaging, huwiki-damaging, itwiki-damaging, jawiki-damaging, kowiki-damaging, lvwiki-damaging, nlwiki-damaging, nowiki-damaging, plwiki-damaging, ptwiki-damaging, rowiki-damaging, ruwiki-damaging, sqwiki-damaging, srwiki-damaging, svwiki-damaging, trwiki-damaging, ukwiki-damaging, wikidatawiki-damaging, zhwiki-damaging </td> <td>revscoring-editquality-damaging </td> <td><a class="external text" href="https://analytics.wikimedia.org/published/wmf-ml-models/damaging/">wmf-ml-models/damaging/</a> </td></tr> <tr> <td>goodfaith </td> <td>arwiki-goodfaith, bswiki-goodfaith, cawiki-goodfaith, cswiki-goodfaith, dewiki-goodfaith, <a href="https://meta.wikimedia.org/wiki/User:AlgoAccountabilityBot/Enwiki_Good_Faith_Model_Card" class="extiw" title="metawiki:User:AlgoAccountabilityBot/Enwiki Good Faith Model Card">enwiki-goodfaith</a>, eswikibooks-goodfaith, eswiki-goodfaith, eswikiquote-goodfaith, etwiki-goodfaith, fawiki-goodfaith, fiwiki-goodfaith, frwiki-goodfaith, hewiki-goodfaith, hiwiki-goodfaith, huwiki-goodfaith, itwiki-goodfaith, jawiki-goodfaith, kowiki-goodfaith, lvwiki-goodfaith, nlwiki-goodfaith, nowiki-goodfaith, plwiki-goodfaith, ptwiki-goodfaith, rowiki-goodfaith, ruwiki-goodfaith, sqwiki-goodfaith, srwiki-goodfaith, svwiki-goodfaith, trwiki-goodfaith, ukwiki-goodfaith, wikidatawiki-goodfaith, zhwiki-goodfaith </td> <td>revscoring-editquality-goodfaith </td> <td><a class="external text" href="https://analytics.wikimedia.org/published/wmf-ml-models/goodfaith/">wmf-ml-models/goodfaith/</a> </td></tr> <tr> <td>reverted </td> <td>bnwiki-reverted, elwiki-reverted, enwiktionary-reverted, glwiki-reverted, hrwiki-reverted, idwiki-reverted, iswiki-reverted, tawiki-reverted, viwiki-reverted </td> <td>revscoring-editquality-reverted </td> <td><a class="external text" href="https://analytics.wikimedia.org/published/wmf-ml-models/reverted/">wmf-ml-models/reverted/</a> </td></tr> <tr> <td>articletopic </td> <td>arwiki-articletopic, cswiki-articletopic, enwiki-articletopic, euwiki-articletopic, huwiki-articletopic, hywiki-articletopic, kowiki-articletopic, srwiki-articletopic, ukwiki-articletopic, viwiki-articletopic, wikidatawiki-itemtopic </td> <td>revscoring-articletopic </td> <td><a class="external text" href="https://analytics.wikimedia.org/published/wmf-ml-models/articletopic/">wmf-ml-models/articletopic/</a><a class="external text" href="https://analytics.wikimedia.org/published/wmf-ml-models/itemtopic/">wmf-ml-models/itemtopic/</a> </td></tr> <tr> <td>drafttopic </td> <td>enwiki-drafttopic </td> <td>revscoring-drafttopic </td> <td><a class="external text" href="https://analytics.wikimedia.org/published/wmf-ml-models/drafttopic/">wmf-ml-models/drafttopic/</a> </td></tr></tbody></table> <div class="mw-heading mw-heading4"><h4 id="Article_topic" data-mw-thread-id="h-Article_topic-Current_Inference_Services"><span data-mw-comment-start="" id="h-Article_topic-Current_Inference_Services"></span>Article topic<span data-mw-comment-end="h-Article_topic-Current_Inference_Services"></span></h4></div> <table class="wikitable"> <tbody><tr> <th>Model name </th> <th>Kubernetes namespace </th> <th>Docker image </th> <th>Model binary </th> <th>Model card </th></tr> <tr> <td>outlink-topic-model </td> <td>articletopic-outlink </td> <td><a class="external text" href="https://docker-registry.wikimedia.org/wikimedia/machinelearning-liftwing-inference-services-outlink/tags/">outlink</a>, <a class="external text" href="https://docker-registry.wikimedia.org/wikimedia/machinelearning-liftwing-inference-services-outlink-transformer/tags/">outlink-transformer</a> </td> <td><a class="external text" href="https://analytics.wikimedia.org/published/wmf-ml-models/articletopic/outlink/">wmf-ml-models/articletopic/outlink/</a> </td> <td><a href="https://meta.wikimedia.org/wiki/Machine_learning_models/Proposed/Language_agnostic_link-based_article_topic_model_card" class="extiw" title="metawiki:Machine learning models/Proposed/Language agnostic link-based article topic model card">Language_agnostic_link-based_article_topic_model_card</a> </td></tr></tbody></table> <div class="mw-heading mw-heading4"><h4 id="Vandalism_detection" data-mw-thread-id="h-Vandalism_detection-Current_Inference_Services"><span data-mw-comment-start="" id="h-Vandalism_detection-Current_Inference_Services"></span>Vandalism detection<span data-mw-comment-end="h-Vandalism_detection-Current_Inference_Services"></span></h4></div> <table class="wikitable"> <tbody><tr> <th>Model name </th> <th>Kubernetes namespace </th> <th>Docker image </th> <th>Model binary </th> <th>Model card </th></tr> <tr> <td>revertrisk-language-agnostic </td> <td>revertrisk </td> <td><a class="external text" href="https://docker-registry.wikimedia.org/wikimedia/machinelearning-liftwing-inference-services-revertrisk/tags/">revertrisk</a> </td> <td rowspan="2"><a class="external text" href="https://analytics.wikimedia.org/published/wmf-ml-models/revertrisk/">wmf-ml-models/revertrisk/</a> </td> <td><a href="https://meta.wikimedia.org/wiki/Machine_learning_models/Proposed/Language-agnostic_revert_risk" class="extiw" title="metawiki:Machine learning models/Proposed/Language-agnostic revert risk">Language-agnostic_revert_risk</a> </td></tr> <tr> <td>revertrisk-multilingual </td> <td>revertrisk </td> <td><a class="external text" href="https://docker-registry.wikimedia.org/wikimedia/machinelearning-liftwing-inference-services-revertrisk-multilingual/tags/">revertrisk-multilingual</a> </td> <td><a href="https://meta.wikimedia.org/wiki/Machine_learning_models/Proposed/Multilingual_revert_risk" class="extiw" title="metawiki:Machine learning models/Proposed/Multilingual revert risk">Multilingual_revert_risk</a> </td></tr></tbody></table> <div class="mw-heading mw-heading4"><h4 id="Language_models" data-mw-thread-id="h-Language_models-Current_Inference_Services"><span data-mw-comment-start="" id="h-Language_models-Current_Inference_Services"></span>Language models<span data-mw-comment-end="h-Language_models-Current_Inference_Services"></span></h4></div> <table class="wikitable"> <tbody><tr> <th>Model name </th> <th>Kubernetes namespace </th> <th>Docker image </th> <th>Model binary </th> <th>Model card </th></tr> <tr> <td>langid </td> <td>llm </td> <td><a class="external text" href="https://docker-registry.wikimedia.org/wikimedia/machinelearning-liftwing-inference-services-langid/tags/">langid</a> </td> <td><a class="external text" href="https://analytics.wikimedia.org/published/wmf-ml-models/langid/">wmf-ml-models/langid</a> </td> <td><a href="https://meta.wikimedia.org/wiki/Machine_learning_models/Proposed/Language_Identification" class="extiw" title="metawiki:Machine learning models/Proposed/Language Identification">Language Identification</a> </td></tr></tbody></table> <div class="mw-heading mw-heading4"><h4 id="Content_Translation_Recommendations" data-mw-thread-id="h-Content_Translation_Recommendations-Current_Inference_Services"><span data-mw-comment-start="" id="h-Content_Translation_Recommendations-Current_Inference_Services"></span>Content Translation Recommendations<span data-mw-comment-end="h-Content_Translation_Recommendations-Current_Inference_Services"></span></h4></div> <table class="wikitable"> <tbody><tr> <th>Model name </th> <th>Kubernetes namespace </th> <th>Docker image </th> <th>Model binary </th> <th>Documentation </th></tr> <tr> <td>n/a </td> <td>recommendation-api-ng </td> <td><a class="external text" href="https://docker-registry.wikimedia.org/wikimedia/research-recommendation-api/tags/">recommendation-api-ng</a> </td> <td>n/a </td> <td><a class="external text" href="https://api.wikimedia.org/wiki/Lift%20Wing%20API/Reference/Get%20content%20translation%20recommendation">Content Translation Recommendation</a> </td></tr></tbody></table> <div class="mw-heading mw-heading4"><h4 id="Article_Descriptions" data-mw-thread-id="h-Article_Descriptions-Current_Inference_Services"><span data-mw-comment-start="" id="h-Article_Descriptions-Current_Inference_Services"></span>Article Descriptions<span data-mw-comment-end="h-Article_Descriptions-Current_Inference_Services"></span></h4></div> <table class="wikitable"> <tbody><tr> <th>Model name </th> <th>Kubernetes namespace </th> <th>Docker image </th> <th>Model binary </th> <th>Model card </th></tr> <tr> <td>descartes (mbart-large-cc25 and bert-base-multilingual-uncased) </td> <td>article-descriptions </td> <td><a class="external text" href="https://docker-registry.wikimedia.org/wikimedia/machinelearning-liftwing-inference-services-article-descriptions/tags/">article-descriptions</a> </td> <td><a class="external text" href="https://analytics.wikimedia.org/published/wmf-ml-models/article-descriptions/">wmf-ml-models/article-descriptions</a> </td> <td><a class="external text" href="https://meta.wikimedia.org/wiki/Machine_learning_models/Proposed/Article_descriptions">Article Descriptions</a> </td></tr></tbody></table> <div class="mw-heading mw-heading4"><h4 id="Logo_Detection" data-mw-thread-id="h-Logo_Detection-Current_Inference_Services"><span data-mw-comment-start="" id="h-Logo_Detection-Current_Inference_Services"></span>Logo Detection<span data-mw-comment-end="h-Logo_Detection-Current_Inference_Services"></span></h4></div> <table class="wikitable"> <tbody><tr> <th>Model name </th> <th>Kubernetes namespace </th> <th>Docker image </th> <th>Model binary </th> <th>Model card </th></tr> <tr> <td>logo_max_all.keras </td> <td>logo-detection </td> <td><a class="external text" href="https://docker-registry.wikimedia.org/wikimedia/machinelearning-liftwing-inference-services-logo-detection/tags/">logo-detection</a> </td> <td><a class="external text" href="https://analytics.wikimedia.org/published/wmf-ml-models/logo-detection/">wmf-ml-models/logo-detection</a> </td> <td><a class="external text" href="https://meta.wikimedia.org/wiki/Machine_learning_models/Proposed/Logo_Detection">Logo Detection</a> </td></tr></tbody></table> <div class="mw-heading mw-heading2 ext-discussiontools-init-section"><h2 id="Contributing_to_the_project" data-mw-thread-id="h-Contributing_to_the_project"><span data-mw-comment-start="" id="h-Contributing_to_the_project"></span>Contributing to the project<span data-mw-comment-end="h-Contributing_to_the_project"></span></h2><!--__DTELLIPSISBUTTON__{"threadItem":{"headingLevel":2,"name":"h-","type":"heading","level":0,"id":"h-Contributing_to_the_project","replies":[]}}--></div> <p>If you are a member of the community that wants to help out with Lift Wing, thanks a lot! You are really welcome :) </p><p>We manage our tasks in <a href="https://phabricator.wikimedia.org/project/view/1901/" class="extiw" title="phab:project/view/1901/">this Phabricator board</a>, but it may be overwhelming and confusing at first. We suggest to present yourself on the <code>#wikimedia-ml</code> IRC LIbera channel, and after a chat (to understand what are your goals and desired learning experiences) we'll decide together what work to assign to you. </p><p>If you have any feedback/suggestion/fix/etc.. please open a Phabricator task to the aforementioned tag. </p> <div class="mw-heading mw-heading1"><h1 id="Tables_of_contents" data-mw-thread-id="h-Tables_of_contents"><span data-mw-comment-start="" id="h-Tables_of_contents"></span>Tables of contents<span data-mw-comment-end="h-Tables_of_contents"></span></h1></div> <div class="mw-prefixindex-body"><ul class="mw-prefixindex-list"><li><div class="allpagesredirect"><a href="/wiki/Machine_Learning/LiftWing/Alert" class="mw-redirect" title="Machine Learning/LiftWing/Alert">Machine Learning/LiftWing/Alert</a></div></li> <li><a href="/wiki/Machine_Learning/LiftWing/Alerts" title="Machine Learning/LiftWing/Alerts">Machine Learning/LiftWing/Alerts</a></li> <li><a href="/wiki/Machine_Learning/LiftWing/Deploy" title="Machine Learning/LiftWing/Deploy">Machine Learning/LiftWing/Deploy</a></li> <li><a href="/wiki/Machine_Learning/LiftWing/Incident" title="Machine Learning/LiftWing/Incident">Machine Learning/LiftWing/Incident</a></li> <li><a href="/wiki/Machine_Learning/LiftWing/Inference_Services" title="Machine Learning/LiftWing/Inference Services">Machine Learning/LiftWing/Inference Services</a></li> <li><a href="/wiki/Machine_Learning/LiftWing/Inference_Services/Production_Image_Development" title="Machine Learning/LiftWing/Inference Services/Production Image Development">Machine Learning/LiftWing/Inference Services/Production Image Development</a></li> <li><a href="/wiki/Machine_Learning/LiftWing/KServe" title="Machine Learning/LiftWing/KServe">Machine Learning/LiftWing/KServe</a></li> <li><a href="/wiki/Machine_Learning/LiftWing/KServe/DeployLocal" title="Machine Learning/LiftWing/KServe/DeployLocal">Machine Learning/LiftWing/KServe/DeployLocal</a></li> <li><a href="/wiki/Machine_Learning/LiftWing/ML-Sandbox" title="Machine Learning/LiftWing/ML-Sandbox">Machine Learning/LiftWing/ML-Sandbox</a></li> <li><a href="/wiki/Machine_Learning/LiftWing/ML-Sandbox/Configuration" title="Machine Learning/LiftWing/ML-Sandbox/Configuration">Machine Learning/LiftWing/ML-Sandbox/Configuration</a></li> <li><a href="/wiki/Machine_Learning/LiftWing/ML-Sandbox/Usage-Examples" title="Machine Learning/LiftWing/ML-Sandbox/Usage-Examples">Machine Learning/LiftWing/ML-Sandbox/Usage-Examples</a></li> <li><a href="/wiki/Machine_Learning/LiftWing/Streams" title="Machine Learning/LiftWing/Streams">Machine Learning/LiftWing/Streams</a></li> <li><a href="/wiki/Machine_Learning/LiftWing/Usage" title="Machine Learning/LiftWing/Usage">Machine Learning/LiftWing/Usage</a></li> </ul></div> <!-- NewPP limit report Parsed by mw‐web.codfw.main‐67847f4bfd‐whpmz Cached time: 20241203163828 Cache expiry: 15 Reduced expiry: true Complications: [show‐toc] DiscussionTools time usage: 0.016 seconds CPU time usage: 0.047 seconds Real time usage: 0.052 seconds Preprocessor visited node count: 88/1000000 Post‐expand include size: 26/2097152 bytes Template argument size: 0/2097152 bytes Highest expansion depth: 2/100 Expensive parser function count: 2/500 Unstrip recursion depth: 0/20 Unstrip post‐expand size: 2671/5000000 bytes --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 7.577 1 Special:PrefixIndex/Machine_Learning/LiftWing/ 100.00% 7.577 1 -total --> <!-- Saved in parser cache with key labswiki:pcache:448033:|#|:idhash:canonical and timestamp 20241203163828 and revision id 2229737. Rendering was triggered because: page-view --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1&useformat=desktop" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://wikitech.wikimedia.org/w/index.php?title=Machine_Learning/LiftWing&oldid=2229737">https://wikitech.wikimedia.org/w/index.php?title=Machine_Learning/LiftWing&oldid=2229737</a>"</div></div> <div id="catlinks" class="catlinks catlinks-allhidden" data-mw="interface"></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 24 September 2024, at 14:48.</li> <li id="footer-info-copyright">Text is available under the <a rel="nofollow" class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-ShareAlike License</a>; additional terms may apply. See <a class="external text" href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use">Terms of Use</a> for details.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Main_Page">About Wikitech</a></li> <li id="footer-places-disclaimers"><a href="https://foundation.wikimedia.org/wiki/General_disclaimer">Disclaimers</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://www.mediawiki.org/wiki/Special:MyLanguage/Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/wikitech.wikimedia.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//wikitech.wikimedia.org/w/index.php?title=Machine_Learning/LiftWing&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-67847f4bfd-whpmz","wgBackendResponseTime":179,"wgDiscussionToolsPageThreads":[{"headingLevel":2,"name":"h-","type":"heading","level":0,"id":"h-Components","replies":[{"headingLevel":3,"name":"h-","type":"heading","level":0,"id":"h-Serving_(Lift_Wing)-Components","replies":[]},{"headingLevel":3,"name":"h-","type":"heading","level":0,"id":"h-Training_(Train_Wing)-Components","replies":[]},{"headingLevel":3,"name":"h-","type":"heading","level":0,"id":"h-Model_Storage-Components","replies":[]}]},{"headingLevel":2,"name":"h-","type":"heading","level":0,"id":"h-Hosting_a_model","replies":[{"headingLevel":3,"name":"h-","type":"heading","level":0,"id":"h-Ownership_of_a_model-Hosting_a_model","replies":[]},{"headingLevel":3,"name":"h-","type":"heading","level":0,"id":"h-Hosting_stages_for_a_model_server_on_Lift_Wing-Hosting_a_model","replies":[]},{"headingLevel":3,"name":"h-","type":"heading","level":0,"id":"h-Requesting_to_update_a_model-Hosting_a_model","replies":[]}]},{"headingLevel":2,"name":"h-","type":"heading","level":0,"id":"h-Usage","replies":[]},{"headingLevel":2,"name":"h-","type":"heading","level":0,"id":"h-Streams","replies":[]},{"headingLevel":2,"name":"h-","type":"heading","level":0,"id":"h-Current_Inference_Services","replies":[{"headingLevel":4,"name":"h-","type":"heading","level":0,"id":"h-Revscoring_models_(migrated_from_ORES)-Current_Inference_Services","replies":[]},{"headingLevel":4,"name":"h-","type":"heading","level":0,"id":"h-Article_topic-Current_Inference_Services","replies":[]},{"headingLevel":4,"name":"h-","type":"heading","level":0,"id":"h-Vandalism_detection-Current_Inference_Services","replies":[]},{"headingLevel":4,"name":"h-","type":"heading","level":0,"id":"h-Language_models-Current_Inference_Services","replies":[]},{"headingLevel":4,"name":"h-","type":"heading","level":0,"id":"h-Content_Translation_Recommendations-Current_Inference_Services","replies":[]},{"headingLevel":4,"name":"h-","type":"heading","level":0,"id":"h-Article_Descriptions-Current_Inference_Services","replies":[]},{"headingLevel":4,"name":"h-","type":"heading","level":0,"id":"h-Logo_Detection-Current_Inference_Services","replies":[]}]},{"headingLevel":2,"name":"h-","type":"heading","level":0,"id":"h-Contributing_to_the_project","replies":[]},{"headingLevel":1,"name":"h-","type":"heading","level":0,"id":"h-Tables_of_contents","replies":[]}],"wgPageParseReport":{"discussiontools":{"limitreport-timeusage":"0.016"},"limitreport":{"cputime":"0.047","walltime":"0.052","ppvisitednodes":{"value":88,"limit":1000000},"postexpandincludesize":{"value":26,"limit":2097152},"templateargumentsize":{"value":0,"limit":2097152},"expansiondepth":{"value":2,"limit":100},"expensivefunctioncount":{"value":2,"limit":500},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":2671,"limit":5000000},"timingprofile":["100.00% 7.577 1 Special:PrefixIndex/Machine_Learning/LiftWing/","100.00% 7.577 1 -total"]},"cachereport":{"origin":"mw-web.codfw.main-67847f4bfd-whpmz","timestamp":"20241203163828","ttl":15,"transientcontent":true}}});});</script> </body> </html>