hum@ – Whirling In Melancholy

hum@ – Whirling In Melancholy

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

"Term": "Alternate1/0x01000006000149B2", "TermType": 0, "Languages": [ "Кроме того, есть еще церковь. Ты смотришь на поднимающуюся к небу колокольню — смотришь на восток и вспоминаешь, что там ты уже искал. И не нашел ни следа Руби."

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

К сожалению, на английском.

И в аудио. Но с этим нет проблем ведь, существует прекрасная штуковина - WhisperDesktop, а модель large-v3 даже влезает в мои восемь гигабут видеопамяти. На транскрипцию этого видео ушло примерно пять минут. Результат хороший:

Of all the names stored in the rusty filing cabinet that is your Ipoh campus, the one you pull out is. As you look at the folder, Everardt covers it with his hand and pets it. He's hiding it from you because it's not a real RCM folder. It's just another one of those brown folders you saw in the file cabinet. Spit flies from your mouth, spraying your chest and landing on the ground before you.

DeepL бесплатно не позволяет переводить такие файлы, поэтому пришлось использовать локальную альтернативу.

Из всех имён, хранящихся в ржавом картотечном шкафу, которым является ваш кампус в Ипохе, то, которое вы вытаскиваете, — Когда вы смотрите на папку, Эверхардт закрывает ее рукой и гладит. Он скрывает ее от вас, потому что это не настоящая папка RCM. Это просто еще одна из тех коричневых папок, которые вы видели в файловом шкафу. Слюна летит из вашего рта, брызгая на грудь и падая на землю перед вами.

Перевод получился такой себе (DeepL показал себя чуточку лучше), поэтому очевидно нужны были правки. Много правок. Очень. Хочу напомнить, что навыков много, а на правки одной только Эмпатии у меня ушло еще несколько ночей. При этом пришлось сверять стиль выискивая фразы из локализации (иногда перевод был вообще другим), что добавляло трудностей. На этом моменте решила остановиться пока что на Эмпатии.

Разбавлю текст картинкой. Чего нет.
Разбавлю текст картинкой. Чего нет.

Вот у меня есть текстовый файл с кучей реплик Эмпатии. Что дальше? А дальше есть несколько путей, но большая часть откидывается из-за технических ограничений в виде моей ЭРТЭИКС 3070. Самый простой и ужасный вариант - промт. Просто подробно с кучей этих реплик расписать ЛЛМ (а из-за 3070 это не совсем лардж, так как всего 7b параметров) кто она и что должна делать. Результат ужасен. Примерно такая же хрень существует в GPT4ALL, где есть такая штуковина как LocalDocs, в которую можно запихать эти реплики. Результат очевиден.

hum@ – Whirling In Melancholy

Так как именно файнтюном хотя бы 7b моделей я занимать не могу, остается один вариант - лора. В конечном итоге это и правда оказалось лучшим для меня вариантом, но есть несколько но и о них позже.

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

{ "conversations": [ { "from": "human", "value": "Почему я проигрываю в валоранте?" }, { "from": "empathy", "value": "Ты не проигрываешь. Ты *чувствуешь* поражение..." }, { "from": "drama", "value": "Величайшие трагедии начинаются с мелких опозданий! Оберни это в историю о спасении котенка..." }, { "from": "electrochemistry", "value": "Очевидный сигнал организма о нехватке этанола в крови. Немедленно восполни дефицит..." } ] }

Только если для создания лоры для SD1.5/Pony (что у меня успешно получалось) нужно не очень много данных и времени (~10-15 картинок, вписать позитивные и негативные промты и подождать часик), то это пиздец. Для каждой фразы в идеале вписать несколько инструкций (еще раз напомню, много личностей с кучей фраз), плюс приходилось местами править аутпут, так как бессонные ночи и невнимательность идут под ручку вместе.

hum@ – Whirling In Melancholy

Настало время обучения лоры. Axolotl показался мне самым простым и приятным вариантом. Так оно и оказалось. Модель была выбрана Mistral-7B. Умолчу о некоторых проблемах на этих этапах, диспсик мне очень помог с их решением. В коде выше можно заметить, что есть несколько вариантов - Эмпатия, Драма и Электрохимия, но изначально решила протестировать только на Драме, так как из готовых (прям готовых) датасетов у меня была только она, плюсом там было меньше всего текста. Не без инцидентов, не без помощи опять же дипсика и не с первого раза, но получилось. Хоть и не очень хорошо, ведь модель всего 7b. Доработав еще два датасета возникла очевидная проблема - нехватка видеопамяти. На этом и закончила. Вот и вся история.

Лучше бы чему-то научилась за этот месяц или нашла нормальную работу, а то пиздец полный.

6
2
2
1
2 комментария