Пошаговая инструкция, как установить Ollama в нестандартный каталог, перенести хранилище моделей на другой диск и настроить интеграцию с Genspark через переменную окружения OLLAMA_MODELS.
Краткий FAQ
Как установить Ollama в нужную директорию?
Используйте параметр /DIR при запуске установщика.
Как задать другой путь для моделей?
После установки задайте системную переменную окружения OLLAMA_MODELS.
Как проверить, что переменная применена системно?
Через PowerShell командой:[System.Environment]::GetEnvironmentVariable('OLLAMA_MODELS','Machine')
Как остановить старые процессы Ollama?Get-Process ollama -ErrorAction SilentlyContinue | Stop-Process -Force
Как указать путь моделей в интерфейсе Genspark?
В настройках по адресу http://localhost:40000 выберите ту же директорию, что и в переменной OLLAMA_MODELS.
Пошаговая инструкция по установке Ollama
- Скачайте установщик Ollama
Перейдите на официальный сайт Ollama и сохраните установочный файл, например в папкуD:\Downloads\. - Установите Ollama в C:\Program Files
Запустите PowerShell от имени администратора и выполните:d:\Downloads\OllamaSetup.exe /DIR="C:\Program Files\Ollama" - Остановите старые процессы Ollama
Get-Process ollama -ErrorAction SilentlyContinue | Stop-Process -Force - Укажите папку моделей на другом диске
Например, если хотите хранить модели на диске D:[System.Environment]::SetEnvironmentVariable('OLLAMA_MODELS','D:\ai\models','Machine') - Проверьте, что переменная установлена системно
[System.Environment]::GetEnvironmentVariable('OLLAMA_MODELS','Machine')Если выводитD:\ai\models, настройка применена успешно. - Перезапустите Ollama или систему
Это необходимо, чтобы новая переменная окружения вступила в силу.
Настройка Genspark для работы с Ollama
- Откройте http://localhost:40000
- Нажмите кнопку «Настройка» → «Местоположение модели».
- Укажите путь к папке, где хранятся модели (например,
D:\ai\models). - Убедитесь, что этот путь совпадает с переменной
OLLAMA_MODELS.
Так Ollama и Genspark будут использовать одно и то же хранилище, что обеспечит стабильную работу локальных LLM-моделей и синхронизацию скачанных весов.
Чек-лист перед запуском
- Ollama установлена в
C:\Program Files\Ollama - Старые процессы Ollama остановлены
- Переменная
OLLAMA_MODELSустановлена и проверена - В Genspark указан тот же путь к моделям
- Папка с моделями (
D:\ai\models) доступна и содержит файлы
Итоги
- Установку Ollama можно выполнить с указанием произвольной директории через ключ
/DIR= - Хранилище моделей регулируется переменной окружения
OLLAMA_MODELS. - Для совместимости с Genspark используйте один и тот же путь к папке моделей.
- Перед изменениями завершайте все запущенные процессы Ollama.
Оценка ПК: авто-отчёт и рекомендации по моделям
Ниже — скрипт PowerShell, который:
- собирает сведения о процессоре, ОЗУ, дисках (свободное место), видеокартах и драйверах;
- пытается получить данные CUDA через
nvidia-smi(если установлено); - оценивает класс доступных локальных моделей (диапазоны параметров) для CPU/GPU;
- создаёт два файла отчёта:
D:\ai\llm-hw-report.jsonD:\ai\llm-hw-report.md
Как запустить
- Откройте PowerShell от имени администратора.
- Вставьте код ниже и выполните.
- Откройте готовый
D:\ai\llm-hw-report.md— там уже будут рекомендации по выбору размеров моделей.
При необходимости поменяйте путь сохранения, например на
C:\Users\Public\.
# === llm-hw-audit.ps1 ===
# Собирает системные характеристики и формирует рекомендации по размерам локальных моделей (CPU/GPU).
# Вывод: D:\ai\llm-hw-report.json и D:\ai\llm-hw-report.md
# --- Подготовка путей
$OutDir = "D:\ai"
New-Item -ItemType Directory -Path $OutDir -Force | Out-Null
$jsonPath = Join-Path $OutDir "llm-hw-report.json"
$mdPath = Join-Path $OutDir "llm-hw-report.md"
# --- Системная информация
$cs = Get-CimInstance Win32_ComputerSystem
$os = Get-CimInstance Win32_OperatingSystem
$cpu = Get-CimInstance Win32_Processor
$gpus = Get-CimInstance Win32_VideoController | Sort-Object -Property Name
$disks = Get-CimInstance Win32_LogicalDisk -Filter "DriveType=3"
# --- Память
$totalRAMBytes = [int64]$cs.TotalPhysicalMemory
$totalRAMGB = [math]::Round($totalRAMBytes / 1GB, 1)
# --- Диски
$diskInfo = $disks | ForEach-Object {
[PSCustomObject]@{
DeviceID = $_.DeviceID
FileSystem = $_.FileSystem
SizeGB = if ($_.Size) { [math]::Round($_.Size / 1GB, 1) } else { $null }
FreeGB = if ($_.FreeSpace) { [math]::Round($_.FreeSpace / 1GB, 1) } else { $null }
FreePercent = if ($_.Size -and $_.FreeSpace) { [math]::Round(100 * ($_.FreeSpace / $_.Size), 1) } else { $null }
}
}
# --- GPU / VRAM
$gpuInfo = @()
foreach ($g in $gpus) {
$vramGB = $null
if ($g.AdapterRAM) { $vramGB = [math]::Round($g.AdapterRAM / 1GB, 1) }
$gpuInfo += [PSCustomObject]@{
Name = $g.Name
DriverVersion = $g.DriverVersion
VRAM_GB = $vramGB
VideoModeDesc = $g.VideoModeDescription
PNPDeviceID = $g.PNPDeviceID
}
}
# --- CUDA / nvidia-smi (если есть)
$cuda = $null
try {
$nvsmi = Get-Command nvidia-smi -ErrorAction Stop
if ($nvsmi) {
$csv = & nvidia-smi --query-gpu=name,driver_version,memory.total --format=csv,noheader 2>$null
$cuda = @{
Detected = $true
Raw = $csv
}
}
} catch {
$cuda = @{
Detected = $false
Raw = $null
}
}
# --- Эвристика подбора диапазонов моделей
# CPU-only ориентир (квантованные модели):
# <=16 GB RAM: 3B–7B (q4/q5)
# 32 GB RAM: 7B–13B (q4/q5)
# 64 GB RAM: 13B–30B (q4)
# >=128 GB RAM: 30B–70B (q4) при достаточном свободном диске
function Recommend-CPUModelSize($ramGB) {
if ($ramGB -le 16) { return "3B–7B (q4/q5)" }
elseif ($ramGB -le 32) { return "7B–13B (q4/q5)" }
elseif ($ramGB -le 64) { return "13B–30B (q4)" }
else { return "30B–70B (q4, при достаточном диске)" }
}
# GPU ориентир (по объёму VRAM одной карты, квантованные q4/q5):
# 6–8 GB VRAM: до ~7–8B
# 10–12 GB VRAM: до ~13B
# 20–24 GB VRAM: 13–70B с частичным оффлоадом (зависит от модели и слоёв)
# >24 GB VRAM: крупные модели с большим оффлоадом (70B и более, но нюансы по слоям)
function Recommend-GPUModelSize($vramGB) {
if ($null -eq $vramGB) { return $null }
if ($vramGB -lt 6) { return "<6 GB VRAM: CPU-only режим или совсем малые 1–3B" }
elseif ($vramGB -le 8) { return "6–8 GB VRAM: до 7–8B (q4/q5) с оффлоадом" }
elseif ($vramGB -le 12) { return "10–12 GB VRAM: до ~13B (q4/q5) с оффлоадом" }
elseif ($vramGB -le 24) { return "20–24 GB VRAM: 13–70B (частичный оффлоад, зависит от модели)" }
else { return ">24 GB VRAM: 70B+ при грамотной конфигурации слоёв" }
}
$cpuRec = Recommend-CPUModelSize -ramGB $totalRAMGB
$gpuRecs = $gpuInfo | ForEach-Object {
[PSCustomObject]@{
Name = $_.Name
VRAM_GB = $_.VRAM_GB
SuggestedModels = Recommend-GPUModelSize -vramGB $_.VRAM_GB
}
}
# --- Свободное место под модели (ищем диск с путём моделей, если известен)
$modelsPath = [System.Environment]::GetEnvironmentVariable('OLLAMA_MODELS','Machine')
if ([string]::IsNullOrWhiteSpace($modelsPath)) {
$modelsPath = "D:\ai\models" # дефолт-подсказка, если переменная не задана
}
$modelsRoot = (Get-Item $modelsPath -ErrorAction SilentlyContinue)?.PSDrive.Name + ":"
$diskForModels = $null
if ($modelsRoot) {
$diskForModels = $diskInfo | Where-Object { $_.DeviceID -eq $modelsRoot }
}
# Простейшая оценка места: для комфортной работы заложим минимум 20–50 GB свободно
function Recommend-Disk($freeGB) {
if ($null -eq $freeGB) { return "Не удалось определить свободное место; проверьте путь моделей." }
if ($freeGB -lt 10) { return "Критически мало свободного места (<10 GB): освободите диск или смените путь моделей." }
elseif ($freeGB -lt 20) { return "Мало места (10–20 GB): хватит на 1–2 небольшие модели (3B–7B)." }
elseif ($freeGB -lt 50) { return "Ок (20–50 GB): несколько моделей 7B–13B (q4/q5) или 1–2 крупнее." }
else { return "Достаточно (50 GB+): комфортно для набора моделей, включая 13B+ в нескольких вариантах." }
}
$diskRec = $null
if ($diskForModels) { $diskRec = Recommend-Disk -freeGB $diskForModels.FreeGB }
# --- Сводный объект
$result = [PSCustomObject]@{
Timestamp = (Get-Date).ToString("u")
OS = @{
Caption = $os.Caption; Version = $os.Version; Build = $os.BuildNumber
}
CPU = @{
Name = $cpu.Name
Cores = $cpu.NumberOfCores
LogicalProcessors = $cpu.NumberOfLogicalProcessors
# Примечание: точную поддержку AVX/AVX2 лучше сверять по модели CPU на сайте производителя
}
RAM_GB = $totalRAMGB
Disks = $diskInfo
GPU = $gpuInfo
CUDA = $cuda
ModelsPath = $modelsPath
Recommendations = @{
CPU_Models = $cpuRec
GPU_Models = $gpuRecs
Disk = $diskRec
Notes = @(
"Совмещайте CPU и частичное GPU-оффлоадирование (параметр -ngl в Ollama) для ускорения.",
"Квантовки q4/q5 экономят RAM/VRAM с умеренной потерей качества.",
"Для NVIDIA проверьте актуальность драйверов и наличие CUDA (nvidia-smi).",
"Держите свободными минимум 20–50 GB на диске моделей."
)
}
}
# --- Сохранение JSON
$result | ConvertTo-Json -Depth 6 | Out-File -FilePath $jsonPath -Encoding UTF8
# --- Сохранение Markdown
$gpuLines = ($gpuRecs | ForEach-Object {
"- **$($_.Name)**, VRAM: $($_.VRAM_GB) GB → $($_.SuggestedModels)"
}) -join "`n"
$diskLine = if ($diskForModels) {
"*Путь моделей:* **$modelsPath** (диск $($diskForModels.DeviceID)) — свободно **$($diskForModels.FreeGB) GB** ($($diskForModels.FreePercent)%). Рекомендация: $diskRec"
} else {
"*Путь моделей:* **$modelsPath** — не удалось сопоставить с диском, проверьте существование папки."
}
$md = @"
# Отчёт по оборудованию (LLM)
**Дата:** $($result.Timestamp)
## ОС
- $($result.OS.Caption)
- Версия: $($result.OS.Version), Сборка: $($result.OS.Build)
## Процессор
- $($result.CPU.Name)
- Ядер: $($result.CPU.Cores), Потоков: $($result.CPU.LogicalProcessors)
## Память
- ОЗУ: **$totalRAMGB GB**
- Рекомендация (CPU-only): **$cpuRec**
## Видеосистема
$gpuLines
## CUDA / NVIDIA-SMI
- Обнаружено: $($result.CUDA.Detected)
- Сырые данные: $($result.CUDA.Raw)
## Диски
$(
$result.Disks | ForEach-Object {
"- $($_.DeviceID) — $($_.FreeGB) / $($_.SizeGB) GB свободно ($($_.FreePercent)%); FS: $($_.FileSystem)"
} | Out-String
)
## Хранилище моделей
$diskLine
## Примечания
- Совмещайте CPU и частичный GPU-оффлоад (параметр **-ngl** в Ollama).
- Квантовки **q4/q5** — лучший баланс «качество/ресурсы».
- Для NVIDIA обновите драйверы; проверьте `nvidia-smi`.
- Держите свободно **20–50 GB+** для набора моделей.
---
JSON: $jsonPath
MD: $mdPath
"@
$md | Out-File -FilePath $mdPath -Encoding UTF8
Write-Host "Готово. Отчёт: $mdPath и $jsonPath"
Мини-бенчмарк токенов (по желанию)
После установки Ollama можно замерить «скорость токенов» на небольшой модели (пример для 3B-7B):
# Закрепите число потоков рендера и отключите параллельные запросы, чтобы замеры были стабильнее:
$env:OLLAMA_NUM_PARALLEL = "1"
$env:OMP_NUM_THREADS = [Environment]::ProcessorCount.ToString()
# Тест: короткая генерация
Measure-Command {
ollama run llama3.2:3b-instruct -p "Сосчитай от 1 до 200 кратко."
} | Select-Object TotalSeconds
Сравнивайте TotalSeconds между разными моделями/квантовками и с параметром
-ngl <layers>(оффлоад слоёв на GPU), чтобы подобрать оптимум «скорость/качество».
Быстрые правила подбора моделей
- CPU-only, ≤16 GB RAM: 3B–7B (q4/q5)
- CPU-only, 32 GB RAM: 7B–13B (q4/q5)
- CPU-only, 64 GB RAM: 13B–30B (q4)
- CPU-only, ≥128 GB RAM: 30B–70B (q4), если хватает диска
- GPU 6–8 GB VRAM: до ~7–8B (q4/q5) с оффлоадом
- GPU 10–12 GB VRAM: до ~13B (q4/q5)
- GPU 20–24 GB VRAM: 13–70B (частичный оффлоад, зависит от модели/слоёв)
- GPU >24 GB VRAM: 70B+ при грамотной конфигурации
+ There are no comments
Add yours