Извините, но по моему мнению то, как написана статья это ужас.
Оговорюсь, что на данный момент фаззинг с генетическим алгоритмом в YADRO официально не применяется, пока мы проводим эксперименты.
Почему прочитав 30% статьи я узнаю, что это эксперименты? А ведь в заголовке самоуверенное "как тестировать продукт на безопасность".
Очень много про работу ГА (кроссовер и мутация и всякое такое). Допустимо (но на мой взгляд избыточно). А вот Фитнес-функция как-то уж больно вяло описана. Пример вредоносного пакета меня надолго ввел в ступор. Почему таблица 4*4 байтов дает 64 байта? Поищите в статье такое место: "0xIN 0xYO 0xU0 0x0!" что это за кодировка? У нас Payload текстовый? Или бинарный?
В нашем случае это были метод черного ящика (Black Box)
Хорошо, ближе к концу наши догадки, что использовались "только внешние ответы, логи и прочую информацию, которую система выдает наружу" подтвердились. Самое главное: посмотрев фитнесс-функции я увидел, что большое внимание уделяется разным ошибкам, которые отображаются в логах(?) -- "invalid (base64|json|xml|protobuf) data" и т.п. Но как нам поможет увеличение числа подобных записей в логах поймать пропущенную стандартными методами системы ошибку? Потому что в случае с ГА именно так и будет происходить - он будет пытаться получить наивысшую оценку score. Я ведь прав, нам нужно найти такие пакеты, которые вызовут сбой системы (и во время такого сбоя могут как быть в логах какие-то ошибки, так и не быть)?
Для такой статьи я поставил бы минус (говорю как человек, который ГА посвятил очень много времени).
-- переход от одной фотке к похожим (рядом с основной фоткой несколько миниатюрок похожих. возможно с ограничением на дату, что бы в один и тот же час не показывало).
Решающее дерево Одно решающее дерево практически никогда не используют. Смотрят на лес деревьев, а лучше на бутстреп. XGBoost можно сделать модель, которая потом (с некоторыми усилиями) конвертируется в любой стандартный язык программирования (я несколько лет назад пользовался для этого m2cgen - Transform ML models into a native code [Java, C, Python, Go, JavaScript, Visual Basic, C#, R, PowerShell, PHP, Dart, Haskell, Ruby, F#, Rust] with zero dependencies)
думаю в основном в целях отладки, изредка - убедиться, что твоя сборка не содержит ошибок (т.е. даёт результат "как у того чела из Бразилии"). Для тонкой оптимизации я бы тоже не брал - жадный поиск не всегда даст оптимальный вариант (а жадный он потому что мы отключили разные оптимизации, которые потом будут включены).
я уверен, что ваша самодельная маркировка меньше живет в тех же условиях. А так да -- затираем в углубления контрастную краску и получаем приемлемый результат на фото). Но ударный метод из-за трудоёмкости только в особо неудачных местах (по типу металлических колёс или валов, металлических станин каких-нибудь).
а как по чистому металлу делать? Там тогда два компонента обязательно - проводящий "1" и непроводящий "0". Визуально разные по цвету, термо- и химически стойкие с высокой адгезией. Хоть и сложно, но может можно. Но на практике мало отличается от обычного QR-кода (не забываем про толстый слой масла). Мне ударная маркировка больше всего понравилась :-)
Как вариант я бы вообще задумался о методе PCA. К примеру взял 5-7 наиболее подозрительных колонок и сделал 2. Но в разрезе линейной регрессии не знаю насколько полезно. Скорее всего не особо полезно (хотя ГПТ рекомендует отобрать несколько компонент через кросс-валидацию).
# Optimize both metricsoptimal_solution = optimize(accuracy, cost)
Только мне кажется, что точность нужно повышать, а стоимость понижать? Это в разные стороны нужно двигать. Ну и, предполагаю, лучше это взвешивать вручную (иногда точность важна даже дорогой ценой).
А вообще статья ни о чём. Предлагаю её на переделку отправить (хоть это и перевод).
Очень повезло ... технолог который смог рассказать принцип работы
А у кого-то язык поворачивается называть технологом человека, который не знает досконально процесс? Такое на производствах часто бывает? Я только встречался с тем, что технолога нет вообще (что грустно) [но у меня очень маленькая выборка].
В этом контексте «РКС» скорее всего означает «рабочая кабельная схема» – то есть распечатанная схема подключения (иногда её ещё называют рабочей конструкторской схемой), которую используют для проверки состояния входов и выходов контроллера, а также для оперативной справки при замене или ремонте оборудования.
Тоже пользуюсь иногда, особенно когда что-то старое нужно почитать и натыкаюсь на ошибку "нет файла", "нет страницы" (статьи, программы, инструкции). Зачастую "старыми" оказываются страницы из 2019 года (я уж не говорю про 2009 или 1999). А иногда просто посмотреть что писал хабр 1 апреля лет пять назад.
Не заглядывал в лосс функцию, но хотелось бы узнать что именно вы ставили себе целью. MSE - это хорошо (т.к. она "не придумывает", а пытается честно восстановить что можно). Но MSE визуально прирост даст совсем маленький (коррекция цвета, контраст, незначительное восстановление резкости, может аберрации уменьшит). VGG-19 несколько устарела, но может использоваться (для одного из слагаемых loss) - визуально даёт увеличение качества, но подталкивает нейросеть "делать красиво" (плевать, что придумано). В частности при работе с волосами нейросеть может прорисовать каждый волосок, но он будет не в том месте (и не в том количестве). Одним из способов проконтролировать - посмотреть как нейросеть восстанавливает снимки с мелким текстом.
Мы видим, что точность на тренировке растёт, а точность на тесте стоит на месте - явный признак переобучения. "добавить различный и несложный орнамент" - если есть возможность, то почему бы нет? Должно помочь. Но тут нужно помнить, что чем больше и сложнее нейросеть, тем больше нужно примеров, что бы нейросеть не свалилась в переобучение. Лет 20 назад было эмпирическое правило - на каждую нейронную связь 10 обучающих примеров (это с некоторым запасом).
Я понимаю, что сейчас считается немодным менять параметры слоёв (число блоков, число каналов и т.п.). Но в вашем случае это просто напрашивается. Или хотя бы dropout попытаться подобрать. Судя по всему нейросети слишком "жирные". Но начать с аугментации обучающих данных нужно. Для второго набора данных это особенно актуально.
Сравнительный анализ без результатов? В конце опишите хотя бы коротко что за задача у вас была, какую точность достигли, какие размерности сети попробовали, какая скорость обучения (число эпох, время) и запуска у каждой нейросети. Хотя бы коротко.
Для типовых, но редких задач инструкции по пунктам самое то (к примеру техническая проверка станка раз в месяц). Как только мы хотим описать не типовые задачи, инструкция теряет линейность и становится запутанной, а это никуда не годится. Как вариант, сделать 50 типовых инструкций и сделать еще инструкцию как искать инструкции? (ирония и сарказм)
В другом месте: "Обычно я использую 784x560 с 113 кадрами, 48 шагов, используя SageAttention. Это требует 664 секунды, а мой VRAM составляет 23,3 ГБ." (Видимо речь о RTX 4090 и почти наверняка квантованная версия.) Я погонял Хуньян и WAN 2.1 на задачах замены лица (картинка-в-видео и видео-в-видео). Хуньян дает предсказуемый хороший результат (кастомная лора), то очень маленький размер картинки. WAN со всякими ограничениями (пока лору не везде можно натренировать), мне тоже не подошел.
Тут надо учесть, что разными ухищрениями (квантизацией) иногда уменьшают потребление памяти в 4 раза и более.
Извините, но по моему мнению то, как написана статья это ужас.
Почему прочитав 30% статьи я узнаю, что это эксперименты? А ведь в заголовке самоуверенное "как тестировать продукт на безопасность".
Очень много про работу ГА (кроссовер и мутация и всякое такое). Допустимо (но на мой взгляд избыточно). А вот Фитнес-функция как-то уж больно вяло описана.
Пример вредоносного пакета меня надолго ввел в ступор. Почему таблица 4*4 байтов дает 64 байта?
Поищите в статье такое место: "
0xIN 0xYO 0xU0 0x0!"что это за кодировка? У нас Payload текстовый? Или бинарный?Хорошо, ближе к концу наши догадки, что использовались "только внешние ответы, логи и прочую информацию, которую система выдает наружу" подтвердились.
Самое главное: посмотрев фитнесс-функции я увидел, что большое внимание уделяется разным ошибкам, которые отображаются в логах(?) --
"invalid (base64|json|xml|protobuf) data"и т.п. Но как нам поможет увеличение числа подобных записей в логах поймать пропущенную стандартными методами системы ошибку? Потому что в случае с ГА именно так и будет происходить - он будет пытаться получить наивысшую оценку score.Я ведь прав, нам нужно найти такие пакеты, которые вызовут сбой системы (и во время такого сбоя могут как быть в логах какие-то ошибки, так и не быть)?
Для такой статьи я поставил бы минус (говорю как человек, который ГА посвятил очень много времени).
Если не сложно - примерно скажите сколько людей работало над проектом, как долго.
На каких данных шло обучение ("сколько картинок было")?
-- кластеризация
-- переход от одной фотке к похожим (рядом с основной фоткой несколько миниатюрок похожих. возможно с ограничением на дату, что бы в один и тот же час не показывало).
тут уместно было бы сразу сказать число fps, разрешение и размер YOLO. Понятно, что работать будет. Ну и, заодно, через какую библиотеку.
Решающее дерево
Одно решающее дерево практически никогда не используют. Смотрят на лес деревьев, а лучше на бутстреп. XGBoost можно сделать модель, которая потом (с некоторыми усилиями) конвертируется в любой стандартный язык программирования (я несколько лет назад пользовался для этого m2cgen - Transform ML models into a native code [Java, C, Python, Go, JavaScript, Visual Basic, C#, R, PowerShell, PHP, Dart, Haskell, Ruby, F#, Rust] with zero dependencies)
В конце нужно добавить отталкивание (а может лучше притягивание) кругов друг от друга.
думаю в основном в целях отладки, изредка - убедиться, что твоя сборка не содержит ошибок (т.е. даёт результат "как у того чела из Бразилии").
Для тонкой оптимизации я бы тоже не брал - жадный поиск не всегда даст оптимальный вариант (а жадный он потому что мы отключили разные оптимизации, которые потом будут включены).
я уверен, что ваша самодельная маркировка меньше живет в тех же условиях. А так да -- затираем в углубления контрастную краску и получаем приемлемый результат на фото). Но ударный метод из-за трудоёмкости только в особо неудачных местах (по типу металлических колёс или валов, металлических станин каких-нибудь).
а как по чистому металлу делать? Там тогда два компонента обязательно - проводящий "1" и непроводящий "0". Визуально разные по цвету, термо- и химически стойкие с высокой адгезией. Хоть и сложно, но может можно. Но на практике мало отличается от обычного QR-кода (не забываем про толстый слой масла). Мне ударная маркировка больше всего понравилась :-)
Как вариант я бы вообще задумался о методе PCA. К примеру взял 5-7 наиболее подозрительных колонок и сделал 2. Но в разрезе линейной регрессии не знаю насколько полезно. Скорее всего не особо полезно (хотя ГПТ рекомендует отобрать несколько компонент через кросс-валидацию).
Только мне кажется, что точность нужно повышать, а стоимость понижать? Это в разные стороны нужно двигать. Ну и, предполагаю, лучше это взвешивать вручную (иногда точность важна даже дорогой ценой).
А вообще статья ни о чём. Предлагаю её на переделку отправить (хоть это и перевод).
А у кого-то язык поворачивается называть технологом человека, который не знает досконально процесс? Такое на производствах часто бывает? Я только встречался с тем, что технолога нет вообще (что грустно) [но у меня очень маленькая выборка].
Скрытый текст
В этом контексте «РКС» скорее всего означает «рабочая кабельная схема» – то есть распечатанная схема подключения (иногда её ещё называют рабочей конструкторской схемой), которую используют для проверки состояния входов и выходов контроллера, а также для оперативной справки при замене или ремонте оборудования.
Если что, то это ответ ЧатГПТ
Тоже пользуюсь иногда, особенно когда что-то старое нужно почитать и натыкаюсь на ошибку "нет файла", "нет страницы" (статьи, программы, инструкции). Зачастую "старыми" оказываются страницы из 2019 года (я уж не говорю про 2009 или 1999). А иногда просто посмотреть что писал хабр 1 апреля лет пять назад.
Не заглядывал в лосс функцию, но хотелось бы узнать что именно вы ставили себе целью. MSE - это хорошо (т.к. она "не придумывает", а пытается честно восстановить что можно). Но MSE визуально прирост даст совсем маленький (коррекция цвета, контраст, незначительное восстановление резкости, может аберрации уменьшит). VGG-19 несколько устарела, но может использоваться (для одного из слагаемых loss) - визуально даёт увеличение качества, но подталкивает нейросеть "делать красиво" (плевать, что придумано). В частности при работе с волосами нейросеть может прорисовать каждый волосок, но он будет не в том месте (и не в том количестве). Одним из способов проконтролировать - посмотреть как нейросеть восстанавливает снимки с мелким текстом.
Мы видим, что точность на тренировке растёт, а точность на тесте стоит на месте - явный признак переобучения. "добавить различный и несложный орнамент" - если есть возможность, то почему бы нет? Должно помочь. Но тут нужно помнить, что чем больше и сложнее нейросеть, тем больше нужно примеров, что бы нейросеть не свалилась в переобучение. Лет 20 назад было эмпирическое правило - на каждую нейронную связь 10 обучающих примеров (это с некоторым запасом).
Я понимаю, что сейчас считается немодным менять параметры слоёв (число блоков, число каналов и т.п.). Но в вашем случае это просто напрашивается. Или хотя бы dropout попытаться подобрать. Судя по всему нейросети слишком "жирные". Но начать с аугментации обучающих данных нужно.
Для второго набора данных это особенно актуально.
Сравнительный анализ без результатов?
В конце опишите хотя бы коротко что за задача у вас была, какую точность достигли, какие размерности сети попробовали, какая скорость обучения (число эпох, время) и запуска у каждой нейросети. Хотя бы коротко.
Для типовых, но редких задач инструкции по пунктам самое то (к примеру техническая проверка станка раз в месяц).
Как только мы хотим описать не типовые задачи, инструкция теряет линейность и становится запутанной, а это никуда не годится. Как вариант, сделать 50 типовых инструкций и сделать еще инструкцию как искать инструкции? (ирония и сарказм)
обзор очень поверхностный, даже примеры видео не приведены.
В одном месте исследуя Хуньян встретил такие слова (подозреваю, что длина видео менее 10 секунд):
https://blog.segmind.com/hunyuan-video-guide-features-tips-and-how-to-use-it/ Set your quality settings based on available VRAM:
45 GB+ VRAM: Maximum quality (1024x576)
32 GB VRAM: Medium quality (768x432)
24 GB VRAM: Basic quality (512x288)
В другом месте: "Обычно я использую 784x560 с 113 кадрами, 48 шагов, используя SageAttention. Это требует 664 секунды, а мой VRAM составляет 23,3 ГБ." (Видимо речь о RTX 4090 и почти наверняка квантованная версия.)
Я погонял Хуньян и WAN 2.1 на задачах замены лица (картинка-в-видео и видео-в-видео). Хуньян дает предсказуемый хороший результат (кастомная лора), то очень маленький размер картинки. WAN со всякими ограничениями (пока лору не везде можно натренировать), мне тоже не подошел.
Тут надо учесть, что разными ухищрениями (квантизацией) иногда уменьшают потребление памяти в 4 раза и более.