В релиз-кандидате Cog v0.21.0-rc.2 исправлена ошибка, из-за которой cog serve не монтировал managed-веса в контейнер, хотя cog run делал это корректно — модели с весами падали при setup без очевидной причины.
Корень проблемы — в cmdServe внутри pkg/cli/serve.go просто отсутствовал weight-handling паттерн, который давно есть в predict.Predictor. Контейнер стартовал без весов, setup валился с ошибкой. Баг скрытый: если тестировали через cog run — всё работало, переходили к cog serve — падало.
Фикс добавил в cog serve тот же набор шагов, что уже был в cog run:
weights.CheckDrift()— проверяет, чтоweights.lockсинхронен сcog.yaml.newWeightManager(src)— создаёт менеджер весов.wm.Prepare(ctx)— собирает хардлинки из локального стора в директорию монтирования.- Монтирование — добавляет mount specs в
runOptions.Volumesкак read-only bind. defer mounts.Release()— убирает per-invocation директорию при выходе сервера.
Баг особенно опасен для деплоя на Replicate: именно там cog serve с managed-весами — типичный сценарий. Вендор не сообщил, сколько пользователей столкнулись с проблемой и когда она была введена. Неизвестно и то, войдёт ли rc.2 напрямую в стабильный v0.21.0 или последуют дополнительные RC.