<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.mywolfram.ru/index.php?action=history&amp;feed=atom&amp;title=Bandit-v2_-_%D0%98%D0%BD%D1%84%D0%B5%D1%80%D0%B5%D0%BD%D1%81</id>
	<title>Bandit-v2 - Инференс - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.mywolfram.ru/index.php?action=history&amp;feed=atom&amp;title=Bandit-v2_-_%D0%98%D0%BD%D1%84%D0%B5%D1%80%D0%B5%D0%BD%D1%81"/>
	<link rel="alternate" type="text/html" href="https://wiki.mywolfram.ru/index.php?title=Bandit-v2_-_%D0%98%D0%BD%D1%84%D0%B5%D1%80%D0%B5%D0%BD%D1%81&amp;action=history"/>
	<updated>2026-05-28T21:00:18Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.mywolfram.ru/index.php?title=Bandit-v2_-_%D0%98%D0%BD%D1%84%D0%B5%D1%80%D0%B5%D0%BD%D1%81&amp;diff=899&amp;oldid=prev</id>
		<title>Владимир: /* Исходный код */</title>
		<link rel="alternate" type="text/html" href="https://wiki.mywolfram.ru/index.php?title=Bandit-v2_-_%D0%98%D0%BD%D1%84%D0%B5%D1%80%D0%B5%D0%BD%D1%81&amp;diff=899&amp;oldid=prev"/>
		<updated>2026-01-16T07:39:45Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Исходный код&lt;/span&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.mywolfram.ru/index.php?title=Bandit-v2_-_%D0%98%D0%BD%D1%84%D0%B5%D1%80%D0%B5%D0%BD%D1%81&amp;amp;diff=899&amp;amp;oldid=898&quot;&gt;Внесённые изменения&lt;/a&gt;</summary>
		<author><name>Владимир</name></author>
	</entry>
	<entry>
		<id>https://wiki.mywolfram.ru/index.php?title=Bandit-v2_-_%D0%98%D0%BD%D1%84%D0%B5%D1%80%D0%B5%D0%BD%D1%81&amp;diff=898&amp;oldid=prev</id>
		<title>Владимир: /* Исходный код */</title>
		<link rel="alternate" type="text/html" href="https://wiki.mywolfram.ru/index.php?title=Bandit-v2_-_%D0%98%D0%BD%D1%84%D0%B5%D1%80%D0%B5%D0%BD%D1%81&amp;diff=898&amp;oldid=prev"/>
		<updated>2026-01-16T07:39:23Z</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;Версия от 07:39, 16 января 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-l1&quot;&gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&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;= Запуск инференса модели Bandit-v2 для аудио сепарации =&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;= Запуск инференса модели Bandit-v2 для аудио сепарации =&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 colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;В данной статье описывается процесс настройки и запуска инференса нейросетевой модели &amp;#039;&amp;#039;&amp;#039;Bandit-v2&amp;#039;&amp;#039;&amp;#039; из репозитория [https://github.com/kwatcharasupat/bandit-v2 kwatcharasupat/bandit-v2] для задачи &amp;#039;&amp;#039;&amp;#039;Cinematic Audio Source Separation&amp;#039;&amp;#039;&amp;#039; — разделения аудиодорожки на составляющие: речь (speech), музыку (music) и звуковые эффекты (sfx).&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;В данной статье описывается процесс настройки и запуска инференса нейросетевой модели &amp;#039;&amp;#039;&amp;#039;Bandit-v2&amp;#039;&amp;#039;&amp;#039; из репозитория [https://github.com/kwatcharasupat/bandit-v2 kwatcharasupat/bandit-v2] для задачи &amp;#039;&amp;#039;&amp;#039;Cinematic Audio Source Separation&amp;#039;&amp;#039;&amp;#039; — разделения аудиодорожки на составляющие: речь (speech), музыку (music) и звуковые эффекты (sfx).&lt;/div&gt;&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-l48&quot;&gt;Строка 48:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 47:&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 colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;=== Проблема 1: Netflix-специфичные зависимости ===&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;=== Проблема 1: Netflix-специфичные зависимости ===&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;Файл &amp;lt;code&amp;gt;requirements.txt&amp;lt;/code&amp;gt; содержит ссылки на приватный PyPI сервер Netflix:&amp;lt;pre&amp;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;Файл &amp;lt;code&amp;gt;requirements.txt&amp;lt;/code&amp;gt; содержит ссылки на приватный PyPI сервер Netflix:&amp;lt;pre&amp;gt;&lt;/div&gt;&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-l87&quot;&gt;Строка 87:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 85:&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;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Заголовок&lt;/del&gt;=simple_inference.py|&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Содержимое=&lt;/del&gt;&amp;lt;syntaxhighlight lang=&quot;python&quot;&amp;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;class&lt;/ins&gt;=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot;mw-collapsible mw-collapsed wikitable&quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;simple_inference.py&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;|&amp;lt;syntaxhighlight lang=&quot;python&quot;&amp;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;&amp;lt;/syntaxhighlight&amp;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;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;}&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;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;== Описание simple_inference.py ==&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;== Описание simple_inference.py ==&lt;/div&gt;&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-l127&quot;&gt;Строка 127:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 129:&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 colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l142&quot;&gt;Строка 142:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 143:&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;=== Шаг 2: Установка PyTorch с CUDA 11.8 ===&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;=== Шаг 2: Установка PyTorch с CUDA 11.8 ===&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;|&lt;/del&gt;Версия PyTorch 2.0.0 из оригинального requirements.txt больше недоступна. Используйте 2.5.0 или новее.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}}&lt;/del&gt;&amp;lt;pre&amp;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;&#039;&#039;&#039;&lt;/ins&gt;Внимание&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:&#039;&#039;&#039; &lt;/ins&gt;Версия PyTorch 2.0.0 из оригинального requirements.txt больше недоступна. Используйте 2.5.0 или новее.&amp;lt;pre&amp;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;pip install torch==2.5.0+cu118 torchaudio==2.5.0+cu118 --extra-index-url https://download.pytorch.org/whl/cu118&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;pip install torch==2.5.0+cu118 torchaudio==2.5.0+cu118 --extra-index-url https://download.pytorch.org/whl/cu118&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;&amp;lt;/pre&amp;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;&amp;lt;/pre&amp;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;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;=== Шаг 3: Установка зависимостей ===&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;=== Шаг 3: Установка зависимостей ===&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;|&lt;/del&gt;Пакет &amp;lt;code&amp;gt;asteroid&amp;lt;/code&amp;gt; требует сборки &amp;lt;code&amp;gt;pesq&amp;lt;/code&amp;gt; с Visual C++ Build Tools. Для инференса он не нужен, поэтому не устанавливаем.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}}&lt;/del&gt;&amp;lt;pre&amp;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;&#039;&#039;&#039;&lt;/ins&gt;Внимание&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;:&#039;&#039;&#039; &lt;/ins&gt;Пакет &amp;lt;code&amp;gt;asteroid&amp;lt;/code&amp;gt; требует сборки &amp;lt;code&amp;gt;pesq&amp;lt;/code&amp;gt; с Visual C++ Build Tools. Для инференса он не нужен, поэтому не устанавливаем.&amp;lt;pre&amp;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;pip install &amp;quot;pytorch_lightning&amp;gt;=2.3.0&amp;quot; hydra-core omegaconf librosa soundfile einops tqdm julius huggingface-hub pyyaml scipy pandas&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;pip install &amp;quot;pytorch_lightning&amp;gt;=2.3.0&amp;quot; hydra-core omegaconf librosa soundfile einops tqdm julius huggingface-hub pyyaml scipy pandas&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;&amp;lt;/pre&amp;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;&amp;lt;/pre&amp;gt;&lt;/div&gt;&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-l164&quot;&gt;Строка 164:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 165:&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 colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;&amp;lt;pre&amp;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;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Владимир</name></author>
	</entry>
	<entry>
		<id>https://wiki.mywolfram.ru/index.php?title=Bandit-v2_-_%D0%98%D0%BD%D1%84%D0%B5%D1%80%D0%B5%D0%BD%D1%81&amp;diff=897&amp;oldid=prev</id>
		<title>Владимир: Новая страница: « = Запуск инференса модели Bandit-v2 для аудио сепарации =  == Суть задачи == В данной статье описывается процесс настройки и запуска инференса нейросетевой модели &#039;&#039;&#039;Bandit-v2&#039;&#039;&#039; из репозитория [https://github.com/kwatcharasupat/bandit-v2 kwatcharasupat/bandit-v2] для задачи &#039;&#039;&#039;Cinematic Audio Source Separation&#039;&#039;&#039;...»</title>
		<link rel="alternate" type="text/html" href="https://wiki.mywolfram.ru/index.php?title=Bandit-v2_-_%D0%98%D0%BD%D1%84%D0%B5%D1%80%D0%B5%D0%BD%D1%81&amp;diff=897&amp;oldid=prev"/>
		<updated>2026-01-16T07:37:42Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: « = Запуск инференса модели Bandit-v2 для аудио сепарации =  == Суть задачи == В данной статье описывается процесс настройки и запуска инференса нейросетевой модели &amp;#039;&amp;#039;&amp;#039;Bandit-v2&amp;#039;&amp;#039;&amp;#039; из репозитория [https://github.com/kwatcharasupat/bandit-v2 kwatcharasupat/bandit-v2] для задачи &amp;#039;&amp;#039;&amp;#039;Cinematic Audio Source Separation&amp;#039;&amp;#039;&amp;#039;...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
= Запуск инференса модели Bandit-v2 для аудио сепарации =&lt;br /&gt;
&lt;br /&gt;
== Суть задачи ==&lt;br /&gt;
В данной статье описывается процесс настройки и запуска инференса нейросетевой модели &amp;#039;&amp;#039;&amp;#039;Bandit-v2&amp;#039;&amp;#039;&amp;#039; из репозитория [https://github.com/kwatcharasupat/bandit-v2 kwatcharasupat/bandit-v2] для задачи &amp;#039;&amp;#039;&amp;#039;Cinematic Audio Source Separation&amp;#039;&amp;#039;&amp;#039; — разделения аудиодорожки на составляющие: речь (speech), музыку (music) и звуковые эффекты (sfx).&lt;br /&gt;
&lt;br /&gt;
Проект изначально разработан для внутренней инфраструктуры Netflix и содержит зависимости от закрытых пакетов, что делает прямой запуск невозможным. В статье представлено рабочее решение для запуска инференса на локальной машине с GPU.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Результат работы:&amp;#039;&amp;#039;&amp;#039; скрипт &amp;lt;code&amp;gt;simple_inference.py&amp;lt;/code&amp;gt;, позволяющий обрабатывать аудиофайлы любой длительности со скоростью ~17x realtime на RTX 4090.&lt;br /&gt;
&lt;br /&gt;
== О проекте Bandit-v2 ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Bandit&amp;#039;&amp;#039;&amp;#039; (Band-Split RNN) — архитектура нейросети для разделения аудио на источники. Основные особенности:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Band-Split подход&amp;#039;&amp;#039;&amp;#039; — спектрограмма делится на 64 частотных диапазона (bands), каждый обрабатывается отдельно&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Dual-path RNN&amp;#039;&amp;#039;&amp;#039; — последовательная обработка по временной и частотной осям с использованием GRU&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Mask Estimation&amp;#039;&amp;#039;&amp;#039; — для каждого stem (речь/музыка/sfx) предсказывается комплексная маска&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Технические характеристики модели:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Параметр&lt;br /&gt;
!Значение&lt;br /&gt;
|-&lt;br /&gt;
|Sample rate&lt;br /&gt;
|48000 Hz&lt;br /&gt;
|-&lt;br /&gt;
|n_bands&lt;br /&gt;
|64&lt;br /&gt;
|-&lt;br /&gt;
|n_fft&lt;br /&gt;
|2048&lt;br /&gt;
|-&lt;br /&gt;
|hop_length&lt;br /&gt;
|512&lt;br /&gt;
|-&lt;br /&gt;
|emb_dim&lt;br /&gt;
|128&lt;br /&gt;
|-&lt;br /&gt;
|rnn_dim&lt;br /&gt;
|256&lt;br /&gt;
|-&lt;br /&gt;
|rnn_type&lt;br /&gt;
|GRU (bidirectional)&lt;br /&gt;
|-&lt;br /&gt;
|n_sqm_modules&lt;br /&gt;
|8&lt;br /&gt;
|}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Веса модели&amp;#039;&amp;#039;&amp;#039; доступны на Zenodo: [https://zenodo.org/records/12701995 checkpoint-multi.ckpt]&lt;br /&gt;
&lt;br /&gt;
== Процесс формирования рабочего решения ==&lt;br /&gt;
&lt;br /&gt;
=== Проблема 1: Netflix-специфичные зависимости ===&lt;br /&gt;
Файл &amp;lt;code&amp;gt;requirements.txt&amp;lt;/code&amp;gt; содержит ссылки на приватный PyPI сервер Netflix:&amp;lt;pre&amp;gt;&lt;br /&gt;
--index-url https://pypi.netflix.net/simple&lt;br /&gt;
&amp;lt;/pre&amp;gt;И пакеты: &amp;lt;code&amp;gt;nflx-manta&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;nflx-metaflow&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;jasper&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;storage&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;metatron&amp;lt;/code&amp;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;
=== Проблема 2: Ray зависимость ===&lt;br /&gt;
Модуль &amp;lt;code&amp;gt;src/system/utils.py&amp;lt;/code&amp;gt; импортирует Ray (распределённые вычисления), который не нужен для локального инференса.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Решение:&amp;#039;&amp;#039;&amp;#039; Создан отдельный скрипт &amp;lt;code&amp;gt;simple_inference.py&amp;lt;/code&amp;gt;, который напрямую импортирует модель без системных обёрток.&lt;br /&gt;
&lt;br /&gt;
=== Проблема 3: Устаревший PyTorch ===&lt;br /&gt;
В requirements указан &amp;lt;code&amp;gt;torch==2.0.0+cu118&amp;lt;/code&amp;gt;, который больше недоступен в PyPI.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Решение:&amp;#039;&amp;#039;&amp;#039; Установлен &amp;lt;code&amp;gt;torch==2.5.0+cu118&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Проблема 4: Ошибка сборки pesq ===&lt;br /&gt;
Пакет &amp;lt;code&amp;gt;asteroid&amp;lt;/code&amp;gt; тянет зависимость &amp;lt;code&amp;gt;pesq&amp;lt;/code&amp;gt;, требующую компиляции C++.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Решение:&amp;#039;&amp;#039;&amp;#039; Пакет &amp;lt;code&amp;gt;asteroid&amp;lt;/code&amp;gt; не устанавливается — он нужен только для метрик обучения, не для инференса.&lt;br /&gt;
&lt;br /&gt;
=== Проблема 5: Чрезмерное потребление VRAM ===&lt;br /&gt;
Оригинальный &amp;lt;code&amp;gt;StandardTensorChunkedInferenceHandler&amp;lt;/code&amp;gt; с &amp;lt;code&amp;gt;batch_size=32&amp;lt;/code&amp;gt; и overlap 7 секунд (8с chunk, 1с hop) создаёт буфер на ~50GB.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Решение:&amp;#039;&amp;#039;&amp;#039; Реализован простой chunked подход с последовательной обработкой чанков (30с chunk, 2с overlap), потребление VRAM снижено до ~2GB.&lt;br /&gt;
&lt;br /&gt;
=== Проблема 6: Stereo обработка ===&lt;br /&gt;
Модель обучена с &amp;lt;code&amp;gt;in_channels=1&amp;lt;/code&amp;gt; (mono). При подаче stereo возникает ошибка LayerNorm.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Решение:&amp;#039;&amp;#039;&amp;#039; Каждый канал stereo обрабатывается отдельно, результаты объединяются.&lt;br /&gt;
&lt;br /&gt;
=== Проблема 7: Half precision (FP16) ===&lt;br /&gt;
Прямая конвертация модели в &amp;lt;code&amp;gt;.half()&amp;lt;/code&amp;gt; вызывает ошибку типов в LayerNorm.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Решение:&amp;#039;&amp;#039;&amp;#039; Используется &amp;lt;code&amp;gt;torch.cuda.amp.autocast()&amp;lt;/code&amp;gt; для автоматического mixed precision.&lt;br /&gt;
&lt;br /&gt;
== Исходный код ==&lt;br /&gt;
{{Спойлер|Заголовок=simple_inference.py|Содержимое=&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# ВСТАВЬТЕ КОД ЗДЕСЬ&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== Описание simple_inference.py ==&lt;br /&gt;
Скрипт состоит из трёх основных функций:&lt;br /&gt;
&lt;br /&gt;
=== create_model() ===&lt;br /&gt;
Создаёт экземпляр модели Bandit с параметрами, соответствующими checkpoint:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;in_channels=1&amp;lt;/code&amp;gt; — mono (stereo обрабатывается поканально)&lt;br /&gt;
* &amp;lt;code&amp;gt;n_bands=64&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;n_sqm_modules=8&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;n_fft=2048&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;hop_length=512&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;fs=48000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== simple_chunked_inference() ===&lt;br /&gt;
Обрабатывает аудио чанками с crossfade:&lt;br /&gt;
&lt;br /&gt;
# Аудио делится на чанки (по умолчанию 30 секунд)&lt;br /&gt;
# Соседние чанки перекрываются (по умолчанию 2 секунды)&lt;br /&gt;
# В зоне перекрытия применяется линейный crossfade&lt;br /&gt;
# Каждый чанк обрабатывается отдельно, результат сразу переносится на CPU&lt;br /&gt;
# GPU кэш очищается после каждого чанка&lt;br /&gt;
&lt;br /&gt;
=== run_inference() ===&lt;br /&gt;
Основная функция:&lt;br /&gt;
&lt;br /&gt;
# Загружает модель и веса из checkpoint&lt;br /&gt;
# Загружает аудио (с ресемплингом если нужно)&lt;br /&gt;
# Для stereo — обрабатывает каждый канал отдельно&lt;br /&gt;
# Сохраняет результаты в отдельные WAV файлы для каждого stem&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Особенности реализации:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* Autocast mixed precision для ускорения без проблем с типами&lt;br /&gt;
* Минимальное потребление VRAM (~2GB на 30-секундный чанк)&lt;br /&gt;
* Поддержка произвольной длительности аудио&lt;br /&gt;
* Сохранение stereo (не конвертируется в mono)&lt;br /&gt;
&lt;br /&gt;
== Инструкция по установке ==&lt;br /&gt;
&lt;br /&gt;
=== Требования ===&lt;br /&gt;
&lt;br /&gt;
* Windows 10/11 или Linux&lt;br /&gt;
* NVIDIA GPU с поддержкой CUDA 11.8&lt;br /&gt;
* Anaconda или Miniconda&lt;br /&gt;
* ~3GB свободного места для PyTorch&lt;br /&gt;
&lt;br /&gt;
=== Шаг 1: Создание conda окружения ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda create -n bandit-v2 python=3.10 -y&lt;br /&gt;
conda activate bandit-v2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Шаг 2: Установка PyTorch с CUDA 11.8 ===&lt;br /&gt;
{{Внимание|Версия PyTorch 2.0.0 из оригинального requirements.txt больше недоступна. Используйте 2.5.0 или новее.}}&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install torch==2.5.0+cu118 torchaudio==2.5.0+cu118 --extra-index-url https://download.pytorch.org/whl/cu118&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Шаг 3: Установка зависимостей ===&lt;br /&gt;
{{Внимание|Пакет &amp;lt;code&amp;gt;asteroid&amp;lt;/code&amp;gt; требует сборки &amp;lt;code&amp;gt;pesq&amp;lt;/code&amp;gt; с Visual C++ Build Tools. Для инференса он не нужен, поэтому не устанавливаем.}}&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install &amp;quot;pytorch_lightning&amp;gt;=2.3.0&amp;quot; hydra-core omegaconf librosa soundfile einops tqdm julius huggingface-hub pyyaml scipy pandas&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Шаг 4: Клонирование репозитория ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/kwatcharasupat/bandit-v2.git&lt;br /&gt;
cd bandit-v2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Шаг 5: Скачивание весов модели ===&lt;br /&gt;
Скачайте &amp;lt;code&amp;gt;checkpoint-multi.ckpt&amp;lt;/code&amp;gt; с [https://zenodo.org/records/12701995 Zenodo] и поместите в удобное место.&lt;br /&gt;
&lt;br /&gt;
=== Шаг 6: Добавление simple_inference.py ===&lt;br /&gt;
Скопируйте скрипт &amp;lt;code&amp;gt;simple_inference.py&amp;lt;/code&amp;gt; (см. раздел &amp;quot;Исходный код&amp;quot;) в корень репозитория &amp;lt;code&amp;gt;bandit-v2/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Инструкция по запуску ==&lt;br /&gt;
&lt;br /&gt;
=== Активация окружения ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda activate bandit-v2&lt;br /&gt;
cd путь/к/bandit-v2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Базовый запуск ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python simple_inference.py -c &amp;quot;путь/к/checkpoint-multi.ckpt&amp;quot; -a &amp;quot;путь/к/аудио.wav&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Полный синтаксис ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python simple_inference.py \&lt;br /&gt;
    --checkpoint &amp;quot;путь/к/checkpoint-multi.ckpt&amp;quot; \&lt;br /&gt;
    --audio &amp;quot;путь/к/аудио.wav&amp;quot; \&lt;br /&gt;
    --output &amp;quot;путь/к/выходной/папке&amp;quot; \&lt;br /&gt;
    --chunk 30 \&lt;br /&gt;
    --overlap 2 \&lt;br /&gt;
    --stems speech music sfx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Параметр&lt;br /&gt;
!По умолчанию&lt;br /&gt;
!Описание&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;-c, --checkpoint&amp;lt;/code&amp;gt;&lt;br /&gt;
|(обязательный)&lt;br /&gt;
|Путь к файлу весов .ckpt&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;-a, --audio&amp;lt;/code&amp;gt;&lt;br /&gt;
|(обязательный)&lt;br /&gt;
|Путь к входному аудиофайлу&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;-o, --output&amp;lt;/code&amp;gt;&lt;br /&gt;
|./estimates/&lt;br /&gt;
|Папка для выходных файлов&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;--chunk&amp;lt;/code&amp;gt;&lt;br /&gt;
|30.0&lt;br /&gt;
|Размер чанка в секундах&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;--overlap&amp;lt;/code&amp;gt;&lt;br /&gt;
|2.0&lt;br /&gt;
|Размер перекрытия в секундах&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;--stems&amp;lt;/code&amp;gt;&lt;br /&gt;
|speech music sfx&lt;br /&gt;
|Список stem для разделения&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;--fs&amp;lt;/code&amp;gt;&lt;br /&gt;
|48000&lt;br /&gt;
|Sample rate (менять не рекомендуется)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;--no-half&amp;lt;/code&amp;gt;&lt;br /&gt;
|False&lt;br /&gt;
|Отключить mixed precision&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Пример вывода ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GPU: NVIDIA GeForce RTX 4090&lt;br /&gt;
VRAM: 22.5 GB&lt;br /&gt;
&lt;br /&gt;
=== Config ===&lt;br /&gt;
Chunk: 30.0s, Overlap: 2.0s&lt;br /&gt;
Half precision: True&lt;br /&gt;
&lt;br /&gt;
=== Loading Model ===&lt;br /&gt;
Model loaded&lt;br /&gt;
&lt;br /&gt;
=== Loading Audio ===&lt;br /&gt;
Duration: 420.5s, Channels: 2, SR: 48000&lt;br /&gt;
&lt;br /&gt;
=== Inference ===&lt;br /&gt;
Processing channel 1/2...&lt;br /&gt;
Processing: 100%|████████████████| 15/15 [00:12&amp;lt;00:00, 1.20it/s]&lt;br /&gt;
Processing channel 2/2...&lt;br /&gt;
Processing: 100%|████████████████| 15/15 [00:12&amp;lt;00:00, 1.21it/s]&lt;br /&gt;
&lt;br /&gt;
Done in 24.9s (16.9x realtime)&lt;br /&gt;
Peak VRAM: 1.99 GB&lt;br /&gt;
&lt;br /&gt;
=== Saving ===&lt;br /&gt;
  speech_estimate.wav&lt;br /&gt;
  music_estimate.wav&lt;br /&gt;
  sfx_estimate.wav&lt;br /&gt;
&lt;br /&gt;
Complete!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Выходные файлы ===&lt;br /&gt;
В указанной папке создаются три файла:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;speech_estimate.wav&amp;lt;/code&amp;gt; — речь/диалоги&lt;br /&gt;
* &amp;lt;code&amp;gt;music_estimate.wav&amp;lt;/code&amp;gt; — музыка&lt;br /&gt;
* &amp;lt;code&amp;gt;sfx_estimate.wav&amp;lt;/code&amp;gt; — звуковые эффекты&lt;br /&gt;
&lt;br /&gt;
Все файлы сохраняются с тем же sample rate (48000 Hz) и количеством каналов, что и входной файл.&lt;/div&gt;</summary>
		<author><name>Владимир</name></author>
	</entry>
</feed>