MLOps Tools: MLflow and Hugging Face

Brought by: Coursera

Overview

This course covers two of the most popular open source platforms for MLOps (Machine Learning Operations): MLflow and Hugging Face. We’ll go through the foundations on what it takes to get started in these platforms with basic model and dataset operations. You will start with MLflow using projects and models with its powerful tracking system and you will learn how to interact with these registered models from MLflow with full lifecycle examples. Then, you will explore Hugging Face repositories so that you can store datasets, models, and create live interactive demos.

By the end of the course, you will be able to apply MLOps concepts like fine-tuning and deploying containerized models to the Cloud. This course is ideal for anyone looking to break into the field of MLOps or for experienced MLOps professionals who want to improve their programming skills.

Syllabus

  • Introduction to MLflow
    • This week, you will learn what MLflow is and how to use it. You’ll install MLflow and perform basic operations like registering runs, models, and artifacts. Then, you’ll create an MLflow project for reproducible results. Finally, you’ll understand how to use a registry with MLflow models and reference artifacts from the API.
  • Introduction to Hugging Face
    • This week, you will learn the basics of the Hugging Face platform. You will use some of its features like its repositories so that you can store models and datasets. Finally, you will learn how to add and use models and datasets using Hugging Face APIs as well as the web interface.
  • Deploying Hugging Face
    • This week, you will learn how to containerize Hugging Face models and use the FastAPI framework to serve the model with an interactive HTTP API endpoint. Once you understand how to put everything together, you’ll use automation for speed and reproducibility. Finally, you’ll use Azure and Docker Hub to store the containers so that they can be used later for deployments.
  • Applied Hugging Face
    • This week, you will learn how to fine-tune Hugging Face models by using pre-existing models and then modifying (fine-tuning) them with additional data. You’ll also use Azure to deploy the container and learn how to troubleshoot it. Finally, you’ll also see how to deploy a model to Hugging Face spaces.

Taught by

Noah Gift and Alfredo Deza

MLOps Tools: MLflow and Hugging Face
Go to course

MLOps Tools: MLflow and Hugging Face

Brought by: Coursera

  • Coursera
  • Free
  • English
  • Certificate Available
  • Available at any time
  • All
  • English, Kazakh, German, Hindi, Russian, Swedish, Korean, Portuguese, Greek, Italian, French, Chinese, Spanish, Arabic, Thai, Ukrainian, Japanese, Indonesian, Polish, Dutch, Turkish
8.1.2PHP Version269msRequest Duration2MBMemory UsageGET en/courses/{slug}Route
    • Booting (169ms)
    • Application (98.68ms)
    • 1 x Booting (63.05%)
      169.48ms
      1 x Application (36.71%)
      98.68ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET en/courses/{slug}
      middleware
      web, localize:en
      controller
      App\Http\Controllers\CourseController@show
      as
      en.courses.show
      namespace
      prefix
      /en
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed4.27ms
      • select * from `courses` where `slug_en` = 'mlops-tools:-mlflow-and-hugging-face' limit 1
        2.75ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. mlops-tools:-mlflow-and-hugging-face
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-04-26 06:42:06' where `id` = 157
        500μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-04-26 06:42:06
        • 1. 157
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (22)
        230μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        300μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `institutions` where `institutions`.`id` in (24) and `institutions`.`deleted_at` is null
        160μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (2) and `providers`.`deleted_at` is null
        150μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 157 limit 1
        180μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 157
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        AWrLeyIQW3C5aynZ9BTLD7GG80voUyr9zbNcot1s
        locale
        en
        _previous
        array:1 [ "url" => "https://www.corspedia.com/en/courses/mlops-tools:-mlflow-and-hugging-face" ]
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /en/courses/mlops-tools:-mlflow-and-hugging-face
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "18.118.114.72" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "cf-ray" => array:1 [ 0 => "936419245cba10f4-ORD" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "x-forwarded-for" => array:1 [ 0 => "18.118.114.72" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "18.118.114.72" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "936419245cba10f4-ORD" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_X_FORWARDED_FOR" => "18.118.114.72" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "29068" "REMOTE_ADDR" => "172.69.59.11" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/en/courses/mlops-tools:-mlflow-and-hugging-face" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1745649726.3957 "REQUEST_TIME" => 1745649726 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Sat, 26 Apr 2025 06:42:06 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImZzakdLYkRwQlJEc1VEMyttTGtsZVE9PSIsInZhbHVlIjoic3E3dDVWV1ZIRmdrRXd5TG8vd0V3S2lQT29JSnA5KzJpNlRiWUFJTmlLVnBLbHh1aHJyNkh2cSthelZUK0QvM0FrUTdZVE5HM2lvT2RERE9HM3IyMjJSYVFSajdzbTVIbG1UdWZxSFdXZU9yUDRwekl3OGR3R0REbUhLZ2VPOWMiLCJtYWMiOiIyZjIyMjNhNTZkNWNkNjFkMjliZjY1MWQzMTMyNGFjODg0ZTAyM2U1NTFhM2RhODFmMWEyYjU1YjFkZmNmZjkzIiwidGFnIjoiIn0%3D; expires=Sat, 26 Apr 2025 08:42:06 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6ImZzakdLYkRwQlJEc1VEMyttTGtsZVE9PSIsInZhbHVlIjoic3E3dDVWV1ZIRmdrRXd5TG8vd0V3S2lQT29JSnA5KzJpNlRiWUFJTmlLVnBLbHh1aHJyNkh2cSthelZUK0QvM0FrUTdZV" 1 => "laravel_session=eyJpdiI6IjM0ZDVVNGtwRDgrelYyRWdUUVdCWHc9PSIsInZhbHVlIjoiaUgzQWdtOHRsbkIzbnduSkJ6K2Qxam93eENGU1RhTm9YU01tRWg4WGt3WjZHb055RWtFdW0wMmlaaG5vcWpqTnpnaExHcU1tSVRMNkZJd0gxbnRMb3JpWkJQMHBGRlpJcEdURkp2cTlaOElCcTZJc1hlaHFIN1A1U1FLSS81WlUiLCJtYWMiOiI5Yzc0OTZmODVkOWQzMTM4MDYwMjUyMWM3OTdmNjBkZjVhYzJjNTlmMDRmOGQzMTg0OGYxNDc2NTk4MWQ3Y2RlIiwidGFnIjoiIn0%3D; expires=Sat, 26 Apr 2025 08:42:06 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IjM0ZDVVNGtwRDgrelYyRWdUUVdCWHc9PSIsInZhbHVlIjoiaUgzQWdtOHRsbkIzbnduSkJ6K2Qxam93eENGU1RhTm9YU01tRWg4WGt3WjZHb055RWtFdW0wMmlaaG5vcWpqTnpn" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImZzakdLYkRwQlJEc1VEMyttTGtsZVE9PSIsInZhbHVlIjoic3E3dDVWV1ZIRmdrRXd5TG8vd0V3S2lQT29JSnA5KzJpNlRiWUFJTmlLVnBLbHh1aHJyNkh2cSthelZUK0QvM0FrUTdZVE5HM2lvT2RERE9HM3IyMjJSYVFSajdzbTVIbG1UdWZxSFdXZU9yUDRwekl3OGR3R0REbUhLZ2VPOWMiLCJtYWMiOiIyZjIyMjNhNTZkNWNkNjFkMjliZjY1MWQzMTMyNGFjODg0ZTAyM2U1NTFhM2RhODFmMWEyYjU1YjFkZmNmZjkzIiwidGFnIjoiIn0%3D; expires=Sat, 26-Apr-2025 08:42:06 GMT; path=/XSRF-TOKEN=eyJpdiI6ImZzakdLYkRwQlJEc1VEMyttTGtsZVE9PSIsInZhbHVlIjoic3E3dDVWV1ZIRmdrRXd5TG8vd0V3S2lQT29JSnA5KzJpNlRiWUFJTmlLVnBLbHh1aHJyNkh2cSthelZUK0QvM0FrUTdZV" 1 => "laravel_session=eyJpdiI6IjM0ZDVVNGtwRDgrelYyRWdUUVdCWHc9PSIsInZhbHVlIjoiaUgzQWdtOHRsbkIzbnduSkJ6K2Qxam93eENGU1RhTm9YU01tRWg4WGt3WjZHb055RWtFdW0wMmlaaG5vcWpqTnpnaExHcU1tSVRMNkZJd0gxbnRMb3JpWkJQMHBGRlpJcEdURkp2cTlaOElCcTZJc1hlaHFIN1A1U1FLSS81WlUiLCJtYWMiOiI5Yzc0OTZmODVkOWQzMTM4MDYwMjUyMWM3OTdmNjBkZjVhYzJjNTlmMDRmOGQzMTg0OGYxNDc2NTk4MWQ3Y2RlIiwidGFnIjoiIn0%3D; expires=Sat, 26-Apr-2025 08:42:06 GMT; path=/; httponlylaravel_session=eyJpdiI6IjM0ZDVVNGtwRDgrelYyRWdUUVdCWHc9PSIsInZhbHVlIjoiaUgzQWdtOHRsbkIzbnduSkJ6K2Qxam93eENGU1RhTm9YU01tRWg4WGt3WjZHb055RWtFdW0wMmlaaG5vcWpqTnpn" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "AWrLeyIQW3C5aynZ9BTLD7GG80voUyr9zbNcot1s" "locale" => "en" "_previous" => array:1 [ "url" => "https://www.corspedia.com/en/courses/mlops-tools:-mlflow-and-hugging-face" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]