Это пробный урок. Оформите подписку, чтобы получить доступ ко всем материалам курса. Премиум

  1. Урок 1. 00:07:24
    What's new in this cohort?
  2. Урок 2. 00:19:55
    How to install the tools
  3. Урок 3. 00:08:26
    How to create the local Kubernetes cluster
  4. Урок 4. 00:06:38
    How to open a Github issue
  5. Урок 5. 00:31:30
    ML System design - Part 1
  6. Урок 6. 00:11:02
    ML System design - Part 2
  7. Урок 7. 00:04:24
    Dev and Prod environments - Say hi to Marius!
  8. Урок 8. 00:26:26
    Bootstrap the uv workspace & Install Kafka in our dev environment
  9. Урок 9. 00:14:37
    Install Kafka UI in our dev environment
  10. Урок 10. 00:25:08
    Push fake data into Kafka
  11. Урок 11. 00:31:11
    Push real trade data to Kafka - Part 1
  12. Урок 12. 00:16:05
    Push real trade data to Kafka - Part 2
  13. Урок 13. 00:03:33
    .gitignore
  14. Урок 14. 00:04:23
    Why Docker?
  15. Урок 15. 00:03:05
    Wrap up
  16. Урок 16. 00:03:21
    3 questions for YOU
  17. Урок 17. 00:15:38
    Working inside the devcontainer - Let's (re)create the dev cluster
  18. Урок 18. 00:10:49
    Dockerfile for the trades service
  19. Урок 19. 00:27:00
    How to deploy the trades service to the dev Kubernetes cluster
  20. Урок 20. 00:30:36
    Debugging, debugging, debugging
  21. Урок 21. 00:31:11
    Decouple config parameters from business logic code in the trades service
  22. Урок 22. 00:03:28
    Let's recap
  23. Урок 23. 00:16:52
    Pre-commits for automatic code linting and formatting
  24. Урок 24. 00:26:10
    Candles service boilerplate code
  25. Урок 25. 00:01:38
    Open question -> How to do a double port-forwarding?
  26. Урок 26. 00:01:57
    Wrap up
  27. Урок 27. 00:04:36
    Plan for today
  28. Урок 28. 00:28:16
    Redeploy the trades service to the dev cluster
  29. Урок 29. 00:28:13
    Add key=product_id to the trade messages - otherwise the candles service cannot process them
  30. Урок 30. 00:14:21
    Deploy the candles service to the dev kubernetes cluster
  31. Урок 31. 00:14:22
    Horizontaly scaling of the candles service - Kafka consumer groups to the rescue!
  32. Урок 32. 00:30:26
    Build and push the docker image for the candles to the production Github Container Registry
  33. Урок 33. 00:27:07
    Deploy the candles service to PROD cluster
  34. Урок 34. 00:21:13
    Technical-indicators service boilerplate code
  35. Урок 35. 00:01:51
    Wrap up
  36. Урок 36. 00:10:59
    Quick recap before we start office hours
  37. Урок 37. 00:28:41
    How to spin up a PROD Kubernetes cluster
  38. Урок 38. 00:06:26
    How to Monitor a Kubernetes cluster
  39. Урок 39. 00:06:49
    One of my candles servie replica is waiting for messages. Why?
  40. Урок 40. 00:06:59
    A detour around ZenML and Flyte
  41. Урок 41. 00:11:59
    What's the project repo structure of this course?
  42. Урок 42. 00:03:35
    If you like it, please recommend us :-)
  43. Урок 43. 00:13:48
    We want you Marius
  44. Урок 44. 00:14:40
    How to inspect docker build logs - How to do port-forwarding of services
  45. Урок 45. 00:19:39
    More port forwarding
  46. Урок 46. 00:08:58
    How to push data into a Kafka topics?
  47. Урок 47. 00:16:20
    Again: 1 kafka topic partition and 2 consumer replicas means one of them will be IDLE
  48. Урок 48. 00:22:14
    Problems building the Docker image?
  49. Урок 49. 00:00:24
    Wrap up
  50. Урок 50. 00:07:07
    Goals for today
  51. Урок 51. 00:10:18
    What are technical indicators and how to compute them in real time
  52. Урок 52. 00:24:11
    Custom stateful transformation to compute indicators - Part 1
  53. Урок 53. 00:12:02
    Other libraries for real time data processing
  54. Урок 54. 00:34:35
    Custom stateful transformation to compute indicators - Part 2
  55. Урок 55. 00:09:42
    Custom stateful transformation to compute indicators - Part 3
  56. Урок 56. 00:26:31
    Write Dockerfile with talib library
  57. Урок 57. 00:14:15
    Some homework for you
  58. Урок 58. 00:28:37
    Deploying the technical indicators service to Kubernetes
  59. Урок 59. 00:01:46
    Wrap up
  60. Урок 60. 00:04:46
    Goals for today
  61. Урок 61. 00:20:48
    Installing RisingWave in Kubernetes
  62. Урок 62. 00:14:11
    Pull-based ingestion from Kafka topic to RisingWave
  63. Урок 63. 00:28:16
    Pull-based vs Push-based data ingestion
  64. Урок 64. 00:14:57
    Installing Grafana and adding RisingWave as a data source
  65. Урок 65. 00:20:40
    Plotting candles with Grafana
  66. Урок 66. 00:39:01
    Ingesting historical trades from Kraken REST API
  67. Урок 67. 00:24:19
    Custom stateful transformation to compute indicators - Part 2 + Homework
  68. Урок 68. 00:03:19
    Wrap up
  69. Урок 69. 00:07:05
    Goals for today
  70. Урок 70. 00:22:07
    Bash script to build and push Docker images to either `dev` or `prod` Kubernetes cluster
  71. Урок 71. 00:17:15
    Bash script to deploy services to either `dev` or `prod`
  72. Урок 72. 00:21:55
    Squashing 2 bugs in the trades service
  73. Урок 73. 00:13:44
    Deploying the trades-historical to Kubernetes - Part 1
  74. Урок 74. 00:04:36
    Deploying the trades-historical to Kubernetes - Part 2
  75. Урок 75. 00:04:08
    Adding custom timestamp extractor in our candles service
  76. Урок 76. 00:30:16
    Deploying the whole backfill pipeline
  77. Урок 77. 00:38:02
    ConfigMap for our backfill pipeline
  78. Урок 78. 00:09:07
    How to scale the backfill pipeline to process 100x volume of trades
  79. Урок 79. 00:01:43
    Wrap up
  80. Урок 80. 00:11:56
    Goals for today
  81. Урок 81. 00:28:50
    Installing MLflow in Kubernetes cluster
  82. Урок 82. 00:23:22
    Start building the training pipeline -> Load data from RisingWave
  83. Урок 83. 00:08:44
    Adding the target column to the dataframe
  84. Урок 84. 00:14:01
    Data validation with Great Expectations
  85. Урок 85. 00:17:10
    Automatic Exploratory Data Analysis (EDA)
  86. Урок 86. 00:30:47
    Instrumenting our training runs with MLflow
  87. Урок 87. 00:24:31
    Build a baseline model
  88. Урок 88. 00:01:22
    Question -> Do we need GPUs to train our model?
  89. Урок 89. 00:05:57
    Wrap up
  90. Урок 90. 00:06:31
    Goals for today
  91. Урок 91. 00:42:48
    Finding a good model candidate with LazyPredict
  92. Урок 92. 00:22:07
    Logging model candidate table to MLflow
  93. Урок 93. 00:10:56
    What is model hyper-parameter tuning?
  94. Урок 94. 00:27:02
    Hyperparameter tuning with Optuna
  95. Урок 95. 00:28:06
    Fixing things
  96. Урок 96. 00:15:05
    Scaling the inputs for our regularised linear model (HuberRegressor) - Part 1
  97. Урок 97. 00:16:01
    Scaling the inputs for our regularised linear model (HuberRegressor) - Part 2
  98. Урок 98. 00:01:57
    Wrap up
  99. Урок 99. 00:09:02
    Goals for today
  100. Урок 100. 00:19:06
    Refactoring the model selection step of the training pipeline
  101. Урок 101. 00:34:22
    Checking and dropping NaN values
  102. Урок 102. 00:15:34
    Validating and pushing the model to the registry
  103. Урок 103. 00:14:04
    Extracting training inputs into a TrainingConfig
  104. Урок 104. 00:09:13
    Homework -> Add data and model drift reports to each training run using Evidently
  105. Урок 105. 00:14:34
    Dockerfile for the training-pipeline
  106. Урок 106. 00:18:57
    What is Kustomize?
  107. Урок 107. 00:18:55
    Job manifest for the training-pipeline
  108. Урок 108. 00:13:22
    Debugging the Job (wout success so far)
  109. Урок 109. 00:01:26
    Wrap up
  110. Урок 110. 00:04:23
    Goals for today
  111. Урок 111. 00:16:52
    Deploying the training pipeline as a CronJob
  112. Урок 112. 00:05:55
    Adjust the deployment script to use kustomize build if there is a kustomization.yaml
  113. Урок 113. 00:27:26
    Building the prediction generator - Part 1 - Bug fixing the name of the model in the registry
  114. Урок 114. 00:29:08
    Building the prediction generator - Part 2 - Prediction handler
  115. Урок 115. 00:22:49
    Building the prediction generator - Part 3 - Loading the model signature
  116. Урок 116. 00:35:58
    Building the prediction generator - Part 4 - Saving predictions to RisingWave table
  117. Урок 117. 00:24:40
    Building the prediction generator - Part 5 - Deploying the prediction generator
  118. Урок 118. 00:03:00
    Wrap up
  119. Урок 119. 00:04:05
    Goals for today
  120. Урок 120. 00:11:14
    Fixing a bug in the prediction_handler
  121. Урок 121. 00:03:16
    Question -> Where to log what?
  122. Урок 122. 00:15:02
    Rebuild docker image and deploy prediction generator to Kubernetes
  123. Урок 123. 00:11:22
    Let's build the prediction API in Rust - Part 1 - The tools you need
  124. Урок 124. 00:21:19
    Let's build the prediction API in Rust - Part 2 - REST API skeleton
  125. Урок 125. 00:16:21
    Let's build the prediction API in Rust - Part 3 - Unwrapping the unwrappable
  126. Урок 126. 00:14:36
    Let's build the prediction API in Rust - Part 4 - Predictions endpoint
  127. Урок 127. 00:21:37
    Let's build the prediction API in Rust - Part 5 - Connecting to PostgreSQL
  128. Урок 128. 00:43:48
    Let's build the prediction API in Rust - Part 6 - Debugging
  129. Урок 129. 00:02:57
    Let's build the prediction API in Rust - Part 7 - Squashing the bug
  130. Урок 130. 00:03:35
    Wrap up
  131. Урок 131. 00:01:21
    5/14/2025 11:02 AM CEST recording
  132. Урок 132. 00:31:34
    5/14/2025 11:04 AM CEST recording
  133. Урок 133. 00:05:22
    5/14/2025 11:35 AM CEST recording
  134. Урок 134. 00:06:07
    5/14/2025 11:41 AM CEST recording
  135. Урок 135. 00:15:02
    5/14/2025 11:48 AM CEST recording
  136. Урок 136. 00:06:23
    5/14/2025 12:03 PM CEST recording
  137. Урок 137. 00:08:10
    5/14/2025 12:10 PM CEST recording
  138. Урок 138. 00:06:35
    5/14/2025 12:18 PM CEST recording
  139. Урок 139. 00:35:50
    5/14/2025 12:34 PM CEST recording
  140. Урок 140. 00:07:47
    5/14/2025 1:10 PM CEST recording
  141. Урок 141. 00:15:00
    5/14/2025 1:18 PM CEST recording
  142. Урок 142. 00:09:10
    5/14/2025 1:34 PM CEST recording
  143. Урок 143. 00:09:03
    5/14/2025 1:43 PM CEST recording
  144. Урок 144. 00:04:17
    5/14/2025 1:52 PM CEST recording
  145. Урок 145. 00:01:42
    5/14/2025 1:57 PM CEST recording
  146. Урок 146. 00:07:00
    Before we begin...
  147. Урок 147. 00:08:03
    Goals for today
  148. Урок 148. 00:06:31
    Questions
  149. Урок 149. 00:22:48
    Adding the PgPool to the app State (so we don't need to recreate every time we get a request)
  150. Урок 150. 00:16:14
    Creating a RisingWave materialized view with the latest predictions for each coin
  151. Урок 151. 00:17:36
    Custom config objet to load and hold env variable values
  152. Урок 152. 00:09:48
    Adding the Config to the app State
  153. Урок 153. 00:11:41
    Adding some logging
  154. Урок 154. 00:23:09
    Dockerizing our Prediction API Rust service
  155. Урок 155. 00:07:04
    Mad scientist experiment to reduct the Docker image size with a scratch layer
  156. Урок 156. 00:27:15
    Deploying to Kubernetes
  157. Урок 157. 00:03:42
    Plan for the last 3 sessions
  158. Урок 158. 00:01:44
    Wrap up
  159. Урок 159. 00:08:12
    Goals for today
  160. Урок 160. 00:26:21
    How to download crypto news from a REST API (Cryptopanic)
  161. Урок 161. 00:07:12
    Load Cryptopanic API using env variables and pydantic-settings
  162. Урок 162. 00:27:10
    Custom Quixstreams Stateful Source to ingest news into Kafka
  163. Урок 163. 00:18:18
    Inspecting the news messages - Kafka UI
  164. Урок 164. 00:21:56
    News sentiment service - iteration 1
  165. Урок 165. 00:21:28
    Unpacking sentiment scores as N kafka messages
  166. Урок 166. 00:26:55
    BAML to build LLMs with structured output (like the sentiment-extractor we want to build!)
  167. Урок 167. 00:05:39
    Testing our BAML function
  168. Урок 168. 00:02:02
    Wrap up
  169. Урок 169. 00:01:09
    A question I forgot to answer!
  170. Урок 170. 00:04:01
    6.4.2025 11:03 AM CEST recording
  171. Урок 171. 00:31:30
    6.4.2025 11:08 AM CEST recording
  172. Урок 172. 00:10:01
    6.4.2025 11:40 AM CEST recording
  173. Урок 173. 00:33:31
    6.4.2025 11:50 AM CEST recording
  174. Урок 174. 00:24:07
    6.4.2025 12:35 PM CEST recording
  175. Урок 175. 00:04:38
    6.4.2025 1:00 PM CEST recording
  176. Урок 176. 00:09:07
    6.4.2025 1:05 PM CEST recording
  177. Урок 177. 00:27:14
    6.4.2025 1:14 PM CEST recording
  178. Урок 178. 00:17:16
    6.4.2025 1:42 PM CEST recording
  179. Урок 179. 00:04:20
    6.4.2025 1:59 PM CEST recording
  180. Урок 180. 00:05:22
    Goals for today
  181. Урок 181. 00:22:00
    Implement the evaluation metric
  182. Урок 182. 00:07:06
    Manual prompt improvement
  183. Урок 183. 00:11:21
    Automatic prompt optimization
  184. Урок 184. 00:34:36
    How to use open-weights LLMs with Ollama
  185. Урок 185. 00:30:16
    Kubernetes manifests to deploy news and news-sentiment services
  186. Урок 186. 00:44:51
    MARIUS -> How to set up a GPU node in a production Kubernetes cluster
  187. Урок 187. 00:03:29
    Time to say (see you later)!
  188. Урок 188. 00:04:36
    Wrap up