• Как запустить AI-модель с Hugging Face?

    @rPman
    Выбираешь модель, в описании ищешь code examples или documentation, вот тупо первая же модель по твоей ссылке naver-clova-ix/donut-base-finetuned-docvqa и тут же по ссылке пример кода использования

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

    Если модель небольшая, считанные миллиарды параметров, то она будет без особых проблем запускаться на процессоре, если больше, то рекомендуется gpu от nvidia (с некоторыми не самыми слабыми amd реально но будет много возни).

    Требования к RAM обычно 2х-4х от размера модели в параметрах (т.е. 7B будет требовать порядка 14Gb-24Gb ram), но в некоторых случаях есть методы квантизации (например gpt квантизуют с помощью bitsanbytes) в этом случае требования к ram падают до количества параметров (т.е. 7Gb-9Gb для 7B модели)

    p.s. если повезет, возможно выбранная тобой модель может быть запущена с помощью llama.cpp (там и мультимодальные VA модели уже запускают), с ней есть шанс разместить часть весов в GPU а не все, т.е. это имеет смысл если оперативной памяти gpu чуть чуть не хватает.
    Ответ написан
    Комментировать
  • Безопасно ли единоразово скопировать большой объём данных с жёсткого диска в память телефона?

    @rPman
    нет

    но у xiaomi дешевых очень маленькое качество внутреннего накопителя, 3-4 полных объемов записал (какраз 2-3 года использования) и скорость падает драматически

    напоминаю, ssd диски неправильно использовать для хранения данных!
    Ответ написан
    Комментировать
  • Запуск Minecraft (1.12.2 Forge OptiFine из TLauncher) из консоли/командной строки/shell и т.д?

    @rPman
    Не понимаю, почему нужно брать именно из TLauncher?

    minecraft forge распространяется в виде установщика, который берет оригинальную версию jar-файла и модифицирует ее, как минимум это было до 1.12 версии (после майкрософт все купило и сломало).

    Сами моды tlauncher берет с curseforge (там есть соответствующий api, им пользуется и официальный лянчер), на сколько я знаю есть какие то особенности реализации.

    А дальше все просто, моды складываем в каталог mods

    p.s. с легальной точки зрения есть какие то ограничения по самостоятельному распространению файлов, даже для 1.12 версии до того как майкрософт сломало лицензию, нужно было пользоваться официальными средствами дистрибуции.

    upd. весело, все публичные ссылки на загрузку оригинального .jar файла исчезли, спасибо майкрософту
    Ответ написан
  • Есть ли какие-то подводные камни в замене дистрибутива linux с сохранением хомяка?

    @rPman
    И да и нет.

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

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

    Я бы не надеялся что все произойдет 'как по маслу' и главное, остается огромное количество мусора в .cache, .local и т.п. там и так гигабайтами все копится и копится. Я буквально недавно переносил конфиги руками, сделав резервную копию каталога и создав новый профиль... там много всякого лишнего, и удаляемые приложения за собой ничего не чистят.
    Ответ написан
    2 комментария
  • Как отладить браузерное приложение для PocketBook на компьютере?

    @rPman
    На сколько я знаю там android, но версия и соответственно софт зависит от модели.

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

    А падает, потому что версия ос и браузера очень старые, не поддерживают каких-то фич, которые твой код использует. В качестве примера, найди какой-нибудь android4 планшетник или эмулятор запусти из того же android sdk и попробуй свою программу там запустить
    Ответ написан
    Комментировать
  • Можно ли находясь в России продавать ассеты в Unity Asset Store?

    @rPman
    Обычно проблема не в момент продажи, тут все ок, а в момент вывода денег.
    p.s. ну и конечно могут забанить по ip
    те кто по серьезнее, пишут о запрете в момент регистрации и указания информации о себе
    Ответ написан
    Комментировать
  • Можно ли с ChatGPT создать отчеты и графики на основе GoogleSheets?

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

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

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

    @rPman
    И нет и, может быть, да. Помимо llama существует лучше модели, например mistral и основанные на нем типа openchat35 или лучше mixtral (он неожиданно умный и скорости как 7b) или или еще лучше от databrix (по скорости как llama30b).

    У разработчиков языковых моделей например есть chat версии, есть instruct, а есть base. Общий смысл каждой определяется тем, на какое именно использование их заточили. Например instruct позволяет описывать инструкции на естественном языке и главное получать ответ тоже на естественном языке, со всеми вытекающими от сюда неудобствами (api предполагает стандартизацию форматов вывода). chat ожидает что с ним будут общаться в формате user: xxx, ну а base модели изначально работают только как completion, и их обычно дообучают до своих форматов и наборов знаний.

    Кстати, к примеру модели, которые обучали программированию (а это почти все, ищи в бенчмарках HumanEval, потому что openai говорили что именно с этого начинали свою модель обучать и это очень было ей полезно), можно буквально попросить давать ответ в виде json, описав в промпте его формат и оно будет пытаться это делать, точно помню что прбовали за основу взять принцип - модель генерирует готовую программу, решающую вашу задачу, бакэнд ее запускает и выдает ответ и так на каждый запрос. Но чем глупее и проще модель, тем с большей вероятностью она будет отходить от строгого формата, а значит бакэнд приложение, которое будет обслуживать уже твой api должно ожидать эти расхождения и обрабатывать их не как ошибка (например лишнее текстовое описание типа "вот вам ответ в формате json: ...".

    Так как llm это посимвольная (по токенам точнее) генерация ответа, на каждом из них, в момент когда происходит выбор следующего токена, можно вставить свой алгоритм, ограничивающий доступный список своими, по своему правилу. Например можно описать регулярное выражение, которое будет применяться к сгенерированному тексту плюс выбираемый токен и если оно не подходит, отказывать в выборе этого токена. Например какая то реализация этого есть в llama.cpp ищи grammar, это ключ у api вызова к server.

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

    Есть общепринятые лайфхаки, повышающие качество ответа. Это добавление примеров (вопрос+ответ+вопрос+ответ+вопрос+...) т.е. one-shot/multi-shot, именно так слабые модели могут встать по бенчмаркам с zero-shot у сильных моделей, без примеров. Или попросить в запросе модель поразмышлять (think step by step), надавить на эмоции (найти ответ очень важно для меня, от этого зависит моя жизнь), ценой места в окне контекста. Еще есть подход, делать один и тот же запрос (или кстати слегка менять prompt) много раз, и сделать какой то механизм валидации ответа (например большая часть одних и тех же ответов считать верной) - как защита от галлюцинаций (был пример когда модель заставили миллион раз генерировать программу, запускать ее и проверять результат - так сделали реальное научное открытие)

    НО! Просто не будет.
    Ответ написан
    Комментировать
  • Есть ли способ восстановить перезаписанный, а не удаленный файл?

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

    Там специалисты должны выпаять чипы памяти (или подключиться к ним с помощью специализированного железа и софта) и проанализировать их содержимое.

    Внутри ssd есть своя как бы файловая система, скорее всего похожая на cow, где каждая следующая запись пишется в новое место, даже если это один и тот же сектор с точки зрения пользователя (это нужно для равномерного распределения записей по ячейкам), значит можно раскрутить этот лог назад, если система не успела исполнить для этих участков trim. Но, к сожалению, записи происходят сразу по всему объему диска (современные чипы памяти это многоуровневые цепочки бит, запись которых происходит циклически, первые биты записываются быстро, последующие биты в цепочках - медленно, когда происходит запись, сначала контроллер пишет данные в каждые первые биты этих цепочек и запускает фоном процесс перераспределения, чтения записанных данных в первые биты и перезапись их в глубь каждой цепочки, это медленнее, как минимум именно так реализуют кеширование записи на дешевых пользовательских накопителях (а может и на всех). Именно поэтому примерно 20% свободного места на диске будут записаны на максимальной скорости а затем скорость упадет в десяток раз именно потому что свободных 'первых бит' не остается и контроллер ждет окончание перераспределения.

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

    @rPman
    Если держать ssd в жарком месте (например, например в машине, на солнцепеке) то скорость деградации сильно увеличивается до месяца +-

    ssd не подходит для offline хранения данных, технологии требуют наличие питания хотя бы изредка, контроллер сам следит за перераспределением данных. Но! дешевые могут это делать только во время записи, что так же не способствует сохранению данных на долгосрок.
    Ответ написан
    Комментировать
  • Как создать виртуальную сеть на уровне IP?

    @rPman
    У virtualbox есть понятие internal network, когда внутренняя сеть никак в хост систему не выходит и остается внутри (можно создать несколько таких сетей), для подключения к этой сети одну из виртуальных машин в этой внутренней сети можно выбрать роутером, добавив ей интерфейс, связанный бриджем уже с хостовым.

    Про qemu. Сам я это не пробовал но если я верно понимаю, VDE это то что нужно (весь этот функционал плюс еще куча всего). Как я понимаю VDE в qemu уже включен. Например можно объединить снаружи виртуалки через сокет (ключи -unix control-socket и vde-plug [-p port] [socketname] ), в т.ч. с соседней на основе другой технологии (в документации речь идет про User Mode Linux)
    Ответ написан
    Комментировать
  • Как в Windows дать права на запуск программы без запрашивания пароля администратора?

    @rPman
    Не понял про драйвер, возможно опечатался?

    Про запуск программ, используй штатный диспетчер задач (task scheduler), там можно задать аккаунт, под которым запускать и чекбокс запуска с повышенными привилегиями, триггер запуска не указывай. Затем запускай созданную задачу с помощью schtasks run
    Ответ написан
    2 комментария
  • А можно как то запереть хром в каком то куске ОЗУ?

    @rPman
    Попробуй этот проект https://github.com/lowleveldesign/process-governor
    Ответ написан
    Комментировать
  • Может ли деградировать CPU/другое железо?

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

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

    @rPman
    Два способа:
    1. сетевой мост/bridge
    на хост машине создается tap устройство - виртуальный сетевой адаптер, пакеты с которого которого принимает и отправляет приложение - гипервизор, все пакеты, отправленные на это устройство 'снаружи', будут продублированы как исходящие внутри виртуальной машины и наоборот
    Чтобы виртуальная машина получила доступ к внешней сети, необходимо этот виртуальный адаптер и реальный сетевой интерфейс хост машины объединить в бридж (ip адрес сети уже назначается этому мосту), это действие равнозначно подключению двух проводов ethernet (в данном случае второй - виртуальный) в простой сетевой коммутатор - свитч.
    Сетевой мост можно собрать из более чем двух сетевых адаптеров, например можно объединить сетевой адаптер виртуальной машины + настоящий сетевой адаптер + устройство vpn, и получится что все они объединены в одну локальную сеть.
    2. специальный драйвер, который симулирует прием и передачу пакетов прямо на выбранное сетевое устройство (так делает к примеру virtualbox на windows), в отличии от сетевого моста, так можно сделать только с одним устройством.
    3. на самом деле способов больше, у qemu можно соединить гостевое сетевое устройство с приложением на хост системе напрямую (не нужны драйвера), так же можно ни с чем не соединять, но можно пробросить порт снаружи внутрь гостевой (или соединить только с другой виртуальной машиной, получится приватная внутренняя сеть, к которой имеют доступ только виртуалки) и прочие странные конфиги.

    Если используется NAT то внутри гипервизора поднимается виртуальный роутер, доступа к которому у пользователя обычно нет, внешний сетевой интерфейс этого виртуального роутера так же по одному из вышеописанным способов подключается к хост системе.
    Ответ написан
    2 комментария
  • Почему конвертируемый код Python в EXE блокирует антивирус?

    @rPman
    Безотносительно к способу создания exe из python, рассылка exe по почте это уже маркер для антивирусов, это классический путь распространения вредоносов и нормальной практикой вообще считается блокировка этого типа контента.

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

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

    Так же, помимо получения цифровой подписи, настоятельно рекомендуется распространять свое приложение не в виде exe файла а в виде установочного пакета (например как приложение microsoft store или msi). При использовании microsoft store за обновлением приложений будет уже отвечать операционная система, т.е. доставкой и переустановкой пользователю не придется заниматься (на самом деле придется, но значительно проще, ведь автообновление не моментальное, а значит топать в настройки обновлений и кликать кнопку - скачать обновления) но это правильный способ.

    upd. https://learn.microsoft.com/ru-ru/windows/apps/pub...
    Ответ написан
    Комментировать
  • Как лучше сделать переключение языков на многостр. сайте?(без бэка)?

    @rPman
    Модифицируй роутер или mod rewrite веб сервера таким образом, чтобы идентификатор выбранного языка был в ссылке (например my.site.com/fr/blablabla ), при отсутствии этого идентификатора проводи проверку по заголовку (например для apache, главное идея). Это позволит в интерфейсе дать пользователю выбор языка и одновременно без этого выбора делать его автоматически.

    да, перевод нужно размещать поэлементным и прописывать в своем json.

    Так же есть сервисы типа гугла или yandex, устанавливаются на сайт и делают автоматический перевод (не рекомендую)
    Ответ написан
    7 комментариев
  • Возможно ли заменить 3 игровых ПК сервером с 3 виртуальными машинами?

    @rPman
    Нет, красивого и дешевого решения не существует.

    p.s. напомню, что даже без вопросов железа (серверное кратно дороже десктопного игрового), банально стоимость лицензии серверной windows сожрет любой профит, который можно было бы получить с такого разделения

    Мало того, накладные расходы на виртуализацию - порядка 10%-30% (помню настраивал qemu/kvm + проброс pci-e с gpu в гостевую) значительны.

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

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

    Простым способом - выяснить url и заголовки и скачать его тут не обойтись

    p.s. начни с отладочной консоли браузера, сохрани историю запросов в .har архиф (это json файл, удобно работать с ним)
    Ответ написан
    Комментировать
  • Как избежать выхода из системы на windows server?

    @rPman
    Вангую что ты ошибся с трактовкой происходящего. Приложение, а точнее браузер, остается работающим, но браузер детектирует отключение пользователя и воспринимает его как минимизацию, отключая или замораживая фоновые процессы. Кажется это особенность браузеров, основанных на хромиум, а вот фаерфокс должен продолжать работать. Еще момент, большинство приложений симуляции действий пользователя, так же не могут работать в терминальной консоли.
    spoiler
    В windows (и сервер и клиент версии) существует два типа консоли - терминальная, та что создается при подключении rdp (таких консолей может быть одновременно активно несколько, в зависимости от типа и количества лицензий для серверных), и основная - та что создается при входе через физический монитор и клавиатуру (кстати, без установки aster эта консоль может быть одна активна). Не серверные ревизии не позволяют быть активным одновременно нескольким консолям, т.е. либо терминальная либо основная (было приложение rdpwrap убирающее это ограничение но майкрософт отметила это вирусом и активно ломает его работоспособность). Основная консоль будет отключена (т.е. будут невозможны симуляции кликов мыши или клавиатуры), если произведется ее блокировка, а с терминальной консолью происходит это при отключении пользователя.

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

    Создаешь двух пользователей - основной, под которым запускается твое приложение и вспомогательное, через которое будет происходить удаленное подключение. Теперь достаточно подключиться сначала через вспомогательного пользователя, а затем внутри этой сесси подключиться терминалом к localhost под основным пользователем, и в этой вложенной сессии запустить нужное приложение. При отключении вспомогательного пользователя (не logout а disconnect), основное подключение будет продолжать работать как активное.
    Ответ написан
    2 комментария