Как выбирается ядро: подхватываются ли venv, conda и uv из настроек проекта, или нужно отдельно ставить ipykernel? Можно ли держать разные ядра для разных ноутбуков в одном проекте?
Точки останова работают только с локальным ядром или с подключением к JupyterHub тоже?
Про "неизвестный исход" после обрыва связи прямо больная тема, сам на такое натыкался. Запрос в 1c ушёл, ответа нет, и сиди гадай, создался документ или нет.
Мы в итоге просто начали писать id операции из маркетплейса в реквизит документа и перед созданием искать по нему. Повтор становится безопасным, и никакой сверки не нужно. У вас так же или агент сам лезет проверять?
И было бы круто увидеть в следующей статье один процесс целиком, тот же возврат например. Сколько времени уходило руками и сколько сейчас. А то пока звучит разумно, но очень уж в общих словах)
Спасибо за честный разбор с цифрами, особенно ценно, что вы проверяли дубли программно, а не на глаз. Пара идей по проблемам, которые вы описали:
"Mister" против "Mr." - лечится нормализацией текста перед сравнением. В пакете openai-whisper есть EnglishTextNormalizer, который приводит сокращения, числа и пунктуацию к единой форме, после него подобные расхождения обычно исчезают и метрика перестаёт ложно ронять хорошие дубли.
"5M" на знаке в плане 5. Можно сделать проверку текста относительной: прогонять OCR по мастер-кадру и считать браком только текст, которого на мастере не было. Тогда знак, нарисованный ещё на мастер-кадре, не будет бесконечно заваливать генерацию.
Поиск начала речи по порогу −42 дБ работает, пока в клипе тихо, но на дыхании, шорохах или музыке может сработать раньше времени. Как более надёжный вариант можно попробовать VAD, например Silero VAD: он ищет именно речь, а не громкость.
Плавающий голос. Как компромисс между вашими двумя вариантами: оставить видео и тайминг реплик от Kandinsky, а голос прогнать через voice conversion в один закреплённый тембр на персонажа. Синхронизация губ сохранится, а голос перестанет меняться от плана к плану.
И вопрос: какая часть из четырёх оплаченных часов ушла на чистую генерацию, а какая на отладку и повторные дубли? Если 19 планов по ~144 секунды - это около 45 минут, то следующий пилот на готовом конвейере, видимо, выйдет заметно дешевле.
Для n = 8 это 65 536 вариантов, из которых подходят только 1 430 (число Каталана C8), так что перебор с фильтрацией вполне жизнеспособен на этих ограничениях.
if open < n { backtrack(..., open+1, close) }
if close < open { backtrack(..., open, close+1) }
Тогда ни одна ветка не уходит в тупик, и каждая дошедшая до длины 2n строка - сразу ответ, без проверки в конце.
По поводу собеседований согласен: умение рассуждать вслух и приходить к решению показывает гораздо больше, чем узнавание заученного паттерна. Ваш путь через системы счисления - как раз хороший пример инженерного мышления, жаль, что на лайв-кодинге его редко оценивают(
Ему нужно было заменить — на - ?)
Как выбирается ядро: подхватываются ли venv, conda и uv из настроек проекта, или нужно отдельно ставить ipykernel? Можно ли держать разные ядра для разных ноутбуков в одном проекте?
Точки останова работают только с локальным ядром или с подключением к JupyterHub тоже?
Про "неизвестный исход" после обрыва связи прямо больная тема, сам на такое натыкался. Запрос в 1c ушёл, ответа нет, и сиди гадай, создался документ или нет.
Мы в итоге просто начали писать id операции из маркетплейса в реквизит документа и перед созданием искать по нему. Повтор становится безопасным, и никакой сверки не нужно. У вас так же или агент сам лезет проверять?
И было бы круто увидеть в следующей статье один процесс целиком, тот же возврат например. Сколько времени уходило руками и сколько сейчас. А то пока звучит разумно, но очень уж в общих словах)
Спасибо за честный разбор с цифрами, особенно ценно, что вы проверяли дубли программно, а не на глаз. Пара идей по проблемам, которые вы описали:
"Mister" против "Mr." - лечится нормализацией текста перед сравнением. В пакете openai-whisper есть EnglishTextNormalizer, который приводит сокращения, числа и пунктуацию к единой форме, после него подобные расхождения обычно исчезают и метрика перестаёт ложно ронять хорошие дубли.
"5M" на знаке в плане 5. Можно сделать проверку текста относительной: прогонять OCR по мастер-кадру и считать браком только текст, которого на мастере не было. Тогда знак, нарисованный ещё на мастер-кадре, не будет бесконечно заваливать генерацию.
Поиск начала речи по порогу −42 дБ работает, пока в клипе тихо, но на дыхании, шорохах или музыке может сработать раньше времени. Как более надёжный вариант можно попробовать VAD, например Silero VAD: он ищет именно речь, а не громкость.
Плавающий голос. Как компромисс между вашими двумя вариантами: оставить видео и тайминг реплик от Kandinsky, а голос прогнать через voice conversion в один закреплённый тембр на персонажа. Синхронизация губ сохранится, а голос перестанет меняться от плана к плану.
И вопрос: какая часть из четырёх оплаченных часов ушла на чистую генерацию, а какая на отладку и повторные дубли? Если 19 планов по ~144 секунды - это около 45 минут, то следующий пилот на готовом конвейере, видимо, выйдет заметно дешевле.
где можно взять эту модель? Она в открытом доступе?
Как бизнесу сэкономить ресурсы? Сократить расходы в том числе персонал)
Хороший разбор, круто, что вы честно показали путь к решению, а не только финальный код:)
Пара мыслей:
Для n = 8 это 65 536 вариантов, из которых подходят только 1 430 (число Каталана C8), так что перебор с фильтрацией вполне жизнеспособен на этих ограничениях.
Тогда ни одна ветка не уходит в тупик, и каждая дошедшая до длины 2n строка - сразу ответ, без проверки в конце.
По поводу собеседований согласен: умение рассуждать вслух и приходить к решению показывает гораздо больше, чем узнавание заученного паттерна. Ваш путь через системы счисления - как раз хороший пример инженерного мышления, жаль, что на лайв-кодинге его редко оценивают(