Комментарии 8
Теория про ИИ, из статей на хабре: «LLM идеально работают, это программисты плохо справляются, или RAG плохо настроен»
Практика промтов на реальном проекте: «Да не умер он в конце драйва!!!111»
Автор, привет! Тоже школьник, вникаю в ML, но пока больше в теории. Статья — огонь, особенно кайфанул с расследования про "смерть" Ростова и Бездаровского. Реально жизненная ситуация с 10 ГБ, сам мучаюсь с колабом.
Но пока читал, поймал себя на мысли, что пару моментов ты перемудрил. Поделюсь как коллега, вдруг пригодится во втором сезоне:
1. Доверился Gemini как арбитру. Нейросети — не верификаторы. Твои 93% — это просто "Gemini согласен с Saiga". Литераторша бы сказала, что это круговая порука ИИ-шников.
💡 Совет: Возьми 10–15 случайных глав и вручную сверь саммари с оригиналом. Посчитай, сколько без ошибок, сколько с путаницей в именах, сколько с ляпами. Простая табличка в Excel даст честную цифру. Или используй Gemini, но пусть оценивает каждую главу отдельно с жесткими критериями — будет объективнее.
2. С "Бездаровским" перехитрил себя. Теория про склейку токенов звучит красиво, но это фантазия без проверки.
💡 Совет: Залезь в токенизатор: tokenizer.tokenize("Безухов") и tokenizer.tokenize("бездарный") — увидишь реальное разбиение. Если токены не пересекаются, гипотеза рушится. Если проблема в путанице фамилий, проще добавить few-shot примеры в промпт, а на постпродакшене подставить словарь.
3. Эксперимент с "умер/выжил" — это боль. Ты заставил модель отвечать одним словом, а она этому не училась. В логе "герой Ник..." — это не энтропия, а модель пытается вежливо ответить "герой Николай выжил", а ты её обрезаешь.
💡 Совет: Не заставляй отвечать одним словом. Дай сгенерировать 20–50 токенов, потом парси ответ на ключевые слова. Или используй model.forward() напрямую, чтобы получить логиты для токенов-кандидатов — так увидишь реальные вероятности без артефактов.
4. Системный промпт превратил в кодекс законов. С промптом вроде "ЗАПРЕЩЕНО убивать героев" модель тупит сильнее (помнишь, она упорно пыталась родить "герой Николай"?).
💡 Совет: Дай 2–3 примера правильного пересказа (few-shot) вместо кучи запретов. Модели легче учиться на примерах, чем следовать длинному списку "нельзя". Температуру оставь 0.3–0.5, чтобы не тупила.
5. Обрезка по символам — классика. 7500 символов логичны для человека, но для LLM это стрельба из пушки по воробьям.
💡 Совет: Режь по токенам через tokenizer.encode(). У Llama контекст 8К, но оставляй запас под ответ. И лучше разбивай по предложениям, чтобы глава не обрывалась на середине мысли — тогда модель будет видеть законченные сцены и меньше ошибаться.
В целом лютый респект, что затащил "Войну и мир" на 3080. Если бы ты эти моменты чуть иначе разложил, статья была бы бронебойной. Буду ждать следующих постов!
Так что по итогу, в качестве домашнего задания код отдал или все таки пересказ литературы xD
А по каким критериям была выбрана IlyaGusev/saiga_llama3_8b ? Я пробовал из маленьких gemma3-12b, saiga-gemma3, saiga-yandexgpt и просто yandexgpt. Все комбинации с saiga поразили своей словоохотливостью: модель болтает без умолку и очень часто несет околесицу, которой не было в исходном тексте. В итоге выбрал yandexgpt.
По количеству символов тоже опытным путем пришел к 8000 (мне надо было уместиться в 8 Гб). Но разбивать лучше по границе предложения.
И передавать дополнительно последние 2 предложения предыдущей части и первые 2 - следующей части, чтобы у модели было перед глазами развитие темы. (Два предложения, но не меньше 500 символов)
Я пока только погружаюсь в мир ML, поэтому выбор Saiga был скорее эмпирическим: она была "на слуху" как одна из лучших русскоязычных дообученных моделей для локального запуска. Вы абсолютно правы насчет словоохотливости - собственно, именно борьбе с этим я и посвятил большую часть статьи. Спасибо за наводку на YandexGPT, в следующих экспериментах обязательно попробую сравнить результат!
В моё время люди покупали книги с кратким пересказом. Пусть там было не 18к символов, но текст хотя бы не ЛЛМ писала.

Как я уместил «Войну и мир» в 10 ГБ видеопамяти, или почему нейросеть убивает героев и выдумывает Пьера Бездаровского