Задать вопрос
  • Ошибка телергам бот с openai использована квота, как настроить?

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

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

    @rPman
    В api некоторых провайдеров есть опция structured outputs.

    Например для локальных открытых сетей в llama.cpp можно задать грамматику, и ответ будет генерироваться таким, что бы ей соответствовать... работает не идеально, исходя из особенностей gpt качество структурированных ответов ниже чем свободных, но с ними легче работать в своих скриптах автоматизации.
    Ответ написан
    Комментировать
  • Какая локальная нейросеть учится на моей базе документов?

    @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 и соответственно сложить, потом разделить на количество токенов, и чем меньше результат тем лучше. Так же можно смотреть разницу между вероятность сгенерировано нейронкой токена и вероятность токена из текста.

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

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

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

      Что бы реализовать одновременную работу в нескольких браузерах, тут либо открыть эти браузеры одновременно (разные профили, например firefox -p имя_профиля) и изменить их размер что бы они были видны одновременно, соответственно скрипт делать таким что бы он рулил сразу несколькими браузерами, либо запускать каждый экземпляр в виртуалке

      Подход очень не устойчив к изменениям в интерфейсе, да банальаня капча, которой раньше не было, уже потребует усложнять скрипт
    • Второй - посложнее, но эффективнее. Провести реверсинженеринг всего что происходит в веб приложении изнутри (зачастую достаточно того что видно в консоли разработчика, но есть способы у веб приложения вставлять тут 'палки в колеса) и симулировать сетевые запросы из своего приложения или даже простым curl. Приложения с простым функционалом бывает можно обмануть чуть ли не вручную, посмотреть запрос, что отсылает кнопка на сайте в консоли разработчика, скопировать от туда эту команду и просто вызвать ее в нужный момент повторно, подменив в поля, которые меняются с каждым разом (например информация для этого запроса уже есть на странице, ее можно заранее вытащить, подправить команду, и в нужный момент её просто запустить)

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

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

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

    p.s. очень странно, что подобные подходы (кто первый нажал тот и выиграл) к выбору клиента, все еще используются, ясно ведь что по честному человек тут уже давно вне конкуренции. Честнее было бы просто устраивать лотерею.
    Ответ написан
    2 комментария
  • Перенос системы на аппаратный Raid 1?

    @rPman
    Перед переносом, необходимо установить драйвера на этот рейдконтроллер (вы бы хотя бы модель контроллера сказали).

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

    @rPman
    В windows, что бы гарантировать что никакие антивирусы, средства обновления, индексации и прочий неконтролируемый мусор не трогали диск, можно его отключить
    devcon remove=@ROOT\FTDISK\0000
    а при необходимости включить
    devcon rescan
    А само отключение настроить параметрами энергосбережения
    Ответ написан
    4 комментария
  • Как и от каких атак защитить свой сервер, находящийся на чужом гипервизоре?

    @rPman
    Универсально защититься нельзя. Но некоторые атаки будут стоить дорого, на столько что не будут иметь смысла.

    Все же дешевле будет приобрести отдельный компьютер, разместить его в сейфе с пломбами и добавить контроль за целостностью корпуса - при вскрытии выключать компьютер... и да, оперативную памяти перед выключением нужно очищать, в linux вроде помню можно было даже при панике это сделать, а в windows хз (потому что содержимое ram можно восстановить если заморозить его и оперативно извлечь из компьютера). Кстати про оперативную память, если запустить свой гипервизор, в котором есть поддержка шифрования памяти (в современные процессоры эту фичу уже встроили AMD SME/SEV, Intel TME/MKTME) то это защитит от атаки извечения памяти.

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

    upd. компьютеры с поддержкой TPM 2.0 поддерживают шифрование на уровне биос, т.е. загрузчик можно зашифровать, ключи залить в биос, и никто даже реверсить не сможет. Пример как это с дебианом сделали
    Ответ написан
    Комментировать
  • Какие есть виртуальные мониторы для компьютеров?

    @rPman
    в linux есть virtual framebuffer xserver, штатно идет с наверное любым linux, создает виртуальное графическое рабочее место в памяти.

    Так же нагуглилось, можно создать несколько мониторов и рулить ими через vnc
    https://unix.stackexchange.com/questions/671663/mu...
    Xvnc :50 -screen 0 1600x600x24 &
    DISPLAY=:50
    xrandr --setmonitor screen0 800/400x600/300+0+0 VNC-0
    xrandr --setmonitor screen1 800/400x600/300+800+0 none
    xfreerdp /multimon:force /monitors:0,1 /u:... /p... /v:...
    Ответ написан
    Комментировать
  • Программа для создания плана этажей с "нюансиком"?

    @rPman
    Если 'рисовать план самому' можно в другой, более подходящей для этого программе, то ТЗ у вас такое - отображать планы этажей, на каждом отображать список сотрудников, перед каждым чекбоксик с двумя состояниями, при изменении сохранять на диске/в базе.

    так вот вы сами можете это создать, используя к примеру microsoft visual studio (community), на каком-нибудь .net языке (c# популярен но ide умеет работать и с cpp.net и c pyrhon.net и еще несколькими языками, не очень совместимые само собой с оригиналами но отличия там косметические, в использовании фреймворка и импорта библиотек), накликикая интерфейс. В нем очень хорошая поддержка баз данных связанных с интерфейсом (Dataset и Bindings), но и без них, можно по 1 команде сохранять и загружать данные из файла (.xml например).

    Такую программу может сделать даже новичок за вечер другой...

    Но помним что в ТЗ не учтены почти наверняка нужные вещи типа атворизации, редактирования списка участников (они же могут быть сменить помещение, уйти в отпуск или быть уволены), учета взаимодействий (чекбоксик уже скоро превратится в комбобоксик - что именно сделал, а это уже и интерфейс не по сложнее и справочник вести) и так простая программа уже вырастает в не простую, и поддерживать новичком уже будет сложно.
    Ответ написан
    Комментировать
  • Где дешевле всего купить 10 Тб облачного места?

    @rPman
    Криптовалюта siacoin, оплата в криптовалюте, хранение дешевле amazon glacier (большая часть цены - трафик download уже сохраненного себе назад)
    https://siascan.com/
    Average storage price Average download price Average upload price
    $1.33/TB $3.72/TB $0.11/TB
    Цены приблизительные в месяц.

    С точки зрения работы это фактически торренты (по умолчанию 3х резервирование и разделение на 40 мест хранения), все участники финансово заинтересованы продолжать хранить и раздавать данные, все зашифровано, децентрализовано.

    Интерфейс на уровне типовых пользовательских приложений dropbox/onedrive (по умолчанию без веб интерфейса), есть api провайдеры (все локально без единой точки отказа) совместимого s3, есть драйвер файловой системы linux fuse и куча всего, дольше изучать...

    p.s. с точки зрения майнеров проект не привлекательный, из-за странного поведения разработчиков, но так как у него есть использование, цены на эту криптовалюту не манипулятивные трейдерами. Проект живет почти 9 лет уже, так что имеет смысл для рассмотрения.
    Ответ написан
    7 комментариев
  • Можно ли использовать 2 qbittorrent-portable на одном компьютере?

    @rPman
    нагуглил
    qbittorrent.exe --profile=c:\qbfolder1
    qbittorrent.exe --profile=c:\qbfolder2

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

    @rPman
    upd. https://github.com/myshell-ai/OpenVoice
    https://github.com/jasonppy/VoiceCraft
    но ты не очень контролируешь эмоции, полагаю тут это тюнингом нужно делать
    ---------------

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

    Сам не пользовался, но по отзывам говорят звучит шикарно,.. русский само собой с акцентом.

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

    p.s. еще этим занимались alibaba qwen, у них точно были gpt модели, где голос был на входе и на выходе, но там английский и китайский, я тоже не смотрел

    Ну и facebook чем то таким занимается, полистай их публичный архив, там есть audio-audio трансформер, но там явно без каких то значимых результатов, что бы сравнивать с топами, но все открыто
    тупо первое попавшееся, кажется это переводчик голос-голос
    Ответ написан
    Комментировать
  • Нужна очень простая БД для учета лабораторного барахла. Что существует готового?

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

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

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

    p.s. отмечать кто взял куда положил можно и в экселе, только он не защищен от манипуляций, ведь его можно открыть и отредактировать, подставив другого человека.. вот тут и вылезают приложения, в которых вводится атворизация, разграничения прав доступа, логирование событи и ограничение функционала
    Ответ написан
    Комментировать
  • LLM. Qwen2.5-Coder-32b-IQ2_XS vs Qwen2.5-Coder-14b-Q4_K_M. Что лучше?

    @rPman
    Квантизация сильно ломает слабые модели, настоятельно не рекомендую 8b..14b использовать с квантизацией меньше 8бит, да и с ней будут проблемы

    Лучшая локальная модель, с адекватным размером, на текущий момент - это дистиляция deepseek r1 какой-нибудь qwen 14b или 32b

    Использовать с vllm, например deepseek-r1-qwen-14b с 32к контекстом, 8бит квантизацией, батчингом и местом для kv cache работает на 2x16gb ram (точнее от каждой тратится по ~14gb), на 2x4060ti 16gb (стоят по 50т.р., это самая доступная gpu с самым дешевым vram) или используй какой-нибудь vast.ai, с одиночным запросом работает 20-30 токен/сек, а если одновременно 16 запустить, разгоняется до 250-500 токен/сек

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

    Программирование у deepseek неожидано хорошее, да и в простой логике отвечает неплохо (тест на 'количество братьев у сестры' могут накосячить и топовые сети, эта выдаст неправильный в 3 из 16 запросах, и если изучить ее рассуждения, там прямо так и пишет что люди могут на этот вопрос ответить вот так поэтому пишем неверное число), подчеркиваю, на модели 14b, а уж оригинальная MoE на 600b и подавно шаг в шаг идет с топами.
    Ответ написан
    Комментировать
  • AHCI VS RAID на уровне команд?

    @rPman
    scsi, ide и ahci это способы, которыми операционная система общаеися с дисковыми устройствами (кстати не обязательно диски, но на практике ничего кроме cd/dvd экзотического не подключить, помню для scsi были сканеры)

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

    ahci - современный полнофункциональный интерфейс, например trim для ssd послать не получится через ide.

    raid это не интерфейс, это функционал контроллера, который создаёт виртуальный диск на основе нескольких, доступ к нему будет скорее всего по ahci (по уму не должно было бы ограничений, но в bios все поголовно совместили эту опцию в одну)

    P.s. существуют контроллеры, обычно это дешевле sata-usb которые умудряются так плохо транслировать команда, что не только trim не доходит, но даже smart становится не доступен (который и по ide доступен)
    Ответ написан
  • Как обойти блокировку записи и трансляции экрана?

    @rPman
    Запись видео со смартфона?
    Я читал, поднимают миракаст wifi сервер (штатная фича windows при наличии wifi адаптера, с этим компьютер выступает в роли беспроводного монитора), подключают смартфон или планшетник к нему, и с этим видео уже делают что угодно.

    Возможно есть опенсорс реализации, где сразу пишут изображение в файл.
    Ответ написан
    Комментировать
  • Как настроить 2 равноценных шлюза в интернет (windows) на одном сетевом адаптере в режим автопереключения (балансировки)?

    @rPman
    Про резервирование:
    В windows отсутствует штатное определение наличия интернета (точнее доступное пользователю), поэтому пишешь скрипт из пяти строчек, который в цикле проверяет доступность какого-нибудь сервиса в интернете, например гугла, и если он недоступен, переключает шлюз по умолчанию на другой... два цикла, один для первого шлюза, другой для второго, и оба в общий цикл. Так они по кругу будут переключаться с задержкой - таймаут определения интернета (делаешь пинг и смотришь код возврата).
    route change 0.0.0.0 mask 0.0.0.0 192.168.1.201

    Про баллансировку:
    Я настраивал вручную маршрутизацию на клиентах, прописывал что вот на эти адреса пусть интернет будет через первый шлюз, а вот на те - через второй (у меня было два кабеля от разных провайдеров, я перебирал подсети одного провайдера и к нему посылал подключения через его кабель, тот еще был квест, узнать эти подсети)..
    Это был батник с сотней строчек вида (в данном примере подсеть 8.8.4.0/24)
    route add 8.8.4.0 mask 255.255.255.0 192.168.0.200
    В результате торренты у меня загружались на скорости больше 20мбайт/с при двух подключениях по 100мбит (т.е. максимум что в принципе возможно, это было тогда, когда выход во внешний интернет был мегабит и это еще хорошо было)

    Понятно что это не полноценная баллансировка, но допускаю что можно запилить скрипт, который будет использовать какую то аналитику нагрузки на роутере (смотреть статистику по нему) и изменять маршруты, выполняя те же команды но с другим шлюзом. И да, во время смены шлюза, текущие подключения через него повиснут, что не очень весело
    Ответ написан
    1 комментарий
  • Почему при выводе дробных числ появляются лишние цифры?

    @rPman
    Тебе исчерпывающе ответили о причинах, такова природа десятичных чисел, которые хранятся в битах.

    Если тебе нужно работать с числами в той форме что сохранена - либо используй строки.
    'capacity' => "0.2",
    либо используй целочисленный формат с фиксированной степенью (где то ты должен определить предел точности, сколько знаков после запятой, которые тебя интересуют, и делай на это соответствующую скидку при операциях умножения и деления).
    'capacity' => 2000,
    В данном случае речь о 4 значимых цифрах или 10^4
    при умножении, результат нужно делить на 10^4 и отбрасывать все что после запятой через intVal или round (а перед делением наоборот первый операнд умножать)

    Внимание, на php int, при превышении PHP_INT_MAX будет автоматически сконвертировано в float, поэтому даже с этим методом придется хранить числа в строках и использовать bc math или рекомендуют gmp как самую быструю реализацию
    Ответ написан
    Комментировать
  • Как бюджетно создать хранилище и сервер для камер видеонаблюдения?

    @rPman
    Не смотрите в сторону малинок почти что никогда (хотя они хороши в робототехнике, там хороший набор карт расширений) - отстойнейшая поддержка ОС и всего вокруг.

    Выбирайте интелевские x86 SoC, J серия с mitx платами очень хороша, и по ценам, и по производительности на ват. На их основе собирать маломощные (хотя J5xxx очень не плохи да еще и с 16gb ram) домашние сервера и рабочие машинки.

    Что бы выбрать хранилище, нужно сначала померить, какой объем даннх необходимо сохранять.. не приблизительно, а на практике, попробовав часть из камер попробовать сохранить на любой десктопной машине с ssd (что бы уж наверняка)... и это будет трафик только на запись. У hdd есть неприятная особенность, ронять скорость работы при одновременной работе нескольких приложений... если одновременная запись с нескольких камер может считаться одним потоком (и будет работать на максимуме возможностей устройства, а это порядка 150мбайт/с даже для дешевейших toshiba 3tb 5400rpm) то достаточно одному пользователю начать считывать видео из истории, скорость может упасть от 2х до 10х раз (зависит от софта, если данные будут считывать большими кусками порядка десятков/сотен мегабайт, то только уронит скорость в половину).

    p.s. твои камеры навряд ли дадут больше 2мбит/с, а 19 таких - от силы 5мбайт/с, т.е. такой трафик потянет любой диск даже в худшем
    Ответ написан
    2 комментария