Ответы пользователя по тегу ChatGPT
  • Как запустить обучение с deepspeed у себя на пк?

    @rPman
    deepspeed это про обучение на кластере, т.е. вместо покупки одной дорогой серверной видеокарточки, ты поднимаешь кластер из дешевых десктопных и по уму должен получить экономию в деньгах.
    Ответ написан
  • Какие сейчас текстовые нейросети можно локально поставить?

    @rPman
    Если у тебя есть видеокарта (или несколько) nvidia с достаточным объемом gpu vram (обычно это 2х от количества параметров, но можно использовать квантизацию, 8битная не меняет значимо качество работы, если не нужно дообучать, т.е. количество параметров ~ размер памяти + чуть чуть, обычно гигабайт, на внутренние нужды сетки) то достаточно воспользоваться примерами python кода со страницы модели на huggingface. Самое главное, скрипт скачает модель автоматически.

    Если у тебя нет достаточного количества vram или вообще нет nvidia видеокарты, то запускай на процессоре с помощью проекта llama.cpp (тебе не нужно ничего сверх этого). Он использует модели, конвертированные в собственный формат (сейчас это .gguf но он меняется очень часто, за год раза 3 менялся без обратной совместимости), у этого формата и проекта есть бонус - загрузка модели в кеш операционной системы, т.е. повторный запуск приложения не будет тратить время на загрузку модели. Так же есть поддержка gpu (причем и amd тоже, но я не пробовал, формально даже intel дискретка заработает, хз на сколько хорошо), причем фича - можно разместить там только часть модели, а вот python huggingface вариант так не может, либо вся нейронка либо только на процессоре. Так же проект может автоматически раскидывать модель по нескольким gpu (кажется этим управлять пока нельзя), что не очень просто в других случаях.

    llama.cpp в поставке несет server, простенький веб интерфейс и api для работы в своих скриптах. Умеет режим chat (на самом деле не просто это запустить на huggingface примерах) и если покопаться в возможностях кода, есть мегафичи, например сохранение состояния. Особенность алгоритма работы llm такова что на входящие токены тратится время, но можно сохранить состояние в памяти, так работает чат режим, или на диске, и загрузить его по требованию и продолжить в режиме чата (например в контекст записываешь данные, сохраняешь состояние, а затем возвращая его, подсовываешь разные вопросы, загрузка состояния мгновенна, соответственно тратиться время будет только на вопрос и ответ, но не на повторную обработку данных, что актуально для нейронок с большим контекстом)

    Теперь объединяем фичи huggingface и llama.cpp, в поставке последнего идут утилиты конвертации модели из huggingface в .gguf, просто указав название модели, она будет загружена, конвертирована, квантизована, если актуально, в нужную битность (настоятельно рекомендую 8бит, ну если сильно надо, можно 5бит), и будет работать максимально эффективно соответственно твоему железу.

    ну и отвечаю на вопрос, какие нейронки хороши для дома - openchat35 -7B (основан на mistral), mixtral8x7b - 56B (требует оперативку но по скорости работает как 7B), посмотри на qwen1.5 (на любой вкус от 0.5B до 70B), cohere command R+ (кажется 100B версия догнала gpt4), а при наличии очень большого количества памяти - databrix (порядка 256Гб при 8битной квантизации, но работает как 30B модель так как использованы идеи из mixtral)

    А вообще смотри чужие бенчмарки, они может не совсем адекватно показывают ситуацию (очень сложно сравнивать модели, когда в разных доменах знаний и задач они работают по разному) но альтернатива, сравнивать самому.

    p.s. не советую надеяться на то что нейронки будут хороши на русском языке. Они могут его понимать, могут отвечать на нем, но качество результата скорее всего будет максимальным при использовании родного языка (чаще английский, но к примеру qwen скорее всего заточен на китайский)
    Ответ написан
    Комментировать
  • Какого chat GPT бота выбрать в России?

    @rPman
    Чтобы не зависеть ни от кого, запускай локально openchat35 (тюненый мистрал 7b) требования 8-12Gb vram или на cpu (llama.cpu работает несколько токенов в секунду, более чем достаточно).

    Если на машине есть 64гб памяти, запускать mixtral8x7b, на процессоре работает так же быстро как базовый mistral7, только требования к памяти в 8 раз выше). Эта модель по качеству как openai chatgpt35 +-, где то лучше, где то хуже.

    Еще есть интереснее модели, например cohere command R (35B нужно 64+ ram), или databrix (требует 256 ram, работает по скорости как 30B, речь идет о 8бит квантизации, можно уменьшать но за счет ухудшения результатов), эти модели другие, однозначно лучше той же llama70B в разы (ждем кстати llama3)

    Пользуйся чистым llama.cpp, встроенный в него server принимает http запросы, есть примитивный веб интерфейс, умеет отдавать ответ по токенам.
    Ответ написан
    Комментировать
  • Можно ли с ChatGPT создать отчеты и графики на основе GoogleSheets?

    @rPman
    Ищи плагины к chatgpt, не удивлюсь если кто то такой сделал и для табличных процессоров. Напоминаю что chatgpt это не просто gpt, это сложный продукт и пользоваться им не просто.

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

    p.s. я пользовался сторонними площадками типа coze, там и плагины и gpt4... ничего красивого и хорошего с теми же графиками там не получилось
    Ответ написан
    Комментировать
  • Как создать свой чат бот(дообучить модель) на базе собственных знаний(ссылок на ресурсы)?

    @rPman
    первые же запросы с гугла (с поиском по хабру)
    https://habr.com/ru/articles/755114/
    https://habr.com/ru/companies/neoflex/articles/722584/
    https://habr.com/ru/companies/wunderfund/articles/...
    https://habr.com/ru/articles/757086/

    Ключевые слова finetuning, peft модели llama, mixtral, google gemma (вышла буквально на днях, выглядит неожиданно хорошо для 2b/7b)
    Напрямую обучать модель новым знаниям сложно, и дорого а датасет это ты сам собираешь. Есть лайфхак - какими либо способами, на основании контекста формируют запрос в классическую базу данных (например реляционную) делают поиск, а результат вставляют в окно контекста (добавив сопроводительный текст, описывающий это как знания, на которые нужно опираться) и в результате модель получив эти данные, будет их использовать (это самое странное и непонятное в llm-ках). Само собой ВСЕ данные пихать в окно контекста не имеет смысла, оно маленькое а в открытых моделях еще и слабосвязное.
    Гуглим llm rag, например https://habr.com/ru/companies/wunderfund/articles/...

    p.s. просто и красиво не будет
    Технология llm сырая, точнее в ней баг в идеологии, подразумевающий вероятностный результат, т.е. правильный с некоторой вероятностью, которая даже у топовых моделях (не доступных для дообучения обывателю) в среднем на специализированных бенчмарках - 60%-80%, а те модели что доступны, дают верные результаты с с еще меньшей вероятностью.

    Настоятельно рекомендую смотреть в сторону mixtral (для людей доступны модели 8x7b, работают по скорости как 7b а по качеству как 70b), инструкций по дообучению не густо, придется прогружаться в тему, при которой таких вопросов как выше не будут возникать, но односложно ответ не дать.
    Ответ написан
  • С помощью каких инструментов можно запускать локально под Windows большие языковые модели?

    @rPman
    gpt4all это запускалка и менеджер моделей.
    Локально, на машинах без gpu или со слабыми, объем памяти которых недостаточен, используют ggerganov llama.cpp, который уже стал мощным монстром с собственным http api сервером. Используй его напрямую.
    Ответ написан
    Комментировать
  • Где хранится информация и откуда её берет нейросеть для ответа?

    @rPman
    Добавлю, на основе нейросети, создали специальное (сложное) приложение chatgpt. которое позволяет подключать плагины, являющиеся источниками данных (подробно как именно openai обслуживает плагины не известно, есть только общие слова, так как решением о том когда вызывать плагин и какие данные в него слать принимает сама модель, но в этом и был смысл, ты не разрабатываешь приложение - ты описываешь его а модель сама разбирается по словесному описанию, как этим пользоваться).

    Плагин это буквально классическое приложение с api, к которому будет обращаться chatgpt для наполнения данными вконтекст беседы (он тупо вставит возвращенные данные в беседу, но не покажет этого).

    Таким образом chatgpt не только использует свою/свои большие языковые модели как память, но и позволяет использовать внешние источники информации причем максимально свободным образом, так будто там сидит человек и читает все что написано клиентом и разработчиком плагина и делает запросы.

    p.s. напомню, gpt от openai и некоторые другие, могут одинаково хорошо работать как со структурированными данными так и со свободным текстом (ты можешь им json файлы слать, добавив к ним в начало выдержки из документации по их использованию) и попросить в ответ так же давать json, который уже можно будет отправлять 'тупым и устаревшим' приложениям, не умеющим думать но идеально отрабатывающим запросы в бд.
    Ответ написан
    Комментировать
  • Что за роли в API ChatGPT?

    @rPman
    Это части твоего промпта и способ общения нейронной сети с тобой (они не обязательно должны быть в виде чата, но конкретно gpt3.5-gpt4 модели обучены на этом, в описании к модели обычно это указывают).

    system - это часть промпта, которая говорит языковой модели, как именно ты с ней собираешься 'общаться' и кого должна эта модель симулировать. Именно тут описывают как идентифицировать остальные части (роли). Обычно эта часть в самом начале. Например 'Ты недалекая и не опытная женщина по имени Алина, обладаешь развитой интуицией и хорошо чувствуешь настроение собеседника, неожиданно точно подстраиваясь под него.'

    assistant (в приведенном примере это будет Алина) - во всем дальнейшем обсуждении будет использоваться чтобы отделить части текста как сказанные этим ассистентом, т.е. если ты в запросе в конце напишешь "Алина: " то языковая модель поймет что дальше должен быть текст ассистента

    user (в приведенном примере это может быть Собеседник: или Я: или любой другой способ идентифицировать собеседника, отделив его от ассистента) - любой другой участник обсуждения (их может быть много) осторожно, если в системном запросе не выделить какой либо меткой самого себя (т.е. собеседника, задающего вопросы и ожидающего ответа) то языковая модель будет беседовать сама с собой, подставляя разных собеседников, задавая вопросы и делая ответы.

    Приложение, которое генерирует собственно токены, может контролировать (задается его настройками), какая последовательность токенов будет финишной и будет прерывать генерацию, отдавая контроль пользователю (например llama.cpp это ключ --reverse-prompt), так же сеть могут обучать специальным финишным токеном.

    Т.е. формально нет особой разницы между user и assistent, и различия и смысл определяются в системной части промпта.

    Если говорить конкретно про chatgpt api то там эти роли буквально имеют это значение

    p.s. в разных языковых моделях для выделения частей сообщения по смыслу и в т.ч. по собеседникам, могут определяться специальные токены.
    Ответ написан
    1 комментарий
  • Как подключаться только к chat gpt с vpn, какой софт использовать?

    @rPman
    Своя vps, socks proxy на основе ssh тунеллинга и отдельный профиль браузера с настроенным в нем прокси
    Ответ написан
    Комментировать
  • Обход блокировки API openai?

    @rPman
    Мой ответ не про openai в частности а в целом про прокси.

    Арендуешь vps с поддержкой ssh (т.е. любой) и ничего не настраивая на нем кроме может пользователя (команда useradd ... и пароль passwd) и опционально настраиваешь беспарольную авторизацию ssh на своем локальном компьютере (смотри как настраивать твой любимый клиент ssh) делов на 1 минуту. А дальше, в своем клиенте добавляешь настройку тунеля -Dпорт (это ключ ssh, например в putty он называется Dynamic) и после подключения к своей vps-ке (в этом окне ssh ничего больше не надо делать, пусть висит) у тебя локально на комьютере будет поднят socks прокси сервер, который прописываешь в браузере или где тебе надо. Например -D1080 даст socks5 прокси по адресу localhost:1080

    Теперь про аренду vps, идешь на поисковик дешевых vps-ок lowendstock и выбираешь себе от 2 бакса в год (но это совсем ущербные), там же почти все принимают оплату биткоинами. У меня годами работают vps-ки с ценой от 1$ в месяц до 3$ (последняя для моих скриптов с 1gb ram и 20gb ssd, не самая шустрая но свои $ отрабатывает на ура)

    p.s. если vps-ка на основе kvm (точнее можно и на любом но нужен модуль tun) то есть шанс настроить ssh сервер на работу vpn-ом буквально

    upd. к сожалению в россии провайдеры стали потихоньку ломать ssh протокол
    , и он рандомно может быть очень медленным, больших скоростей не жди, у меня на ростелекоме с 5мбайт/с может упасть до 100кбайт/сек и держаться так часами (притом что канал у ростелекома широкий, я с того же huggingface на 25мбайт/cек качал гигабайтами нейронки)
    Ответ написан
    3 комментария
  • Как создать бота ChatGPT с обучением только на своих данных?

    @rPman
    Над решением задачи галлюцинаций на текущий момент работают лучшие умы планеты, красивого решения нет но специалисты из OpenAI говорят что считанные годы и проблема будет решена.

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

    Это особенность любых нейросетей можно представить так, твои обучающие данные это точки, которые ты в слепую бросаешь на ось, а область верных утверждений это отрезок. Если ты будешь пытаться определить отрезок 'бросая' только точки внутри отрезка, алгоритм сможет проводить разделение верно/неверно в любом месте за пределом этих точек, ведь любой такой вариант будет непротиворечив. А значит когда нейросеть попадет в ситуацию, не прописанную напрямую в обучающей выборки (то чего ы и хотим добиться) она будет предлагать варианты за границей нашей реальной правды, думая что линия правды дальше
    Ответ написан
    2 комментария
  • Где найти информацию о обучении chat gpt с обходом правил?

    @rPman
    Обучение нейронной сети должно использоваться для того чтобы дать новые знания/новую информацию либо закрепить уже имеющуюся.

    Если попытаешься использовать finetune для того чтобы переобучить сеть (особенно это актуально для случаев, когда сеть 'выровняли', запретив ей говорить на какую то тему или обучили ее предвзято на какую то тему), то результат скорее всего будет сомнительный и по данной теме языковая модель скорее всего начнет галлюцинировать.

    Если тебе нужно практическое применение, посмотри ссылки в этой статье
    Ответ написан
    Комментировать
  • Как сделать узконаправленным ChatGPT api python?

    @rPman
    Эти и другие задачи, решаемые с помощью chatgpt, требуют использования технологии под названием prompt engineering (пора, я думаю, тег на хабре добавлять, чем это хуже какого-нибудь c++ или lisp?).

    Красивого решения нет но один из способов, делать предварительный запрос вида - 'является ли тематика следующего вопроса медицинской, ответь да или нет:', и проанализировав этот ответ можно выдавать плашку или делать уже прямой запрос.

    Для классификации можно использовать более простые языковые модели, включая открытые, которые будут хоститься на твоем железе, правда их использова уже не так просто но что не сделаешь ради экономии.
    Ответ написан
    4 комментария
  • Есть ли в свободном доступе законный аналог ChatGPT?

    @rPman
    Как только в сети появятся адекватные и вылизанные датасеты обучающей выборки, так сразу.

    Оказалось нормальный ИИ это не только про большое количество весов (и это кажется не так актуально, например гугловский palm 540B сравним c llama 65B и хуже chatgpt35 и тем более 4 которые порядка сотни-двух) но и большая обучающая выборка.

    Сейчас кажется большинство крупных компаний, задумавшихся о ИИ в срочном порядке каждый сам себе набирает датасеты (вместо того чтобы всем миром объединиться и сделать 10x круче)
    Ответ написан
    Комментировать
  • Как разрешить ChatGPT генерировать 18+ фото?

    @rPman
    гуглить: stable diffuson webui
    Клонируешь с github, читаешь доку, запускаешь батник (если видяха nvidia 3гб ram то добавь ключ --lowvram), если видяхи нет или она совсем плохая, то ключ --use-cpu auto и смотри вывод может какие еще ошибки полезут (там подскажет что надо).
    Если запустится без ошибок, то интерфейс открывай в браузере (адрес оно в консоли напишет)

    подробно https://habr.com/ru/company/selectel/blog/712316/

    Нудсы вроде бы рисует и оригинальная сетка, можешь загрузить модели от сюда civitai.com там народ выкладывает свои дообученные модели, если говорить не про 18+ мне понравилась dreamlikePhotoreal20

    Осторожно, сеть генерит тонны кринжа. Лишние конечности, страшные морды, может легко пригнорировать запрос или его часть (мне кажется там от сида зависит, если его фиксировать и менять запрос, баги иногда сохраняются).

    Коротко про текстовый запрос:
    * только английский
    * (часть фразы:вес), вес число меньше больше 1, десятичная точка, больше, например 1.1 выше важность условия, ниже - соответственно ниже
    * количество чего-либо можно указать числом 2box, 3girl и т.п.
    * старайся описывать все содержимое картинки, иначе сеть придумает за тебя (она и при описании может проигнорировать, но результат качественнее получается)
    * управление позой, левая/правая рука, полный вид или только лицо и прочее - контроль отсутствует, заставить сеть генерировать людей которые что то делают кроме как 'сидят стоят или идут'.. сложно, иногда что то получается

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

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

    p.p.s. если тебе нужны нудсы, не мучай себя, зайди на порносайты, гугли порно картинки, тем же duckduckgo (там safe search отключается без регистрации)
    Ответ написан
    Комментировать
  • ChatGPT создаёт новый код или только дублирует существующий из примеров? Он понизит зарплаты фронтендерам-джунам?

    @rPman
    Текущую версию ChatGPT "бояться" не надо, на текущий момент это продвинутый поисковик по некой обобщенной базе данных с зачатками интеллекта, он не способен понять свои ошибки а значит нужен тот кто будет за ним следить.

    p.s. попробуйте попросить ИИ загадать число, цвет и совершить "в уме" некие действия с ним, не сообщая загаданное
    он не сразу вас поймет но научить его этому можно

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

    но это ограничение api а не логики на серверах openai
    Ответ написан
    Комментировать