Комментарии 11
Весит модель более 500 Мбайт ... поэтому обучал на ... GPU T4 х2
2x16Gb VRAM, сколько у вас обучающих данных было, сама же сетка спокойно влезет в гиг vram? какое потребление памяти было? рассматриваю вариант покупки десктопных gpu (пара 4060ti 16Gb) интересно, какой максимальный размер llm можно будет тюнить на таком железе чтобы производительность значительно была выше cpu?
Загруженная на gpu модель и состояние оптимайзера занимал 2.7 Гб на первом gpu. Предполагаю, что это не только веса, но и статистика оптимайзера.
При обучении всей модели kaggle показывал что первый gpu загружен на 11-12 Гб. Тут играет роль размер батча - 8. Мы одновременно обрабатываем 8 примеров за раз на gpu. Больший размер батча приводил к Out of memory (если бы можно было, я бы поставил больше). Т.е. сам по себе кол-во обучающих данных роли не играет.
Второй gpu всегда был пустой, т.к. разделение модели на 2 gpu требует определенных действий. Я пока не стал это делать. В целом размер батча (8 семплов) меня устраивал.
По поводу файнтюна LLM сложные вопросы. LLM обычно огромные. В labse 130 млн. весов, в приличной LLM 7 млрд. весов (mistral, openchat). Файнтюнить надо будет через PEFT с квантованием или еще как то. Область интересная, но сложная. Мне понравилась вот эта статья Ильи Гусева и код обучения.
Спасибо за статью, очень вдохновляюще.
В какой точности обучали сеть? fp16 или fp32?
Отлично, я как раз хотел показать, что нейросети стали ближе к нам, к бизнес задачам
Все слои были в torch.float32. Т.к. сеть маленькая (130 млн. весов), то с этим не заморачивался. Насколько я знаю перевести сеть на torch.float16 не так, чтобы совсем просто... обычно эти вопросы возникают с LLM
Я правильно понимаю что такой паттерн использования имеет право на жизнь и будет почти целевым использованием всего?
1) Разбираем базу знаний на куски, влезающие в один проход энкодера и прогоняем через него.
2) Запихиваем куски в векторную БД, например Chroma.
3) Дообучаем языковую модель спрашивать вопросы и маркировать их.
4) На спрошеный вопрос прогоняем его через cross-encoder и ищем ближайшие к нему ответы в базе.
5) Подсовываем ответы в промпт модели
6) ??????
7) Profit.
Обе с коммерческой лицензией (для labse смотрел тут, для rubert тут).
Но это же неправда...
Здесь написано This is an updated version of cointegrated/rubert-tiny: a small Russian BERT-based encoder with high-quality sentence embeddings.
Идем в обучение rubert-tiny от автора
и там есть ссылка на 1 нехороший датасет от Яндекса
А там такая неприятность....
3.1. Правообладатель безвозмездно, на условиях простой (неисключительной) лицензии, предоставляет Пользователю непередаваемое право использовать Корпус на территории стран всего мира в научно-исследовательских некоммерческих целях, и для этого осуществить воспроизведение (копирование) Корпуса.
т.е. Яндекс в явном виде говорит: "Ребята, датасет только для некоммерческого использования"
Автор обучил модель и поделился круто, спасибо ему за это.
Но возникает вопрос, а можно ли теперь такой моделью пользоваться в коммерческих целях?!
Для меня, как не спеца по лицензиям, этот вопрос требует более глубого исследования, но лень, поэтому скорее серая зона, и я бы не стал использовать модель в ком. целях...
4.4. За исключением использования в объемах и способами, прямо предусмотренными настоящей Лицензией или законодательством РФ, Пользователь не имеет права распространять, доводить до всеобщего сведения, вносить изменения, создавать производные произведения с использованием Корпуса, а также осуществлять (разрешать осуществлять) иное использование Корпуса, без письменного согласия Правообладателя.
запрет на использование в производных продуктах явно прописан
Cross-Encoder для улучшения RAG на русском