Перейти к содержанию
Публикация AiManual

LangSmith Fine-Tuning и smithtune: как дообучить агентную модель на собственных траекториях

LangChain выпустила LangSmith Fine-Tuning и CLI smithtune: траектории агентов превращаются в датасет, обучение идёт через Fireworks или Baseten, а оценка возвра

Коротко

Что будет в материале

  1. 01

    Что такое LangSmith Fine-Tuning и smithtune

  2. 02

    Почему траектории LangSmith лучше наивного экспорта истории сообщений

  3. 03

    Как работает пайплайн дообучения в smithtune: от данных до деплоя

  4. 04

    Реальные кейсы: что даёт дообучение на практике

LangChain выпустила LangSmith Fine-Tuning и CLI-утилиту smithtune: связка превращает траектории агентов, накопленные в LangSmith, в датасет и доводит процесс до готовой дообученной модели. Сейчас поддерживается только supervised fine-tuning (SFT), то есть обучение модели имитировать примеры хорошего поведения. Обучение идёт на управляемых платформах Fireworks и Baseten, а результаты оценки возвращаются в LangSmith, чтобы сравнить базовую и дообученную версии на одних и тех же примерах (Introducing LangSmith Fine-Tuning).

Смысл затеи практичный. Если агент каждый день решает один и тот же класс задач, из его же трейсов можно собрать обучающую выборку и получить модель, которая делает это точнее и дешевле универсальной. LangChain формулирует выгоду осторожно: модель, обученная на ваших примерах, часто может работать так же хорошо или лучше универсальной frontier-модели на заданных задачах, нередко с меньшими стоимостью и задержкой.

Дальше разберём, что именно делает smithtune, чем формат траектории LangSmith отличается от выгрузки истории сообщений, как устроен путь от данных до деплоя и где у SFT пределы.

Что такое LangSmith Fine-Tuning и smithtune

LangSmith Fine-Tuning и smithtune - совместный релиз LangChain для post-training моделей. Авторами анонса указаны Ankush Gola, Jake Broekhuizen и Vivek Trivedy. smithtune - CLI-утилита, которая ведёт весь процесс; LangSmith Fine-Tuning - часть платформы, которая отдаёт данные и принимает результаты оценки.

Утилита закрывает весь цикл из одного интерфейса: создаёт и готовит датасет из траекторий LangSmith, запускает обучение на Fireworks или Baseten и выполняет оценку через LangSmith. Поднимать собственную инфраструктуру не нужно: команды идут от данных к обучению и деплою без разворачивания тренировочного кластера.

Метод обучения пока один - supervised fine-tuning. Модель получает входы и выходы из примеров хорошего поведения и обновляет веса, чтобы это поведение воспроизводить. Обучение с подкреплением, DPO и работа с предпочтениями в анонсе не упоминаются.

Запускать утилиту можно двумя способами: напрямую в терминале или через coding agent, который выполняет команды и проверяет результаты. Второй сценарий описан так: агент ставит smithtune как skill из репозитория и проводит fine-tuning end to end.

За обучение и обслуживание модели отвечают партнёры. LangChain заключила партнёрства с Fireworks и Baseten, чтобы связать траектории LangSmith с созданием датасета для дообучения на обеих платформах. Pranav Jain, Product Lead в Fireworks, описывает связку траекторий с управляемым обучением и последующей served-моделью, а Aaron Ellis-Bloor, Applied Researcher в Baseten, - интеграцию smithtune с Baseten Loops: она позволяет за минуты перейти от сбора данных к экспериментам по дообучению на полностью управляемой тренировочной инфраструктуре. В описании релиза обучение фигурирует как работа с LoRA, то есть с адаптерами поверх базовой модели, без полной перезаписи весов.

Почему траектории LangSmith лучше наивного экспорта истории сообщений

Траектория агента - это упорядоченная последовательность сообщений, вызовов инструментов и результатов инструментов, которая показывает, как агент решал задачу. LangSmith собирает такую последовательность из trace или thread, приводит поддерживаемые форматы сообщений к общему представлению, сохраняет определения инструментов и удаляет дублирующуюся историю (Introducing LangSmith Fine-Tuning).

Наивный экспорт выглядит иначе: берём массив сообщений чата, склеиваем в JSONL и надеемся, что этого хватит для обучения. Из такой выгрузки пропадают несколько слоёв данных, и каждый из них важен.

  • Определения инструментов: имена, описания и схемы аргументов. Без них модель видит строку вроде search_flights и не понимает, какие аргументы существуют и в каком формате их передавать.
  • Связка вызова и результата. В траектории видно, что конкретный tool call вернул конкретный результат. В склеенной истории эта связь превращается в безымянный текстовый блок или теряется совсем.
  • Порядок и вложенность. Ход под-агента, повторный вызов инструмента после ошибки, ветка рассуждения. По плоскому логу восстановить эту структуру сложно.
  • Дубли истории. Один и тот же диалог может попасть в выборку несколько раз, если склеивать вложенные запуски без дедупликации.

Для SFT это не косметика. Студенческая модель учится имитировать поведение по примерам, поэтому ей нужен ровно тот контекст, который был у модели в момент решения: доступные инструменты, их описания и фактические результаты вызовов. Именно поэтому формат траектории LangSmith проектировался под post-training.

Публичный анонс обрывает описание формата на фразе о точном контексте, деталей схемы хранения в нём нет. Практический вывод от этого не меняется: собирать обучающие данные стоит внутри LangSmith, а не выгружать логи чата из своего приложения.

Источником траекторий могут быть и голосовые агенты. Для сборок на Pipecat, LiveKit, OpenAI Realtime и Gemini Live в единый трейс попадают аудио, задержки STT и TTS, прерывания и вызовы инструментов, о чём подробно рассказано в разборе наблюдаемости голосовых агентов через LangSmith. Чем полнее трейс, тем полезнее получившаяся из него траектория.

Как работает пайплайн дообучения в smithtune: от данных до деплоя

Пайплайн состоит из четырёх этапов: сбор и подготовка датасета, обучение на управляемой платформе, оценка и деплой. Ниже - что происходит на каждом шаге и где чаще всего спотыкаются.

Сбор и подготовка данных

LangChain называет отбор данных одним из главных факторов прироста от fine-tuning. Практический смысл: аккуратно отобранные траектории по одному сценарию дают больше, чем случайная выборка в разы большего размера. Качество здесь важнее тонкой настройки гиперпараметров.

Данные берутся из того, что уже накоплено в LangSmith. Траектория формируется из trace (один запуск агента) или thread (серия связанных запусков), поэтому отдельный экспорт писать не нужно. Дальше нужна разметка: отметить, какие прохождения считать эталонными, а какие ошибочными. Если ревью делает человек, его решения лучше превращать в структурированные метки и переиспользуемые критерии, а не в разовые правки в чате. Такой подход разобран в материале о том, как клиническую экспертизу переводят в датасеты, LLM-судей и релизные гейты LangSmith.

Датасет делится на train, val и test. Отложенная выборка нужна по двум причинам: на ней сравнивают базовую и дообученную модель, и она же показывает, не подогналась ли модель под конкретные примеры. Для узкой повторяющейся задачи логично положить в test свежие траектории, которых модель не видела.

Конкретные критерии отбора траекторий в анонсе не раскрыты, поэтому метрику придётся задать самому. Рабочие варианты: доля успешных прохождений сценария, число лишних вызовов инструментов, стоимость эпизода, наличие галлюцинаций в ответе.

Команды plan, train, evaluate, deploy

Синтаксис и флаги в анонсе не приводятся, но логика этапов читается по названиям и по описанию процесса.

  • plan - планирование эксперимента: что обучаем, на какой выборке, на какой платформе. Смысл шага в том, чтобы зафиксировать конфигурацию до запуска дорогостоящего обучения.
  • train - запуск SFT. Обучение идёт на Fireworks или Baseten, собственная инфраструктура не требуется.
  • evaluate - оценка. Результаты возвращаются в LangSmith, где сравниваются базовая и дообученная модель. Для агентных задач одной точности мало: важно видеть траекторию целиком, включая лишние вызовы и уход в сторону. Как это устроено на длинных многошаговых сценариях, показано в кейсе Similarweb об оценке агентов для длинных отчётов.
  • deploy - развёртывание готовой модели. Партнёрские платформы отдают served-модель, которую можно вызывать из приложения.

Отдельная точка ускорения - интеграция smithtune с Baseten Loops. По описанию Baseten, она позволяет за минуты перейти от собранных данных к экспериментам по дообучению на полностью управляемой инфраструктуре. Итог для команды: путь от данных к обучению и деплою проходится без разворачивания своих мощностей.

Если не хочется разбираться с CLI вручную, можно поставить smithtune как skill из репозитория и передать процесс coding-агенту, который выполнит команды и проверит результат. Такой сценарий LangChain указывает прямо. Контроль за качеством датасета при этом остаётся на человеке: агент не знает, какие траектории считать эталонными.

Реальные кейсы: что даёт дообучение на практике

В примерах LangChain приводятся две измеримые точки. Дообучение Kimi K3 подняло результат задачи с 90 до 96 баллов на внутреннем бенчмарке. SFT для Qwen-3.8-27B увеличил F1 с 48,9% до 53,7%, при этом модель стала делать меньше вызовов к себе и к инструментам.

Второй пример интереснее по экономике. Пять процентных пунктов F1 сами по себе выглядят скромно, но сокращение числа вызовов означает меньше токенов на эпизод, а значит ниже стоимость и задержка. Это ровно тот аргумент, которым LangChain обосновывает подход: обученная на своих примерах модель часто может работать так же хорошо или лучше универсальной frontier-модели на заданных задачах, нередко дешевле и быстрее (Introducing LangSmith Fine-Tuning).

Здесь нужна честная оговорка. Обе цифры - примеры из материалов вендора, а не независимые измерения. Не раскрыто ни то, на каком датасете считался внутренний бенчмарк, ни то, как формировалась выборка, ни то, какие промпты использовались. F1 сильно зависит от задачи и разметки, поэтому переносить 48,9% и 53,7% на свой сценарий нельзя. Проверяемая часть здесь одна: если после обучения растёт целевая метрика и падает число шагов на эпизод, дообучение окупается.

Ограничения и риски SFT: когда дообучение не поможет

Первый ограничитель: smithtune поддерживает только supervised fine-tuning. Обучение с подкреплением и методы на предпочтениях в релизе не заявлены, поэтому ждать от инструмента поведения, которого нет в примерах, бессмысленно. SFT имитирует то, что уже есть в данных.

Второй риск - отбор данных, и он работает в обе стороны. LangChain называет отбор одним из главных драйверов прироста. Если в датасет попадут траектории с лишними вызовами, галлюцинациями или случайными успехами, модель выучит именно это. Неудачная выборка способна ухудшить результат относительно базовой модели.

Третий фактор - повторяемость задачи. SFT окупается там, где один и тот же класс запросов встречается регулярно и есть накопленная статистика удачных решений. Если сценарии меняются каждую неделю, обучающая выборка устаревает быстрее, чем собирается. Смена промптов или схем инструментов тоже делает старые траектории менее релевантными.

Четвёртое: SFT не расширяет возможности инструментов и не добавляет знаний, которых нет в примерах. Если корень проблемы в промптах, описаниях инструментов или логике агента, дообучение замаскирует симптом, а не устранит причину.

Пятое, организационное. Обучение идёт на управляемых платформах Fireworks и Baseten, то есть трейсы нужно передавать внешнему сервису. Для проектов с чувствительными данными это отдельный пункт проверки: политики хранения, регион обработки, возможность обезличивания. Формат траектории сохраняет определения инструментов и полный контекст, так что в датасете может оказаться больше информации о вашей системе, чем в обычном логе чата.

Шестое: анонс не раскрывает ни гиперпараметры обучения, ни детали формата траектории, ни критерии отбора данных. Пока документация не догонит релиз, часть решений придётся принимать экспериментально и проверять на своей отложенной выборке.

Стоит ли использовать smithtune: выводы для практиков

Инструмент закрывает конкретный сценарий: у команды уже есть LangSmith с трассировкой агента, есть повторяющийся класс задач и есть способ оценить качество. В такой конфигурации smithtune убирает ручную сборку датасета и поиск платформы для обучения.

Чек-лист перед запуском:

  1. Есть повторяющийся сценарий с измеримой метрикой, а не разовые запросы.
  2. Накоплено достаточно траекторий и есть кому разметить, какие из них эталонные.
  3. Готова отложенная выборка для сравнения базовой и дообученной модели.
  4. Понятно, допустимо ли передавать данные на Fireworks или Baseten.
  5. Есть готовность оценивать траекторию целиком: число вызовов, стоимость, задержку.

Кому инструмент не подойдёт. Тем, кто хочет дообучать модель локально без облачных платформ: smithtune ведёт обучение и деплой через управляемые сервисы, локальный вариант в анонсе не описан. Также он вряд ли поможет, если качество страдает из-за промптов и инструментов: сначала стоит наладить наблюдаемость и оценку, а дообучение рассматривать как следующий шаг.

Начинать стоит с одного сценария: собрать по нему траектории в LangSmith, отметить эталонные прохождения, зафиксировать метрику и отложенную выборку, затем прогнать plan и train на управляемой платформе. Если прирост виден и на test, пайплайн повторяется на следующем сценарии. Если прирост нулевой, дешевле разобраться с промптами и схемами инструментов.

Подписаться на канал