<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.atp-fivt.org/index.php?action=history&amp;feed=atom&amp;title=%D0%A1%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BE%D0%B2_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2026</id>
	<title>Современные технологии разработки сервисов анализа данных осень 2026 - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.atp-fivt.org/index.php?action=history&amp;feed=atom&amp;title=%D0%A1%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BE%D0%B2_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2026"/>
	<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%A1%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BE%D0%B2_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2026&amp;action=history"/>
	<updated>2026-10-16T15:33:50Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%A1%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BE%D0%B2_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2026&amp;diff=5198&amp;oldid=prev</id>
		<title>Ахтямов Павел: /* Вехи по ходу семестра */</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%A1%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BE%D0%B2_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2026&amp;diff=5198&amp;oldid=prev"/>
		<updated>2026-08-28T12:16:20Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Вехи по ходу семестра&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 12:16, 28 августа 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l147&quot;&gt;Строка 147:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 147:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| Данные версионированы || 6 || Восстановление состояния эксперимента || Откат к предыдущей версии данных и весов&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| Данные версионированы || 6 || Восстановление состояния эксперимента || Откат к предыдущей версии данных и весов&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Развёрнуто в кластере &lt;/del&gt;|| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;8 &lt;/del&gt;|| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Сервис работает в Kubernetes, упакован в чарт &lt;/del&gt;|| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Обновление без простоя и откат&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Инференс через Triton &lt;/ins&gt;|| &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;7 &lt;/ins&gt;|| &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Модель отдаётся сервером инференса &lt;/ins&gt;|| &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Сравнение задержки с обычным сервисом&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Инференс через Triton &lt;/del&gt;|| 9 || &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Модель отдаётся сервером инференса &lt;/del&gt;|| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Сравнение задержки с обычным сервисом&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Развёрнуто в кластере &lt;/ins&gt;|| 9 || &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Сервис работает в Kubernetes, упакован в чарт &lt;/ins&gt;|| &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Обновление без простоя и откат&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| Оптимизация замерена || 13 || Модель конвертирована, прирост измерен || Замер до и после с воспроизводимой методикой&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| Оптимизация замерена || 13 || Модель конвертирована, прирост измерен || Замер до и после с воспроизводимой методикой&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pi_wiki-wiki:diff:1.41:old-5197:rev-5198:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Ахтямов Павел</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%A1%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BE%D0%B2_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2026&amp;diff=5197&amp;oldid=prev</id>
		<title>Ахтямов Павел: /* Недели 6-8. Инфраструктура и инференс */</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%A1%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BE%D0%B2_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2026&amp;diff=5197&amp;oldid=prev"/>
		<updated>2026-08-28T12:14:02Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Недели 6-8. Инфраструктура и инференс&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 12:14, 28 августа 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l73&quot;&gt;Строка 73:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 73:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! № !! Лекция !! Семинар&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! № !! Лекция !! Семинар&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| 6 || &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Kubernetes&lt;/del&gt;: &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;управляющий слой&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;поды&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;контроллеры&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;сервисы и внешний доступ&lt;/del&gt;, конфигурация &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;и секреты || Развёртывание сервиса в локальном кластере&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;написание манифестов&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| 6 || &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Инференс на сервере&lt;/ins&gt;: &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Triton&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;репозиторий моделей&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;динамическое батчирование&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;бэкенды || Запуск Triton&lt;/ins&gt;, конфигурация &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;модели&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;сравнение с обычным сервисом&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| 7 || Kubernetes &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;для ML&lt;/del&gt;: &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;запросы и лимиты ресурсов&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;классы обслуживания&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;планирование GPU&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;выделение узлов&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Helm &lt;/del&gt;|| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Упаковка &lt;/del&gt;сервиса в &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;чарт&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;разбор падения по памяти&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| 7 || Kubernetes: &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;управляющий слой&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;поды&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;контроллеры&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;сервисы и внешний доступ&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;конфигурация и секреты &lt;/ins&gt;|| &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Развёртывание &lt;/ins&gt;сервиса в &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;локальном кластере&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;написание манифестов&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| 8 || &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Инференс на сервере&lt;/del&gt;: &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Triton&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;репозиторий моделей&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;динамическое батчирование&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;бэкенды &lt;/del&gt;|| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Запуск Triton, конфигурация модели&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;сравнение с обычным сервисом&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| 8 || &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Kubernetes для ML&lt;/ins&gt;: &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;запросы и лимиты ресурсов&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;классы обслуживания&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;планирование GPU&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;выделение узлов, Helm &lt;/ins&gt;|| &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Упаковка сервиса в чарт&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;разбор падения по памяти&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pi_wiki-wiki:diff:1.41:old-5195:rev-5197:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Ахтямов Павел</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%A1%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BE%D0%B2_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2026&amp;diff=5195&amp;oldid=prev</id>
		<title>Ахтямов Павел: /* Важная информация */</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%A1%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BE%D0%B2_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2026&amp;diff=5195&amp;oldid=prev"/>
		<updated>2026-08-28T11:06:29Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Важная информация&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 11:06, 28 августа 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l12&quot;&gt;Строка 12:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 12:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Важная информация==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Важная информация==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Ссылка на чат: &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[ссылка]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Ссылка на чат: &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;t.me || +T7rNR2iJblY1NjAy&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Задания сдаются на платформе https://akhcheck.ru, там же ведомость. Оценки не публикуются в вики по закону о персональных данных&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Задания сдаются на платформе https://akhcheck.ru, там же ведомость. Оценки не публикуются в вики по закону о персональных данных&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Дедлайны мягкие: за каждые три дня просрочки снимается 20% от баллов задания&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Дедлайны мягкие: за каждые три дня просрочки снимается 20% от баллов задания&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ахтямов Павел</name></author>
	</entry>
	<entry>
		<id>https://wiki.atp-fivt.org/index.php?title=%D0%A1%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BE%D0%B2_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2026&amp;diff=5194&amp;oldid=prev</id>
		<title>Ахтямов Павел: Новая страница: «==Общие сведения== * Семестр: 1 (шестой курс) * Форма контроля: дифференцированный зачет * Дни и время занятий: понедельник, 9:00-12:00 (две пары подряд) * Первое занятие: 7 сентября 2026 года  &#039;&#039;&#039;Преподаватель&#039;&#039;&#039; * Ахтямов Павел  &#039;&#039;&#039;Приглашённые практики&#039;&#039;&#039; * Недели 9-11 вед...»</title>
		<link rel="alternate" type="text/html" href="https://wiki.atp-fivt.org/index.php?title=%D0%A1%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B8_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BE%D0%B2_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%BE%D1%81%D0%B5%D0%BD%D1%8C_2026&amp;diff=5194&amp;oldid=prev"/>
		<updated>2026-08-28T11:04:36Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «==Общие сведения== * Семестр: 1 (шестой курс) * Форма контроля: дифференцированный зачет * Дни и время занятий: понедельник, 9:00-12:00 (две пары подряд) * Первое занятие: 7 сентября 2026 года  &amp;#039;&amp;#039;&amp;#039;Преподаватель&amp;#039;&amp;#039;&amp;#039; * Ахтямов Павел  &amp;#039;&amp;#039;&amp;#039;Приглашённые практики&amp;#039;&amp;#039;&amp;#039; * Недели 9-11 вед...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Общие сведения==&lt;br /&gt;
* Семестр: 1 (шестой курс)&lt;br /&gt;
* Форма контроля: дифференцированный зачет&lt;br /&gt;
* Дни и время занятий: понедельник, 9:00-12:00 (две пары подряд)&lt;br /&gt;
* Первое занятие: 7 сентября 2026 года&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Преподаватель&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Ахтямов Павел&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Приглашённые практики&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Недели 9-11 ведёт приглашённый архитектор промышленных систем: ландшафт из сотен систем, работа под пиковой нагрузкой и разбор инцидентов, архитектурные компромиссы&lt;br /&gt;
&lt;br /&gt;
==Важная информация==&lt;br /&gt;
* Ссылка на чат: [ссылка]&lt;br /&gt;
* Задания сдаются на платформе https://akhcheck.ru, там же ведомость. Оценки не публикуются в вики по закону о персональных данных&lt;br /&gt;
* Дедлайны мягкие: за каждые три дня просрочки снимается 20% от баллов задания&lt;br /&gt;
&lt;br /&gt;
==О курсе==&lt;br /&gt;
&lt;br /&gt;
Модель, которая хорошо работает в ноутбуке, и модель, которая держит нагрузку в продукте, различаются не качеством, а всем остальным: способом упаковки, воспроизводимостью данных, порядком выкатки, поведением под нагрузкой и тем, что происходит в момент отказа. Курс посвящён этому остальному.&lt;br /&gt;
&lt;br /&gt;
Мы берём одну модель и доводим её от кода на машине разработчика до сервиса, который переживает перезапуск, обновление и наплыв запросов. По дороге разбираем инструменты, которыми это делается в промышленности, и на каждом шаге отвечаем на вопрос, что именно ломается без этого инструмента.&lt;br /&gt;
&lt;br /&gt;
Курс посвящён &amp;#039;&amp;#039;&amp;#039;эксплуатации моделей&amp;#039;&amp;#039;&amp;#039;, а не их обучению. Мы не занимаемся распределённым обучением, не разбираем алгоритмы синхронизации градиентов и не соревнуемся в качестве моделей. Курс начинается с уже обученной модели и заканчивается сервисом, которым пользуются люди.&lt;br /&gt;
&lt;br /&gt;
Такое сужение сделано намеренно. Обучению моделей посвящены другие курсы программы, а вот доведению до работающего сервиса не посвящён почти никакой, хотя именно на этом участке теряется большинство проектов.&lt;br /&gt;
&lt;br /&gt;
=== Формат ===&lt;br /&gt;
&lt;br /&gt;
Занятия идут парами по понедельникам утром: первая пара разбирает тему, вторая отводится под работу руками.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NewsPulse&amp;#039;&amp;#039;&amp;#039; мы собираем вместе в аудитории, шаг за шагом: он служит образцом, на котором видно целевое состояние каждого слоя.&lt;br /&gt;
&lt;br /&gt;
Собственный проект каждый ведёт сам, и &amp;#039;&amp;#039;&amp;#039;брать его желательно из своей выпускной работы&amp;#039;&amp;#039;&amp;#039;. Курс занимается ровно тем, чего у выпускных работ по машинному обучению обычно нет: модель обучена и показывает метрики, но запустить её у себя не может никто, кроме автора. Пройдя курс на своей теме, мы получаем не учебное задание в стол, а работающую часть выпускной работы, которую можно показать на защите.&lt;br /&gt;
&lt;br /&gt;
Тем, у кого подходящей темы нет, мы предлагаем готовую: &amp;#039;&amp;#039;&amp;#039;CEREBRO&amp;#039;&amp;#039;&amp;#039;, сервис анализа звучащей речи. Модель в нём та же, что и в аудиторном проекте, поэтому внимание уходит на инженерию, а не на возню с предметной областью.&lt;br /&gt;
&lt;br /&gt;
=== Кому подойдёт ===&lt;br /&gt;
&lt;br /&gt;
Курс рассчитан на тех, кто уже уверенно пишет на Python с asyncio и Pydantic, работает с Git и SQL и запускал контейнеры. Вводных занятий по этим темам нет, мы начинаем сразу с нагруженного сервиса.&lt;br /&gt;
&lt;br /&gt;
Остальные темы разбираются с нуля в связке с изученными инструментами. Основное время уходит на связку, вокруг которой построен курс: MLOps, Kubernetes и serving моделей.&lt;br /&gt;
&lt;br /&gt;
Требуется готовность каждую неделю приносить растущий проект и разбираться с тем, что сломалось. Курс инженерный, и большая часть понимания приходит в момент, когда сервис не поднялся.&lt;br /&gt;
&lt;br /&gt;
== План курса ==&lt;br /&gt;
&lt;br /&gt;
Курс идёт пятнадцать недель. Каждая неделя состоит из лекции на 80 минут и семинара на 80 минут, семинар всегда про работу руками.&lt;br /&gt;
&lt;br /&gt;
Три недели в середине семестра ведёт приглашённый архитектор промышленных систем. Блок стоит после Triton намеренно: к нему мы уже собрали сервис, развернули его в кластере и увидели разницу между задержкой и пропускной способностью, поэтому разговор про ландшафт и инциденты ложится на собственный опыт, а не на воображение.&lt;br /&gt;
&lt;br /&gt;
=== Недели 1-5. Фундамент, взаимодействие и MLOps ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! № !! Лекция !! Семинар&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Высоконагруженные ML-системы: продакшн как 80 процентов работы, задержка против пропускной способности, физические ограничения сети, три паттерна инференса, блокировка цикла событий, контракты, структурное логирование || Проект на poetry, сервис с намеренной ошибкой, первый нагрузочный тест и починка&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Продвинутая контейнеризация и конвейер сборки: multi-stage, distroless, образы с CUDA, тестирование внутри конвейера || Уменьшение образа, конвейер в GitLab CI, тесты сервиса&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Асинхронные паттерны и высокая нагрузка: очереди сообщений, семантика доставки, отложенный инференс, обратное давление || Сервис, который читает задачи из очереди и пишет результат в другую&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Данные и модели: DVC, удалённые хранилища, реестр моделей, рассинхрон признаков между обучением и выводом || Связка DVC с MinIO и MLflow&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Оркестрация: Airflow 3, идемпотентность шага, изоляция ML-задач, непрерывное переобучение || DAG регулярного переобучения&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Очереди стоят третьей неделей не случайно. На первом занятии задана рамка из трёх паттернов инференса, и потоковая обработка в ней только названа. Очереди её раскрывают, а без них дальше не собирается ни оркестрация, ни разговор про реальный ландшафт систем.&lt;br /&gt;
&lt;br /&gt;
=== Недели 6-8. Инфраструктура и инференс ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! № !! Лекция !! Семинар&lt;br /&gt;
|-&lt;br /&gt;
| 6 || Kubernetes: управляющий слой, поды, контроллеры, сервисы и внешний доступ, конфигурация и секреты || Развёртывание сервиса в локальном кластере, написание манифестов&lt;br /&gt;
|-&lt;br /&gt;
| 7 || Kubernetes для ML: запросы и лимиты ресурсов, классы обслуживания, планирование GPU, выделение узлов, Helm || Упаковка сервиса в чарт, разбор падения по памяти&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Инференс на сервере: Triton, репозиторий моделей, динамическое батчирование, бэкенды || Запуск Triton, конфигурация модели, сравнение с обычным сервисом&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Kubernetes занимает две недели: одну на устройство самого кластера, вторую на то, что в нём меняется для ML-нагрузки. Связка Kubernetes с serving и MLOps и есть стержень курса.&lt;br /&gt;
&lt;br /&gt;
=== Недели 9-11. Блок приглашённого архитектора ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! № !! Лекция !! Семинар&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Анатомия ландшафта из сотен систем, интеграционные шаблоны, работа с унаследованным кодом || Студенты размещают свой сервис в схеме ландшафта и находят зависимости&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Пиковая нагрузка, SLA и SLO, плавная деградация, стратегии выкатки || Разбор настоящего инцидента в группах по его фактуре&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Компромиссы и нефункциональные требования, как архитектурные решения принимаются вместе с заказчиком || Проектирование архитектуры своего проекта в формате разбора решения&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Недели 12-15. Производительность, языковые модели и финал ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! № !! Лекция !! Семинар&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Оптимизация инференса: ONNX и TensorRT, квантование, профилирование || Конвертация модели и подключение к Triton, замер роста пропускной способности&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Serving больших языковых моделей и поиск с дополнением генерации: KV-кэш, непрерывное батчирование || Развёртывание модели через vLLM, сравнение скорости&lt;br /&gt;
|-&lt;br /&gt;
| 14 || Наблюдаемость: метрики системы против метрик модели, дрейф данных, трассировка и OpenTelemetry || Панель с задержкой и утилизацией GPU, сквозной трейс запроса&lt;br /&gt;
|-&lt;br /&gt;
| 15 || Итоги курса и тренды || Защита проектов&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Облачная инфраструктура с Terraform в программу не входит. Отказ осознанный: растягивать курс ещё на одну тему в ущерб связке Kubernetes и serving мы не стали.&lt;br /&gt;
&lt;br /&gt;
== Формат сдачи курса ==&lt;br /&gt;
&lt;br /&gt;
Оценка складывается из баллов за домашние задания и за выпускной проект. Задания сдаются запросом на слияние в репозиторий курса, проверка автоматическая на https://akhcheck.ru, разбор ошибок ручной.&lt;br /&gt;
&lt;br /&gt;
=== Минимальные требования ===&lt;br /&gt;
&lt;br /&gt;
Для получения зачёта необходимо, чтобы проект удовлетворял всем условиям ниже. Предметная область значения не имеет: требования одинаковы и для темы выпускной работы, и для предложенной нами.&lt;br /&gt;
&lt;br /&gt;
* Сервис поднимается одной командой на чистой машине по написанной инструкции.&lt;br /&gt;
* Сборка образа и прогон проверок выполняются автоматическим конвейером, а не руками.&lt;br /&gt;
* Данные и веса модели версионированы, состояние эксперимента восстанавливается.&lt;br /&gt;
* Сервис переживает перезапуск без потери принятых, но не обработанных запросов.&lt;br /&gt;
* Есть набор проверок, который краснеет при поломке, и он запускается конвейером.&lt;br /&gt;
&lt;br /&gt;
=== Проверка на защите ===&lt;br /&gt;
&lt;br /&gt;
Защита проходит на живом сервисе. Мы запускаем его по инструкции автора, подаём нагрузку, смотрим на метрики и обсуждаем, где он сломается раньше всего. Отдельно проверяется откат: автор выкатывает заведомо испорченную версию и возвращает рабочую.&lt;br /&gt;
&lt;br /&gt;
=== Бонусы ===&lt;br /&gt;
&lt;br /&gt;
Дополнительные баллы даются за то, что выходит за рамки минимальных требований: замеры ускорения вывода с воспроизводимой методикой, автоматическое масштабирование под реальную нагрузку, оповещения, которые срабатывают до того, как отказ заметит пользователь.&lt;br /&gt;
&lt;br /&gt;
=== Вехи по ходу семестра ===&lt;br /&gt;
&lt;br /&gt;
Вехи привязаны к темам занятий: каждая проверяется тем, что разбиралось на предыдущей неделе.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Веха !! Неделя !! Что показываем !! Чем проверяется&lt;br /&gt;
|-&lt;br /&gt;
| Сервис держит нагрузку || 2 || Сервис отвечает под нагрузочным тестом || Прогон нагрузки и замер задержки&lt;br /&gt;
|-&lt;br /&gt;
| Сборка автоматическая || 3 || Образ собирается конвейером, тесты проходят || Зелёный pipeline в GitLab CI&lt;br /&gt;
|-&lt;br /&gt;
| Обработка вынесена в очередь || 4 || Тяжёлая задача уходит из обработчика запроса || Наплыв запросов без отказов&lt;br /&gt;
|-&lt;br /&gt;
| Данные версионированы || 6 || Восстановление состояния эксперимента || Откат к предыдущей версии данных и весов&lt;br /&gt;
|-&lt;br /&gt;
| Развёрнуто в кластере || 8 || Сервис работает в Kubernetes, упакован в чарт || Обновление без простоя и откат&lt;br /&gt;
|-&lt;br /&gt;
| Инференс через Triton || 9 || Модель отдаётся сервером инференса || Сравнение задержки с обычным сервисом&lt;br /&gt;
|-&lt;br /&gt;
| Оптимизация замерена || 13 || Модель конвертирована, прирост измерен || Замер до и после с воспроизводимой методикой&lt;br /&gt;
|-&lt;br /&gt;
| Наблюдаемость собрана || 15 || Панель с метриками и оповещения || Разбор отказа по журналам и метрикам&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Ахтямов Павел</name></author>
	</entry>
</feed>