Компания Thinking Machines выпустила Tinker — Python API, который позволяет исследователям и инженерам писать циклы обучения локально, в то время как платформа выполняет их на управляемых распределённых GPU-кластерах.
Основная идея — сохранить полный контроль над данными, целями и этапами оптимизации, передавая планирование, отказоустойчивость и оркестрацию на несколько узлов. Сервис находится в закрытой бета-версии со списком ожидания и начинает работу бесплатно, переходя на ценообразование на основе использования «в ближайшие недели».
Что такое Tinker?
Tinker предоставляет низкоуровневые примитивы, а не высокоуровневые обёртки «train()». Основные вызовы включают forwardbackward, optimstep, save_state и sample, предоставляя пользователям прямой контроль над вычислением градиента, шагами оптимизатора, сохранением состояния и оценкой/выводом внутри пользовательских циклов.
Типичный рабочий процесс:
* Создание клиента обучения LoRA для базовой модели (например, Llama-3.2-1B).
* Итерация forwardbackward/optimstep.
* Сохранение состояния.
* Получение клиента для оценки или экспорта весов.
Ключевые особенности
* Покрытие моделей с открытыми весами. Tinker позволяет проводить тонкую настройку таких семейств, как Llama и Qwen, включая крупные варианты со смесью экспертов (например, Qwen3-235B-A22B).
* Пост-обучение на основе LoRA. Tinker реализует адаптацию низкого ранга (LoRA) вместо полного тонкого тюнинга; их техническая заметка («LoRA Without Regret») утверждает, что LoRA может соответствовать полному FT для многих практических рабочих нагрузок — особенно RL — при правильной настройке.
* Переносимые артефакты. Скачивайте обученные веса адаптеров для использования вне Tinker (например, с вашим предпочтительным стеком вывода/провайдером).
На чём это работает?
Команда позиционирует Tinker как управляемую платформу пост-тюнинга для моделей с открытыми весами, от небольших LLM до крупных систем со смесью экспертов.
Чтобы уменьшить шаблонный код, сохраняя при этом лаконичность основного API, команда опубликовала поваренную книгу Tinker (Apache-2.0). Она содержит готовые к использованию эталонные циклы для обучения с учителем и обучения с подкреплением, а также практические примеры для RLHF (трёхэтапный SFT → моделирование вознаграждений → политика RL), математические вознаграждения за рассуждения, задачи по использованию инструментов / извлечения, дистилляция подсказок и многоагентные настройки.
Кто уже использует это?
Среди первых пользователей — группы в Принстоне (команда Gödel prover), Стэнфорде (Rotskoff Chemistry), UC Berkeley (SkyRL, асинхронное многоагентное/инструментальное RL) и Redwood Research (RL на Qwen3-32B для задач управления).
Tinker находится в закрытой бета-версии, регистрация на лист ожидания открыта. Сервис бесплатен для начала, с планируемым переходом на ценообразование на основе использования в ближайшее время; организациям предлагается напрямую связаться с командой для подключения.
Создание продвинутого конвейера Voice AI с WhisperX для транскрипции, выравнивания, анализа и экспорта
Мы запускаем полный конвейер WhisperX от начала до конца, загружая аудио, транскрибируя его и выравнивая для получения временных меток на уровне слов. При включении мы анализируем статистику, извлекаем ключевые слова, создаём чистую таблицу результатов и экспортируем всё в нескольких форматах, готовых к реальному использованию.
Пример 1: обработка образца аудио.
`audiopath = downloadsampleaudio() result, df = processaudiofile(audiopath)`
Пример 2: демонстрация детализации на уровне слов.
`result, df = processaudiofile(audiopath) worddf = displayresults(result, showwords=True)`
Пример 3: обработка вашего собственного аудио.
`audiopath = «youraudio.wav» # or .mp3, .m4a, etc. result, df = processaudiofile(audio_path)`
Пример 4: пакетная обработка нескольких файлов.
`audiofiles = [«audio1.mp3», «audio2.wav», «audio3.m4a»] results = batchprocessfiles(audiofiles)`
Пример 5: использование более крупной модели для повышения точности.
`CONFIG[«modelsize»] = «large-v2» result, df = processaudio_file(«audio.mp3»)`
`print(«\n Setup complete! Uncomment examples above to run.»)`
Настройка завершена! Раскомментируйте примеры выше, чтобы запустить.
1. Какие возможности предоставляет Tinker для обучения моделей и какие задачи он позволяет решать?
Ответ: Tinker — это Python API, который позволяет исследователям и инженерам писать циклы обучения локально, в то время как платформа выполняет их на управляемых распределённых GPU-кластерах. Он предоставляет низкоуровневые примитивы, а не высокоуровневые обёртки «train()», и позволяет сохранять полный контроль над данными, целями и этапами оптимизации.
2. Какие ключевые особенности Tinker делают его привлекательным для исследователей и инженеров?
Ответ: Ключевые особенности Tinker включают покрытие моделей с открытыми весами, пост-обучение на основе LoRA и переносимые артефакты. Tinker позволяет проводить тонкую настройку таких семейств, как Llama и Qwen, включая крупные варианты со смесью экспертов.
3. Какие примеры использования Tinker приведены в статье и кто уже использует этот инструмент?
Ответ: В статье приведены примеры использования Tinker для тонкой настройки моделей Llama и Qwen. Среди первых пользователей — группы в Принстоне (команда Gödel prover), Стэнфорде (Rotskoff Chemistry), UC Berkeley (SkyRL, асинхронное многоагентное/инструментальное RL) и Redwood Research (RL на Qwen3-32B для задач управления).
4. Какие основные вызовы включает в себя Tinker и какие функции он предоставляет пользователям?
Ответ: Основные вызовы Tinker включают forwardbackward, optimstep, save_state и sample. Он предоставляет пользователям прямой контроль над вычислением градиента, шагами оптимизатора, сохранением состояния и оценкой/выводом внутри пользовательских циклов.
5. Какие преимущества предлагает Tinker по сравнению с другими инструментами для обучения моделей?
Ответ: Tinker предлагает преимущества в виде сохранения полного контроля над данными и этапами оптимизации, а также возможность работы с моделями, имеющими открытые веса. Он также упрощает работу с распределёнными вычислениями и позволяет проводить тонкую настройку моделей без необходимости глубокого понимания всех технических деталей.