Задать вопрос
  • Как предотвратить появление битых файлов?

    @rPman
    Переназначенные сектора raw значение 0, значит по smart диск здоровый и высокая вероятность что проблемы с данными - логические.

    Постоянная смена windows <-> другая операционная система чревата проблемами из-за windows.
    Начиная с windows 8 в ней по умолчанию включен режим гибернации - запись оперативной памяти на диск для моментального ее восстановления после включения, даже когда пользователь выбирает выключение компьютера или перезагрузку, при включенном файле гибернации происходит следующее - завершаются процессы пользователя и делается гибернация (на самом деле там сложнее, зависит от необходимости служебной перезагрузки после обновления например), при включении соответственно система моментально восстанавливает оперативную память и переходит к запуску пользовательской сессии.

    Именно этим они достигли такой высокой скорости запуска системы.

    Как результат - файловая система при выключении компьютера может находиться в неконсистентном состоянии, не сброшены кеши, не закрыты дескрипторы и не сброшены буфера файлов. Если в таком состоянии к диску полезет (на запись) другая установка ОС (не важно, linux/mac или другой windows) то возможна ситуация, когда логическая структура файлов на диске будет повреждена (это показывает тот факт что чекдиск у тебя уже находил проблемы).

    Ситуация не абстрактна, такое случается у многих постоянно (только почему то люди начинают винить linux типа он неправильно файлы пишет).

    Решается отключением файла гибернации (как результат медленное включение windows) командой в cmd.exe под правами администратора:
    powercfg.exe /hibernate off
    После можно файл hiberfil.sys удалить вручную

    p.s. логические ошибки файловой системы коварная штука, могут годами быть в файловой системе и не мешать (полный чекдиск не запускается сам) но зато потом так 'выстрелит', мало не покажется.
    Очень большие шансы что у тебя именно это и случилось
    Ответ написан
    3 комментария
  • Сильно ли тяжело для базы данных innoDB 1 500 таблиц?

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

    'очень частые' у разных людей разное значение, для кого то 1 раз в секунду - уже нереальная нагрузка, а кому то нужно 10к запросов в секунду обработать. Так вот во втором случае оптимизация будет требоваться уже на ином уровне и возможно 1500 таблиц станет заметно нагружать базу.

    Задача не ясна, рекомендации невозможно дать.
    Ответ написан
    1 комментарий
  • Как создать одну виртуальную машину использующую несколько серверов?

    @rPman
    Виртуализация не позволяет объединять мощности!

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

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

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

    @rPman
    99% работы тут анализ текстов, а уж интеграция с telegram дело десятое.

    ДО публикации весов llama, я бы предложил изучить технологии вокруг LLM (большие языковые модели), RLHF (Reinforced Learning from Human Feedback - это если с конца заходить, лучшее что там есть), рекомендую видео Igor Kotenkov посмотреть, он как раз с сумаризации текстов зашел, рассказывая о существующих алгоритмах и способах их оценки.

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

    Скорее всего у тебя будет несколько запросов на одну и ту же статью, с разными вопросами (особенно когда длины контекста хватает в притык, а значит пытаться вести общение в пределах контекста будет сложно, т.е. статья+запрос1+ответ+запрос2+ответ+...). У llama.cpp в библиотеках есть возможность сохранять контекст и моментально загружать его (в т.ч. mmap) для как бы моментального продолжения беседы с сохраненного места, в т.ч. к примеру так - формируешь промпт таким образом, чтобы текст статьи был в начале, а вопрос в конце, затем сохраняешь состояние сети и последовательно загружаяя его раз за разом, подставляешь с новыми вопросами, таким образом тратить ресурсы будешь только на эти вопросы, пример в save-load-state.cpp.
    spoiler
    После того как поиграешь с gpt4, модель от фейсбука конечно туповата, но посмотрев на стоимость первой, понимаешь, что с этим можно жить. Есть лайвхаки, как улучшить качество ответа от сети, дай возможность сети по рассуждать, универсальная палочка выручалочка let's think step by step в разных формулировках, дает возможность ИИ проанализировать в процессе генерации ответа тему, а потом следующим вопросом проси суммаризировать итоги... это активирует в т.ч. One/MultiShot техники, когда предварительными наводящими обсуждениями настроить модель на лучший результат, и автоматизирует процесс, когда не нужно гадать над примерами.

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

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

    @rPman
    Посмотри внимательно на свою видеокарту, нет ли на ней DVI-i выхода? так как существуют пассивные переходники (с ценами 100р) на dvi (причем тебе подойдет любой dvi-i или dvi-d) в любую сторону, включая просто кабели, практически все видеокарты прошлых лет имели три или больше видеовыхода, правда это были div + dsub/dvi + hdmi + опционально display port

    Абсолютно все видеокарты на рынке сейчас pci-e и подойдут к твоей материнке, но осторожно с блоком питания (за твой бюджет ты наврят ли выйдешь за то что уже имеешь).

    За 20т.р. можно подобрать rtx3050 8гб vram (в dns в регионах 23т.р.) или 1650super 192bit 6gb vram /2060 и т.п., настоятельно рекомендую выбирать железки с vram >6гб и nvidia (за эту опцию придется переплатить 10-15% при равной производительности).

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

    Почему nvidia? потому что при наличии vram >6гб позволяет играться с нейронными сетями, например stable diffusion, при наличии 8+ vram можно генерировать к примеру видео, при наличии 24+vram можно играть с младшими языковыми моделями и т.п.
    Ответ написан
    3 комментария
  • Почему в Google Chrome отсутствует пункт Сохранить картинку как?

    @rPman
    Пальцем в небо.

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

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

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

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

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

    Отличный пример, нейронную сеть, обрабатывающую изображения, можно предварительно пропустить через попытку обучить простую нейронную сеть, на вход и выход которой подаются одни и те же данные - изображение, но размерность одного из внутренних слоев заметно ниже входа, т.е. попытка заставить нейронную сеть рисовать по исходному изображению то же самое, но описывая это изображение вектором меньшей размерности, пример такой топологии - бутылочное горлышко.
    spoiler
    lir-_pezkp2bcrdvp9bvwoomcvs.png
    Т.е. в данном случае такую сеть обучить будет проще чем под вашу задачу (и данные для нее проще собрать, ведь не нужно искать смысл в них, только закономерности), так вот первые слои этой предварительной нейронной сети можно в последствии скопировать в целевую нейронную сеть, дозаполнив остальные веса случайными значениями.
    Ответ написан
    Комментировать
  • Поддержка RAID SSD TRIM?

    @rPman
    Можно забить на trim. Серверные ssd не должны будут так сразу помереть из-за этого. trim вообще это как бы дополнительный бонус к сроку жизни, это дешевые ssd (декстопные с корвым контроллером и емкостью подо все чипы памяти, т.е. к примеру не 240гб а 256гб - 2^x) без резерва по памяти могут от такого опрокинуться еще до окончания гарантийного срока.

    Как вариант, удостоверься что trim работает в прямом режиме (без raid) и используй софтварный, на сколько я знаю mdadm поддерживает trim, так же его поддерживают такие файловые системы как btrfs/zfs (про zfs советую поискать отдельно, btrfs точно поддерживает).

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

    @rPman
    Вопрос на самом деле не простой, речь не о программировании а об идеологии.
    У тебя два варианта - твое приложение реализует собственно браузер (примерно так работает electron приложения) либо какими то способами скрывается основное (в твоем случае консольное) окно приложения.

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

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

    На python можно запустить любое приложение сокрытым, т.е. твое приложение запускает само себя с определенным ключом (и первый экземпляр завершает работу), чтобы исключить зацикливание, следующим образом:
    https://stackoverflow.com/questions/2319838/open-a...

    upd. погугли pythonw.exe и .pyw extention, такой тип приложений будет запускаться без консоли но как я понял это очень устаревший подход и может не поддерживаться.
    Ответ написан
    Комментировать
  • Как в linux-е получить полноценный flash-плеер, желательно в firefox?

    @rPman
    Попробуй https://ruffle.rs/ их эмулятор в браузере использует web archive в попытке запускать сохраненный архив флеш-наследия 200x-ых
    Ответ написан
    Комментировать
  • Как бюджетно собрать минисервер для ml?

    @rPman
    Не гадай - считай.

    Берешь размер моделей, которые тебя интересуют, умножаешь на 4 (размер моделей в весах, каждый вес это 2-4 байта, сильно зависит от алгоритма, и часто есть оверхед по требованиям) - и тогда ты сможешь делать обучение (не только finutuning но делать с нуля свою модель). Для просто использования можно пользоваться квантизацией, уменьшающей потребление памяти в разы (8bit - 1байт на вес, 4bit - пол байта на вес).

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

    Потребительские видеокарты быстрее современного процессорного железа в задачах ML - в лучшем случае в 10 раз, точно читал что при использовании хороших интел процессоров (инструкции avx512...) можно добавить прироста в тех же llm чуть ли не 2х..3х, но придется сильно ковыряться с софтом, по простому там начинаются конфликты версий (у меня не получилось по простому собрать transformer чтобы использовать ускорения просто intel avx2, есть готовые докер образы от интел но внутри другие проблемы лезли), но почти наверняка в простых ситуациях все будет хорошо.

    Для finetuning потребительские видеокарты вполне подходят, народ арендуют железо на vast.ai и вроде бы довольны.

    Итого, если твое время не слишком высоко стоит (т.е. ты готов вместо нескольких часов обучения тратить недели) то тебе хватит и процессора (не скупись на процессор, а вот оперативную память не обязательно брать топовую), особенно если альтернатива тратить 100х больше денег (не шучу) на a100 80GB железки и получать да может 20х прирост к скорости, но стоит ли?

    И наоборот, если тебе не надо крутить модели сложнее 1b-5b, то почему бы и не задействовать для этого GPU. Но для ML подходят пока только nvidia (в этом мире правит тот, подо что есть эффективный софт, amd тут догоняющие, причем в 2-3 раза хуже)

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

    @rPman
    Если я верно понимаю.

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

    'Вы' в данном случае - это имеется в виду модель. Сокрытие - это установка в позицию искомых слов -inf, чтобы они никак не влияли на слова в контексте (они же не известны), напоминаю - слова в self-attention влияют друг на друга вне зависимости от положения лево-право

    В примере "Я пью зеленый " в таблице self-attention 4-ый и больше токены будут значения -inf
    Ответ написан
    Комментировать
  • В windows form на c# медленно отправляет данные по serial Бод на 921600 даже в асинхронным Как сделать можно чтоб шустро?

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

    @rPman
    ошибка говорит что в $_POST нет значения name

    впервые вижу чтобы в jquery ajax в data вручную кодировали данные строкой, и да в документации так можно но зачем так извращаться?

    передай свои данные в формате объекта или массива
    data:{"name":"Andrew","nickname":"Aramis"}
    Ответ написан
  • Что такое справочник в ИС и какой доступ необходимо организовывать к ним?

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

    Для человека справочником будет например его пол, адрес (если он не в виде строки а полноценная многоуровневая структура) и т.п.

    Но в то же время для другой объект, например статья, использует человека как справочник (автор).

    Отсюда вытекают и бизнеспроцессы, при редактировании объекта возможно давать доступ на редактирование справочника - плохая идея. НО! реалии таковы что информация о реальном мире в базе данных почти всегда не полна, и часто принимают решение при разработке системы о постепенном ее наполнении в процессе жизни системы.

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

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

    На практике, реценденты должны иметь инструменты, облегчающие им к примеру объединение дублирующих данных, а для принятия решения операторы должны предоставлять всю необходимую информацию по теме.
    Ответ написан
    Комментировать
  • Возможно ли на C# выполнить перевод криптовалюты и её трату?

    @rPman
    Мой тебе совет - найми знающего человека.
    Самоучиться на продакшене своими/чужими деньгами - плохая идея.

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

    p.s. куда ты переводить криптовалюту собрался, если ты ее принимаешь? продавать сразу как получил? - отдельная задача на миллион, завести на бирже аккаунт, держать там некоторый буфер, обменивать ту же сумму что получил от клиента и оперативно выводить излишки и пополнять недостаток. Все это отдельными скриптами, которые должны быть максимально далеко от игрового 'сервера'. На c# красивых универсальных библиотек мало, для других языков настоятельно рекомендую ccxt
    Ответ написан
    4 комментария
  • Чем обновить Windows 7?

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

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

    А вот качать с варезов какие то паки, приложения и т.п. я бы не рекомендовал
    Ответ написан
    Комментировать
  • Уязвим ли плагин CKEditor в Django к XSS атакам?

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

    p.s. как минимум script тег блокируется (вроде бы можно разрешить), остаются еще куча мест где может быть активное содержимое типа css, svg, xslt,... в общем вопрос неплохого такого исследования.
    Ответ написан
    Комментировать
  • Как интерпретировать значения FLOPs модели ML и FLOPS различных устройств (snapdragon процессор, например), GPU?

    @rPman
    при намного меньшем энергопотреблении?
    не совсем, в режиме вычислений, либо мобильный чип проработает недолго и понизит скорость кратно из-за повышения температуры, либо не хватит питания. А так да, 8 лет разницы дают знать, энергопотребление на единицу вычислений упало на порядок.

    p.s. Китайцы делают франкенштейнов, заворачивают мобильные чипы в корпус-переходник и продают как дешевые десктопные процессоры (само собой разблокировав там лимиты по питанию и температуре).
    -----------

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