From 77ba817f148a4e19a73debd9d3c14d93fa811fdb Mon Sep 17 00:00:00 2001 From: Anthony Axenov Date: Fri, 5 Sep 2025 14:18:10 +0800 Subject: [PATCH] =?UTF-8?q?=D0=90=D0=BA=D1=82=D1=83=D0=B0=D0=BB=D0=B8?= =?UTF-8?q?=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20README?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/extensions.json | 3 +- README.md | 141 ++++++++++++++++++++++++++++++++++++---- rag/README.md | 125 +++-------------------------------- 3 files changed, 138 insertions(+), 131 deletions(-) diff --git a/.vscode/extensions.json b/.vscode/extensions.json index c07aa91..faa3b03 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -2,6 +2,7 @@ "recommendations": [ "saoudrizwan.claude-dev", "nr-codetools.localaipilot", - "continue.continue" + "continue.continue", + "rooveterinaryinc.roo-cline" ] } diff --git a/README.md b/README.md index 6d40f76..8de15f4 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,14 @@ -# Local ollama +# Local ollama + RAG -Набор скриптов для быстрого запуска локальных LLM. +Набор скриптов для быстрого запуска локальных LLM и RAG-системы. Модели примерно до 40 млрд параметров (обычно 32b) наиболее реально запускать на домашних ПК разных мощностей. -Меньше параметров → меньше памяти на диске и в ОЗУ → выше скорость (tps) → ниже качество. - -Больше параметров → больше памяти на диске и в ОЗУ → ниже скорость (tps) → выше качество. +> Меньше параметров → меньше памяти на диске и в ОЗУ → выше скорость (tps) → ниже качество. +> Больше параметров → больше памяти на диске и в ОЗУ → ниже скорость (tps) → выше качество. Модели до 7 млрд достаточно хорошо отвечают (до 5-10 tps) на i5-9400 CPU 2.90GHz + 32 Гб ОЗУ без видеокарты, при условии, что в один момент времени одна модель обрабатывает один запрос. -Например, [phi4-mini:3.8b](phi4-mini/3.8b), [qwen2.5:7b](qwen2.5/7b) или небольшая llama. +Например, [phi4-mini:3.8b](phi4-mini/3.8b), [qwen2.5:7b](qwen2.5/7b) или небольшая `llama`. ## Структура проекта @@ -35,17 +34,133 @@ ## Как использовать 1. Запустить `./up` -2. Запустить скрипт из любой и поддиректорий для скачивания и запуска модели в терминале -3. Открыть веб-морду по адресу [localhost:9999](http://localhost:9999) +2. Запустить `./ollama run <название модели>` для диалога в терминале +3. Открыть веб-морду по адресу [localhost:9999](http://localhost:9999) для более богатого функционала + +
+ Полный список лёгких и средних моделей, которые можно попробовать для разных целей + + ``` + codegemma:2b + codegemma:7b + codellama:7b + codellama:13b + codellama:34b + codeqwen:1.5b + codeqwen:7b + codestral:22b + deepcoder:1.5b + deepcoder:14b + deepseek-coder:1.3b + deepseek-coder:6.7b + deepseek-coder:33b + deepseek-coder-v2:16b + deepseek-r1:1.5b + deepseek-r1:7b + deepseek-r1:8b + deepseek-r1:14b + deepseek-r1:32b + devstral:24b + dolphin3:8b + gemma:2b + gemma:7b + gemma3:1b + gemma3:4b + gemma3:12b + gemma3:27b + gemma3:270m + gemma3n:e2b + gemma3n:e4b + gpt-oss:20b + granite-code:3b + granite-code:8b + granite-code:20b + granite-code:34b + llama2:7b + llama2:13b + llama3:8b + llama3.1:8b + llama3.2:1b + llama3.2:3b + llava-llama3:8b + magistral:24b + mistral:7b + mistral-nemo:12b + mistral-small:22b + mistral-small:24b + mixtral:8x7b + mxbai-embed-large:latest + nomic-embed-text:latest + openthinker:7b + openthinker:32b + phi:2.7b + phi3:3.8b + phi3:14b + phi3:instruct + phi3:medium + phi3:mini + phi3.5:3.8b + phi4:14b + phi4-mini-reasoning:3.8b + phi4-mini:3.8b + phi4-reasoning:14b + qwen:0.5b + qwen:1.8b + qwen:4b + qwen:7b + qwen:14b + qwen:32b + qwen2:0.5b + qwen2:1.5b + qwen2:7b + qwen2.5:0.5b + qwen2.5:1.5b + qwen2.5:3b + qwen2.5:7b + qwen2.5:14b + qwen2.5:32b + qwen2.5-coder:0.5b + qwen2.5-coder:1.5b + qwen2.5-coder:3b + qwen2.5-coder:7b + qwen2.5-coder:14b + qwen2.5-coder:32b + qwen3:0.6b + qwen3:1.7b + qwen3:4b + qwen3:8b + qwen3:14b + qwen3:30b + qwen3:32b + qwen3-coder:30b + qwq:32b + smollm2:1.7m + smollm2:135m + smollm2:360m + stable-code:3b + stable-code:instruct + starcoder2:3b + starcoder2:7b + starcoder2:15b + ``` + +
Для настройки vscode поставить один из плагинов: -* [Cline](https://marketplace.visualstudio.com/items?itemName=saoudrizwan.claude-dev) -* [Continue](https://marketplace.visualstudio.com/items?itemName=Continue.continue) -* [Local AI Pilot](https://marketplace.visualstudio.com/items?itemName=nr-codetools.localaipilot) +* [Cline](https://marketplace.visualstudio.com/items?itemName=saoudrizwan.claude-dev) (полноценный агент/болталка) +* [Roo Code](https://marketplace.visualstudio.com/items?itemName=RooVeterinaryInc.roo-cline) (более удобный форк cline) +* [Continue](https://marketplace.visualstudio.com/items?itemName=Continue.continue) (замкнут на своей экосистеме, но позволяет работать с ollama) +* [Local AI Pilot](https://marketplace.visualstudio.com/items?itemName=nr-codetools.localaipilot) (примитивная болталка) -Для настройки idea поставить плагин: -* [AI Coding](https://plugins.jetbrains.com/plugin/21263-ai-coding) +Для настройки idea поставить плагины: * [MCP Server](https://plugins.jetbrains.com/plugin/26071-mcp-server) + * File | Settings | Tools | MCP Server: + * Enable MCP Server + * Copy SSE Config +* [AI Coding](https://plugins.jetbrains.com/plugin/21263-ai-coding) + * File | Settings | Other Settings | AI Coding — настроить API + * в панели AI Coding зайти в MCP и добавить новый, вставив JSON-конфиг SSE, скопированный выше + * в панели AI Coding зайти в Agents, создать нового и дать ему этот MCP-сервер Плагины должны соединиться с `localhost:11434` и подгрузить доступные модели из контейнера. diff --git a/rag/README.md b/rag/README.md index d0c6ac3..f71f366 100644 --- a/rag/README.md +++ b/rag/README.md @@ -159,7 +159,7 @@ python3 vectorize.py python3 vectorize.py --help ``` -## 4. Запуск +### 4. Запуск Для работы с RAG в интерактивном режиме (симуляция диалога) следует выполнить команду: @@ -186,7 +186,7 @@ python3 rag.py --help > [!NOTE] > У скрипта очень довольно аргументов для гибкой настройки. -### Кастомный системный промпт +#### Кастомный системный промпт Если хочется уточнить роль генеративной модели, можно создать текстовый файл и прописать туда всё необходимое, учитывая следующие правила: @@ -204,30 +204,30 @@ python3 rag.py --help Посмотреть полный промпт можно указав аргумент `--show_prompt` при вызове `rag.py`. -### Неплохие модели для экспериментов +## Неплохие модели для экспериментов Обозначения: * ☑️ — по умолчанию * 🧠 — размышляющая * 🏋️ — требуются ресурсы -#### Эмбеддинг +### Эмбеддинг - [`sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2`](https://hf.co/sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2) ☑️ - [`nomad-embed-text`](https://ollama.com/library/nomad-embed-text) - ... -#### Ранжирование +### Ранжирование - [`cross-encoder/ms-marco-MMarco-mMiniLMv2-L12-V1`](https://hf.co/cross-encoder/ms-marco-MMarco-mMiniLMv2-L12-V1) ☑️ -- `cross-encoder/ms-marco-MiniLM-L-6-v2` -- `cross-encoder/ms-marco-TinyBERT-L-2-v2` +- [`cross-encoder/ms-marco-MiniLM-L-6-v2`](https://hf.co/cross-encoder/ms-marco-MiniLM-L-6-v2) +- [`cross-encoder/ms-marco-TinyBERT-L-2-v2`](https://hf.co/cross-encoder/ms-marco-TinyBERT-L-2-v2) - ... > [!NOTE] > Другие можно найти здесь: https://github.com/AlexeyMalafeev/ruformers -#### Генеративные +### Генеративные Перечислен список: по убыванию качества ответов и размера модели, по возрастанию скорости ответов на обычном домашнем ПК. @@ -241,115 +241,6 @@ python3 rag.py --help - [`gemma3n:e4b`](https://ollama.com/library/gemma3n) - [`gemma3n:e2b`](https://ollama.com/library/gemma3n) -
- Полный список лёгких и средних моделей, которые можно использовать не только в RAG - - ``` - codegemma:2b - codegemma:7b - codellama:7b - codellama:13b - codellama:34b - codeqwen:1.5b - codeqwen:7b - codestral:22b - deepcoder:1.5b - deepcoder:14b - deepseek-coder:1.3b - deepseek-coder:6.7b - deepseek-coder:33b - deepseek-coder-v2:16b - deepseek-r1:1.5b - deepseek-r1:7b - deepseek-r1:8b - deepseek-r1:14b - deepseek-r1:32b - devstral:24b - dolphin3:8b - gemma:2b - gemma:7b - gemma3:1b - gemma3:4b - gemma3:12b - gemma3:27b - gemma3:270m - gemma3n:e2b - gemma3n:e4b - gpt-oss:20b - granite-code:3b - granite-code:8b - granite-code:20b - granite-code:34b - llama2:7b - llama2:13b - llama3:8b - llama3.1:8b - llama3.2:1b - llama3.2:3b - llava-llama3:8b - magistral:24b - mistral:7b - mistral-nemo:12b - mistral-small:22b - mistral-small:24b - mixtral:8x7b - mxbai-embed-large:latest - nomic-embed-text:latest - openthinker:7b - openthinker:32b - phi:2.7b - phi3:3.8b - phi3:14b - phi3:instruct - phi3:medium - phi3:mini - phi3.5:3.8b - phi4:14b - phi4-mini-reasoning:3.8b - phi4-mini:3.8b - phi4-reasoning:14b - qwen:0.5b - qwen:1.8b - qwen:4b - qwen:7b - qwen:14b - qwen:32b - qwen2:0.5b - qwen2:1.5b - qwen2:7b - qwen2.5:0.5b - qwen2.5:1.5b - qwen2.5:3b - qwen2.5:7b - qwen2.5:14b - qwen2.5:32b - qwen2.5-coder:0.5b - qwen2.5-coder:1.5b - qwen2.5-coder:3b - qwen2.5-coder:7b - qwen2.5-coder:14b - qwen2.5-coder:32b - qwen3:0.6b - qwen3:1.7b - qwen3:4b - qwen3:8b - qwen3:14b - qwen3:30b - qwen3:32b - qwen3-coder:30b - qwq:32b - smollm2:1.7m - smollm2:135m - smollm2:360m - stable-code:3b - stable-code:instruct - starcoder2:3b - starcoder2:7b - starcoder2:15b - ``` - -
- ## Дисклеймер Проект родился на энтузиазме из личного любопытства.