Задать вопрос
Ответы пользователя по тегу ChatGPT
  • Как создать чат бот для проверки домашних дел у ребёнка?

    @rPman
    Да, реализовать можно, но качество будет не высоким, ведь понятие порядок у уже обученных ИИ может сильно отличаться от вашего мнения.

    Можно дообучить модель - классификатор, затратив не сильно много денег (есть google-ские vl модельки от 2b, есть qwen-овские и 2b и 9b и 90b на любой вкус и деньги), но даже в этом случае скорее всего качество распознавания 'в лоб' будет порядка 70% ну и обучающую выборку создавать нужно будет долго и кропотливо, каждый раз снимая фото до и после (желательно много раз с разных ракурсов и в разные моменты уборки).

    Если не решать задачу в лоб, то используй фейсбуковскую SAM2 (или прежняя SAM), она разобьет изображение на объекты, каждый объект можно получить его координаты, описание и т.п. вот полученную информацию можно как то обрабатывать уже классическими алгоритмами, ведь будет видно что каждая вещь на каком месте... но качество фото должно быть высоким.

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

    @rPman
    Разве эта задача решается легко? а как ее решали до сегодняшнего дня? что является критерием оценки качества беседы?

    У тебя вроде все указано нужное - whisper получает текст, может с временными метками (хз что такое faster-whisper-xxl, есть есть официальная утилита на python - pip install whisper в консоли задаешь модель и кучу параметров и получаешь текстовый файл).

    Результат слабоват, потому что инструменты такие. Выбирай по умнее. И не забывай, что с русским языком локальные ИИ работают значительно хуже чем с английским (или если это qwen еще и китайский).

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

    а еще бывает вопрос+данные+фразы_помощники типа 'глубоко вдохни и подумай шаг за шагом', 'ты уверен, а если подумать еще раз', 'и какой будет твой окончательный ответ' а так же извлечение строгого ответа из ответа в свободной форме, ведь если сразу ограничить формат ответа, то качество будет хуже..

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

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

    upd. настоятельно рекомендую использовать 70b модели (та же qwen или llama3.3 например). При использовании младших моделей, старайся не использовать квантизацию, она их ломает сильнее чем для старших версий... используй 8bit, не меньше.

    Мне нравятся модели deepseek distilled qwen 14b или 32b? 14b с полным контекстом можно запустить на 2x16gb nvidia 4060ti, при этом рекомендую использовать vllm а не llama.cpp (каждая стоит 50т.р. дешевле ну просто некуда) на скоростях с батчингом до тысячи tps (16 параллельных запросов мне давали 800tps ну а vllm при запуске обещал 31k tps)... внимание, промпты и ответ только на английском, но русский вроде понимает
    Ответ написан
    Комментировать
  • Ошибка телергам бот с openai использована квота, как настроить?

    @rPman
    У вас есть хоть какая то аналитика по логам использования бота и вызовам к api, если вы дергаете api на любой запрос от пользователей, то вас можно легко за-ddos-ить

    Что говорит сама openai https://platform.openai.com/usage/activity
    Ответ написан
  • Какая локальная нейросеть учится на моей базе документов?

    @rPman
    Главное ограничение современного ИИ а основе gpt - это размер контекста, а именно, сколько влезет информации в один запрос. Чем больше размер контекста, тем хуже качество, причем падение стремительное. Открытые сети, которые можно запустить локально, обычно основаны на 8к-16к токенов, и даже если заявлены 128к или миллион, то качество будет очень низкое, ИИ будет путаться и пропускать данные, выдумывать свои... что критично для и без того не очень качественные результаты.

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

    Самое тупое но достаточно качественное - по очереди для каждого документа задаешь свой вопрос, ответы складываешь в контекстное окно (предварительно пропуская через фильтр - 'является ли это ответом на мой вопрос '...'?'), итоговое контекстное окно снова дополняешь вопросом, и выводишь ответ. Это почти самый точный способ (не подходит, когда для ответа нужна информация сразу из нескольких документов) но очень долгий/дорогой, если база документов большая.

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

    Есть еще подход, когда изначальный список документов долго и упорно обрабатывается и на его основе строится древовидная структура - Document Hierarchy Generation, Knowledge Graphs, Hierarchical topic tree и прочее (погугли что там выскикавает на эти названия) и уже с ее помощью можно принимать решение, какие именно дукументы нужны.

    Для небольшого количества документов можно предварительно использовать самморизацию этих документов или их частей, образуя некоторый каталог-выжимку, сложив которую в один запрос можно задавать вопросы уже к нему.. т.е. исходный вопрос задаешь к этой выжимке ('вот список документов с кратким описанием, какие из них необходимо прочитать что бы получить ответ на следующий вопрос: ...',.. нормальные gpt сети мало галлюцинируют, если в тексте будет идентификатор документа и текст по нему.. но к примеру слабые 8b модели работают плохо (но я пробовал давно, возможно уже deepseek distilled модели уже лучше с этим)
    Ответ написан
    Комментировать
  • Как определить объем кода в проекте сгенерированный нейронкой?

    @rPman
    Очень ненадёжно, скорее всего это будет работать именно для программного кода но не текстов.

    Можно посмотреть на perplexity сгенерированого (точнее алгоритм похож), условно на сколько текст отличается от того что могла бы сгенерировать нейронка... примерный алгоритм:

    на вход нейронной сети продается текст, какая то его начальная часть (собственно разделение исходников на блоки и создание стартового промпта и есть проблема, решив которую алгоритм будет работать как ожидается), и проверяем какая вероятность следующего токена (по тексту), условно говоря в нашем тексте "2+2=четыре" (словом не числом), и после "=" ожидаются пробел, буква "ч" или цифра 4, с разными вероятностями, запоминаем вероятность буквы "ч", так делаем для каждого токена, как то складываем собранные вероятности и получение число, чем выше, тем больше шансов что текст сгенерирован этой нейронкой?
    На сколько я помню в perplexity складывают логарифмы вероятностей. Возможно лучше смотреть не на вероятность x, а на 1/x и соответственно сложить, потом разделить на количество токенов, и чем меньше результат тем лучше. Так же можно смотреть разницу между вероятность сгенерировано нейронкой токена и вероятность токена из текста.

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

    Так как тебе нужно еще и посчитать, сколько конкретно каждый участник на 'говнокодил', тебе нужно будет предварительно еще и разметить, какой участок кода чей (для этого придется пройти по всему логу изменений, правда под вопросом доля участия, ведь человек может изменить один символ в строчке, ему одну строчку засчитать? всю функцию? весь файл?)
    Ответ написан
    Комментировать
  • Компьютер с какими характеристика требуется для комфортного использования llama3.1:405b?

    @rPman
    Нужны видеокарты, суммарным объемом 1024гб. тут только специализированные, найти в продаже в странах под санкциями нереал, рынок пустой был уже в 2020-ом. Цены тут 5х от мировых.

    Квантизация тут тоже есть, vllm самая эффективная реализация, поэтому если тебе не нужно дообучать, а только исполнение, то пойдет 8bit квантизация.
    -------

    На процессоре с помощью llama.cpp, где-нибудь 10-20 секунд на токен (кстати повышается в несколько раз при batch запросах, когда тебе нужно обработать сразу много prompt-ов).

    Тебе нужна серверная материнка (хоть прошлого поколения, важна оперативная память), размер памяти минимум 256гб (4битная квантизация, потеряешь в качестве), лучше 512гб. К сожалению рынок тут только БУ со всеми вытекающими от сюда ценами и гарантиями.
    --------

    Можно запускать на нескольких десктопах!
    Год назад в llama.cpp портировали MPI реализацию, поддержка запуска на нескольких нодах (как пример нам было 8 raspberrypi и llama65b) поэтому приобрести 4 компьютера по 64-128гб не проблема, процессор не самый топовый, какой-нибудь AMD Ryzen 5 9600X/7600X (6-ядерный, лучшая производительность singlethread дешевле $300/$200), на сколько я понял, упирается все в сеть, поэтому сверху 10Gb ethernet адаптеры в придачу (они относительно дешевые).

    Каждый из компьютеров обойдется примерно в 100т.р. (можно ужаться и набрать по 70т.р. но там и процессоры по слабее и память по медленнее, но не значительно), и таких нужно 3-4 штуки.

    Сетевые карты 10G покупать парами, объединить в круг (это самый дешевый конфиг). Иначе, еще вложиться в свитч примерно такой же стоимости. Если честно я не нашел информации или каких то расчетов, которые скажут требования к сети, очень даже может быть что хватит встроенных в материнку и гигабитного свитча, речь идет об оптимальной утилизации процессора и памяти.
    --------

    Есть еще один экстремальный вариант, он не требует почти никаких особых затрат, любая даже самая слабая железка с любым количеством RAM (пусть условно 16гб-32гб будет, контекст хранить нужно) но с максимально быстрым ssd nvme диском (или несколькими в raid0). llama.cpp штатно умеет работать с моделями напрямую с диска (mlock режим), будет считывать всю модель по одному разу на каждый токен.

    Например 4 ssd диска (проходной apaser за 2.5т.р. но лучше что то по быстрее с pci-e 4.0) на скорости 2гбайта/с (само собой есть быстрее) с соответствующими pci-e контроллерами обойдутся в считанные 16-25т.р., полученный 'монстр' будет считывать всю модель с 8битной квантизацией за 30-15 секунд, и уже вопрос, успеет ли процессор на такой скорости модель считать.

    p.s. осторожно, ssd на 'чтение' тоже не бесплатно работает, это тоже изнашивает ресурс, только не так быстро как запись, может в тысячу раз медленнее, может в десятки тысяч.
    Ответ написан
    6 комментариев
  • Как поставить правильные инструкции для GPT API для обхода цензуры?

    @rPman
    Полистай идеи в старых jailbreak типа таких (лучше погугли, можно найти больше)

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

    p.s. ты пробовал открытые аналоги, ты пробовал уйти от изображений к текстовому описанию, который получаешь сторонними средствами (недавно вышла facebook sam - модель для сегментирования объектов на изображении, можно разобрать, каждое по отдельности проанализировать, и серией запросов набрать описание)
    Ответ написан
    Комментировать
  • Какие лимиты в ChatGpt-4 за 20 долларов?

    @rPman
    Используй api, в документации кода готового достаточно, лимиты практически отсутствуют (там больше речь о непрерывной нагрузке) и оплатой по факту использования, минимальная оплата 5$ (иначе не будет доступа к gpt4), деньги на счёте будет год лежать до их траты (там оплачиваешь план, остатки сгорают через год)

    К сожалению голосовой ассистент по api недоступен. Так же не доступны агенты и плагины, включая поиск по сети.

    P.s. claude anthropic 32к контекст в бесплатной версии, несколько исходных файлов влезают в контекст, работает неплохо

    P.p.s. напоминаю даже gpt4 отвратительно работают с большим контекстом, пропуская информацию до 80% фактов по тестам.
    Это родовая болячка gpt из-за квадрата в трудоемкости и требованиям к памяти от размера контекста, их обучают по особому, что значительно понижает качество работы в таких условиях
    Ответ написан
    Комментировать
  • Какую выбрать LLM для быстрого локального запуска?

    @rPman
    llama3-70b и Codestral 22B единственные открытые сетки, которые давали мне адекватный вариант на не простые задачи (я почти не трогал qwen и command r+ а они тоже хороши).

    Чтобы оценить требования памяти в зависимости от размера модели и ее квантизации, полистай сообщения этого бота, например вот для llama70b

    p.s. llama.cpp позволит разместить часть весов в GPU а часть в RAM, это имеет смысл если оперативной памяти чуть чуть не хватает, а квантизация уже на грани понижения качества, я так codestral 22b с квантизацией 5bit на 16gb запускал, указав 48 из 57 слоев на gpu с такими скоростями:
    llama_print_timings:        load time =    1997,65 ms
    llama_print_timings:      sample time =     790,28 ms /   256 runs   (    3,09 ms per token,   323,94 tokens per second)
    llama_print_timings: prompt eval time =   21593,29 ms /  7650 tokens (    2,82 ms per token,   354,28 tokens per second)
    llama_print_timings:        eval time =   33864,88 ms /   255 runs   (  132,80 ms per token,     7,53 tokens per second)
    llama_print_timings:       total time =   55938,24 ms /  7905 tokens
    Ответ написан
    Комментировать
  • Можно ли создать аналог my gpts с загрузкой производных файлов через API open AI?

    @rPman
    В общем случае скорее всего нет.
    Лучший gpt у нас у openai, ему на пятки наступают anthropic claude и google gemini (их нормальные модели не доступны бесплатно, а от гугла еще и очень в ограниченном количестве стран, и формально все они не доступны в России). По деньгам они будут сравнимы.

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

    https://chat.lmsys.org/?leaderboard выбирай

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

    Так же проблема открытых моделей - маленькое контекстное окно (llama3 - 8k токенов, только очень маленькие pdf файлы можно в них поместить). А раз не помещаются в контекстное окно, значит потребуется самморизация и деление на части, в общем когда доберешься до конца, итоговый результат будет низкого качества.

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

    @rPman
    Ни одна gpt не сможет полноценно решать такую задачу
    скормить исходники движка Unreal Engine

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

    Стоимость этого будет сравнима со стоимостью полного обучения - миллионы баксов, без преувеличения!

    После этого потребуется еще доводка с помощью алгоритмов RLHF (нужны серии специально подобранных вопросов, так же это очень связано с тем какая была обучающая выборка, иначе модель будет низкого уровня и способна только для задач completion и очень слабо для chat, а тебе нужны instruction

    GPT умеет легко обучаться только на данных, которые влезают в контекстное окно. У лучшей открытой сетки llama3-70b это 8к токенов (обычно это +-1 файл исходников) да и у других от силы 16к и 32к но они слабые и способности запоминать данные во всем окне очень слабые.
    Если что, советую mixtral 8x22b, требует 85гб для 4бит квантизации (в этом случае незначительно теряется качество) или лучше 96гб для 5битной. 64к размер контекста, работает несколько токенов в секунду на процессоре, т.е. будешь ждать но не критично долго

    Но это не значит что совсем нельзя. Привожу пример сессии моей беседы с бесплатным anthropic claude (у них большое окно контекста, влезает несколько исходных файлов), скармливал исходники приложения на c# для поиска дубликатов видео.

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

    Дополнительно в процессе беседы дублирую информацию из основных вопросов, либо задаю наводящие вопросы, если ответ получил не полный

    Сеть поняла написанный код, как он работает и смогла ответить на нетривиальные вопросы.

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

    Будь креативным в промптах, чем лучше запрос тем больше шансов получить ответ.

    Для новых вопросов начинай новую сессию, заново заливая файлы. Чем больше файлов в контексте тем хуже сеть их понимает.

    p.s. 'точно и без ошибок' не будет!
    Ответ написан
    Комментировать
  • Как запустить обучение с 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 скорее всего заточен на китайский)
    Ответ написан
    Комментировать
  • Можно ли с 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 комментария