1
0

Актуализация README

This commit is contained in:
2025-09-05 14:18:10 +08:00
parent defc30cad0
commit 77ba817f14
3 changed files with 138 additions and 131 deletions

View File

@@ -2,6 +2,7 @@
"recommendations": [
"saoudrizwan.claude-dev",
"nr-codetools.localaipilot",
"continue.continue"
"continue.continue",
"rooveterinaryinc.roo-cline"
]
}

141
README.md
View File

@@ -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) для более богатого функционала
<details>
<summary>Полный список лёгких и средних моделей, которые можно попробовать для разных целей</summary>
```
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
```
</details>
Для настройки 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` и подгрузить доступные модели из контейнера.

View File

@@ -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)
<details>
<summary>Полный список лёгких и средних моделей, которые можно использовать не только в RAG</summary>
```
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
```
</details>
## Дисклеймер
Проект родился на энтузиазме из личного любопытства.