раза переспросил), что файнтюнинг - это оптимальный метод, чтобы научить Llama консультировать по какому-то БОЛЬШОМУ объему документов (ну, например, сборнику федеральных законов, или вроде того). Но так ли это в действительности? И второй вопрос тогда: а во сколько обойдется такой проект? Ну, +-. Если именно путем файнтюнинга пойти, и обучать, скажем, Saiga 30B. Хотя бы порядок цифр. Особенно интересно мнение @abdullin 😊
1. Обучение на документах не даст возможности консультировать по ним (+ ещё галлюцинации) 2. Обучать модель НЕ нужно, нужно взять ретривер, скормить ему документы, взять модель которая будет получать вывод из ретривера и давать ответ (например: https://huggingface.co/Den4ikAI/FRED-T5-LARGE_text_qa).
То есть все-таки ретривер нужен непременно, да? Скажи, я правильно понял смысл, что мы весь массив документации режем на куски, затем перегоняем куски в эмбеддинги, кладем в векторную БД, запрос затем тоже переводим в эмбеддинг, ищем наиболее релевантные куски, эти куски склеиваем, и вместе с запросом даем модели, чтобы она офрмила это в виде внятного ответа, так?
...но как же тогда Сайга? Ее ведь научили русскому именно с помощью файнтюнинга, и это работает. Так? Или это как-то иначе было? Что именно я упускаю в своих выкладках?
Сайгу научили не русскому, а следованию русским инструкциям. Ллама сама по себе довольно хороша в русском, по крайней мере на уровне внутренних представлений
Есть разница между тем, чтобы научиться языку (то есть набору слов и тому, как их складывать в грамматичные предложения) и набору фактов (позволяющему дальше непротиворечиво и без излишней фантазии отвечать на вопросы по этим фактам). С первым языковые модели после (до)обучения справляются хорошо (поэтому их так и называют!), а со вторым у них туго, поэтому им в помощь и дают костыли в виде ретриверов.
да именно так, можно тот же попсовый langchain посмотреть как работает (или haystack), - почему так , есть много причин. одна из них, большие модели несильно быстрые, нужно сузить количество документов (попробуйте запустить LLM над 100_000 документами). во-вторых LLM много чего умеют, особенно из инструкций, и в zero-shot settings, но они довольно плохо оперируют фактическими данными : их "знания" ограничены на момент претрейнинга (хотя есть исследования как делать factual injection), а во-вторых у них довольно плохо все с recall (ибо не в этом их цель изначальная), т.е. для QA по фактическим документам , нужно условно быстрыми методами с хорошим recall , сузить scope, затем из полученных создать контекст и промт и подсунуть таким моделям.
Илья, а можно для тупых: что значит "следованию русским инструкциям"? Ей на вход что именно подавалось и в каком виде? 🙏
Это значит, что ты ей говоришь: придумай 10 названий для парикмахерской и она придумывает
вот тут все максимально подробно описано: https://github.com/IlyaGusev/rulm/blob/master/self_instruct/src/data_processing/create_chat_set.py
И что из этого кода должен извлечь человек? Вы не ошиблись ссылкой?
нет, извлечь названия датасетов и формт
а почему она и так не может этого сделать, коли "Ллама сама по себе довольно хороша в русском, по крайней мере на уровне внутренних представлений"? я хочу понять суть отличия между одним и другим.
Потому что ее учили продолжать текст
Если ламе написать "напиши сочинение как я провел лето", то она продолжит "Сочинение должно быть 150 слов" и т.д
Да, спасибо, теперь понятнее. Илья, я правильно понимаю, что модель после такого обучения, получая инструкцию, "ищет внутри себя" (условно говоря, я понимаю что оно иначе работает) наиболее векторно близкую к одной из инструкций данных датасетов, и генерит ответ по образу и подобию ответа для данной инструкции из данного же датасета? Принцип такой, да?
Скорее нет, чем да. Это хорошо обобщается и на новые инструкции, поэтому модель скорее учит сам принцип следования инструкциям
В таком случае зачем ей именно русские инструкции?
потому что запросы - русские инструкции
...ааа, то есть Llama изначально вообще не очень именно в следовании инструкциям, да? И ее приходится дообучать именно на таких парах?
Ллама обучалась продолжать текст. Следование инструкциям != продолжению текста
Все, пазл сложился!)) Спасибо большое! 🙏
Обсуждают сегодня