LINUX.ORG.RU

Создание работающей оффлайн модели ИИ

 


0

2

Здравствуйте. Пытаюсь запустить у себя на компьютере оффлайн ИИ. Но возникла первоначальная проблема со скачиванием модели,так как все дороги ведут меня на Huggingface, с которого у меня загрузка не идет ни при каких условиях.

Подскажите, где я могу скачать модели GGU для llama.ccp.

Перемещено Dimez из science

Как выглядит то что загрузка не идет? В каких случаях воспроизводится? А то в некоторых интрефейсах для ИИ просто не предусмотрен прогресс-бар скачивания в программе, тупо в терминале показывает если через него запускать, а в самой программе ни-ни

vbcnthfkmnth123 ★★★★★
()
Последнее исправление: vbcnthfkmnth123 (всего исправлений: 1)

Используйте пакет от Huggingface для скачивания. Устанавливаете: pip install huggingface_hub

Затем скачиваете нужную модель в формате GGUF:

#!/usr/bin/env python3

from huggingface_hub import hf_hub_download

models_path = '/opt/models/'
# пример для Devstral-Small-2507-Q4_K_M.gguf 
# из репозитария https://huggingface.co/mistralai/Devstral-Small-2507_gguf
models = ['mistralai/Devstral-Small-2507_gguf']
files  = ['Devstral-Small-2507-Q4_K_M.gguf']
for repo_id in models:
    local_dir = models_path + repo_id
    index = models.index(repo_id)
    file_id = files[index]
    hf_hub_download(repo_id=repo_id, local_dir=local_dir, filename=file_id)
Obezyan
()

У меня тоже рандомно случается что оно упорно отказывается качать.

Стоит повторить попытку позже. Отдупляется от часа до суток.

mord0d ★★★★★
()
Ответ на: комментарий от Obezyan

Это не поможет. У hf случается что оно просто не отдаёт, и соединение сбрасывается по таймауту. Не знаю, то ли они шейпят в ноль, то ли у них lfs-сервер рандомно ложиться, но такое случается и лечится только ожиданием.

А за скриптик спасибо. (=

mord0d ★★★★★
()
Последнее исправление: mord0d (всего исправлений: 1)
Ответ на: комментарий от Obezyan

./download_model.py /usr/lib/python3/site-packages/huggingface_hub/file_download.py:980: UserWarning: local_dir_use_symlinks parameter is deprecated and will be ignored. The process to download files to a local folder has been updated and do not rely on symlinks anymore. You only need to pass a destination folder aslocal_dir. For more details, check out https://huggingface.co/docs/huggingface_hub/main/en/guides/download#download-files-to-local-folder. warnings.warn( llama-2-7b-chat-hf-q4_k_m.gguf: 0%| | 0.00/4.08G [00:00<?, ?B/s]{«timestamp»:«2025-07-18T12:19:55.336985Z»,«level»:«WARN»,«fields»:

… и так далее. Не скачивает.

Cl_Magenta
() автор топика

https://github.com/ggml-org/llama.cpp?tab=readme-ov-file#obtaining-and-quantizing-models

You can either manually download the GGUF file or directly use any llama.cpp-compatible models from Hugging Face or other model hosting sites, such as ModelScope, by using this CLI argument: -hf /[:quant]. For example:

llama-cli -hf ggml-org/gemma-3-1b-it-GGUF

By default, the CLI would download from Hugging Face, you can switch to other options with the environment variable MODEL_ENDPOINT. For example, you may opt to downloading model checkpoints from ModelScope or other model sharing communities by setting the environment variable, e.g. MODEL_ENDPOINT=https://www.modelscope.cn/.

dataman ★★★★★
()
Ответ на: комментарий от mord0d

Да не за что. Вот в догонку вариант если нужно сразу весь репозитарий (снапшот) скачать:

#!/usr/bin/env python3

from huggingface_hub import snapshot_download

mistral_models_path = '/opt/models/'

models = ['mistralai/Voxtral-Small-24B-2507']
for repo_id in models:
    local_dir = mistral_models_path + repo_id
    snapshot_download(repo_id=repo_id, local_dir=local_dir)

Можно тыкать мышкой справа от названия на квадратик, название репы скопируется в буфер и вставить в массив models. Таким образом можно пакетно скачивать сразу несколько разных моделей.

На отказ в скачке ни разу не попадал, хотя качаю много (скачал-потестил-удалил). Видимо повезло.

Obezyan
()
Последнее исправление: Obezyan (всего исправлений: 1)
Ответ на: комментарий от Cl_Magenta

Как вы получаете UserWarning: local_dir_use_symlinks parameter is deprecated and will be ignored. если в коде что я скинул явно указано local_dir=local_dir? Попробуйте обновить пакет huggingface_hub если он у вас давно установлен и версию питона укажите, на всякий случай.

Obezyan
()
Ответ на: комментарий от anonymous

господь дал им ollama, нет они все равно по помойкам лазают

ollama требует ощутимо больше RAM/VRAM для запуска, потому что рассчитывает необходимую память с запасом. И если модель в память не влезает, то ollama просто откажется её запускать.

На FreeBSD ещё и неправильно рассчитывает свободную память (считая кэши и ARC занятой), и на 256G RAM со свободными ≈150G (из которых 100G отдано под кэши), оно отказалось загружать llama3.1-8b-q8_0.

На этом мы с ollama распрощались навсегда.

mord0d ★★★★★
()
Ответ на: комментарий от Obezyan

from huggingface_hub import snapshot_download

Ну это мы знаем. (=

Можно чуть повозюкаться и сделать оба скрипта таким образом, чтобы не лезть в код, а скармливать model_path и список моделей аргументами.

На отказ в скачке ни разу не попадал, хотя качаю много (скачал-потестил-удалил). Видимо повезло.

У меня из ≈70 раз это случилось раза три.
Случается так, что я скачаю модель, погоняю её немного, удалю, а потом вспоминаю что ещё что-то не прогнал и качаю заново.

Пора бы уже какую-то базу знаний на эту тему заводить, где писать модель, что тестировалось и чем оно хорошо/плохо. Но мне лень. (=

mord0d ★★★★★
()
Ответ на: комментарий от anonymous

llama.cpp сама качать умеет.

У меня оно в контейнере, хранилище моделей в read-only. (=

чото скачало, запустилось, чото пишет

Если уметь тюнить, то оно и быстрее немного (но медленнее, если памяти мало, тут ollama хороша тем, что резервирует запас) и чуть гибче. Но только одну модель, потому нужен какой-то запускатор (их есть, но ссылок не помню).

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Если руки дойдут попробую LSP для llama.cpp. Меня во всех этих нейронках напрягает что результат зависит от используемого бэка (cuda/hip/opencl/blas/mkl/aocl) уж очень сильно разнятся результаты от одних и тех же входных данных на одной модели. С intel-mkl у меня whisper.cpp вообще отказался работать, галлюцинирует рандом на испанском языке.

anonymous
()
Ответ на: комментарий от anonymous

уж очень сильно разнятся результаты от одних и тех же входных данных

import torch

def set_seed(seed):
    torch.cuda.empty_cache()
    torch.manual_seed(seed)
    torch.cuda.manual_seed(seed)
    torch.cuda.manual_seed_all(seed)
    torch.backends.cudnn.benchmark = False
    torch.backends.cudnn.deterministic = True

set_seed(42)
#дальше работа с моделью как обычно
Obezyan
()
Ответ на: комментарий от andytux

мусорная куча

Запустил для интереса в ollama какую-то нищемодель на 3b параметров.

>>> Who was father of Feanor?

Fingolfin was the father of Feanor according to the legendarium of J.R.R. Tolkien’s The Silmarillion.

Интересно, более жырные модели уже умеют менее фривольно обходиться с фактами или это неизлечимо?

Nervous ★★★★★
()
Последнее исправление: Nervous (всего исправлений: 1)
Ответ на: комментарий от Nervous

DeepSeek:

Fëanor's father was **Finwë**, the first High King of the Noldor in J.R.R. Tolkien's legendarium. Finwë had three wives:  

1. **Míriel Þerindë** – The mother of Fëanor. She died after giving birth, as his birth drained her spirit.  
2. **Indis** (a Vanya) – After Míriel's death, Finwë remarried and had more children, including **Fingolfin** and **Finarfin**, who became major leaders of the Noldor.  

Fëanor's full name was **Curufinwë Fëanáro** ("Spirit of Fire"), and he was the greatest of the Noldor in skill and pride, crafting the **Silmarils** and leading his people in rebellion against the Valar. His conflict with his half-brothers, particularly Fingolfin, had far-reaching consequences in the history of Middle-earth.  

Would you like more details on Fëanor's lineage or his role in the events of *The Silmarillion*?
dataman ★★★★★
()
Ответ на: комментарий от dataman

Finwë had three wives

Ой-вей.

Ну ничё, ещё пару миллиардов долларов и десятков тонн железа, и научим его считать до трёх %)

Nervous ★★★★★
()
Последнее исправление: Nervous (всего исправлений: 1)
Ответ на: комментарий от Nervous

Запустил для интереса в ollama какую-то нищемодель на 3b параметров.

Для задач уровня распарсить что-то или код простенький написать что-то хоть немного вменяемое начинается с 8B и низкой температуры.

Для того чтобы початится или написать код уровня миддла боле-менее нормально нужна модель размером 22-24B параметров и никакой квантизации, только bfloat16.

Все что ниже это лоботомированные модели которые могут только мычать.

Интересно, более жырные модели уже умеют менее фривольно обходиться с фактами или это неизлечимо?

За это отвечает параметр templerature. У instruct сетей он обычно равен ~0.3 (не бредит), у чат ассистентов он равен ~0.7 (нормальный ответ с легким разнообразием), у storry telling моделей он равен ~1.0-1.3 (фантазии и бредогенерации). Чем сильнее квантование (Q8 -> Q6 -> Q4) тем меньшее значение температуры приводит к бредогенерации.

Те достаточно не использовать квантованные модели (в крайнем случае использовать загрузку 16 битной модели в режиме 8бит, а не Q8 GGUF) и не задирать температуру и модель перестанет нести чушь.

Но тк большинство просто качает квантованное говно через какую-нибудь ollama ибо железа не хватает на полноценную модель, то и результаты и общее впечатление естественно негативные.

Obezyan
()
Ответ на: комментарий от Nervous

Зачем?

~36Gb видеопамяти занимает студентка второго курса психфака которая может уверенно общаться на русском без ошибок и неплохо так проводить психологический анализ собеседника после общения. И считать она умеет и про А и Б отвечает верно. Сам обучал.

Obezyan
()
Ответ на: комментарий от andytux

Нет, Эллочка это тактическая нейронная сеть принятия решений на поле боя обученная на игроках в Арме. Ей уже почти десять лет. А студентка психфака это Фрирен, ей и полугода нет. Если вы про авторство то да, у них один автор.

Obezyan
()
Ответ на: комментарий от Obezyan

Я конкретно про whisper.cpp и разницу в результатах работы одной модели с одним файлом в зависимости от бэка cpu/blas/vulkan/hip и галлюцинации при использовании mkl. Невидии у меня нет и сравнить выхлоп не могу.

anonymous
()