Ollama and gguf
Проблема: модель gpt-oss-20b.gguf
не запускается в Ollama.
Симптом: при попытке ollama run
процесс зависает на 0 % и через минуту падает без явной ошибки.
Окружение:
- Ubuntu 22.04, 64 ГБ ОЗУ, RTX 4090
- Ollama 0.3.6 (AppImage и Docker)
- Файл
gpt-oss-20b.q4_0.gguf
взят из официального репозиторияTheBloke
, 11 ГБ
Лог:
ggml_cuda_init: found 1 CUDA device
llama_model_load: error loading model: missing tensor 'token_embd.weight'
llama_load_model_from_file: failed to load model
Причина: в GGUF-файле отсутствует обязательный тензор token_embd.weight
.
Решение:
- Перекачать модель (
curl -L -o gpt-oss-20b.q4_0.gguf …
) и проверить хэш. - Если проблема сохраняется — использовать другой квант (
q4_K_M
илиq5_0
). - Либо конвертировать оригинальные веса самостоятельно через
llama.cpp/convert.py
.
Комментарии (70)
- Ollama отказалась от llama.cpp в пользу собственной обвязки над ggml, что ломает совместимость с GGUF-моделями и вынуждает «переизобретать велосипед».
- Пользователи жалуются на проприетарные квантизации, отсутствие поддержки шардированных GGUF > 48 ГБ и игнорирование upstream.
- Альтернативы: запуск llama-server напрямую или готовые контейнеры Ramalama / Docker Model Runner.
- Сторонники Ollama отмечают удобство установки и готовые модели, но критики считают это «эншитификацией» и подготовкой к монетизации.
Compiling a Lisp: Lambda lifting
Переписал Ghuloum-туториал на Python (~300 строк). Убрал читалку S-выражений и бинарный код — теперь текстовая ассемблерная печать.
Lambda-lifting требует:
- знать связанные переменные;
- собирать свободные переменные лямбд;
- накапливать создаваемые
code
-объекты.
Связывают let
и lambda
; для них обновляем окружение.
Lifter
class LambdaConverter:
def __init__(self):
self.labels = {}
def convert(self, expr, bound, free):
match expr:
case int() | Char() | bool():
return expr
case str() if expr in bound or expr in BUILTINS:
return expr
case str():
free.add(expr)
return expr
case ["if", t, c, a]:
return ["if",
self.convert(t, bound, free),
self.convert(c, bound, free),
self.convert(a, bound, free)]
lift_lambdas
запускает обход и возвращает (labels …)
.
Lambda
Лямбда:
- связывает параметры;
- выделяет код;
- захватывает внешнее окружение.
Пример:
(lambda () x) ; x свободна
превращается в
(labels ((f0 (code () (x) x)))
(closure f0 x))
Даже если x
связан снаружи, внутри лямбды он считается свободным.
Комментарии (15)
- Участники рекомендуют три современные книги по компиляторам, вдохновлённые статьёй Ghuloum: «Writing a C Compiler» (Sandler), «Essentials of Compilation» на Racket и Python (Siek).
- Обсуждали «lambda lifting»: преобразование, выносящее замыкания наверх, уменьшая их размер вплоть до полного исчезновения.
- Уточнили, что «lambda lifting» в статье связан с разделом 3.11 о сложных константах в Scheme.
- Разбирали, почему современный ИИ использует Python, а не Lisp: удобство как «клея» для C++/CUDA, упадок доли рынка Lisp и смена парадигмы ИИ.
The Framework Desktop is a beast 🔥 Горячее 💬 Длинная дискуссия
Framework Desktop — компактный 4,5-литровый ПК, который почти не шумит даже под полной нагрузкой. Внутри — мобильный AMD Ryzen AI Max 395+ (16 ядер Zen5, 5,1 ГГц), и он оказывается быстрее старого Ryzen 9 7950X в большом корпусе.
Корпус разукрашивается 21 сменной плиткой, можно печатать свои. Внешне — свежий минимализм вместо алюминия и RGB.
По производительности:
- Docker-тест HEY: почти вдвое быстрее Beelink SER8 и на 40 % опережает M4 Max.
- Geekbench 6 multi-core: на уровне M4 Max, заметно выше M4 Pro и Core i9-14900K.
- Одноядерка уступает Apple ≈20 %, но для многопоточных задач это лидер.
Цена выше, чем у Beelink, но пока это единственный безвентиляторный 395+ на рынке.
Комментарии (353)
- Framework Desktop с Ryzen AI Max+ 395 даёт 64–128 ГБ единой памяти, позволяя запускать крупные LLM без дискретной видеокарты и дешевле, чем Mac Studio, но дороже Mini.
- Производительность ниже CUDA-карт Nvidia и M4 Max, зато выше, чем у iGPU Intel и старых решений.
- Многие сомневаются в цене и форм-факторе: за те же деньги можно взять Minisforum, Beelink, HP Z2 Mini или собрать полноценный десктоп.
- Пока CUDA-стека нет, AMD-совместимость с популярными AI-фреймворками ограничена.
- Ремонтопригодность и модульность Framework оценили, но в десктоп-сегменте это не уникально.