Как дообучить модель чат-бота, чтобы учесть собственные знания и использовать ссылки на ресурсы?

Возможно ли дообучить модели нейросетей, таких как GPT, на локальной машине для улучшения их работы без ограничений цензуры? Какие методы и ресурсы лучше всего использовать для этой цели при частном использовании?
  • 25 февраля 2024 г. 2:38
Ответы на вопрос 2
Для дообучения модели чат-бота и добавления собственных знаний, а также использования ссылок на ресурсы, можно использовать методы обучения с учителем. 

Для дообучения моделей нейросетей, таких как GPT, на локальной машине можно использовать доступные инструменты и библиотеки, такие как TensorFlow или PyTorch. 

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

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

Важно помнить, что для дообучения модели на больших объемах данных и для получения лучших результатов, может потребоваться большое количество вычислительных ресурсов, поэтому рекомендуется использовать высокопроизводительные вычислительные ресурсы или облачные платформы для этой цели.
первые же запросы с гугла (с поиском по хабру) 
https://habr.com/ru/articles/755114/
https://habr.com/ru/companies/neoflex/articles/722584/
https://habr.com/ru/companies/wunderfund/articles/...
https://habr.com/ru/articles/757086/

Ключевые слова finetuning, peft модели llama, mixtral, google gemma (вышла буквально на днях, выглядит неожиданно хорошо для 2b/7b)
Напрямую обучать модель новым знаниям сложно, и дорого а датасет это ты сам собираешь. Есть лайфхак - какими либо способами, на основании контекста формируют запрос в классическую базу данных (например реляционную) делают поиск, а результат вставляют в окно контекста (добавив сопроводительный текст, описывающий это как знания, на которые нужно опираться) и в результате модель получив эти данные, будет их использовать (это самое странное и непонятное в llm-ках). Само собой ВСЕ данные пихать в окно контекста не имеет смысла, оно маленькое а в открытых моделях еще и слабосвязное.
Этот подход работает, но в итоге, вся работа - это в создании запросов и сопроводительных текстов, обрамляющих информацию, именно этот 'промпт инженеринг' и есть новое программирование.

p.s. просто и красиво не будет
Технология llm сырая, точнее в ней баг в идеологии, подразумевающий вероятностный результат, т.е. правильный с некоторой вероятностью, которая даже у топовых моделях (не доступных для дообучения обывателю) в среднем на специализированных бенчмарках - 60%-80%, а те модели что доступны, дают верные результаты с с еще меньшей вероятностью.

Настоятельно рекомендую смотреть в сторону mixtral (для людей доступны модели 8x7b, работают по скорости как 7b а по качеству как 70b), инструкций по дообучению не густо, придется прогружаться в тему, при которой таких вопросов как выше не будут возникать, но односложно ответ не дать.
Похожие вопросы