Tensor Banana
2.65K subscribers
523 photos
122 videos
110 links
Нейросети и всё такое. https://youtube.com/@tensorbanana
Чат по нейронкам: https://t.iss.one/+zFDiHuL1iVA1YWMy
Чат с ботами: https://t.iss.one/+m2TQ5VJLhIRiY2U6
Написать админу и донаты: @talkllamabot
Download Telegram
Анимировал для вас несколько мемов в LUMA.

Бесплатно дают 10 генераций в день, не более 30 генераций в месяц. В вечерние часы пик - большая нагрузка. Можно прождать больше часа, пока ролик будет готов, утром - побыстрее. Для регистрации/входа нужен гугл аккаунт.
Промпты использовал довольно простые, что-то типа "sad man sitting on a bench eating something".
Последний ролик - анимировал несколько своих старых генераций из SDXL.

Генерировать тут: https://lumalabs.ai/
👍313😁3🥴2❤‍🔥1🔥1🤮1💊1
Вышел новый claude-3.5-sonnet

По метрикам опережает GPT-4o и Claude 3 Opus. Новые 3.5 версии Опуса и Хайку обещают выкатить позже. По ценам для API - $3/$15, та же стоимость, что у старого sonnet-3 и чуть дешевле gpt-4o ($5/$15). Из плюсов - контекст огромный - 200 000 токенов (у gpt-4o 128 000).

По-русски общается, в целом, хорошо. Стихи пишет очень хорошо, кажется, даже лучше чем Опус и gpt-4o. Логические задачки на русском решает не все, где-то лучше чем gpt-4o, где-то похуже. Анекдоты пишет не очень, у gpt выходит забавнее.

Поставил claude-3.5-sonnet пока для Пушкина, пусть стихи пишет. В стиле Летова отказывается петь, ругается на копирайты. Цитаты Джейсону тоже не хочет писать ("я не могу генерировать контент от имени реальных людей"). Если и Пушкин будет ругаться на копирайты - верну обратно GPT-4o, с ним почти не было проблем.

Бесплатно попробовать можно на https://chat.lmsys.org/ или на оф. сайте https://www.anthropic.com/ (с впн и зарубежным номером).
👍26🔥1
LLM в русском роулплее. Мои заметки

- Мои любимые LLM на сегодня: command-r-plus-104B (API), saiga-phi3-medium-14B.

- Командира-104 можно юзать бесплатно через официальный API от Cohere, например, в SillyTavern. Дают 1000 бесплатных генераций в месяц на один аккаунт. Цензуры почти нет, но законы лучше не нарушать. За обычное nsfw пока что не банят, хотя в TOS у них написано, что нельзя. Из РФ - нужен впн и гугл почта. API ключ берем тут и прописываем в таверну: https://dashboard.cohere.com/welcome/register

- chat-completion режим в таверне
Если будете использовать командира в таверне, то необходимо выбрать режим chat-completion / Cohere на второй вкладке. Поддержку этого бесплатного АПИ не так давно добавили в таверну 1.12.1.

По умолчанию в режиме chat-completion помимо карточки персонажа еще передается дофига дополнительной информации (main prompt, nsfw prompt, jailbreak prompt), и они в таверне прописаны на английском языке. Из-за этого качество русского языка может снизиться. Рекомендую все эти промпты переписать на русский или совсем убрать. Редактировать на самой первой вкладке. Замечу, что jailbreak prompt передается в самом конце вашего диалога, после вопроса пользователя, перед ответом LLM. Остальные промпты идут в начале диалога.
Режим chat-completion не поддерживается для llama.cpp и koboldcpp. Для них только text-completion.

- phi-3-medium-14B
приятно удивила. Хороший русский язык, довольно умная, влазит в мои 12 GB VRAM в q6 кванте. Из минусов – очень зацензурена, поэтому рекомендую файнтюн от Ильи Гусева - saiga_phi3_medium. По ощущениям – меньше речевых ошибок и меньше цензуры. Гуфы: https://huggingface.co/olkovi/saiga_phi3_medium_sft_m1_d2_kto_m5_d7/tree/main

Рекомендуемые мной настройки для таверны для saiga_phi3: temp: 0.50, min_p:0.10, context: 1500, rep_pen:1.2, freq_pen: 0.15, instruct mode: Enabled, instruct template: phi
В стоп-токены добавляю символ новой строки \n. Чтобы LLM не писала полотна текста лишних пояснений.

phi-3-medium есть бесплатно по API в openrouter. На халяву дают 20 запросов в минуту и 200 запросов в день, но мне показалось, что меньше. Работает без впн, нужна регистрация, чтобы получить api ключ. https://openrouter.ai/

Использование правильного инстракт шаблона улучшает качество ответов модели и уменьшает количество ошибок, но увеличивает цензуру (предположение). Для разных моделей инстракт шаблон разный – обычно его описывают в карточке модели на HF. В таверне прописаны самые популярные шаблоны. Я замерил количество речевых ошибок у phi3 в инстракт шаблоне phi и без него – с ним, грамотность возросла на 20%.

- Сэмплер min_p
Отлично отсекает маловероятные токены в ответе, снижая количество речевых ошибок. Рекомендую значение 0.10 для русского языка. Большие значения улучшают грамотность, но снижают вариативность ответов.

- Использование небольшого контекста.
Качество ответов у большинства LLM, что я тестировал, падает с ростом размера контекста. Ответы становятся однообразными, скучными, появляются повторы. Сейчас использую размер – 1500-2000 токенов. Если нужно, чтобы какие-то факты персонаж запомнил – вношу их списком в карточку персонажа.

- Качество поиска по контексту
Проводил тут тест phi-3-medium-128K (не сайга) и выяснил, что несмотря на ее огромный заявленный размер контекста (128 000) – пользоваться им она умеет плохо. Факт, упомянутый в начале диалога (например, цвет предмета) забывается уже примерно после 1500 токенов беседы. Есть подозрение, что у других моделей ситуация не намного лучше, но сам не тестил. Возможно, проблема именно в русском языке. Поэтому опять переношу значимые факты в карточку персонажа и юзаю маленький контекст.

(продолжение в следущем посте)
👍15🔥7👏1
(часть 2)

- talk-llama-fast 0.1.8

В talk-llama-fast пока нет поддержки instruct режима, но есть поддержка phi-3 и новый сэмплер min_p. Используйте параметр -min_p 0.10 в свежей версии 0.1.8 (кроме min_p ничего нового не добавлял). https://github.com/Mozer/talk-llama-fast/releases/tag/0.1.8

- Сдвиг контекста (сontext shifting)

Llama.cpp и koboldcpp по умолчанию поддерживают сдвиг контекста – это когда при превышении размера диалога контекст не пересчитывается заново (prompt processing), а просто сдвигается без какой-либо задержки по времени.

Без него для больших LLM, которые не помещаются полностью в VRAM, процесс пересчета может достигать нескольких минут, а такое случается очень часто, сводя на нет всю скорость работы. Сдвиг контекста решает эту проблему, но есть нюанс – чтобы сдвиг работал – начало текста не должно меняться, а меняться могут только последние сообщения. Но таверна так не умеет, она всегда клеит в начало карточку персонажа + всякие системные промпты, затем обрезает диалог под нужную длину, выкинув старые сообщения, и только потом отдает все это в ламу.

В результате, при использовании больших LLM 35B+ имеем огромные задержки раз в несколько сообщений, когда весь контекст диалога решил пересчитаться. Но есть решение – нужно в таверне выставить огромный размер контекста (204800 + галочка unlocked) и отдать весь процесс обрезания в руки ламы/кобольда. Из минусов – вы потеряете описание персонажа и системные промпты – они были в начале текста и лама их со временем обрежет. Еще минус – если ваш диалог превысит 200к – таверна опять начнет сама обрезать сообщения и конекст шифтинг опять испортится. Еще минус – иногда лама почему-то плохо обрезает, контекст кончается, и генеририруется бред, но, возможно, этот баг уже пофиксили.

В следующих постах расскажу о моем ноу-хау - инъекции случайных инструкций в роулплее с LLM (накодил для таверны и тг бота). А еще будет пост про нюансы генерации картинок в SD внутри SillyTavern.
👍21🔥9
Случайные инструкции для LLM в роулплее

Последнее время постоянно использую дополнительные случайные инструкции для каждого ответа персонажа. Написал простой скрипт, который вклинивается между запросом пользователя и ответом LLM в таверне и внедряет примерно такую инструкцию: [Инструкция: Будь милой. В ответе верни ровно 10 слов. В конце задай вопрос.] Каждый раз инструкция разная, вероятности у всех предложений прописаны разные. Разные инструкции могут накладываться и дополнять друг на друга. Всего - 32 инструкции в 5-х блоках.

Пример скрипта на питоне:
if random_n0 < 10:
new_instruct += " Начни свой ответ с буквы А."
elif 90 <= random_n0 < 100:
new_instruct += " Начни свой ответ со слова: 'Конечно'."

if random_n2 < 15:
new_instruct += " Не соглашайся ни с чем!"
elif 30 <= random_n2 < 45:
new_instruct += " Вместо ответа пошути."


Из плюсов – вариативность ответов выросла значительно. Удобно рероллить ответы, пока не появится нужный. Лупов стало меньше. Для роулплея подходит идеально, но не подходит для умного помощника, от которого требуется полезность и достоверность. Для мужских персонажей (если надо) предложения придется переделать, чтобы род совпадал. Для инглиша – тоже. Важно заметить, что LLM не всегда дословно исполняет эти инструкции – иногда она их игнорит полностью или частично, это нормально.

В talk-llama-fast пока нет, но скоро появится. Пример скрипта на nodejs для sillyTavern 1.12.1 выложил на свой github. Если у вас таверна этой версии – можно просто заменить 3 файла. Если у вас другая версия – то придется вручную перенести 2 блока кода из моих js файлов в оригиналы. После замены кода – чтобы включить этот режим, нужно прописать текст RND как стоп слово в таверне на третьей вкладке. Пример: ["<|im_end|>", "\n", "RND"]

Полная инструкция на гитхабе на английском: https://github.com/Mozer/SillyTavern_rand_instruct

Работает с кобольдом, llama.cpp и всеми другими LLM по API, например cohere/command-r-plus.

25 июня внедрил эту конструкцию в своего телеграм бота @talkllama для большинства персонажей, кроме поэтов. Вероятности прописаны не очень высокие, поэтому заметить эффект можно не всегда. Но, в целом, впечатления положительные, ответы стали менее шаблонные.
👍19🔥3🤔2
Gemma-2-9b и 27b

Вышли 2 модельки от Гугла, по моим первым оценкам - весьма неплохие. Судя по табличке с арены - 9b моделька где-то на уровне gpt4 старых версий. Сейчас она на 18 месте среди всех. Размер контекста - небольшой, всего 8k.

Затестил 9b-q6 в русском роулплее, и она показала себя весьма хорошо. Это, наверное, одна из немногих моделей, которая может работать на русском при температуре 1.0 почти без ошибок. На последнем скрине есть настройки, с которыми болтал, min_p поставил на 0.06, а температуру на 0.90 - ошибок было очень мало. При этом я включил instruct template 'gemma', его нет по умолчанию в таверне, пришлось прописать вручную на основе карточки на странице модели у bartowski.

Еще использовал свой random instruct код из поста выше для того, чтобы ответы были более разнообразными. Из изменений - уменьшил количество шуток - они тут совсем не по теме выходили. И еще в файле rand-instruct.js изменил строчку new_instruct = "[Инструкция:"+new_instruct+"]"; на new_instruct = "<Инструкция>"+new_instruct+"<end_of_turn>"; - без этого изменения llm иногда возвращала лишнюю квадратную скобку в ответе. Ну и еще: цензуры почти нету или мои инструкции ее перебивают. 😁🤷‍♂️

Гуфы: https://huggingface.co/bartowski/gemma-2-9b-it-GGUF
Гуфы: https://huggingface.co/bartowski/gemma-2-27b-it-GGUF
Нужна свежая лама: https://github.com/ggerganov/llama.cpp/releases
👍17🔥1