Files
llm/README.md
T

246 lines
7.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Local LLM Platform
Локальная платформа для работы с моделями под разные задачи: текст, перевод, аудио, видео и 1С.
Архитектура проекта: `core + plugins`.
- `core` содержит общую платформу: реестр моделей, инференс, обучение, eval-тесты, деплой на GPU, хранилище и мониторинг.
- `plugins` содержит прикладные направления: текст, перевод, аудио, видео, фото, 1С.
- Каждый плагин проектируется как будущий отдельный сервис, но на старте живет в одном репозитории.
## Deployment Target
GPU-нагрузки разворачиваются на `docker-gpu.cin.su`.
Секреты, токены, пароли, ключи доступа и приватные датасеты не хранятся в репозитории.
Если `docker-gpu.cin.su` является Windows-хостом с контейнерами на диске `Z:`, используйте runbook `docs/runbooks/windows-docker-gpu-host.md`.
## Structure
```text
LLM/
core/
registry/
inference/
training/
evals/
deploy/
storage/
monitoring/
registry/
model-cards/
templates/
datasets/
raw/
prepared/
plugins/
text/
translation/
audio/
video/
image/
1c/
docs/
```
## Development Stages
1. Описать реестр моделей и формат model card.
2. Поднять базовый inference API для текстовых моделей.
3. Добавить плагины задач и их минимальные пайплайны.
4. Для 1С сначала сделать RAG и инструменты работы с метаданными.
5. После накопления качественных примеров добавить LoRA/adapter fine-tuning для 1С.
6. Тяжелые плагины постепенно выносить в отдельные контейнеры или сервисы.
## First Inference
Шаблон первого GPU inference-сервиса находится в `core/deploy/docker-gpu/vllm`.
Runbook: `docs/runbooks/first-vllm-inference.md`.
Deployment runbook: `docs/runbooks/deploy-vllm.md`.
GPU preflight: `docs/runbooks/gpu-host-preflight.md`.
Полный GPU-контур после настройки SSH-доступа:
```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_gpu_stack.ps1 -Pull
```
Посмотреть план без запуска:
```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/deploy_gpu_stack.ps1 -PlanOnly -Pull
```
Первая базовая текстовая модель: `Qwen/Qwen3-4B-Instruct-2507`.
Первая GGUF-модель для 1С/code экспериментов: `bartowski/mistralai_Devstral-Small-2-24B-Instruct-2512-GGUF`, quant `Q4_K_M`.
Исследование следующих кандидатов под 1С: `docs/research/1c-model-candidates.md`.
Набор моделей по одному кандидату на каждый плагин: `plugins/model-bundle.yaml`.
Загрузка набора:
```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/download_plugin_model_bundle.ps1
```
Проверка model cards:
```powershell
python scripts/validate_model_cards.py
```
Все базовые локальные проверки:
```powershell
python scripts/check_all.py
```
Проверка локального хранилища моделей:
```powershell
python scripts/check_model_storage.py --print
```
Сводный статус платформы:
```powershell
python scripts/collect_platform_status.py --print
```
Список моделей:
```powershell
python scripts/list_model_cards.py
```
Загрузка модели в локальное хранилище:
```powershell
python scripts/download_hf_model.py qwen3-4b-instruct-2507 --dry-run
```
Runbook: `docs/runbooks/download-model.md`.
Чат для ручной проверки моделей:
```powershell
python scripts/model_chat_server.py
```
Runbook: `docs/runbooks/model-chat-testbench.md`.
## 1C RAG
Стартовый контур 1С находится в `plugins/1c`.
Подготовка RAG-корпуса:
```powershell
python scripts/build_1c_knowledge_base.py
```
Отдельные шаги, если нужно управлять ими вручную:
```powershell
python scripts/prepare_1c_rag_corpus.py
```
Построение локального lexical index:
```powershell
python scripts/build_1c_rag_index.py
```
Построение локального SQLite vector index:
```powershell
python scripts/build_1c_rag_vector_index.py
python scripts/search_1c_rag_hybrid.py "реквизиты справочника номенклатура" --profile metadata --limit 5
```
Сборка 1С RAG prompt:
```powershell
python scripts/ask_1c_rag.py "Какие реквизиты есть у справочника Номенклатура?" --print-prompt
```
Runbook: `docs/runbooks/1c-rag.md`.
Проверка 1С-плагина:
```powershell
python scripts/check_1c_plugin.py --print
```
Контур безопасного взаимодействия с живыми базами 1С: `docs/runbooks/1c-live-interaction.md`.
Проверка offline/static контура верификации 1С-адаптера:
```powershell
python scripts/check_1c_adapter_verification_stack.py --base-id upo_test
```
Для нестандартных endpoint'ов добавьте `--rest-adapter-url ... --mcp-url ...`;
по умолчанию проверяются текущие стендовые URL. Несколько баз можно передать
после одного `--base-id`. Чтобы принимать только свежие persisted-отчеты,
добавьте `--max-report-age-seconds <seconds>`.
Persisted validation also checks
`reports/1c-sql/<base-id>/saved-state-copy-plan.json`: the plan must be for
the requested base, be `plan_ready`, contain active `Config`/`ConfigCAS` source
rows, and show no `ConfigSave`/`ConfigCASSave` target collisions.
PowerShell deploy/verify defaults saved-state preparation to `ConfigCASSave`;
pass `-SavedStateTable ConfigSave` when checking the base save layer instead.
Сохранить машинно-читаемый итог этой проверки:
```powershell
python scripts/check_1c_adapter_verification_stack.py --base-id upo_test --json --report reports/1c-sql/upo_test/adapter-verification-stack-check.json
```
Metadata snapshots:
```powershell
python scripts/validate_1c_metadata_snapshot.py plugins/1c/metadata/examples/metadata.example.json
python scripts/convert_1c_metadata_to_rag.py --input plugins/1c/metadata/examples/metadata.example.json --output plugins/1c/rag/sources/metadata.example.generated.md
```
Runbook: `docs/runbooks/1c-metadata-snapshot.md`.
## 1C Training Data
Проверка и подготовка синтетического training example:
```powershell
python scripts/validate_1c_training_data.py plugins/1c/training/examples/instruction.examples.jsonl
python scripts/prepare_1c_training_data.py --input plugins/1c/training/examples/instruction.examples.jsonl --output plugins/1c/training/prepared/train.chat.jsonl
```
Runbook: `docs/runbooks/1c-training-data.md`.
LoRA training:
```powershell
python scripts/preflight_1c_training.py
```
Runbook: `docs/runbooks/1c-lora-training.md`.
## Evals
Проверка eval-наборов:
```powershell
python scripts/validate_evals.py
python scripts/run_1c_smoke_eval.py --print
```
Runbook: `docs/runbooks/evals.md`.