Комментарии 17
у вас на первой картинке как будто не p4000, а gt210(у ней как раз гиг памяти), только написали quadro. или вы там что, делите мощность одной видяхи уровня переделанной 1060/недоделанной 1070 на много vps? и за такое кто-то ещё и деньги платит?
Честно говоря статью неосилил. Может кто-то подсказать, для работы обученной сети на 4/8@3.0 64 ГБ процессоре нужно ли возится с подключением GPU 1060 6ГБ которая есть или это ничего не изменит в плане производительности?
Процессоры бесполезны для подобных задач, графические ускорители применяются для этого чаще всего. Есть также TPU и NPU, ещё больше подходящие для данных целей, но сервера с ними предоставляются лишь бигтехом, вроде GCP и AWS
Процессоры бесполезны для подобных задач, графические ускорители применяются для этого чаще всего.
А вот, кстати, насколько бесполезны? Если у меня есть сетка в условные 500 слоев, я загружу эту сетку в 500 штук ну... RasberryPi в режиме слой-на-железку --- то что получится?
Единственное что важно - это пропускная способность памяти.
Допустим у вас 512гб памяти, память работает на 50гб/с (2х канальная ddr4), а модель имеет размер 500гб, то вы получите скорость 0.1 токен в секунду, так как веса модели будет обходиться 10 секунд при такой скорости и таком размере. Если модель весит 50гб, и память 50гб/с, то вы получите 1 t/s и т.д.
Именно поэтому в профессиональных GPU не DDR6, а HBM, достигающая 3-4 Тб/с у H100.
А вот, кстати, насколько бесполезны? ... RasberryPi в режиме слой-на-железку --- то что получится?
Там важно распораллеливание вычислений. И если CPU-bound занимает по ядру, то у обычных CPU обычно ядер 1-24 (не знаком особо с кол-вом ядер в расбери, но думаю там на порядки хуже, чем даже на офисном ПК, что уж говорить о ПК с хорошими процами)
И того десяток ядер CPU против тысяч CUDA-ядер в GPU. Что будет эффективнее?
Кол-во инструкций CPU-ядра слишком большое для операций перемножения матриц, в итоге ядра сами по себе используются менее оптимальнее. В этом плане, кстате, сам GPU проигрывает TPU, т.к. тоже содержит лишние инструкции
Ниже уже написали про пропускную способность памяти, повторяться не буду, просто выделю как пункт
условные 500 слоев
Не знаю нейронок на 500 слоев, знаю на десятки слоев, да и те - обучаются уже точно не на своих машинах и серверах, а крупными компаниями, которые могут позволить себе огромные инфраструктуры для таких вычислений. Плюс, слои разные бывают, те же трансформеры обычно не содержат много слоев, но при этом демонстрируют результаты в разы превосходящие предыдущие поколения NLP, использовавших порой десятки слоев LSTM или GRU для более глубокого анализа контекста. При этом трансформеры требуют тех же огромных вычислительных мощностей для обучения, недаром ходят шутки про Илона, который говорит, что для обучения GPT-5 не хватит всей энергии человечества за пол года или год
Не знаю насчёт 500 слоёв и RPi, а вот та же нейросетка whisper на сервере с 48 ядрами еле-еле дотягивает до того, чтобы преобразовать звук в текст в реалтайма. При использовании видеокарты nvidia A4000 (не самая мощная в линейке, просто такую поставили под задачу) преобразует на скорости порядка 6:1 контейнером, которому отдали на всякий случай два ядра и, похоже, тормозит там не преобразование, а получение записи из хранилища.
Забавный факт, яндексгпт через апи стоит в 84 раза дороже чем gpt 4o mini, а гигачат и вовсе в 111 раз. Есть ли какой то смысл гонять ллм локально с такими ценами.
Да, если не хотите делиться своими данными или нет возможности работать с ChatGPT. Я для своих проектов локальную ollama на своем компе держу, пока всем доволен.
Интересно, а какие проекты?
Поиск по документам, перевод комментариев в коде (с китайского на английский), перефразирование в разных стилях, генератор фраз и продолжение диалога для знакомств. Еще хочу свою локальную читалку перевести на нормализацию текста с помощью LLM, чтобы от кучи правил преобразования избавиться.
Здорово! А как Вы реализовали поиск по документам?
Индексация: разбиваем загруженный документ на фрагменты: текст на абзацы, таблицы по несколько строк, при необходимости переводим фрагменты на английский. Для каждого фрагмента считаем ембеддинги и складываем все это в базу со ссылками на источник.
Поиск: Считаем ембеддинг для запроса пользователя, в зависимости от языка переводим. Находим ближайшие к нему фрагменты в базе. Передаем модельке найденные фрагменты и просим ответить на вопрос пользователя, указывая ссылки на источники. Чтобы модельке было проще ссылаться на источники присваиваем их номерами вида #1, #2 и т.д.
В итоге получается некий аналог perplexity.ai, только работает локально с теми документами, которые в него загрузил пользователь.
Примечания
Ембеддинги - nomic-embed-text
, моделька - gemma2
, база - ChromaDB, перевод через запрос к модельке такого вида: "{text} Translate this text into {language}, maintaining the context and style. Write only text without an introduction and conclusion."
, основной язык - английский все переводится на него и обратно.
Основное ограничение - размер контекста модельки. У gemma2
это 8192
токена, поэтому запрос вместе с фрагментами я стараюсь вписать в 24кб. Так как у ollama
не нашел способа посчитать текущее число токенов.
Цензура. Данные утекают.
Добрый день! Возможно ли эту модель дополнительно обучить, например специализированно на перевод инструкции к лекарствам?
А в чем смысл откровенную дохлость арендовать?
А с видео картой RTX 4000 SFF Ada Generation и 64 Гб оперативной памяти DDR4 ролики какой длинны и разрешения можно генерировать?
Установка LLM на скромном VPS