Monday, 13 November 2023

Обхід обмеження токенів в ChatGPT.

Всім привіт.

Як обійти обмеження токенів та проблеми зберігання історії чатів користувача в ChatGPT? 

ChatGPT автоматично реєструє кожен ваш запит. Ці записи використовуються для подальшого вдосконалення моделі та, можливо, для навчання майбутніх моделей OpenAI. Користувач не може отримати доступ до всіх цих записів. Однак, як обговорювалося раніше, обмежена кількість чатів (запитань і відповідей) зберігається в робочому списку лівої частини інтерфейсу користувача ChatGPT. Щоб найкращим чином використовувати обмежене доступне простір, ви можете видаляти чати, які вам не потрібні для зберігання, копіювати або експортувати дані для зберігання в іншому місці або попросити ChatGPT узагальнити діалог.

ChatGPT пам'ятає, що ви раніше запитували в тому ж чаті, і оперує цим під час спілкування, але тільки до певного моменту. Зокрема, модель пам'ятає до 3000 слів або 4000 токенів діалогу. Вона не може посилатися на інші діалоги, незалежно від того, чи це були раніше діалоги декілька хвилин чи тижнів тому.

Як вже зазначалося, ChatGPT розбиває ваш запит на токени. Проте токени не обов'язково складаються з цілого слова, оскільки пропуски та інша інформація також можуть міститися в токені. OpenAI радить розробникам розглядати токени як "фрагменти слів". Англійська мова більш лаконічна, ніж багато інших мов, і зазвичай вимагає менше токенів для обробки запитань англійською мовою. Нижче подано кілька способів представлення вимірювання токенів в англійській мові:

  • 1 токен приблизно дорівнює 4 символам.
  • 100 токенів приблизно перетворюються в 75 слів.
  • два речення складають приблизно 30 токенів.
  • типовий абзац становить близько 100 токенів.
  • стаття з 1500 слів коштує приблизно 2048 токенів.

Токени використовуються в розрахунках вартості, а також в обмеженнях вхідних і вихідних даних в ChatGPT. Залежно від моделі штучного інтелекту, весь діалог (чат) від введення до виведення обмежений 4097 токенами. Таким чином, якщо ваш запит дуже довгий, скажімо, 4000 токенів, відповідь, яку ви отримаєте, буде обрізана на 97 токенах, навіть якщо це середина речення.

Sunday, 12 November 2023

Расширения для face swap в Automatic1111.

Всем привет.

Для выполнения операции по замене лиц (face swap) в Automatic1111 популярными плагинами на сегодня являются три:

  1. ROOP
  2. FaceSwapLab
  3. ReActor.

ROOP был пионером, но автор его развитие забросил, FaceSwapLab очень функционален, а ReActor молод, развивается и весьма прост в общении.

А теперь про детали. 

Говорить что кто-то из них лучше или хуже можно только в плане интерфейса для пользователя ибо для обнаружения лиц они все используют одну и ту же библиотеку inswapper_128.onnx.

Сегодня на слуху у всех ReActor. Ну что ж, ReActor устанавливается аналогично Roop и FaceSwapLab:

git clone https://github.com/Gourieff/sd-webui-reactor

или штатно из Automatic1111. После настоятельно рекомендую перегрузить сервер Automatic1111, а не просто его GUI.

При первой загрузке ReActor может написать нам что-то врoде "RELOAD SERVER...", но тем менее будет загружаться дальше и даже откроет GUI Automatic1111. Сами понимаете что нормально работать ReActor после этого точно не будет. Хотя автор ReActor-а и утверждает что ReActor все ему необходимое доинсталлирует сам, на практике этого не происходит.

Дело в том что если мы ранее использовали что-то на тему faceswap в Automatic1111 (а мы активно пользуемся расширениями RООР и FaceSwapLab), то ReActor требует onnxruntime библиотеку версии 1.14.0 и выше. Вполне вероятно что наша версия ниже.

Поэтому активируем venv и деинсталлируем ее:

..\python\python.exe -m pip uninstall -y onnxruntime onnxruntime-gpu

После опять запускаем Automatic1111 в процессе которого ReActor (или FaceSwapLab) доинсталлирует более свежую версию onnxruntime.

Saturday, 11 November 2023

Мышление цепочками.


Всем привет.

Автор книги "ChatGPT for Dummies" Пэм Бейкер призывает нас при общении с ChatGPT мыслить  цепочками. Тогда у нас есть шанс получить в ответ именно то что мы ищем и провести наше время с ChatGPT более эффективно. Что же она имеет ввиду?

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

 Чтобы повысить эффективность работы с ChatGPT, пишите запросы как часть потока, а не как отдельные запросы. Таким образом, вы будете создавать запросы, нацеленные на искомые результаты, надстраивая один результат на другом, чтобы достичь зарфанее определенного результата. Другими словами, вам не нужно вкладывать все в один запрос. Вы можете написать серию запросов, чтобы более точно управлять «мыслительными процессами» ChatGPT. Базовые запросы приводят к ответам, которые могут быть слишком общими или расплывчатыми. Когда вы думаете цепочками, вы не стремитесь создать серию базовых запросов; вы хотите разбить то, что вы ищете, на блоки запросов, которые направляют ответы ChatGPT в том направлении, в котором вы хотите, чтобы шел диалог. По сути, вы используете сериализованные запросы для управления содержанием и направлением ответа ChatGPT. 

Это срабатывает каждый раз? Нет, конечно нет. ChatGPT может выбрать совершенно другой ответ, чем ожидалось, повторить предыдущий ответ или просто галлюцинировать. Но сериализованные запросы срабатывают достаточно часто, чтобы вы могли поддерживать целенаправленность диалога и ответы, направленные к цели, которую вы ищете. Вы можете использовать этот метод для формирования единого запроса, представляя себе, как кто-то просит разъяснить вашу мысль или вопрос. Напишите запрос так, чтобы он включал эту информацию, и модель ИИ получит больше контекста, необходимого для предоставления разумного и точного ответа. 

ChatGPT не будет запрашивать разъяснения по вашему запросу, вместо этого он будет догадываться о его смысле. Как правило, вы получите более качественные ответы, уточнив смысл в самом запросе в самом начале. 

Thursday, 2 November 2023

SD модели в одном месте.


Всем привет.

Время от времени приходиться перекидывать модели между инструментами генерации картинок ComfyUI и Automatic1111. Если места на дисках не меряно, то можно на это не обращать внимание, однако лучше держать модели в одном месте. Так будет логичнее и для организации у себя единого банка моделей.

Что же для этого можно предпринять? Из тех GUI что есть у меня А1111, ComfyUI, Fooocus и MRE только Automatic1111 не имеет настроек на внешнее расположение файлов моделей (или я плохо искал). Для трех других такие настройки правятся весьма просто. У себя я сделал так что модели для версии 1.5 хранятся в папке Automatic1111, а модели версии SDXL в папке Fooocus. 

Поэтому, например ComfyUI смотрит и туда и туда, файл extra_model_paths.yaml:

a111:

    base_path: D:/SDPortable/

    checkpoints: |

               models/Stable-diffusion

               D:\Fooocus\Fooocus\models\checkpoints

    configs: models/Stable-diffusion

    vae: models/VAE

    loras: |

         models/Lora

         models/LyCORIS

         D:\Fooocus\Fooocus\models\loras

    upscale_models: |

                  models/ESRGAN

                  models/RealESRGAN

                  models/SwinIR

    embeddings: embeddings

    hypernetworks: models/hypernetworks

    controlnet: |

              models/ControlNet

              D:\Fooocus\Fooocus\models\controlnet

Wednesday, 1 November 2023

Патчим CuDNN для A1111.

Всем привет.

Тем кто имеет видеокарту Nvidia RTX 30-40 серий и ещё что-то с архитектурой Ada Lovelace например, предлагается относительно быстрый и безболезненный способ пересесть на cudnn 12.1 чтоб всё летало быстро и красиво с А1111.

ВНИМАНИЕ - я копирую здесь рецепт от специалиста, который лично не проверял, так как пока не на чем. Так что вся операция на ваш страх, риск и везение!

Итак:

1. Берем приложенный батник (код ниже), кидаем рядом с тем, с которого обычно запускаем Automatic1111 и запускаем его. Ждём пока оно там отработает и возможно откроет webui. Закрываем webui:

@echo off

set PYTHON=

set GIT=

set VENV_DIR=

set TORCH_COMMAND=pip install --pre torch==2.2.0.dev20231002 torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu121

set COMMANDLINE_ARGS=--reinstall-torch

call webui.bat

2. Берем самый свежий CuDNN-установщик zip-архивом, например отсюда:

https://developer.nvidia.com/downloads/compute/cudnn/secure/8.9.5/local_installers/12.x/cudnn-windows-x86_64-8.9.5.29_cuda12-archive.zip/

3. Из архива копируем все файлы из папки bin в  *\StableDif\venv\Lib\site-packages\torch\lib с заменой.

4. Берем наш стандартный батник webui.bat, удаляем все COMMANDLINE_ARGS и заменяем на строки

set CUDA_MODULE_LOADING=LAZY

set PYTORCH_CUDA_ALLOC_CONF=garbage_collection_threshold:0.9,max_split_size_mb:512

set COMMANDLINE_ARGS=--update-check --autolaunch --theme=dark --opt-channelslast --opt-sdp-attention --upcast-sampling

5. Запускаем А1111. 

Как утверждает автор рецепта теперь у вас даже ноутбук сумеет отработать 15it/s в тихом режиме.

Удачи.

Версия на печать

Популярное