Привет, Хабр! Меня зовут Артем Чебыкин, я ML-инженер и автор медиа вАЙТИ. В этой статье я расскажу о том, какой тип компьютера: стационарный, ноутбук или макбук — больше всего подходит для машинного обучения и почему. Также рассмотрим начальный и продвинутый вариант сборки для машинного обучения больших языковых моделей (LLM).
LLM
LLM — это модель, которая обучена на больших объемах текстовых данных и используется для понимания, обобщения и создания текста. Я рассматриваю варианты сборки компьютера именно для такого типа моделей, потому что сейчас LLM очень актуальны: многие компании стремятся создать личного ассистента, который поможет сотрудникам в решении рабочих вопросов.
У больших языковых моделей есть два процесса — обучение и дообучение. Разница в том, что при дообучении модель подстраивается под данные определенной тематики, в которую она углубляется. При обучении модель тренирует на большом массиве данных свою обобщающую способность, то есть способность анализировать данные и давать корректные ответы на вопросы.
Дообучение проще и требует меньше ресурсов, но важно для облачных сервисов. Причина в том, что если модель видела очень мало данных или вообще не видела их, то у нее начнутся галлюцинации. Она начнет придумывать то, чего нет. Лучше использовать локальные модели обучения, потому что все они, в отличие от онлайн-сервисов или API, имеют функцию дообучения.
В этой статье я сосредоточусь на сборке именно для обучения LLM. Одна из задач, которую решают LLM, — генерация кода. По ссылке можно найти список лидеров по результату для моделей, которые генерировали код. Это локальные открытые модели, которые можно обучать на системе. Будем подбирать параметры для их обучения.
Какой тип компьютера лучше всего подходит для машинного обучения
Чтобы ответить на этот вопрос, сравним железо в стационарном компьютере, ноутбуке и макбуке по нескольким критериям.
1. Производительность
Во всех ноутбуках урезанная версия видеокарты, которая ограничена по частотам и объемам памяти. Это нужно для того, чтобы системы охлаждения техники поддерживали ее работу без сбоев в небольшом пространстве корпуса ноутбука. Если поставить в ноутбук полноценную версию видеокарты, система охлаждения не выдержит, ноутбук перегреется, и комплектующие выйдут из строя.
Например, в ноутбуке с дорогим топовым железом Machenike L16 Pro Supernova стоит RTX 4090 для ноутбуков — порезанная видеокарта с характеристиками RTX 4080 для стационарных компьютеров, поэтому она на ступень ниже десктопной версии RTX 4090. Это касается любого ноутбука.
Сравнение стандартной и десктопной версии видеокарты
2. Возможность замены
Еще один недостаток ноутбуков и макбуков: центральный и графический процессоры распаяны на плате, поэтому их сложно заменить. В ноутбуке у процессора BGA-выводы, то есть в роли контактов выступает массив шариков. Чтобы вытащить чипы, нужна паяльная станция. Также нужно правильно подобрать время выпаивания и не сжечь электронику. Даже если получится правильно выпаять процессор и заменить его на более мощный, он может не подойти из-за несовместимости с другими компонентами ноутбука. Единственные апгрейды, не требующие специальных навыков, — добавление дополнительного жесткого диска или SSD и замена планки оперативной памяти.
Во всех макбуках нельзя заменить даже оперативную память.
В стационарном компьютере другой формат платформы: чтобы заменить видеокарту, нужно извлечь кабель дополнительного питания, открутить фиксирующий болт, отщелкнуть фиксатор и вытащить ее. Для замены процессора нужно снять с него систему охлаждения, поднять крышку и вытащить его. Обе операции не требуют паяльной станции.
3. Объем памяти
Однако макбуки компенсируют невозможность замены CPU и GPU с помощью унифицированной памяти и уникальной архитектуры.
В ноутбуках других фирм CPU и GPU разграничены и имеют каждый свою память. GPU и CPU макбука не разграничены и обращаются к одним и тем же блокам памяти. Из-за этого данные не нужно копировать между разными источниками памяти — это экономит время и повышает производительность системы.
Тесты показали, что графический процессор может занимать примерно 75% объема памяти. В случае 128 Гб унифицированной памяти графический процессор может максимально занять 96 Гб, остальное остается под центральный процессор. В традиционной архитектуре GPU занимает гораздо больше, а у Apple процессор забирает часть памяти из общего количества.
Благодаря этому даже при общем объеме RAM 64 или 96 Гб на макбуке есть внушительный запас памяти, поэтому на нем можно обучать большие модели. Однако макбуки проигрывают стационарным компьютерам, поскольку мощность их процессоров всё равно не дотягивает до видеокарт NVIDIA, которые больше всего подходят для машинного обучения.
GPU working set size — 75%
4. Видеокарта
Чтобы понять, почему видеокарты NVIDIA лучше всего подходят для машинного обучения, рассмотрим преимущества продукции компании по сравнению с другими крупными производителями видеокарт — AMD и Intel.
Преимущества NVIDIA:
Компания начала разрабатывать унифицированное аппаратное и программное обеспечение для машинного обучения гораздо раньше, чем AMD и Intel. Сообщество NVIDIA, которое разрабатывает библиотеки, гораздо больше и активнее, чем у AMD и Intel. Хотя AMD публикуют новости, что их промышленные карточки могут обогнать карты NVIDIA, обычно речь идет о бенчмарках, то есть производители запускают их в искусственных условиях.
В видеокартах NVIDIA есть тензорные ядра. Их название — маркетинговый ход от NVIDIA, который привлекает внимание. По сути, тензорные ядра — это маленькие вычислительные блоки, специально созданные компанией NVIDIA для расчета тензоров, которые используются в нейросетях.
Видеокарты NVIDIA имеют CUDA-ядра — унифицированные мультизадачные графические ядра. Их кодеки используются, например, для рендеринга, отрисовки графики в играх или графических приложениях и для ускорения машинного обучения.
Множество фреймворков и библиотек оптимизировано по технологии NVIDIA.
На что обратить внимание при выборе видеокарты NVIDIA для обучения:
Число тензорных ядер. Они могут перемножать операции над тензорами за один такт. Чем больше тензорных ядер, тем лучше — тем больше операций можем совершить за единицу времени и тем быстрее будут расчеты.
У AMD есть Matrix Core Technologies — аналог тензорных ядер, который не имеет такой хорошей аппаратной поддержки. Поскольку софт у AMD не настолько хорош, как у NVIDIA, скорость работы видеокарты ниже. С выпуском ADA — последнего поколения видеокарт NVIDIA — разница в качестве видеокарт NVIDIA и AMD стала еще больше.
Число CUDA-ядер. Они позволяют частично ускорять машинное обучение, но не так эффективно, как тензорные.
Сколько тензорных и CUDA-ядер нужно. Среднее число по тензорным и по CUDA-ядрам зависит от бюджета. Например, у начального решения для машинного обучения RTX 4090 16 384 CUDA-ядер, 1321 тензорное ядро четвертого поколения, 512 текстурных блоков и 176 блоков растеризации. В профессиональных картах их еще больше.
Объем видеопамяти у карточки не влияет на процесс обучения, но очень важен. Я считаю, что сейчас минимальный объем для обучения больших сеток — 24 Гб. Такой объем имеют либо топовые игровые решения NVIDIA: 3090, 3090 TI, 4090, — либо видеокарты в промышленном сегменте. Если сеть слишком большая, она просто не влезет в наш объем видеопамяти. Для уменьшения ее размера можно использовать технологию сжатия LoRA, но это приведет к снижению качества работы модели.
Частота видеочипа. Чем больше частота, тем выше скорость работы, тем быстрее и больше операций процессор делает за такт.
Ширина шины памяти видеокарты и тип памяти. В игровых карточках NVIDIA и некоторых промышленных сейчас стоит стандарт GDDR6X либо GDDR6. Но есть еще карточки, которые ставят, например, на NVIDIA Tesla, — HBM2-память с огромной пропускной способностью. То есть за один такт мы можем передавать и получать гораздо больше данных.
Таблица с характеристиками и ценами на видеокарты, которые уменьшаются сверху вниз. RTX 3090 и 3060 неприменимы для больших моделей. Видеокарты выше RTX 4090 — профессиональные решения
5. Цена
При равной производительности цена ноутбука и макбука выше, чем стационарного компьютера. Макбук имеет уникальную архитектуру, но его цена неоправданно высокая, поэтому справедливо сравнивать цены ноутбуков и стационарных компьютеров.
Из-за того, что в ноутбуках используют урезанные версии видеокарт, они никогда не догонят по мощности стационарные компьютеры. Новейшая версия видеокарты в стационарном компьютере будет работать на максимум, которого не достичь урезанной версии той же видеокарты в ноутбуке. Именно поэтому при одинаковой цене и модели видеокарты лучше выбрать стационарный компьютер, а не ноутбук.
Вывод
Худший вариант для машинного обучения — ноутбук, потому что у него порезанное, менее производительное железо, чем у такой же модели в стационарном компьютере. На втором месте макбуки, поскольку у них есть унифицированная память, которая позволяет заниматься машинным обучением. Однако в них стоят видеоядра от Apple, а не видеокарты NVIDIA, которые больше всего подходят для обучения. Наилучший вариант — стационарные компьютеры с NVIDIA, потому что в них стоят полноценные версии железа и при одинаковой производительности они более экономически выгодны, чем макбуки или ноутбуки.
Варианты сборки компьютера для машинного обучения
В данном разделе рассмотрим два варианта сборки стационарного компьютера для машинного обучения. Эти конфигурации не эталонные, можно брать аналоги от других производителей. Они больше про концепцию сборки компьютера для машинного обучения.
Начальная сборка
Бюджетная сборка для машинного обучения и обучения больших моделей.
Концепция: строим систему вокруг видеокарты — максимально вкладываем в нее средства, потому что обучаем на ней модели. Остальные компоненты бюджетные, они раскрывают потенциал видеокарты при обучении нейронных сетей.
Компоненты для сборки начального уровня
Оперативная память. Минимальный объем оперативной памяти — 64 Гб. Четыре планки памяти позволят системе работать стабильно.
Процессор. Процессор работает в двухканальном режиме. Пока две планки активны, две другие готовятся. Рекомендую ставить процессоры от AMD, потому что они дешевле, а также выделяют и потребляют меньше тепла, чем процессоры других фирм. Также компания AMD сказала, что платформа, на которой стоит АМ5, будет поддерживаться до 2026 года. Это значит, что она актуальна.
Запоминающие устройства. Недостаточно сделать раздел на одном SSD, рекомендую иметь два: первый небольшого объема — например, 256 Гб — для системы, а второй — для текущего проекта. В таком случае, если система или диск сломаются, вы потеряете только маленький SSD, а данные останутся в безопасности на втором накопителе. Потерять систему, которую можно переустановить, не так страшно, как 2 Тб уникальных данных.
Также высокой скорости SSD может не хватать для передачи, если расположить систему и большое количество данных на одном диске. Система будет подтормаживать.
Жесткие диски. Нужны, чтобы хранить проект после его завершения. Они более надежные, чем SSD.
Блок питания. Для питания такой системы хватит блока питания 850 Вт.
Цена. Примерно 300 000 рублей.
Что можно сделать на этой сборке. По ссылке указаны параметры, которые необходимы для обучения различных моделей. Обращайте внимание на параметр GPU requirements — в случае начальной сборки у нас 24 Гб VRAM. Под эти критерии подходят, например, BERT и Falcon. Также 24 Гб — минимум для Zephyr.
Продвинутая сборка
Сборка с наиболее мощными компонентами для машинного обучения по состоянию на 1 апреля 2024 года.
Концепция: используются промышленные карточки. Не топовые, но мощнее RTX 4090.
Каждая часть сборки выбрана так, чтобы система работала на максимум.
Используется специальная материнская плата.
Компоненты для сборки продвинутого уровня
Процессор. В этом варианте сборки, как и в первом, процессор фирмы AMD, но он почти серверный. AMD разделяет два типа процессоров, отделяя их от серверных. Они называются high-end system processors и ставятся в очень продвинутые системы. Именно такие нужны для емких вычислений, которые есть в нейронных сетях.
RAM. Отличаются объемы оперативной памяти. Если в предыдущей сборке было 64 Гб, то здесь можно поставить почти 2 Тб.
Материнская плата вмещает до четырех видеокарт, которые можно поставить на одну плату.
Цена. Цена всех комплектующих без учета кастомного водяного охлаждения и сборки всех компонентов примерно 6.5–7 млн. рублей.
Что можно сделать на этой сборке. Можно обучать такие модели, как LLaMA 70B, Bloom, Mixtral-8x7B.
Что даст продвинутая сборка
Большое количество оперативной памяти (192 Гб), можно расположить много данных.
Высокая скорость работы.
Высокое качество результата.
Чем больше памяти, тем меньше нужно задумываться о сжатии и тем выше будет качество, потому что мы обучаем полноценную модель, а не сжатую. Не придется использовать дополнительные техники LoRA и QLoRA, чтобы ужаться в 24 Гб оперативной памяти. В продвинутой сборке — 192 Гб, это само по себе довольно много. Также у профессиональных карточек NVIDIA есть технологии, с помощью которых их можно объединить в одну видеокарту, что еще больше повысит скорость обучения.
В заключение
Тип сборки компьютера для машинного обучения зависит от задач, которые вам необходимо решить. Обращайте внимание на задачи, которые вам нужно решить, свой бюджет и комфорт. Возможно, автономность сыграет для вас решающую роль, и вы предпочтете ноутбук, а не стационарный компьютер.
вАЙТИ — DIY-медиа для ИТ-специалистов. Делитесь личными историями про решение самых разных ИТ-задач и получайте вознаграждение.
Комментарии (52)
alfa41
11.06.2024 17:25+1На какую систему ориентироваться: Windows или Linux?
crims0n_ru
11.06.2024 17:25Без разницы. Если использовать eGPU, то лучше Windows, так как в Linux с переключением гибридных и внешних GPU всё сложно.
maxcat
11.06.2024 17:25Странно, что в статье не написано про eGPU.
А eGPU позволяет и на настоящих ноутбуках (и планшетах) иметь мощную GPU и апгрейдить её. Детское железо от апол почему-то лишено такой возможности
ilriv
11.06.2024 17:25Рекомендую ставить процессоры от AMD, потому что они дешевле, а также выделяют и потребляют меньше тепла, чем процессоры других фирм
Меньше чем ARM (Snapdragon)?
dyadyaSerezha
11.06.2024 17:25+1Если комп стоит 7 млн, то сколько стоят данные для обучения?
funca
11.06.2024 17:25https://www.tomshardware.com/news/startup-builds-supercomputer-with-22000-nvidias-h100-compute-gpus
Была новость, что некие ребята собрали комп с 22000 штук Nvidia H100. Каждый юнит H100 в розницу стоит около $30000. Это конечно не самое типичное решение, но обучение нейронок в промышленных масштабах сейчас выглядит примерно так. Крупные игроки вроде AWS или Google предлагают ускорители на базе чипов собственной разработки. Короче, использовать персоналки с игровыми видеокартами в 2024 есть смысл только для самообучения или для игр. =)
LuchS-lynx
11.06.2024 17:25А для каких нейронок все же подойдет обычное домашнее железо, например ВК 4060 + i5/r5 с ОЗУ 16-32Гб?
mahmud-podzhigai
11.06.2024 17:25Файнтюн предобученного resnet/mobilenet. Достаточно, чтобы сделать тестовое задание и устроиться на работу, где будет доступ к чему-то посерьезнее (моя история успеха)
rPman
11.06.2024 17:25+3Статья ужасна более чем полностью.
Работа с llm это два направления - finetuning (обучение) и inference (использование) и у каждого из них есть свои требования к железу. Для inference может быть достаточно оперативной памяти и запуск может быть произведен на процессоре, так как даже 70b модели на среднем железе дадут скорость примерно 1токен в секунду, мало того в этом режиме возможна квантизация, когда веса сети занимают вместо 16бит на вес в среднем до 4бит (можно меньше но качество падает значительно) и скорость в этом случае так же увеличивается. А вот для finetuning квантизация практически всегда противопоказана, а значит требования к оперативной памяти максимальны. Так же возможность разместить рядом с весами модели еще и обучающую выборку, может увеличить кратно скорость работы, что так же критично.
Отсюда главные требования к железу - не процессор а только оперативная память gpu. На скорость будет влиять в большей степени не скорость процессора (или количество ядер) а количество памяти на устройство (т.е. 5 по 16гб хуже чем 3 по 24гб даже если в первом случае памяти в сумме чуть больше), но и требования к модели нужно учитывать. И конечно поддержка софтом, при выборе amd или intel видеокарты, готовые решения будут ограничены llama.cpp когда как с nvidia будет работать почти любой код (некоторые требуют серверные gpu, а их цены на порядок выше десктопных той же скорости).
Да, количество оперативной памяти у процессора желательно должно быть больше чем требуется для работы llm но как это ни странно не обязательно, если используемый сервис загружает веса в vram однократно, то хранить в ram их уже не нужно. Но есть другие цели использования ram, например хранение промежуточных state kv cache для ускорения запросов с одинаковым стартовым prompt (они имеют гигабайтовые размеры даже для небольших сетей до 7gb для codestral22b например).
И главное, в конечном счете часто стоимость все решает, когда каждый следующий tps в скорости inference увеличивает стоимость всего железа на порядок, нужно вовремя остановиться.
p.s. моя рекомендация дешевого железа для домашней llm - nvidia gtx 3060 12gb или 4060ti 16gb, это очень медленные видеокарты от nvidia (компания сделала это намеренно) но с самой низкой стоимостью гигабайта vram. Процессор и оперативную память брать не самое топовое, быстрой оперативной памяти не нужно, тут можно сэкономить. Диск брать самый быстрый для чтения, любые дешевые ssd nvme pci-e подойдут но тогда быть готовым к частым заменам, llm-ки это сотни гигабайт, особенно если часто сохранять pretrained когда занимаешься finetuning.
vagon333
11.06.2024 17:25Согласно вашего комментария (finetuning vs inference) насколько экономически выгодно рентовать железо для finetuning, вместо покупки ?
А уже inference выполнять на обычном компе с 16 gb VRAM.rPman
11.06.2024 17:25+5Да.
Аренда мощностей это 0 капитальных вложений и завышенные оперативные (потому что железо там серверное, дороже десктопного в 10 раз).
Свое десктопное железо - это много капитальных вложений и очень низкие оперативные (только энергия и помещение).
Отсюда вывод что арендованное железо имеет смысл, если утилизация этих мощностей кратковременная. А свое железо имеет смысл, если оно будет загружено на долго.
Где то через 3-4 месяца нагрузки затраты на аренду сравняются с покупкой железа, а если его есть возможность позже продать, даже с учетом большой амортизации, выгода становится еще заметнее. Я выше в комментарии считал что для inference llama70b хватит машины за 300-350т.р. (порядка 10-20токенов в секунду, для batching по уму и 50 будет), берем лучший сервис для gpu вычислений vast ai - 4x16gb обойдется $360 в месяц, это 34т.р позволит больше полугода работать (там лучше брать interruptible, кстати такие цены там редкость, чаще в 2 раза дороже).
p.s. начиная с некоторого объема мощностей (кластеры, сотни gpu) затраты на обслуживание и накладные расходы на плохую приспособленность к работе в кластере десктопного железа (медленные сети, медленная память, медленный pci-e, отсутствие ECC, отсутствие софта) начинают сказываться, но нужно очень аккуратно считать, народ не очень спешит делать тесты и делиться конкретными результатами.
nivorbud
11.06.2024 17:25Я бы не экономил прежде всего на блоке питания и корпусе. БП на 850W - это всё же маловато, впритык для 4090. Корпус тоже надо выбирать тщательно - с учетом систем охлаждения.
Материнка бюджетная нежелательна - там мало линий PCI, а это важно при мощной видюхе и нескольких nvme-дисках.
1/2ТБ nvme диск - это ни о чем, очень мало для экспериментов с разными моделями.
ЗЫ:
Я не вижу таких уж огромных перспектив у больших языковых моделей. Имхо, это по большей мере хайп, пузырь. Основную проблему вижу в неинтерпретируемости результатов, это черный ящик. Для баловства - да, для развлечений - да, для анализа данных - да, для серьезных применений - нет! Хотя на последнее видимо наплюют... со всеми вытекающими последствиями. В большинстве случаев нужно что-нибудь попроще, например надежный классификатор с интерпретируемыми результатами. А складность речи - это прикольно, конечно, но это необязательный фактор.
rPman
11.06.2024 17:25+4(Кажется у mistral) были статьи про интерпретируемость, они нашли способ искать, какие веса за какие знания отвечают, и управлять ими без подмены запроса.
Направлению от силы 2 года исследований, это ничто для такой сложной отрасли, особенно когда минимальный стартап в ней требует многомиллионные вложения (гаражом не отделаешься). Откуда такие абсолютистские высказывания? вот появилась технология и за считанные годы стала решать ну просто огромный пласт задач, к которым ранее не могли подступить никаким способом - работа с естественной речью. Вот скажи, 3-5 лет назад, можно было предположить что программа сможет по изображению мема или шутки, дать пояснение этой шутке на естественном языке? И речь не о поиске картинок в базе данных, а буквально, набросай мем от руки, и оно дает решение! Да, были подвижки в этом направлении (собственно мультимодальные llm-ки появились не на пустом месте) но чтобы такой резкий скачок - немыслимо.
nivorbud
11.06.2024 17:25+1(Кажется у mistral) были статьи про интерпретируемость, они нашли способ искать, какие веса за какие знания отвечают, и управлять ими без подмены запроса.
Думаю, это несколько иное. Я про полную ясность причин конкретного результата. Не "потому что веса так сошлись", а про понятную цепочку выводов. Например, когда суд спрашивает банк: поясните, по каким конкретным причинам/признакам/логике ваша система заблокировала счета вашего клиента (в результате чего ему были нанесены убытки)?
Направлению от силы 2 года исследований, это ничто для такой сложной отрасли, особенно когда минимальный стартап в ней требует многомиллионные вложения (гаражом не отделаешься). Откуда такие абсолютистские высказывания?
Это же нейронные сети. Им уже много десятков лет. Проблемы эти давно известны.
Вот скажи, 3-5 лет назад, можно было предположить что программа сможет по изображению мема или шутки, дать пояснение этой шутке на естественном языке?
Давайте начистоту. Применение нейронных сетей в поисковых системах, по вашему, улучшило поиск? По мне поиск стал значительно хуже, результат стал сильно размыт. Сейчас стало сложно искать конкретную точную информацию. например, в запросе среди прочего указываешь Debian 11, а в ответ получаешь размытые результаты по любым линуксам, по похожим проблемам, но не по конкретному линуксу и конкретной проблеме. Постоянно приходится использовать кавычки и минусы для точного поиска, да и это зачастую не помогает.
С другой стороны, нейросети в поиске - идеальное решение для обывателя, когда домохозяйка, не зная толком, что она хочет, не зная как сформулировать запрос, вбивает фразу типа: хочу что-нибудь про котиков... и получает размытый, но разнообразный результат с котиками. Домохозяйка довольна.
Я проводил тесты с нейронными сетями для текстового поиска, тематической классификации/кластеризации и пр. Пришел к выводу, что результат для многих серьезных применений не годится или годится в ограниченном упрощенном виде.
Первые результаты, да, вызывали эффект вау: находятся документы соответствующие смыслу запроса, и это при том, что в этих текстах нет ни одного слова из запроса. Однако, стал замечать, что что-то в этих результатах не то. С одной стороны, имеется хорошее совпадение по смыслу, но с другой стороны - всё как-то размыто, перекошено в сторону обобщения, т.е. практической пользы мало. В итоге предпочел простые, но точные ответы, пусть и за счет повышенных требований к запросам и некоторой потери полноты. Т.е. остановился на более простых алгоритмах.
И речь не о поиске картинок в базе данных, а буквально, набросай мем от руки, и оно дает решение!
Проблема в том, что от этого "решения" мало пользы - вы не можете полагаться на этот ответ, не будучи экспертом в этой теме (теме заданного вопроса). Повторюсь, для развлечений это годится, для эксперта, способного оценить ответ, тоже годится, а для серьезных применений за пределами экспертной оценки - вряд ли.
rPman
11.06.2024 17:25+1Есть академическое знание, а есть практика. Интерпретируемость это именно первое. Оно нужно как одно из решений (не единственное) ряда проблем, например юридических, ограничивающих внедрение автоматизации (например робомобили - проблема вины и ответственности стоит тут в полный рост, и полное объяснение причин того или иного поведения ИИ может прикрыть кому то задницу в полной мере).
А практика - это когда тебе нужно решать задачи, и тебе абсолютно не важно КАК эта задача решена, тебя волнует только цена решения (затраты ресурсов и времени) и вероятность сбоя/ошибки. Ты можешь посадить 100 китайцев в коробку и продавать ее как универсальное решение, китайцы будут лажать по страшному, (попробуй сам качественно поработай, сидя в коробке) но если число ошибок не будет превышать критического порога, т.е. дело делается, задачи решаются, - тебе этого будет достаточно.
Современный ИИ лучше воспринимать как такую коробку. Как черный ящик, описываемый количественными характеристиками - вот такие то вопросы из таких доменов решаемы с такой то вероятностью. Мало того, лучшие решения от openai уже подошли к такому порогу, что чтобы уличить их в ошибке нужно быть человеком выше среднего по уровню интеллекта и огромным багажом знаний (за исключением известных ограничений уже технологии)... мало того я уверен что большинство без гугла (т.е. еще один ИИ по проще) мало что в принципе смогут современному ИИ противопоставить.
p.s. еще интерпретируемость может использоваться как инструмент повышения качества результата без значимых вложений в создание ИИ. Каждый следующий шаг традиционными способами уже становится неоправданно дорогим.
p.p.s. пример с описанием шутки - это отличный пример оценки современного ИИ, никакими иными способами раньше эту задачу решить было нельзя, даже намеков не было.
nivorbud
11.06.2024 17:25+1Предположим, вам надо принять ответственное решение в теме, в которой вы не являетесь экспертом. Вы спросили нейросеть, получили ответ. Что вы с этим ответом делать будете, если не можете оценить его достоверность?
Я бы предпочел ответ в виде выбора подходящего решения из набора готовых экспертных решений, а не решение полностью сгенерированное ИИ "близко по смыслу". А зачастую ведь каждое слово, каждый термин имеет значение.
Мало того, лучшие решения от openai уже подошли к такому порогу, что чтобы уличить их в ошибке нужно быть человеком выше среднего по уровню интеллекта и огромным багажом знаний (за исключением известных ограничений уже технологии)... мало того я уверен что большинство без гугла (т.е. еще один ИИ по проще) мало что в принципе смогут современному ИИ противопоставить.
А сопоставлять надо именно с системой классического поиска по справочникам, которые на выходе дают подборку экспертных материалов.
rPman
11.06.2024 17:25+3А что вы будете делать, если эту задачу будет решать человек? Чем отличается некачественный результат от 80% обывателей и ИИ? Какое именно свойство есть у человека и нет у машины, из-за которого его работу обесценивают?
nivorbud
11.06.2024 17:25+1А что вы будете делать, если эту задачу будет решать человек? Чем отличается некачественный результат от 80% обывателей и ИИ? Какое именно свойство есть у человека и нет у машины, из-за которого его работу обесценивают?
Некачественный результат от качественного отличается источником результата - от обывателя искомый ответ или от эксперта, причем с фамилией, именем, отчеством.
Давайте рассмотрим ситуации решения проблемы:
1) Вы получаете в ответ от ЧатЖПТ некий сгенерированный складный текст - словесно-частотную компиляцию из множества материалов разного качества. По сути получаете подражание экспертам, но не экспертное мнение.
2) Вы получаете от поисковой (или экспертной) системы несколько экспертных материалов от известных в своей области специалистов.
Какой вариант выберите? Я однозначно выберу второй, даже если это будет касаться простых справочных данных. Но понимаю, что большинство обывателей ничтоже сумняшеся выберут первый вариант. Со всеми вытекающими...
rPman
11.06.2024 17:25Это общие слова, вы с практической точки зрения говорите.
nivorbud
11.06.2024 17:25С практической? Недавно сын доклад готовил по биологии (9 класс). Всё хорошо, всё складно и структурно, но... ИИ причислил к одноклеточным организмам также и вирусы. Сын даже глазом не моргнул, а мне бросилось в глаза...
rPman
11.06.2024 17:25+1Вот видите, ИИ уже стала лучше 9-летнего но хуже чем вы....
Все познается в сравнении, когда начинаешь оценивать численно качество ответов (буквально, на сколько ответил ИИ а на сколько тот же экзамен сдают в среднем люди) то...
пять и больше лет назад речь шла о 'ура, наша сеть говорит синтаксически и даже семантически верно, но все равно получается бред шизофазии'
четыре-три года назад о трансформерах думали исключительно как о переводчике с языка на другой язык, и с интересом ковырялись в них как инструмент решения задач с текстом (например классификация или к примеру заголовок сгенерировать и даже аннотацию, поверьте задачи до gpt практически не решаемы адекватно)
два года назад речь шла о - 'оно сумело ответить на эти простые вопросы правильно, как интересно, их не было в обучающей выборке'
год назад оно отвечало на вопросы из некоторых доменов знаний так же как обыватель!
а сейчас, в некоторых доменах, ИИ превосходит человека, но все еще есть такие знания, которые не поддаются, и во всю заговорили о мультимодальности, это пока ахилесова пята ИИ, его понимание мира все еще крутится вокруг текстовых данных, и пространственное понимание на зачаточном уровне, большая часть простых для людей но сложных для ИИ вещей крутится вокруг графических задач
Прогресс просто коллосальный, и останавливаться пока не собирается
Hidden text
паникеры твердят о выходе плато, а я говорю что - прогресс искусственно тормозится, в доказательство привожу то что как только конкуренты anthropic или гугл выкатывают решения лучше или рядом с openai, так она обновляет свою модель которая ровнехонько лучше, это говорит что они МОГУТ повышать качество своих моделей в пределах их технических возможностей прогнозируемо, и не делают это сразу по максимуму по каким то внутренним причинам)
p.s. но это само собой все еще не AGI, не просто не близко, а на парсеки далеко. лично я считаю gpt это как некая часть будущего ИИ, работающая как у человека интуитивное понимание - моментальное решение, часто не верное, но очень близкое к верному.
funca
11.06.2024 17:25+1Вы получаете от поисковой (или экспертной) системы несколько экспертных материалов от известных в своей области специалистов
Только если у вас есть доступ к экспертам, которые готовы работать бесплатно. Для остальных это будет стоить $390 за час работы. Жадная нейронка возьмёт $0,39 за страницу и будет работать несколько секунд.
Люди в общем-то приспособлены для принятия решений в условиях неполной или неточной информации. Если вы руководитель, то постоянно сталкиваетесь с такой ситуацией - это пресловутый человеческий фактор. Лажать могут даже самые именитые из экспертов. Поэтому вы выстраиваете процессы так, чтобы свести риски до приемлемого уровня.
nivorbud
11.06.2024 17:25+2Только если у вас есть доступ к экспертам, которые готовы работать бесплатно. Для остальных это будет стоить $390 за час работы. Жадная нейронка возьмёт $0,39 за страницу и будет работать несколько секунд.
Разница огромна. Рассмотрим ку примеру юридическую консультацию.
За $0,39 вы получите размытый обобщенный ответ, касаемо ситуаций схожих с вашей.
За $390 вы получите подробную консультацию конкретно по вашей проблеме.
Но первый вариант я тоже не отметаю. Например, если вы сами решили заняться своей проблемой, то можно начать и с первого варианта - с ИИ: получить направление для дальнейшего углубления в тему. Но это уже анализ, для анализа это полезный инструмент. Но тупо доверять таким результатам (без проврки и анализа) я бы не стал.
vp7
11.06.2024 17:25+1Вот вы пишете, что не годится для серьёзного применения, но годится для эксперта, способного оценить ответ.
Но для меня это уже ОЧЕНЬ серьёзное применение! Если эта шушлайка поможет мне решить сложную задачу не за 5 рабочих дней, а подсказками наведëт на более интересные варианты и я решу её за 4 рабочих дня, то по факту она экономии компании средства и увеличивает эффективность работы эксперта на 10-25%, а дальше вопрос только в оценке финансовой эффективности.
Да, из десятка предложенных решений половина окажется полным бредом (до сих пор помню, как по одному вопросу по специфичному приложению GPT4 дала исчерпывающий ответ по функционалу... который лежит в беклоге, и, возможно, выкатится в продакшн через год), но парочка может быть очень даже актуальными.
nivorbud
11.06.2024 17:25Но для меня это уже ОЧЕНЬ серьёзное применение! Если эта шушлайка поможет мне решить сложную задачу не за 5 рабочих дней, а подсказками наведëт на более интересные варианты и я решу её за 4 рабочих дня, то по факту она экономии компании средства и увеличивает эффективность работы эксперта на 10-25%, а дальше вопрос только в оценке финансовой эффективности.
Да, верно, но... для этого не нужны большие языковые модели. В этом случае скорей всего будут более оптимальны более простые специализированные системы.
funca
11.06.2024 17:25для этого не нужны большие языковые модели. В этом случае скорей всего будут более оптимальны более простые специализированные системы.
Если бы такой ответ сгенерировала нейронка, я думаю вы бы ещё больше утвердились в их практической бесполезности. Но к вам, как эксперту, ни каких претензий.
nivorbud
11.06.2024 17:25Но для меня это уже ОЧЕНЬ серьёзное применение! Если эта шушлайка поможет мне решить сложную задачу не за 5 рабочих дней, а подсказками наведëт на более интересные варианты и я решу её за 4 рабочих дня, то по факту она экономии компании средства и увеличивает эффективность работы эксперта на 10-25%, а дальше вопрос только в оценке финансовой эффективности.
Если бы именно в таком ключе эти языковые модели позиционировались, то нет вопросов. Моя претензия к хайпу на этой теме, к утверждениям, что нейронки скоро заменят многие профессии.
В принципе да, можно будет полностью заменить например врачей экспертными системами, уже сейчас можно, но такого будущего не хотелось бы.
rPman
11.06.2024 17:25Т.е. вместо того чтобы обвинить неадекватных журналистов, вы огульно обвиняете технологию, о которой они говорят?
Это как обвинять голограммы что они чего то не могут, только потому что журналисты называют этим именем любую фигню хоть как то подающую объем и даже без этого (голограммами называют переливающиеся картинки)
vikarti
11.06.2024 17:25Я вот периодически ОднуБольшуюLLM использую для задач вида:
вот тебе json простой структуры тег-текстовой значение (с некоторыми вложенными структурками). сделай data class на kotlin, добавь атрибуты SerializedName, добавяв заготовку для kdoc.
Результат не с первого раза и иногда бред...но быстрее править этот результат чем набирать правильное - руками. Конечно быстрее
но вот с задачей - вот класс со со сложно-извращенной функцией вида - в зависимости от нескольких входных параметров, используя кучу сложной и запутанной логики выдай такие то ответы по которым потом будет построен экран - напиши максимальное количество юнит тестов. При этом бонус - функци может работать ошибочно и если тест падает и понятно чего там не так - возможно надо перечитывать спеку и править эту функцию.
У меня написание тестового набор сегодня где то полдня заняло неспешно, и это был именно случай когда тесты писались руками, падали, выяснялось почем, обычно ошибка была в самой функции или ее зависимостях. Сейчас 9 штук тестов проходят нормально, размер функции уменьшился в два раза и есть уверенность что во всех прямо прописанных в спецификации случаях - ответ ожидаемый.
ОднаБольшаяLLM конечно тестов (по финальной версии кода) написала быстро, но пришлось просить постоянно еще и есть ньюанс - то что выдано к использованию скажем так не пригодно, код даже не компилируется.
Вот только для первого результата - ОднаБольшаяLLM не нужна - локальные модели на бытовом железе вовсе даже не топовом справляются не сильно хуже(а без них ну просто будет медленее)(и вообще можно взять и написать наконец свой генератор классов по таким JSON'ам, там понятно что делать - просто не так часто надо) а второй результат...нафиг такую "помощь"
rPman
11.06.2024 17:25То же самое произойдет, если ты с улицы возьмешь очень старательного человека, который ну никогда юнит тесты не писал но умеет гуглить stackoverflow
Разработчикам llm приходится чем то жертвовать из обучающего датасета, так как там далеко не линейная зависимость времени обучения от его размера. Мало того, llm-ки пришли к тому что хоть и начался их триумфальный ход с того что они сумели из мусорных данных извлекать знания, теперь же приходится очень аккуратно собирать этот датасет чтобы модель стала умнее. Это тупо дорого.
Программирование не является целью открытых датасетов, мне известен только фейсбуковский llama3-70b и может быть и мистраловский codestral22b, остальные пилят для маркетинга, и даже просто github у них по минимуму.
p.s. если не секрет ОднуБольшуюLLM это какая?
JerryI
11.06.2024 17:25+1БЯМ быстро учатся, гораздо быстрее чем человек из контекста. Уже после 3-4 страниц документации, ей удается приводить примеры и рабочий код из смежных областей с использованием этих технологий.
Удается даже банально файл 5~кб цифр - отформатировать и перевести в формат языка N. Контекстное поле гигантское стало.
Какие то скучные и нудные занятия хорошо делает. Переводы doc (понятно через ocr) в latex. Форматировать литературу по ГОСТ и многое другое… кодировку отгадать, если испортилась.
Даже внутренний файл со своей структурой заранее неизвестной модели, просто по содержанию она догадывается что где и как.
В целом я понимаю ваше недовольство хайпом. Но я верю и уже убедился, что если убрать свистоперделки - это такой хороший тул. Автокомплит-база знаний и умений, которая точно также как и отвертка может использоваться.
PS: чтобы быть пустословом. Киньте документ в GPT-4o. Даже в бесплатной версии уже можно заливать pdf ки. И попросите там в какой нибудь хитрый формат перевести.
nivorbud
11.06.2024 17:25Автокомплит-база знаний и умений, которая точно также как и отвертка может использоваться.
Несомненно. Но при одном условии - эта "отвертка" должна использоваться специалистом, понимающим что и как этой отверткой надо закручивать. (И еще я бы смотрел в сторону узко-специализированных экспертных систем - более компактных и более точных. Думаю, за ними реальное будущее).
Но, как обычно бывает, всё закончится тем, что этим инструментом массово будут пользоваться дилетанты, слепо доверяющие результатам ИИ. На волне хайпа не разбирающиеся в теме руководители будут массово внедрять модные БЯМы в своих организациях. Потом... придется такое использование расхлебывать... Наверняка после несчастных случаев и прочего вреда пойдет волна судебных исков, потом введут жесткое законодательное регулирование и т.д.
Moog_Prodigy
11.06.2024 17:25Что такое "узкоспециализированные экспертные системы" ? Приведите хоть одну такую. А, я кажется понял. Это такие системы которые каждая корпорация делает под свои задачи, и разумеется никакой публичности это не предполагает. Это вот это оно?
Но зачем вы такой внутренний продукт сравниваете с нейронкой общего назначения? Это как электричку сравнивать с бульдозером "внутризаводским".
JerryI
11.06.2024 17:25Я кстати думаю что fine tuning может считаться таковой. И вероятно gpt трансформатор всегда будет доминировать, так как учить его гораздо проще и менее ресурсозатратно.
nivorbud
11.06.2024 17:25Да, типа того имел ввиду. Правда БЯМ в этом случае будет являться по большей части основой для генерации ответов на естественном языке. А это необязательно для большинства применений.
nivorbud
11.06.2024 17:25Что такое "узкоспециализированные экспертные системы" ?
Узкотематические. Например, какого нибудь медицинского направления. Но уж никак не обо всём на свете.
Moog_Prodigy
11.06.2024 17:25Но ЛОРы не тянут на экспертную систему. Это всего лишь минимоделька. Экспертные системы обычно основаны на СУБД... Или я отстал от жизни?
rPman
11.06.2024 17:25Сейчас экспертные системы пилят на основе gpt в том смысле, что большая часть знаний не структурирована в виде реляционной базы, а представляет из себя огромную гору текстовых и не только документов.
Раньше чтобы эти знания хоть как то можно было использовать, пилились узкоспециализированные системы анализа и поиска по этим базам, но чаще под каждый массив данных набиралась команда и обрабатывала их как отдельный проект (и поэтому качественно в общем сделать ыло невозможно/дорого)
И да, сейчас тоже приходится узкоспециализированно ковырять данные, но с gpt это буквально можно дойти до результата.
p.s. не знаю, что имеется в виду под экспертной системой для медицины, там требования к интерпретируемости повыше будут, но и там RAG подход очень поможет
iskander1220
11.06.2024 17:25В colab реально обучать подобные объемы? Или есть вероятность, что данные утекут?
wingerv
11.06.2024 17:25Цена. Примерно 300 000 рублей.
Сейчас одна видеокарта стоит 230 тр. У меня такая сборка получается заметно больше 300 тр. Вы в каком магазине смотрите комплектующие?
vagon333
А где можно узнать про конфигурацию для автономного выполнения скриптов использующих локальные LLM?
Т.е. я хочу хостить у себя допустим LLaMA (??B), векторизировать корпоративные документы и дальше выполнять запросы через API против дообученой модели.
Какое железо нужно и что влияет на скорость выполнения?
Moog_Prodigy
Вы можете хостить Ламу на CPU, кушает 70b примерно 30 Гб (в ОЗУ), часть слоев можно закинуть в видеокарту, но в целом скорость будет ограничена CPU. Я сделал выбор в сторону "серверного китайского Зиона" на 24 потока, 64 Гб RAM. Работает довольно неторопливо, но если это не критично - то по моему лучший вариант за свои деньги. Разумеется никакими миллионами и даже сотнями тысяч рублей тут не пахнет.
Еще для хранения моделей, датасетов и всякого такого очень рекомендую быстрые nvme. На обычном SSD это прям боль. Я уж молчу про HDD.
vagon333
Благодарю за ответ.
Пара практических вопросов:
Есть 96гб RAM на i7 Gen 12.
Насколько критичен размер видео RAM?
У меня стоит 4гб VRAM (rtx a2000).
Есть-ли смысл upgrade на nvidia rtx a5000?
Есть несколько одинаковых ноутов 96гб RAM, i7, rtx a2000
Есть ли смысл и возможность запускать параллельно?
molnij
Как понимю, речь о какой-то мобильной версии A2000, десктопная вроде существенно больше памяти должна нести, и, значит i7 Gen12 тоже мобильный..
Вы сможете например запустить Llama3 8B, 70B целиком в RAM, работать будет. Очень неспешно (навскидку могу предположить, что 70B где-то по несколько минут на ответ, но надо проверять). На этих примерах вероятно сможете оценить, насколько результат ответов вас устраивает и нужно ли копать дальше.
Размер видео рам критичен для скорости. Для работоспособности некритичен. 4Gb не помогут никак (ну тоесть как-то помогут, но это все равно будет очень больно). 8Gb имхо минимум для экспериментов без особых ожиданий. В 8Gb уже влезет LLama3 8B слегка квантованая. На 16Gb можно уже сгрузить какое-то число слоёв 70B, чтобы эффект был хорошо заметным.
Смысла параллелить ноуты в этих условиях я не вижу. На днях пробегала статья - там товарищ говорил, что нужен минимальный интерконнект в 50Gbps. Ну тоесть на 40gbps вероятно еще можно попробовать, но врядли вы такое в ноутах сможете организовать. Да и это уже не из разряда типовых решений - придется свои велосипеды строить.
crims0n_ru
Объём VRAM критически важен, если вам нужна быстрая работа LLM. При работе модели на CPU/RAM вам придётся ждать ответа на короткий вопрос около минуты, на сложные - значительно дольше. К сожалению, лично у меня нет практики использования LLM с разделением памяти на VRAM и RAM, поэтому насчёт апгрейда не подскажу.
rPman
Посмотрите сообщения этого бота, он берет разные открытые модели llm и вычисляет минимальные требования к оперативной памяти для их обучения и запуска, в зависимости от типа квантизации, вот например для llama3-70b, к сожалению эта модель чуть чуть не влезает в 64gb для 8bit квантизации (ее даже для некоторых finetuning используют) да и 4bit (которая уже заметно ломает качество, на 3-5%) так же не помещается в 32gb
Хорошим примером оценки требований является .gguf формат для llama.cpp, там размер файла точно соответствует требованиям к оперативной памяти (так как это буквально копия данных в памяти) но к этому размеру требуется добавить размер state, который в свою очередь зависит от размера контекста, используемого для запроса. Пример размера контекста для codestral-22b - от 1гб до 7гб (32к токенов), при q5ks квантизации размер .gguf 15324мб - т.е. модель влезает в 16гб vram только до некоторых небольших размеров контекста (4-5тысяч токенов). Batching (паралельное выполнение) может значительно ускорить обработку нескольких запросов но повышает линейно требования к vram (это бывает оправдано, так как скорость растет быстрее чем требования).
p.s. у llama.cpp есть возможность часть слоев разместить в vram а часть в обычной ram, таким образом все же модель будет работать с быстрой скоростью
vagon333
Посмотрел конфигурацию для llama3-70b.
Получается, можно поднять, хотя будет не так шустро как с VRAM.
Попробую с flowise.
rPman
Для запуска llama3-70b с адекватным качеством рекомендуется 3x16gb vram, т.е. трех (лучше 4-x) например nvidia gtx 4060 ti 16gb при стоимости 50т.р. за каждую будет достаточно (еще 80-100т.р. на машину - слабый процессор и 128гб ddr4 ram, nvme ssd, плюс хороший БП на киловат), автор статьи же рисует какую-то х..ню на те же деньги. Для домашнего пользователя такие дорогие решения избыточны.
К сожалению на базе десктопного железа сложно собрать машину, способную finetuning llama3-70b, так как требуется больше 140гб vram