Мы используем Makefile думая, что нет альтернатив, что это стандарт и всё такое.
Но make это не запускалка команд, а система сборки. Мы фактически используем его не по назначению.
И на самом деле альтернатива есть! Некоторое время назад я открыл для себя прекрасный инструмент - just. Он решает все проблемы make.
just - это не система сборки как make, это именно исполнитель команд!
Больше никаких Phony Targets и табуляций, привет нормальный синтаксис и передача аргументов!!! 😎
⭐️Что умеет just:
✅ Автодокументирование команд
Не нужно делать отдельную команду с докой, просто добавь комментарий
# команда сборки
build:
...
$ just --list
Available recipes:
build # команда сборки
Команда с именем default запускается по умолчанию если не указано другое, так что я обычно делаю так:
default:
just --list
Теперь просто выполняем just и получаем доку из текущего файла.
✅ Удобная работа с переменными окружения
# загрузить из .env
set dotenv-load
# глобальная переменная
export PYTHONPATH := "./src"
# переменная для команды
test $TESTUNG="true":
pytest
✅ Передача аргументов
build target:
@echo 'Build {{target}}...'
команда запуска
$ just build dev
# Build dev...
✅ Выбор интерпретатора прямо в команде
Пример с инлайн-скриптом на python:
system:
#!/usr/bin/env python3
import platform
print(platform.system())
Эта же функция позволит выполнить скрипт как одну команду вместо перезапуска шела для каждой строки
foo:
#!/usr/bin/env sh
for file in ls .; do
echo $file
done
✅ Выполнение команды в определенной директории. Можно указать как релятивный путь так и абсолютный
[working-directory: 'backend']
build:
docker compose build
Также можно задать рабочую директорию глобально
Там еще много интересного:
- поддержка функций
- автокомплиты и интеграции
- экспрешены
- алиасы команд
- группировка команд
- альтернативы команды под разные ОС
- импорт других just-файлов
- цветной вывод
- ... и другие штуковины!
Так что вперёд - ➡️ читать доку!
Репозиторий: ➡️https://github.com/casey/just
Статья: ➡️https://www.chicks.net/reference/file_formats/just/
ЗЫ. Кажется, на Makefile я уже не вернусь)
#tools
🔥 Сенсей Карпаты выложил новый репозиторий - полный пайплайн обучения LLM с нуля
В проекте есть всё, чтобы собрать свой ChatGPT-клон за $100 и 4 часа:
> • токенизатор (написан на Rust)
> • pretraining
> • SFT (supervised fine-tuning)
> • RL (reinforcement learning)
> • оценка модели (eval)
Всего 8 000 строк кода, без лишних зависимостей - идеальный учебный пример, чтобы понять, как реально устроено обучение больших языковых моделей.
💡 Это проект из его нового грядущего курса LLM101n, и отличная возможность прокачать свои ML-навыки на практике.
Можно арендовать GPU в облаке и запустить всё самому - код уже готов к запуску.
Если запустить обучение модели nanochat на облачном GPU-сервере (например, 8×H100), то примерно через 12 часов обучения (стоимость ~300–400 $) модель достигает уровня GPT-2 по качеству на тестовых наборах (CORE-score).
А если тренировать около 40 часов (затраты ~1000 $), решает простые задачи по математике и коду, набирая:
- 40+ на MMLU
- 70+ на ARC-Easy
- 20+ на GSM8K
🧠 Это бесплатная практика топ уровня от мастера, которую не стоит упускать.
🟠GitHub:https://github.com/karpathy/nanochat
🟠Технические детали:https://github.com/karpathy/nanochat/discussions/1
@ai_machinelearning_big_data
#LLM#nanochat#MachineLearning#DeepLearning#AI#GPT
🔥 Nanochat D32 : микромодель Карпаты за $1000, которая реально работает
Карпаты написал, что завершил обучение Nanochat D32, обученной за 33 часа при бюджете $1000 (вместо $100).
Результаты - удивительно хорошие для такой «крошки»:
- 📈CORE score: 0.31 (выше, чем у GPT-2 — ~0.26)
- 🧮GSM8K: с 8% до 20%
- 🚀 Рост виден на всех этапах - pretraining, SFT и RL
Карпати пишет:
> «Не ждите от микромоделей чудес. Они обходятся $100–$1000, а не миллиарды долларов, как у крупных лабораторий.
> Разговаривать с моделью - как с ребёнком из детсада: они милые, ошибаются, путаются, галлюцинируют, но это весело.»
💡Факты:
- Nanochat тренируется с нуля
- Самая маленькая модель Nanochat содержит примерно в тысячу раз меньше параметров, чем GPT-3.
- Обнолвенный скрипт run1000.sh уже доступен в репозитории
📎 Подробности и отчёт:
https://github.com/karpathy/nanochat/discussions/8
Карпати уже тестирует веб-чат с моделью (ссылку не публикует, чтобы не обвалили сервер).
Дальше -оптимизация и возможно, переход к следующему уровню масштабирования.
#AI#LLM#Nanochat#Karpathy#AIresearch#OpenSourceAI
🧠 Карпаты показал, как добавить новую функцию в мини-LLM nanochat d32, сравнив её «мозг» с мозгом пчелы.
Он обучил модель считать, сколько раз буква r встречается в слове strawberry, и использовал этот пример, чтобы показать, как можно наделять маленькие языковые модели новыми навыками через синтетические задачи.
Сначала генерируются диалоги:
«Сколько букв r в слове strawberry?»
и правильные ответы.
После этого модель проходит дообучение (SFT) или обучение с подкреплением (RL), чтобы закрепить навык.
Карпаты объясняет, что для маленьких моделей важно продумывать всё до мелочей, как разнообразить запросы, как устроена токенизация и даже где ставить пробелы.
Он показывает, что рассуждения лучше разбивать на несколько шагов, тогда модель легче понимает задачу.
Nanochat решает задачу двумя способами:
— логически, рассуждая пошагово;
— через встроенный Python-интерпретатор, выполняя вычисления прямо внутри чата.
Идея в том, что даже крошечные LLM можно «научить думать», если правильно подготовить примеры и синтетические данные.
📘 Разбор: github.com/karpathy/nanochat/discussions/164
@ai_machinelearning_big_data
#AI#Karpathy#Nanochat#LLM#SFT#RL#MachineLearning#OpenSource