Знакът на КАГАМИ КАГАМИ
kagami.bg/academy · lesson · machine-readable viewVERIFIED 2026-10-01 · UPDATED 2026-10-01
IDENTITY
module
KW I25 · The same model, another machine
series
KAGAMI Way · Track I — Infrastructure
level
Intermediate
duration
~15 min
trust_label
VERIFIED 2026-10-01 (against official Ollama documentation) · UPDATED 2026-10-01 · not re-run on live hardware in this revision
language
human view: bg · english edition: /en/academy/moduli/KW_I25_Same_Model_Other_Machine.html
previous
KW_I24_Numbers_By_Code.html
next
KW_I26_Model_Verdict_Matrix.html · Which model for what: a reference matrix
PURPOSE

Explain why the same model name can give a different result or speed on two machines, list the documented causes, and give an operational rule: a conclusion about a model is a conclusion about the pair (model + machine), so the record of the conclusion carries the machine and the settings.

KEY CONCEPTS
COMMANDS / PATHS
CHECKLIST
NEXT MODULE

KW_I26_Model_Verdict_Matrix.html · Which model for what: a reference matrix · offer: Quick experiment (kagami.bg/stalbata/)

SOURCES
TAGS
ollamaportabilityquantizationcontext-lengthreproducibilitymodel-cardgpu
ПРОВЕРЕНО · 01.10.2026 ОБНОВЕНО · 01.10.2026

Същият модел, друга машина: защо резултатът е различен

Едно и също име на модел, един и същ въпрос — и на две машини излиза различен отговор или различна скорост. Рядко е „дефект“. Най-често е разлика в етикета на модела, в контекста по подразбиране, в това къде е зареден или в настройките. Изводът затова трябва да носи името на машината.

⏱ ~15 мин Средно Локален AI преносимост · повторяемост · картон на модела
Ollama (сървърът)🔒 локално Изтеглените модели🔒 локално Библиотеката ollama.com (само теглене)🌐 глобален
🔄
ОБНОВЕНО · 01.10.2026 — какво
Урокът е сверен с официалната документация на Ollama (контекст по подразбиране, настройки, поддържан хардуер, етикети в библиотеката) и с бележките към версиите в GitHub (текуща стабилна 0.35.0, издадена на 28.09.2026). Добавено: контекстът по подразбиране зависи от видеопаметта (под 24 GiB — 4k), етикетът на квантизацията, проверка с ollama ps. Трите измерени случая от нашите проби са запазени като наши наблюдения; архитектурата на видеокартата е оставена като причина, до която стигнахме по изключване, а не като доказана. Конкретните имена на машините са махнати — вече са „машина А“ и „машина Б“.
⚠️ Непроверено: кодът не е пускан от нас на жив хардуер в тази ревизия — затова етикетът е ПРОВЕРЕНО, не ТЕСТВАНО.

01Какво ще научиш

02Преди да започнеш

⚠️
Какво НЕ е доказано тук
Трите случая в първата стъпка са от наши по-ранни проби и не са повторени за тази ревизия. Те показват че има разминаване, но не доказват защо. Документацията на Ollama не обещава еднакъв до последния бит изход на различен хардуер; това не сме проверявали сами.

03Стъпки

  1. Три случая от нашите проби

    Две машини: по-стара потребителска видеокарта с 12 GB (машина А) и нов възел с унифицирана памет (машина Б). Едни и същи модели, едни и същи материали, изпитанията пуснати поотделно на всяка. Три от резултатите се разминаха — и трите по различен начин.

    СлучайМашина А (стара карта)Машина Б (нов възел)
    вграждащ модел за търсене2 от 20 невалидни вектора0 от 20
    зрителен модел, 8Bсрива изпълнителя при всяка снимкане се срива (но текстът е негоден)
    зрителен модел, 2B — четене на уредвярно 8 пъти от 8греши и показанието, и номера
    ℹ️
    Обърни внимание на посоката
    Първите два случая се чупят на старата карта, третият — на новата. Не е „новото е по-добро“ и не е „старото е по-стабилно“ — двете просто са различни машини.

    Какво отпадна. Първата хипотеза беше версията на програмата. Проверката я отхвърли: машината с дефекта въртеше по-новата версия, а след това проблемните входове бяха пуснати наново на по-новата версия — дефектът остана. Отпаднаха още различен файл с тегла (сверено по контролна сума), различен вход (същите низове, дословно) и различни настройки (температура нула, еднакви опции). Остана разликата в архитектурата на видеокартите — две поколения, различни ядра за едни и същи операции. Това е причина, до която стигнахме по изключване; не сме я доказали пряко.

    ⚠️
    Честният запис на извода
    Първата формулировка беше „моделът е дефектен, да се замени“. Тя падна, щом дойдоха числата от втората машина. Правилната е: „на тази машина този модел дава невалидни вектори“. Първото е твърдение за модела; второто — за двойката модел + машина, и само второто е измереното. Изборът на заместник обаче остана същият, по друга причина: не защото първият е „счупен“, а защото вторият дава по-широко отстояние между първия и втория резултат при търсене. Основанието се смени, изборът — не. Това е нормално и се записва точно така.
  2. „Същият модел“ — но същият ли е файлът

    Името на модела без етикет е препратка, не еднозначен файл. В библиотеката на Ollama един и същ модел се предлага в няколко етикета с различна квантизация (на страницата с етикети се виждат например варианти q4_0, q8_0 и fp16). По-стегната квантизация = по-малък файл и малко по-различни числа вътре. Ако на едната машина си тегли „обичайният“ етикет, а на другата сте избрали друг, не сравнявате един и същ файл.

    ✅
    Правило
    Записвай и сравнявай име:етикет, не само името. ollama show <име:етикет> показва подробности за модела (вкл. квантизацията — виж и страницата му в библиотеката).
  3. Контекстът по подразбиране зависи от видеопаметта

    Това е най-подценяваната разлика. Според документацията на Ollama контекстът по подразбиране е 4k токена под 24 GiB видеопамет, 32k между 24 и 48 GiB и 256k над 48 GiB. Значи един и същ дълъг вход на машина с по-малка карта може да бъде отрязан, а на по-голяма — да влезе целият. Резултатите изглеждат „различни“, а моделът е един и същ.

    Провери какво е заредено — колоната CONTEXT в ollama ps — и задай контекста изрично и на двете машини, преди да сравняваш.

    bash · къде и с какъв контекст е зареден моделът
    # след първата заявка; колони: PROCESSOR (GPU/CPU) и CONTEXT
    ollama ps
    
    # фиксиране на контекста за целия сървър (пример)
    OLLAMA_CONTEXT_LENGTH=8192 ollama serve
    ⚠️
    Капан: по-голям контекст = повече памет
    Повече контекст изяжда видеопамет. Задай толкова, колкото ти трябва, и провери с ollama ps, че моделът още се побира в картата.
  4. Къде е зареден: GPU, процесор или разделено

    ollama ps показва колоната PROCESSOR: 100% GPU, 100% CPU или разделено (например 48%/52% CPU/GPU). Когато моделът не се побира в картата, част от него отива в системната памет — отговорът идва по-бавно. Скоростта е свойство на двойката модел + машина + контекст.

    Освен това Ollama поддържа различен хардуер и пътища за изчисление (NVIDIA, AMD, Apple, Vulkan — виж документа за хардуера). Различни пътища може да дадат малко различни числа; ⚠️ не сме го проверявали сами, затова го вземай като възможна причина, не като доказана.

  5. Семе и температура

    По подразбиране температурата е 0,8 — отговорът е „малко случаен“. Зададено семе (seed) прави един и същ вход да дава един и същ текст при една и съща настройка (така пише справочникът на Modelfile). За сравнение на две машини задай temperature: 0 и фиксирано seed. Дори тогава гаранция за съвпадение между различни машини няма — ако разликата остане, това е находка, не грешка в теста.

  6. Версии: сървър, драйвер, програма

    Версията на Ollama, драйверът на видеокартата и пътят за изчисление се различават между машините. Не приемай, че по-новата версия е причината (или по-старата) — повтори проблемния вход на другата версия и виж дали разликата остава. Версиите влизат в картона.

  7. Правилото за картона на модела

    Ако изводът важи за двойката модел + машина, записът за модела трябва да носи машината. Иначе следващият човек (или следваща сесия) ще прочете „този модел чете уреди най-добре“ и ще го пусне там, където не чете.

    ℹ️
    Не го бъркай с картата на ollama.com
    Страниците на моделите в библиотеката на Ollama също се наричат „model card“. Тук „картон на модела“ е твоят собствен запис за това какво си проверил и къде.
    json · минимумът до всеки резултат
    {
      "mashina": "<машина А или Б>",
      "gpu": "<модел и видеопамет>",
      "sarvar_versia": "<версия на Ollama>",
      "model": "<име:етикет>",
      "num_ctx": "<зададен контекст>",
      "temperature": 0,
      "seed": "<цяло число>",
      "data": "<дата>",
      "povtoreniya": "<колко пъти>"
    }

    Три следствия: (1) резултатите не се сливат в една таблица — един файл на машина; сливането крие точно разликата; (2) пренасянето на модул е повтаряне на проверката, не копиране на файл; (3) формулирай изводите като „на тази машина, с тези настройки, този модел върна…“, не като „моделът е дефектен“.

    По нашите наблюдения (трите случая по-горе) вграждането и четенето от изображение се разминават по-лесно между машини от обикновеното генериране на текст — ⚠️ това е наш извод от малко случаи, не е сверен с литература; затова при тях проверявай първо.

  8. Как се проверява за около час

    Трябват три неща: същият вход дословно, същите настройки, двата адреса. Адресите са плейсхолдъри — сложи своите.

    bash · един вход, две машини, сравнение
    # zaiavka.json — един и същ файл за двете машини
    # {"model":"<име:етикет>","prompt":"<същият текст>","stream":false,
    #  "options":{"num_ctx":4096,"temperature":0,"seed":42}}
    for M in A B; do
      case $M in A) ADDR="<адрес-на-машина-А>";; B) ADDR="<адрес-на-машина-Б>";; esac
      curl -s "http://$ADDR:11434/api/generate" -d @zaiavka.json \
        | jq -r '.response' > "izhod_$M.txt"
      curl -s "http://$ADDR:11434/api/version"   # версията влиза в картона
    done
    diff izhod_A.txt izhod_B.txt

    Три входа си струват: един документ за извличане, един кратък текст за вграждане, едно изображение — ако модулът гледа. Ако изходът е еднакъв, запиши и това — с датата и версиите; следващия път повтаряш само каквото се е променило.

04Проверка

1. Какъв е контекстът по подразбиране на Ollama под 24 GiB видеопамет?

2. Защо „qwen2.5:7b“ на две машини може да не е един и същ файл?

3. Как трябва да звучи изводът?

4. Кое НЕ влиза в картона на модела?

05Какво следва

06Източници

  1. Ollama: Context length — контекстът по подразбиране според видеопаметта (4k / 32k / 256k), ollama ps.
  2. Ollama: FAQ — OLLAMA_CONTEXT_LENGTH, num_ctx, как се вижда GPU/CPU, паралелност.
  3. Ollama: Modelfile — temperature (по подразб. 0,8) и seed.
  4. Ollama: Hardware support — поддържаният хардуер и пътища за изчисление.
  5. Библиотека ollama.com: етикетите на един модел 🌐 глобален — пример за различни квантизации.
  6. Ollama v0.35.0 в GitHub — текущата стабилна версия, издадена на 28.09.2026 (сверено 01.10.2026).
  7. Собствени по-ранни проби на КАГАМИ на две машини — трите случая в стъпка 1; не са повторени за тази ревизия.