Форум программистов, компьютерный форум, киберфорум
Python: ИИ, нейросети, ML, агенты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
3 / 3 / 1
Регистрация: 01.04.2016
Сообщений: 120

Как разобраться в LLama (llama_cpp)

21.02.2025, 13:48. Показов 2059. Ответов 8

Студворк — интернет-сервис помощи студентам
Доброго времени!

Нашёл два разных примера (llama_cpp) для ответа на вопросы через LLM2,
первый работает с английским текстом (llama-2-7b.Q3_K_S.gguf - https://huggingface.co/TheBlok... olve/main/),
второй с русским (model-q2_K.gguf - https://huggingface.co/IlyaGus... olve/main/).


И вот в чём вопрос, 1-й пример отвечает сразу и за малое время может на несколько вопросов
ответить, 2-й же отвечает посимвольно и даже один вопрос занимает много времени.
Вопросы:
1) Почему первый пример так быстро работает на обычным ПК без GPU?
2) Как сделать чтобы вместо английского он также быстро и на русском отвечал?
3) Где взять нормальную языковую модель ещё кроме этой?
4) Может есть что-то получше чем llama_cpp? Но GUI и всё остальное вообще не нужно у меня не чат бот

Код 1-го примера
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
def get_answer(llm, prompt):
 
      output = llm(
            prompt, # Prompt
            max_tokens=32, # Generate up to 32 tokens, set to None to generate up to the end of the context window
            stop=['Q:', '\n'], # Stop generating just before the model would generate a new question
            echo=False # Echo the prompt back in the output
            #echo=True # Echo the prompt back in the output
      ) # Generate a completion, can also call create_completion
 
      return output
 
llm = Llama(
      model_path=model_path,
      n_gpu_layers=-1, # Uncomment to use GPU acceleration
)
 
 
questions = [
      'Q: Name the planets in the solar system? A: ',
]
 
 
for question in questions:
 
      output = get_answer(llm, question)
      print()
      print(Fore.GREEN + question)
      print(Fore.CYAN + str(output['choices'][0]['text']))
Код 2-го примера
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
SYSTEM_PROMPT = 'Llama answer'
SYSTEM_TOKEN = 1788
USER_TOKEN = 1404
BOT_TOKEN = 9225
LINEBREAK_TOKEN = 13
 
ROLE_TOKENS = {
    "user": USER_TOKEN,
    "bot": BOT_TOKEN,
    "system": SYSTEM_TOKEN
}
 
#!##########################################################################################
def get_message_tokens(model, role, content):
    message_tokens = model.tokenize(content.encode('utf-8'))
    message_tokens.insert(1, ROLE_TOKENS[role])
    message_tokens.insert(2, LINEBREAK_TOKEN)
    message_tokens.append(model.token_eos())
    return message_tokens
 
#!##########################################################################################
def get_system_tokens(model):
    system_message = {
        "role": "system",
        "content": SYSTEM_PROMPT
    }
    return get_message_tokens(model, **system_message)
 
#!##########################################################################################
def interact(model_path, n_ctx=2000, top_k=30, top_p=0.9, temperature=0.2, repeat_penalty=1.1):
 
    model = Llama(model_path=model_path, n_ctx=n_ctx, n_parts=1,)
 
    system_tokens = get_system_tokens(model)
    tokens = system_tokens
    model.eval(tokens)
 
    while True:
 
        user_message = input('> ')
        message_tokens = get_message_tokens(model=model, role='user', content=user_message)
        role_tokens = [model.token_bos(), BOT_TOKEN, LINEBREAK_TOKEN]
        tokens += message_tokens + role_tokens
        generator = model.generate(tokens, top_k=top_k, top_p=top_p, temp=temperature, repeat_penalty=repeat_penalty)\
 
        for token in generator:
            token_str = model.detokenize([token]).decode('utf-8', errors='ignore')
            tokens.append(token)
            if token == model.token_eos():
                break
            print(token_str, end='', flush=True)
        print()
 
interact(model_path)
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.02.2025, 13:48
Ответы с готовыми решениями:

как разобраться с циклом и таблицей
Здравствуйте. не могу разобраться с циклом и таблицей. 1) есть таблица длина изменяется как в ней округлить цифры до 8 нулей...

как разобраться с задачей
Добрый день! что не так: Напишите программу, которая принимает на вход список чисел в одной строке и выводит на экран в одну строку...

Массивы/списки, не могу разобраться как их создавать
Ребят, помогите, я не могу понять как мне сделать систему боёвки, у меня была идея, то что игроку даются 4 рандомных действия, которые при...

8
7 / 7 / 0
Регистрация: 05.04.2025
Сообщений: 32
29.09.2025, 12:09
Может потому что у вас в первом случае максимальное кол-во токенов 32, а во втором 2000?
Сам плаваю в моделях на хуго и пока только IlyaGusev/saiga_yandexgpt_8b запустилась и даже дообучилась,
но дообученная в память не влазит.
0
56 / 56 / 4
Регистрация: 10.06.2023
Сообщений: 801
29.12.2025, 14:13
Цитата Сообщение от yurakir20 Посмотреть сообщение
первый работает с английским текстом (llama-2-7b.Q3_K_S.gguf - https://huggingface.co/TheBlok... olve/main/),
второй с русским (model-q2_K.gguf - https://huggingface.co/IlyaGus... olve/main/).
По обеим ссылкам 404. Не могу скачать ни одну *.gguf Бьюсь пол дня.
0
56 / 56 / 4
Регистрация: 10.06.2023
Сообщений: 801
30.12.2025, 09:17
Первым шагом нашел, загрузил и распаковал llama.cpp
Затем долго искал модель
По совету gigaChat: Chrom `llama_1b_ru.Q4_K_M.gguf download вышел в Hugging Face, повезло увидел строку с командой загрузки модели, работающей из директории llama.cpp: \llama.cpp>llama-cli --hf-repo hugging-quants/Llama-3.2-1B-Instruct-Q4_K_M-GGUF --hf-file llama-3.2-1b-instruct-q4_k_m.gguf -p , которая и установила англоязычную модель.
0
Эксперт функциональных языков программированияЭксперт по математике/физике
4313 / 2105 / 431
Регистрация: 19.07.2009
Сообщений: 3,204
Записей в блоге: 24
30.12.2025, 12:24
Цитата Сообщение от VAF34 Посмотреть сообщение
По обеим ссылкам 404. Не могу скачать ни одну *.gguf Бьюсь пол дня.
Это потому что ссылки в первоначальном сообщении неполные.

Должны быть
https://huggingface.co/TheBlok... 3_K_S.gguf
https://huggingface.co/IlyaGus... -q4_K.gguf

Соответственно, страницы моделей:
https://huggingface.co/TheBloke/Llama-2-7B-GGUF
https://huggingface.co/IlyaGusev/saiga2_13b_gguf

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

Цитата Сообщение от VAF34 Посмотреть сообщение
llama-cli --hf-repo hugging-quants/Llama-3.2-1B-Instruct-Q4_K_M-GGUF --hf-file llama-3.2-1b-instruct-q4_k_m.gguf -p
Ключ --hf-file избыточен, потому что --hf-repo позволяет скачать модель:
Bash
1
./llama-cli --hf-repo hugging-quants/Llama-3.2-1B-Instruct-Q4_K_M-GGUF -p 'Why sky is blue?'
Впрочем, здесь вообще какая-то левая модель скачивается: https://huggingface.co/hugging... 4_K_M-GGUF
Для использования одной из вышеупомянутых надо после --hf-repo указать имя одной из тех моделей.
0
56 / 56 / 4
Регистрация: 10.06.2023
Сообщений: 801
31.12.2025, 13:57
Цитата Сообщение от Mysterious Light Посмотреть сообщение
Ключ --hf-file избыточен,
Этот ключ сразу после скачивания запускает модель
Теперь у меня 5 разных *.gguf но ни один из них не использует всю имеющуюся у меня оперативную память. Максимум на систему и llama 9 Gb тогда как у меня 24Гб. Хотя, существует противоречие больше памяти медленнее.
0
Эксперт функциональных языков программированияЭксперт по математике/физике
4313 / 2105 / 431
Регистрация: 19.07.2009
Сообщений: 3,204
Записей в блоге: 24
31.12.2025, 18:42
Цитата Сообщение от VAF34 Посмотреть сообщение
Этот ключ сразу после скачивания запускает модель
У меня модель запустилась и без этого ключа (команду я привёл).

Цитата Сообщение от VAF34 Посмотреть сообщение
ни один из них не использует всю имеющуюся у меня оперативную память
Модель использует столько памяти, сколько ей надо, плюс память под контекст.
Надо больше израсходовать памяти — можно увеличить размер контекста. Правда, на скорости генерации токенов это никак не отразится.
0
56 / 56 / 4
Регистрация: 10.06.2023
Сообщений: 801
31.12.2025, 22:08
Поставил LM Studio сравнил с llama.cpp похоже, но помедленнее на Qwen было не сравнено хуже, чем прямо Qwen. При прямом использовании узнает вас и видит все ваши предыдущие чаты. Их можно продолжить. Офлайн работа нужна только до сохранения деталей вашей работы в секрете от ИИ.
0
Эксперт .NET
 Аватар для Usaga
14126 / 9345 / 1350
Регистрация: 21.01.2016
Сообщений: 35,110
01.01.2026, 04:24
Цитата Сообщение от VAF34 Посмотреть сообщение
LM Studio сравнил с llama.cpp
LM Studio основана на llama.cpp Это же просто очень красивая обёртка над llama.cpp, с ручками для разных ключей llama.cppю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.01.2026, 04:24
Помогаю со студенческими работами здесь

Как разобраться в переносе строк?
Привет всем. Я тут начал изучать Python самостоятельно путем решение всяких задач. Помогите, пожалуйста, с вот этой вот задачкой. Объясните...

Подскажите как разобраться с проблемой вывода
Бот выводит вот такое: Воскресенье 13:00 - 14:00 Суббота 14:00 - 15:00 Воскресенье 14:00 - 15:00 Суббота 15:00 - 16:00

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

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

Не могу разобраться как сделать переход между вкладками
import tkinter as tk import requests from tkinter import font from PIL import Image, ImageTk from tkinter.ttk import * from...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru