Дообучение Olama модели DeepSeek-R1-32B для решения конкретной задачи в программировании

Гобелен - кликните для возврата на главную

Не прошло и месяца а Фурмановская ЦРБ в очередной раз попала в историю. На этот раз сотрудница клеветала на пациентов, а именно огласку получил случай когда сотрудница назвала пациента алкашём.

Так почему бы не начать использовать обход блокировки YouTube при том что техническая возможность используя расширение nikolaevevge для браузера Mozilla Firefox уже появилась, а объем полезной(и не очень) информации на видеохостинге YouTube, по мнению некоторых диванных экспертов, меньше не стал.

Ровно 3 года назад произошло событие, которое подарило жителям планеты Змеля новый чистый праздник 6 апреля - в этот замечательный день земля забрала гнить негодяя и СПАМера Владимира Вольфовича Жириновского.

Летний сад Фурманов

Как бы не обстояли дела в области культуры и IT-технологий, Самосвал писал статьи на связанные темы и планирует ещё написать.

На очередном конкурсе танцев, школьница отлично выступила.

Что использовать вместо Юбуст

Вот та самая информация: программа для продвижения канала YouTube, эта информация выложена уже несколько лет, при этом просмотров не много, а метод который описан в данном видео действительно помогает продвигать видео в YouTube.

Начал разбираться с информацией которая находится в HTTPS клиентском запросе рукопожатия.

Обратите внимание! Объект изображённый на гобилене может отличаться от общепринятого вида описанного объекта. Тут дело в том что художник видит именно так!

104 549 руб.

Описание товара

Рассмотрим модель DeepSeek - ollama run deepseek-r1:32b. Я выяснил, что если дать ей задачу написать расширение для Firefox, то-она может написать расширение с использованием методов chrome, в результате чего расширение в Firefox не будет работать. Я спросил модель знает ли она что API этих браузеров отличается и привёл участки кода с ошибкой. Модель ответила, что действительно допустила ошибку. А теперь суть вопроса - Вам. Я только делаю первые шаги в изучении локальных моделей DeepSeek. И сейчас рассматриваются вопросы дообучения моделей(арссматрвиается именно дообучение а не введение в вопрос посредством логов, настроек и рак-файлов). Так же не предлагайте использовать модели с большим числом параметров - так как задача научиться обучать модель, а не просто получить верный ответ на выше приведённую задачу. Расскажите пожалуйста как мне переобучить модель так, чтобы при просьбе написать расширение для Firefox использующего для части сайтов прокси, модель более не использовала бы в программе вызов API chrome(это именно из программы взять а не просто браузер имеется ввиду), а использовала верный API вызов. Если это важно можно обучить конкретно этому различию(применяемому в расширении при использовании прокси), а не глобально показать разницу в API двух браузеров.

Отличный вопрос! Давайте разберёмся, как дообучить модель DeepSeek-R1-32B (или аналогичную локальную LLM) для корректной генерации Firefox-расширений с правильным API, избегая ошибок, связанных с использованием Chrome-специфичных методов.

1. Подготовка данных для дообучения

Для дообучения модели вам понадобится датасет с примерами, где:

Вход (input): Запрос на написание Firefox-расширения (например, "Напиши расширение для Firefox, которое применяет прокси для определённых сайтов").

Выход (output): Корректный код расширения с использованием Firefox WebExtensions API (не Chrome).

Пример данных в формате JSON (для fine-tuning):

JSON
    
{
  "input": "Напиши расширение для Firefox, которое применяет прокси для сайтов example.com и example2.com.",
  "output": "// manifest.json\n{\n  \"manifest_version\": 2,\n  \"name\": \"Proxy for Firefox\",\n  \"version\": \"1.0\",\n  \"permissions\": [\"webRequest\", \"webRequestBlocking\", \"<all_urls>\"],\n  \"background\": {\n    \"scripts\": [\"background.js\"]\n  }\n}\n\n// background.js\nconst proxyRules = {\n  \"proxyFor\": [\"*://example.com/*\", \"*://example2.com/*\"],\n  \"proxySettings\": {\n    \"type\": \"socks\",\n    \"host\": \"proxy.example.com\",\n    \"port\": 1080\n  }\n};\n\nbrowser.webRequest.onBeforeRequest.addListener(\n  (details) => {\n    if (proxyRules.proxyFor.some(url => new RegExp(url).test(details.url))) {\n      return { type: \"proxy\", ...proxyRules.proxySettings };\n    }\n    return { type: \"direct\" };\n  },\n  { urls: [\"<all_urls>\"] },\n  [\"blocking\"]\n);"
}

  

Ключевые моменты:

Используется browser.* API (Firefox) вместо chrome.*.

В manifest.json могут быть отличия (например, "browser_specific_settings" для Firefox).

2. Выбор метода дообучения

Для локальных моделей (особенно 32B параметров) подходят:

LoRA (Low-Rank Adaptation) – эффективный метод, не требующий полного переобучения модели.

QLoRA – ещё более оптимизированный вариант для GPU с ограниченной памятью.

Инструменты:

Axolotl (https://github.com/OpenAccess-AI-Collective/axolotl) – удобный фреймворк для fine-tuning LLM.

Ollama + Unsloth (если Ollama поддерживает LoRA).

3. Процесс дообучения

Шаг 1: Подготовка окружения

bash
    
git clone https://github.com/OpenAccess-AI-Collective/axolotl
cd axolotl
pip install -e .

  

Шаг 2: Конфигурация YAML (deepseek-finetune.yml)

yaml
    
base_model: deepseek-r1:32b
model_type: llama  # или другой архитектуры, если отличается
datasets:
  - path: proxy_firefox_dataset.jsonl
    type: json
dataset_prepared_path: prepared_data
lora_r: 8
lora_alpha: 16
lora_target_modules: ["q_proj", "v_proj"]
load_in_4bit: true
train_on_inputs: false
output_dir: ./lora_output

  

Шаг 3: Запуск обучения

bash
    
accelerate launch -m axolotl.cli.train deepseek-finetune.yml

  

4. Тестирование дообученной модели

После обучения:

Сконвертируйте LoRA-адаптеры в формат Ollama (если нужно).

Запустите модель:

bash
    
ollama run deepseek-r1:32b-lora

  

Проверьте запрос:

"Напиши расширение для Firefox, которое использует прокси для сайтов A и B."

Ожидаемый результат:

Код должен содержать browser.webRequest, а не chrome.proxy.

Манифест должен быть совместим с Firefox.

5. Дополнительные улучшения

Контекстное обучение: Добавьте в промт явное указание:

"Используй только Firefox WebExtensions API, не используй Chrome-специфичные методы."

RAG (Retrieval-Augmented Generation): Подключите базу знаний с различиями API.

Заключение

Дообучение через LoRA на небольшом датасете с корректными примерами решит проблему. Если модель всё ещё ошибается, увеличьте количество примеров или добавьте явные проверки в промт.

Для более глубокого обучения можно добавить примеры ошибок (Chrome API) и их исправлений (Firefox API) в датасет.

Если у вас есть конкретные примеры ошибочного кода – могу помочь составить датасет для дообучения!

Другие товары

Вы так же можете прочитать следующие статьи: