LINUX.ORG.RU

Запуск ИИ без видеокарт

 ,


1

1

На странице
https://www.altlinux.org/AI

описывается как запустить ollama
(как запустить вторую я не понял из описания)

Вопрос:
а сколько и каких им надо ресурсов?
Какая модель самая маленькая, сколько надо остальным?

Кто пробовал - поделитесь, пожалуйста, личным опытом,
если вы, конечно, не фанат крутого железа.


а сколько и каких им надо ресурсов?

Покупаешь пару килограмм атлонов... Создаешь кластер для нейросетки Маяковский: «И на каждом чипе написано НАТЕ!»

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

Я про применение на десктопном компьютере. Покупать сейчас ничего нельзя, всё втрое подорожало.

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

Смотря что имеется в виду под «без видеокарт». Я запускал маленькие модели с koboldcpp на gtx 1050ti - работало. А это ведь видеокарта 10 летней давности.

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

Я запускал маленькие модели

А что вы перед этим читали? Как мне добиться такого же результата?

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

Работа на CPU в десятки и сотни раз медленнее, чем даже на простеньком GPU. От мелких моделей толку нет. Точнее, область применения мелких llm очень ограничена, нельзя просто взять какую-то и ждать, что она решит твою задачу. Нужно долго и тщательно подбирать такую, которая на конкретно твоей задаче с твоим набором входных данных не будет лажать слишком часто.

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

Это был Kobold AI - ролевая игра в виде специализированной локальной нейросети (модели нужно скачивать самому - их много и есть большие).

А что вы перед этим читали?

Руководство к Kobold AI.

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

Во всём интернете полно именно таких пустых общих метаслов. Мои знания от них не углубляются.

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

Просто скачиваешь appimage LM-Studio и пробуешь что-нибудь из популярного. Этого достаточно, чтобы оценить производительность на CPU. Если втянешься, можно попробовать тонкие настройки для ускорения, но на CPU чуда не жди. На моделях более-менее полезного размера у тебя скорее всего будут единицы токенов в секунду.

Если хочешь генерировать картинки, то качай Stability Matrix. Генерация одной картинки на CPU занимает минут 3-5. На GPU с достаточных количеством памяти - секунды.

Khnazile ★★★★★
()

Насколько я понимаю, для хоть какой-то минимальной производительности нужен объём ОЗУ не меньший, чем размер модели. Для deepseek-а нужен практически терабайт RAM. Есть описания, как его запускают на CPU. Скорость работы – от одного до пяти (на более-менее современных EPIC-ах) токенов в секунду

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

«нужен объём ОЗУ»

у меня есть 64 GB Ram, или 256 на другой машине. А видеокарт нет. Не нужны были. Но знание количества ОЗУ никак не помогает мне запустить это всё.

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

А какие модели, какого размера, ты пытаешься запустить?

Попробуй запрос

запуск llm локально site:habr.com

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

Да фигня это. Есть специальные модели для запуска на цпу. Игрался как-то через оллама с моделькой на десктопном 9700x и 32 Гб оперативки. Для чатика вполне хватает производительности. Ну а память впритык, да

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

Так это работать не будет. Чтобы сделать поиск, нужно обучить модель на твоих книжках. Либо подать все книжки в контекст, но это точно не будет работать, у доступных дома llm контекстное окно слишком маленькое, чтобы там уместилась хотя бы одна книга.

Прикинуть скорость обучения мелкой модели можно так: посчитать все слова во всех книжках, умножить на три. Полученное число разделить на среднюю скорость генерации токенов на твоем оборудовании.

Для обучения нужно брать не квантованые модели.

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

Khnazile ★★★★★
()

Самый простой способ пообщаться с нейронкой это поставить LM Studio.

Модельки на 4b параметров и меньше довольно шустро работают на любом железе и без видеокарты, попробуй qwen4b, например

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

Это совсем другое, тебе надо векторизовать тексты книжек, проще спроси нейронку, она расскажет и код напишет если что

masa ★★★
()

Загружаешь LM Studio и пробуешь нужную модель на CPU-only llama.cpp engine.

Обычно плюёшься от скорости моделей выше 3b, и от «результата» на моделях 7b и ниже, но для чего-то может и хватить

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

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

Самый простой способ начать пользоваться это использовать LM-Studio, сам все скачает и настроит, распространяется в appimage.

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

Я не хочу картинки, я хочу поиск по локальным книжкам.

Задача сверхпростая и тяжелая модель не нужна. Бери 7-8b

Векторная индексация –> библиотека быстрого поиска находит фрагменты –> LLM формулирует ответ

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

Покупать сейчас ничего нельзя, всё втрое подорожало.

Посмотри цены на атлоны, потом разговаривай.

https://www.citilink.ru/product/processor-amd-athlon-x4-950-socketam4-oem-ad9...

" Процессор AMD Athlon X4 950, AM4, OEM [ad950xagm44ab] Код товара: 498686

650₽ " (с)

Буквально килограммами можно покупать. «Можно, а зачем?» Ну, зачем-то продают.

Я про применение на десктопном компьютере

Чтобы что?

а сколько и каких им надо ресурсов?

А почему вы спрашиваете, если «Покупать сейчас ничего нельзя, всё втрое подорожало.»?

Что это, праздный интерес или, как тебя касается подорожание, если все равно не купишь?

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

Вау, это тот самый процессор который никуда не воткнуть, потому чтобы он работал, нужна старая версия bios, а материнские платы не позволяют сделать rollback

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

Вот и вопрос: зачем их продают. Плитка для ванной? :)

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

Чтобы углубить свои знания перейди по ссылке >>>.

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

Да, но вот конкретно у меня LM Studio не смогла опознать процессор и видеокарту. А Ollama - смогла

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

я хочу поиск по локальным книжкам.

Ну вот ещё в Groonga 14.1.3 добавили:

Добавлена (с использованием проекта llama.cpp) поддержка языковой модели phi-4 от Microsoft.

В 15-ой серии они продолжили улучшение интеграции с «ИИ».

dataman ★★★★★
()

Я баловался с nomic-embed-text на http://localhost:11434/api/embeddings вовсе в виртуалке. Сугубо посмотреть на RAG хоть примерно.

Еще и вызывал прямо из процедуры PostgreSQL по http через расширение.

Там никакой магии и сложностей не видел. Другое дело, что это действительно на уровне посмотреть как оно.

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

я хочу поиск по локальным книжкам

Для этого не нужна ни Ollama ни LmStudio и llama.cpp. Достаточно «intfloat/multilingual-e5-large» сети для SentenceTransformer.

Нужно разбить весь текст на кусочки (абацы), сделать из них эмбеддинги с помощью указанной выше модели. Затем по этим эмбеддингам построить FAISS индекс (HNSW) для поиска.

На CPU долго будут создаваться эмбеддинги, но сам поиск потом будет быстрым.

Для понимания что значит долго: захотел я как-то посмотреть кто на ЛОРе имеет виртуалов с помощью кластерного стилеграфического анализа, скачал все темы/посты с форума за последние 5 лет, без анонимусов получилось 482 905 тем и 1 143 593 постов. На GPU с батчингом эмбеддинги построились за 3 часа, на CPU это бы заняло неделю, те разница по скорости примерно в 60 раз.

Поэтому, если у вас обширная библиотека то стоит рассмотреть вариант подготовки эмбеддингов где-то на GPU, а затем использование результата для поиска на CPU.

Чтобы не быть голословным вот небольшой пример как это работает:

#!/usr/bin/env python3

import os
import faiss
import pickle
import numpy as np
from tqdm import tqdm
from PyPDF2 import PdfReader
from sentence_transformers import SentenceTransformer

BOOKS_FOLDER = "./books" # <= замените на путь к своему каталогу с PDF/TXT книгами
CHUNK_SIZE = 500
TOP_K = 5
INDEX_FILE = "faiss_index.idx"
CHUNKS_FILE = "chunks.pkl"
EMBEDDING_MODEL = "intfloat/multilingual-e5-large"

def read_txt(file_path):
    with open(file_path, "r", encoding="utf-8") as f:
        return f.read()

def read_pdf(file_path):
    text = ""
    reader = PdfReader(file_path)
    for page in reader.pages:
        text += page.extract_text() + "\n"
    return text

def load_books(folder):
    texts = []
    for fname in os.listdir(folder):
        path = os.path.join(folder, fname)
        if fname.lower().endswith(".txt"):
            texts.append(read_txt(path))
        elif fname.lower().endswith(".pdf"):
            texts.append(read_pdf(path))
    return texts

def chunk_text(text, chunk_size=CHUNK_SIZE):
    words = text.split()
    chunks = []
    for i in range(0, len(words), chunk_size):
        chunks.append(" ".join(words[i:i+chunk_size]))
    return chunks

def search(query, top_k=TOP_K):
    query_emb = model.encode([query], convert_to_numpy=True).astype('float32')
    index.hnsw.efSearch = 100
    D, I = index.search(query_emb, top_k)
    results = [all_chunks[i] for i in I[0]]
    return results

if __name__ == "__main__":
    model = SentenceTransformer(EMBEDDING_MODEL)
    if os.path.exists(INDEX_FILE) and os.path.exists(CHUNKS_FILE):
        index = faiss.read_index(INDEX_FILE)
        with open(CHUNKS_FILE, "rb") as f:
            all_chunks = pickle.load(f)
    else:
        all_chunks = []
        books = load_books(BOOKS_FOLDER)
        for book_text in books:
            all_chunks.extend(chunk_text(book_text))
        embeddings = model.encode(all_chunks, show_progress_bar=True)
        embeddings = np.array(embeddings, dtype='float32')
        index = faiss.IndexHNSWFlat(embeddings.shape[1], 32)
        index.hnsw.efConstruction = 200
        index.add(embeddings)
        faiss.write_index(index, INDEX_FILE)
        with open(CHUNKS_FILE, "wb") as f:
            pickle.dump(all_chunks, f)
    while True:
        q = input("\nВведите запрос (или 'exit' для выхода): ")
        if q.lower() == "exit":
            break
        res = search(q)
        print("\nРезультаты поиска:")
        for i, r in enumerate(res):
            print(f"\n[{i+1}] {r[:500]}...")
Obezyan
()
Ответ на: комментарий от Saakx

Покупать сейчас ничего нельзя, всё втрое подорожало

Не подорожало, а дорожает. У тебя ещё есть время завизировать риски.

ya-betmen ★★★★★
()
Ответ на: комментарий от goingUp

В свое время мне понравился AI Dungeon (состоящая из текста RPG с полностью генерируемым нейросетью... всем) и кобольд оказался превосходящей его заменой, при том что это локальная полностью подконтрольная пользователю программа.

Leupold_cat ★★★★★
()
Последнее исправление: Leupold_cat (всего исправлений: 2)
Ответ на: комментарий от ya-betmen

завизировать

зачего?

нееет, риски нужно компенсировать кратным повышением заработков. Пусть страдают клиенты.

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

А разве нельзя просто спросить иишку: «согласна ли ты работать на моем железе?»

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

Нет, сначала её надо спросить, есть ли у неё пакет в основном репозитории для моей операционной системы

Saakx
() автор топика
Ответ на: комментарий от Leupold_cat

AI Dungeon

Да, тыкал бесплатную версию, не особо впечатлила (но и бесплатная модель по идее слабая), но потанцевал есть. Надо будет посмотреть этот Кобольд)

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

А можно такую же небольшую, но для PC ? Ну там, чтобы я просто поставил её как пакет в дистрибутиве (Debian 13), и она просто заработала?

Saakx
() автор топика
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.