DeepSeek Coder локально: как выбрать модель, установить ее и запустить первый скрипт

Локальная модель полезна, когда код нельзя отправлять во внешний чат или хочется экспериментировать без оплаты каждого запроса. Но «работает локально» не означает «быстро работает на любом ноутбуке». Размер модели нужно выбирать по памяти устройства, а результат все равно проверять запуском и тестами.

Выберите instruct-модель небольшого размера

В семействе DeepSeek Coder есть модели разных размеров. Для первого запуска берите вариант с пометкой instruct: он предназначен для выполнения человеческих инструкций. Base-модель больше подходит для продолжения кода и требует другого способа общения.

Начните с deepseek-coder-1.3b-instruct. Это не обещание высокой скорости: она зависит от процессора, памяти, видеокарты и программной среды. Более крупная модель может отвечать лучше на сложной задаче, но не поможет, если устройство постоянно выгружает данные на диск.

Создайте отдельное окружение Python

Нужен современный Python и виртуальное окружение. Установите PyTorch, Transformers и Accelerate по инструкциям для своей системы. Последний пакет нужен для автоматического распределения модели через device_map. Для видеокарты особенно важно выбрать подходящую сборку PyTorch, а не копировать случайную команду.

Минимальный тест выглядит так:

from transformers import AutoTokenizer, AutoModelForCausalLM name = "deepseek-ai/deepseek-coder-1.3b-instruct" tokenizer = AutoTokenizer.from_pretrained(name, trust_remote_code=True) model = AutoModelForCausalLM.from_pretrained( name, trust_remote_code=True, torch_dtype="auto", device_map="auto" ) prompt = "Write a Python function is_palindrome(text) and three assert checks." inputs = tokenizer(prompt, return_tensors="pt").to(model.device) result = model.generate(**inputs, max_new_tokens=220) print(tokenizer.decode(result[0], skip_special_tokens=True))

При первом запуске файлы модели скачиваются из репозитория. Проверьте объем заранее и убедитесь, что источник действительно принадлежит deepseek-ai. Параметр trust_remote_code разрешает выполнение кода из репозитория модели, поэтому его нельзя бездумно применять к неизвестным авторам.

Дайте модели маленькую задачу

Не начинайте с «создай приложение». Попросите одну функцию с явными примерами:

Напиши функцию Python normalize_phone(value). Она должна удалить пробелы, скобки и дефисы, сохранить ведущий плюс и вернуть ошибку, если после очистки осталось меньше десяти цифр. Добавь пять проверок через assert. Не используй внешние библиотеки.

Сохраните ответ в отдельный файл и запустите его обычным Python. Генерация текста и выполнение программы являются разными этапами. Если модель написала убедительное объяснение, но код падает, задача не выполнена.

Исправляйте по выводу программы

Передайте модели точный текст ошибки и исходные требования. Не просите «сделать так, чтобы тесты проходили» без ограничений: модель может удалить неудачную проверку или ослабить условие.

Полезная формулировка:

Проверка для строки +7 (999) 123-45-67 падает с такой ошибкой: [текст]. Сохрани все пять assert, объясни причину и измени только функцию.

После исправления снова запустите файл. Добавьте собственный пример, которого не было в запросе. Так вы проверите, поняла ли модель правило, а не подогнала ответ под готовые данные.

Когда перейти на другую модель

Сначала измерьте время первого и повторного ответа, объем занятой памяти и качество на трех одинаковых задачах. Только после этого пробуйте более крупную модель. Сравнение по одному красивому примеру почти ничего не показывает.

Если устройство не справляется, есть три честных варианта: уменьшить модель, использовать квантованную сборку из доверенного источника или перейти к облачному провайдеру. Последний вариант меняет требования к конфиденциальности, поэтому условия обработки данных нужно проверить отдельно.

Локальная модель закрывает только генерацию. В настоящем проекте остаются Git, структура файлов, зависимости, тесты и деплой. Эти части собраны в единый маршрут на курсе "Вайбкодинг на максималках" «Вайбкодинг на максималках». Курс работает с другим основным агентом, поэтому эта ссылка не является обещанием обучения DeepSeek Coder.

Первый успешный запуск DeepSeek Coder стоит считать завершенным, когда модель загружена из проверенного репозитория, код сохранен отдельно, все проверки выполнены обычным интерпретатором, а ограничения устройства записаны, а не угаданы.