На текущий момент LLM справляются с задачей составления тренировочной программы на уровне gym-bro с форумов - коллективную мудрость толпы конечно агрегировать умаеют, но результаты оставляют желать лучшего.
Но вот с чем они справляются довольно неплохо - так это с парсингом и аналитикой дневника тренировок в свободном текстовом формате!
Ключевые параметры программы которые нас интересуют:
- выборка упражнений
- тренировочный объем по группам мышц (количество стандартных рабочих подходов)
- частота тренировки группы мышц
- интенсивность (нагрузка от 1 RM, максимума на раз)
- усилие (близость к отказу)
Взаимно однозначный способ смотреть на интенсивность/нагрузку - это диапазоны повторов. Типичный вариант, знакомый всем 8-12 повторов (70-80% от 1 RM), но на самом деле для результатов по гипертрофии будут в среднем одинаково хорошо работать повторы в диапазоне 3-30 повторво. При этом полезно понимать пропорцию диапазонов нагрузки в вашем текущем тренировочном блоке: на индивидуальном уровне есть большая вариабельность отклика на тот или иной диапазон повторов. Кто-то будет хорошо расти от лифтерского стиля с 3-6 повторами, а кто-то наоборот, от силовых тренировок с легкими весами “на грани кардио” с 20-30 повторами в подходе. Причем в одном человеке закономерности между разными группами мышц могут отличаться. Да и со временем характер этого отклика тоже может меняться
Так вот, возвращаясь к LLM на примере deep seek. Можно получить вполне сносную аналитику, закинув свой дневник тренировок между несколькими простыми промптами! И никаких муторных расчетов в экселях
Есть к чему придраться по деталям (например к группе мышц “спина”, вместо которой должны быть 4 разные группы мышц), но в целом выходит достаточно информативно: в одной табличке собираем все верхнеуровневые параметры программы из нашего дневника, и можем подумать, что из них стоит подкрутить для разнообразия или планового эксперимента в следующем тренировочном блоке
пишем первый запрос:
I ll send you a list of exercises with sets, weights, reps and workouts by day parse it in a table view with sets, reps and weights in different columns and add a column with muscle groups involved
далее кидаем текст с тренировками по дням и неделям в формате вроде "упражнение - вес - подходы - повторы"
now aggregate all tables above into one table groped by muscle group: training volume, frequency, rep range percentages normalized by set, exercise selection in one table
далее уточняем хотелки по дополнительным расчетам (можно наверняка сделать более емко, но этот вариант работает как надо)
suggest 3 categories of rep ranges for each muscle group (low, mid, high) for training log above. Overall rep range spawns from 3 to 30 reps in one set, rough threshold for rep ranges are 10 (low) 20 (mid) and 30 (high). than compute weekly rep range ratio in percentages for each muscle group. Normalize this ratios to total muscle group sets, not reps
мечта человека, постоянно путающего sql и pandas: пишем group by на человеческом синтаксисе:
now aggregate all tables above into one table groped by muscle group: training volume, frequency, rep range percentages normalized by set, exercise selection in one table
Получаем вот такую табличку, на которой вся суть программы как на ладони!
