Есть ли смысл запускать 7B-модель на CPU или это просто потеря времени?
Токены в секунду зависят не только от числа параметров. На результат влияют формат весов, инструкции процессора, пропускная способность RAM, длина контекста и сборка рантайма. Публичный тест поможет оценить диапазон до развёртывания, но запуск 7B-модели на CPU нужно проверить на типичном для сервиса запросе.
Сколько токенов в секунду выдаёт 7B-модель на CPU?
В опубликованном в 2024 году тесте Llama 2 7B на 12-ядерном Snapdragon X Elite без GPU генерация достигла 20,72 токена/с в Q4_0 и 12,65 в Q8_0 при сборке llama.cpp cddae48. Конечно, это лишь ориентир: другая модель, память, контекст или сборка изменят результат.
Зафиксировать модель, формат и железо до первого замера
Одинаковое число параметров не означает одинаковую скорость. У Llama 2 7B, Mistral 7B и Qwen2.5 7B различаются число слоёв и KV-голов, размер скрытого состояния и токенизатор. Перед тестом запишите точное имя GGUF-файла, его SHA-256, тип квантования и коммит llama.cpp. Для запуска 7B-модели на CPU добавьте к отчёту параметры доступного железа.
Зафиксируйте модель CPU, число доступных процессоров, инструкции и объём RAM. На собственном сервере добавьте физические ядра, SMT, каналы памяти и NUMA-топологию. В VPS lscpu, numactl и dmidecode показывают только топологию, открытую гипервизором, а физические ядра и каналы RAM хоста по ней определить нельзя. Также запишите ОС и версию ядра.
./llama-cli --version
sha256sum ./models/llama-2-7b.Q4_0.gguf
lscpu
numactl -H
sudo dmidecode --type 17
В публикуемом результате укажите дату. Коммит будет важнее номера релиза: оптимизации CPU и схемы квантования меняются между сборками. Для готового комплекта бинарных файлов сохраните вывод llama-cli --version. На собственном сервере запишите режим масштабирования частоты, в VPS он обычно недоступен для управления.
Развести обработку промпта и генерацию токенов
llama-bench измеряет две разные фазы. pp512 показывает обработку входа из 512 токенов. Здесь вычисления идут пакетами, поэтому сильнее влияют векторные инструкции, число ядер и размер batch. tg128 измеряет последовательную генерацию 128 токенов. На каждом шаге рантайм снова читает веса, и ограничением часто становится пропускная способность памяти.
Поэтому скорость инференса 7B на процессоре нельзя сводить к одному числу. Короткий вопрос может быстро пройти prefill, а затем медленно выводить ответ. В RAG-сервисе с большим найденным контекстом, наоборот, время до первого токена определяет обработка промпта.
Результаты нужно записывать раздельно: длина входа и pp в tokens/s; длина ответа и tg в tokens/s. Среднее двух фаз ничего не говорит ни о задержке первого токена, ни о темпе выдачи. Для заполненного KV-кэша укажите его глубину. В официальной документации к llama-bench уточняется, что тест не учитывает токенизацию и сэмплирование, поэтому его вывод не равен задержке HTTP-запроса.
Проверить, помещаются ли веса и KV-кэш без swap
Оценка памяти начинается с фактического размера GGUF. В публичном наборе Llama 2 7B файл Q4_0 занимает 3,56 ГиБ, Q8_0 – 6,67 ГиБ, F16 – 12,55 ГиБ. К весам добавляются KV-кэш, вычислительные буферы, отображённые страницы и память процесса сервера.
KV-кэш растёт вместе с контекстом и числом слотов, также объём зависит и от числа KV-голов. Поэтому единого требования к RAM для всех 7B-моделей нет. 8 ГиБ хватит не каждой Q4-сборке. Для одной Q4- или Q8-модели с умеренным контекстом обычно выбирают 16 ГиБ, для длинного контекста или нескольких слотов – 32 ГиБ.
Как квантование и пропускная способность RAM влияют на скорость?
Квантование уменьшает вес файла и объём чтения из памяти, поэтому генерация часто ускоряется. При декодировании предел задаёт не заявленная частота CPU, а доступная пропускная способность RAM и эффективность ядра квантования. Меньший файл не гарантирует прирост, если для его формата нет подходящей оптимизации.
В llama.cpp токены в секунду сопоставимы только между прогонами без swap. Во время теста проверяйте RSS и si/so в vmstat. Часть RAM оставьте ОС и процессу, который обслуживает запросы.
Получить повторяемый CPU-бенчмарк вместо одного удачного запуска
Закройте фоновые задачи и прогрейте модель. На сервере не нужно менять режим управления частотой и лимит мощности. В VPS записывайте частоту и %steal. Используйте один список CPU. Задайте -ngl 0, чтобы исключить GPU.
lscpu -e=CPU,CORE,SOCKET,NODE,ONLINE
# Пример: по одному CPU на ядро; замените список по выводу lscpu
CPU_LIST=0,2,4,6,8,10,12,14,16,18,20,22
vmstat 1 > vmstat-2026-08-11.log &
VMSTAT_PID=$!
/usr/bin/time -v taskset -c "$CPU_LIST" ./llama-bench \
-m ./models/llama-2-7b.Q4_0.gguf \
-ngl 0 -p 512 -n 128 -t 4,8,12 \
-r 10 -o json > llama-bench-2026-08-11.json \
2> llama-bench-resource-2026-08-11.txt
kill "$VMSTAT_PID"
Команда строит матрицу для трёх значений -t: каждый вариант повторяется десять раз. JSON хранит среднее, разброс и samples_ts. В отчёте приведите медиану и диапазон, а исходный файл сохраните. Для p95 требуется больше повторов. На сервере с известной топологией сначала оставьте по одному CPU на ядро, затем добавьте SMT-потоки. В VPS сравнивайте наборы vCPU: сколько за ними физических ядер, изнутри не видно.
Не начинайте следующую серию сразу после троттлинга. Записывайте температуру, частоту, загрузку соседних процессов и время теста, а в VPS добавьте %steal. Производительность 7B Q4 на перегретом устройстве и на сервере с тем же числом ядер может заметно различаться.
Сравнить компромисс размера, скорости и качества
Сравнивайте квантования одной модели, собранные из одного исходного чекпойнта. В опубликованном CPU-тесте Llama 2 7B использовался Surface Laptop 7 с 12-ядерным Snapdragon X Elite. Платформа поддерживает восемь каналов LPDDR5x-8448 с заявленной пропускной способностью 135 ГБ/с.
Фрагмент исходного вывода:
model size backend threads test t/s
llama 7B Q8_0 6.67 GiB CPU 12 pp512 63.51 ± 4.94
llama 7B Q8_0 6.67 GiB CPU 12 tg128 12.65 ± 0.41
llama 7B Q4_0 3.56 GiB CPU 12 pp512 66.63 ± 3.90
llama 7B Q4_0 3.56 GiB CPU 12 tg128 20.72 ± 0.54
build: cddae48 (3646)
Результат опубликовал Andreas Kunar в 2024 году. Стенд: 15-дюймовый Surface Laptop 7, Snapdragon X Elite, 12 ядер без SMT, llama.cpp cddae48 (3646). Дата прогона, объём RAM и отдельные повторы не указаны. На этом стенде Q4 почти вдвое уменьшил файл и ускорил генерацию, но мало изменил обработку промпта.
Бенчмарк LLM на CPU не измеряет качество ответов. Q4 нельзя считать лучше Q8 только по скорости: допустимые потери определяет прикладная проверка.
Найти насыщение физических ядер и памяти
На сервере с известной топологией увеличивайте -t от половины физических ядер до их полного числа, а SMT проверяйте отдельной серией. В VPS используйте ступени до числа доступных vCPU. На x86 с P- и E-ядрами или несколькими NUMA-узлами перечислите выбранные CPU и не смешивайте разные наборы в одной серии.
Какие настройки нужны для сопоставимого бенчмарка?
1. Зафиксируйте GGUF-файл, коммит рантайма, CPU, RAM, ОС и режим питания.
2. Не меняйте число слоёв на GPU, длину промпта и генерации, размер контекста, batch, число повторов и привязку CPU.
3. Проведите прогрев, сохраните JSON каждого прогона и сопоставляйте медиану с разбросом.
После добавления потоков pp может расти, когда tg уже упёрся в память. Логические процессоры не удваивают пропускную способность и могут усилить конкуренцию за кэш. По RSS определите, сколько RAM нужно модели 7B при выбранном контексте и числе слотов. Здесь нужно ориентироваться на фазу, важную для сервиса.
Проверить контекст, шаблон чата и режим выдачи
Синтетические pp512 и tg128 удобны для сравнения железа, но далеки от реального диалога. Возьмите типичный системный промпт и запрос, задайте характерную длину ответа. Зафиксируйте шаблон чата из GGUF, число слотов, batch, размер контекста и параметры сэмплирования. Записывайте фактическое число входных и выходных токенов.
Влияние заполненного контекста проверяйте через -d: параметр предварительно заполняет KV-кэш перед pp/tg. Серия -d 0,2048,8192 покажет, как глубина истории влияет на генерацию. Для сервера отдельно измерьте TTFT, межтокенную задержку и полное время запроса.
./llama-bench -m ./models/model-Q4_K_M.gguf \
-ngl 0 -p 512 -n 128 -d 0,2048,8192 \
-t 12 -r 10 -o json > context-depth.json
Использовать нужно тот же бинарный файл. На x86 сборка может задействовать AVX2, AVX-512 или AMX, на ARM – NEON и I8MM. Флаг в lscpu не подтверждает, что инструкция задействована. Не меняйте temperature, top_p и seed. Фиксируйте состояние кэша общего префикса: он сокращает повторный prefill.
Перевести результаты в диапазон и критерий пригодности
Скорость генерации оценивайте вместе с TTFT. Для интерактивного помощника одному пользователю обычно хватает 15–25 токенов/с, но длинный prefill задержит первый токен. В пакетной задаче важнее общая пропускная способность. В офлайн-обработке допустимы и единицы токенов/с, если соблюдены бюджет и срок.
До теста задайте критерии. Например, медиана tg не ниже 15 токенов/с, p95 TTFT не выше 3 секунд при промпте на 1000 токенов. Свопинга нет, одновременно обрабатывается один запрос. Результаты другого стенда даже с той же версией llama.cpp подойдут только для предварительного выбора CPU и RAM.
Если pp растёт с потоками, а tg почти остановился, ограничением, скорее всего, стала память. Если обе фазы проседают с частотой, проверьте питание и температуру. В VPS записывайте %steal: его колебания объясняют часть разброса.
Решение о развёртывании принимайте по замерам на своей модели и типичном запросе: отдельно для prefill, генерации и времени до первого токена. Для сервиса проверьте параллельные запросы: однопользовательский тест не покажет суммарную пропускную способность. Сохраните команду, параметры стенда и JSON, чтобы повторить сравнение после обновления рантайма. У формулировки 7B-модель на CPU: токены в секунду нет универсального ответа: значение имеет смысл только вместе с диапазоном, условиями теста и ограничениями.
Почему банковская карта успевает «договориться» с терминалом за секунду?
Приложили карту.
Писк.
«Оплата прошла».
Выглядит почти магически, особенно если карта просто лежит рядом с терминалом и ничего никуда не вставляется.
Но внутри происходит довольно серьёзный обмен данными.
Бесконтактная карта использует радиочастотное поле терминала для связи. Терминал получает необходимые данные, система проверяет операцию и возвращает результат.
Причём сама карта обычно не содержит вашей банковской суммы.
Она передаёт данные, необходимые для авторизации платежа, а решение о проведении операции принимается платёжной инфраструктурой.
Всё это происходит настолько быстро, что человек успевает только убрать карту обратно в кошелёк.
Мы привыкли к этому настолько, что даже не замечаем маленький технологический фокус у себя в руке. 😄
Россияне будут оплачивать проезд в общественном транспорте через национальный мессенджер МАКС
Более половины опрошенных Народным фронтом граждан сталкивались с отсутствием или неисправностью терминалов безналичной оплаты. В результате пассажиры вынуждены заходить только через переднюю дверь, что создаёт дополнительные неудобства и увеличивает время посадки.
Комиссия Госсовета подготовила предложение об оплате проезда через национальный мессенджер МАКС. При этом, по мнению Народного фронта, принципиально важно предусмотреть возможность такой оплаты в офлайн-режиме на случай временных ограничений мобильного интернета.
Напомним, что Президент России Владимир Путин провел заседание Президиума Госсовета РФ по вопросам развития общественного транспорта. Руководитель Исполкома Народного фронта Михаил Кузнецов выступил с подробным докладом об исследовании.
А жители Томской области удовлетворены работой общественного транспорта? Пишите об этом в комментариях.
Ссылка на публикацию в официальной группе Народный фронт - Томская область в ВК: https://vk.ru/nf_tomsk?w=wall-138148647_24450 (зарегистрирована в Роскомнадзоре).
Написал игру "Корова 006" на Python - отведайте
Всем привет! Продолжаю делиться своими идеями, реализованными в проектиках на разных языках программирования.
На этот раз я написал игру "Корова 006" (в оригинале 6 nimmt). Играл в нее на настолках с друзьями и она понравилась своей простотой и быстротой игры - при этом есть над чем подумать и увлекает неплохо. Возможно, вы ее видели или играли:


Настольная игра "Корова 006" - справочно
Игру реализовал на Python с классами, все по уму - долго думал пока прикидывал какие методы в какой класс определить и вообще какие классы создать. Ни строчки кода не сгенерировано ИИ - все сам (хотя уверен, что найдутся "знатоки", которые опять будут про вайбкодинг писать ))).
Игра реализована без графического интерфейса, в терминале. Выглядит вот так:
Для запуска необходимо командой через Python запустить файл "main.py" (как на скрине выше) и убедиться, что файл "Card_Deck.py" находится в той же папке. Весь код открытый - модифицируйте если хотите)) Если Python не установлен - можете установить - это бесплатно.
Чтобы можно было играть в одиночку - прописал компьютерного противника. Логика его работы зашита в классе в файле "Card_Deck.py" )))
Для тех, кто не знает правила - вложил их на русском в проект на Git Hub, ну или вот ссылки на несколько видео про эту игру (там коротко дают правила):
А вот и сам проект с исходниками на Гит Хабе:
Всем кайфануть от игры))))
p.s. у меня не было цели показать нереальные навыки кодинга или сделать суперигру с графикой иличем-то там еще. я просто изучал Python, мне нравилась игра и в какой-то момент решил написать ее для терминала. не проверял существует ли она где-то еще, написанная кем-то.
Основной месседж - учился и сделал что-то прикольное/полезное. Оно работает, если вам не нравится - ну бывает - ничего страшного. Мои друзья позалипали какое-то время))
Ростелеком. Подключение
В моём посёлке, который находится в 3км от города, а если через реку и того ближе, люди очень хотели нормальный интернет. Те которым когда-то посчастливилось подключить ADSL, смирились с тем, что заявки по не рабочему телефону или интернету могут не закрывать пару месяцев.
И вот зашёл в посёлок Ростелеком, будучи ещё монополистом по всему городу. Завёл оптику в школу и в двухэтажки. На том и успокоился.
Спустя несколько лет, не знаю по какому принципу, но без рекламы и опроса всех жителей посёлка протянул линию по двум улицам. Подключил не много абонентов и ушёл. Тому кто хотел подключиться говорили портов нет или нет возможности. От меня оптика была в 150 метрах. Я ещё на этапе монтажа позвонил, в надежде, что завернут ко мне. Но нет не завернули. Сначала нет возможности. А потом сказали что за 53 тысячи подключат. Я отказался от столь щедрого предложения.
Прошло ещё несколько лет (5-6). Создавались различные группы, списки, группы и так по кругу, тех кто желает подключиться. Отдавались в Ростелеком, местному провайдеру, но всё никак. Потом в отдалённых посёлках (30, 20, 15 км) начал появляться провайдер, который шёл со стороны Краснодара, не со стороны города. Опять собрались люди в группу человек 600.. и обратились к этому провайдеру. Провайдер вроде как оказался не против. Стали ждать.
буквально неделю-две и новости. Этот провайдер к нам не потянет, будет Ростелеком. Которые сейчас обещают протянуть линии по всем улицам посёлка. Люди начали ждать. В личном кабинете появлялись заявки с датой подключения. В основном конец ноября. Но заявки со временем переросли в нет технической возможности. В итоге зима, весна. И вот в апреле начали тянуть оптику.
Качество линий это отдельная история. Кольцо и кольцу так называемый "чулок" - это когда алюминиевая проволока сложенная пополам одевается на кольцо, а далее накручивается на кабель. В итоге я видел очень много оборванных и провисших до земли линий от РТ, хоть в городе, хоть в посёлке. Заявки, по восстановлению, кстати, тоже выполнялись 1+ месяца.
В мае вроде как окончили тянуть. И начались недели ожидания. Якобы подрядчик не сдаёт линию в эксплуатацию.
Июнь. Всё, ждите звонка, будут звонить с городского, начнут подключать. И вот в группе (группа по РТ уже 400+ человек, но там много в списках, кто и не состоит в группе), отписались за неделю 2 человека, что им позвонили и назначили дату подключения. Все гадают правда или нет))) также гадают, почему только двоим? Звучат предположения, что линия похоже до сих пор не сдана в эксплуатацию. Так как если позвонить в РТ и оставить самому заявку, по прежнему звучит, что нет технической возможности.
У меня в заявке значится 200 Мбит, винк, сим карта. При этом я этого даже не выбирал. Надеюсь что смогу отказаться от всего лишнего, когда мне позвонят... Я всё ещё надеюсь, что позвонят хотя бы летом🤣
При этом я уверен, что если бы была конкуренция, они бы сделали это всё на много быстрее.
Также в процессе прокладки линии активизировались разные личности. В чате посёлка одно мелькало, позвоните тому или тому, только он гарантирует что вас подключат, если ему не позвонить, то и не мечтайте о подключении и всё в таком духе. В общем какая-то суета, кто кому только не звонил. И как итог, потом людям перезванивали и звучали разные суммы подключения, кому-то 2500, кому-то 8000, кому-то 13500. В общем неразбериха полная.
Мне же интересно узнать ценообразование. Видимо всё зависит от того на сколько доп услуг тебя удалось развести. Такая и цена. Так как там где озвучивали подключение 2500, был тариф за 1500р в месяц, без возможности изменить его 2 года. Ну и интересно узнать, может есть какая услуга от РТ, чтобы стать одним из первых на подключение, в очереди из 600+ абонентов 🤣
Есть может на Пикабу работники Ростелеком и как-то прокомментируют сей цирк... ? Да заодно подскажут, как избежать покупки ont терминала от Ростелеком? Я видел варианты в Ютуб, но там вбивался серийник с терминала уже купленного. Переводился в мост (bridge). А я не хочу покупать роутер от РТ, чтобы потом его заменить терминалом за 1500 и своим роутером... Хотелось бы сразу, минуя лишние траты.
Microsoft выпустила Coreutils для Windows
Microsoft сделала общедоступным пакет Coreutils для Windows, который добавляет более 75 популярных UNIX-команд, включая ls, cp, grep и find. Утилиты работают нативно в Windows без WSL, виртуальных машин и сторонних оболочек, упрощая перенос сценариев между Linux, macOS и Windows
Набор включает более 75 утилит. Среди них привычные команды Linux:
работа с файлами и каталогами: ls, cp, mv, rm, cat, pwd;
поиск и обработка текста: grep, find, xargs, sort, more;
системные команды: date, kill, uptime.
Разработчики постоянно переключаются между платформами, но привычные команды ведут себя по-разному, что заставляет искать обходные пути, тратить время и переключать контекст. Coreutils для Windows убирает это трение: одни и те же команды, флаги и конвейеры работают одинаково, поэтому готовые сценарии и наработанные привычки переносятся без перевода.
По словам главы Windows Павана Давулури, какой бы средой ни пользовался разработчик – Linux, macOS, WSL, контейнеры или облако, – команды и рабочие процессы, отлаженные за годы, продолжают работать и в Windows.
Подробности: https://github.com/microsoft/coreutils














