Задать вопрос
  • Внешний жесткий HDD диск с USB 3.0 подходит к компьютеру с USB 2.0?

    @rPman
    Не поленись, вместо сомнительного кабеля, купи usb3 контроллер (pci-e). Стоить это будет порядка 500р (в dns дороже от 950р, e2e4 - 750р) зато не будет проблем ни с совместимостью, ни со скоростью
    Ответ написан
    7 комментариев
  • Как происходит пошаговое обучение языковых моделей азам?

    @rPman
    Ответ в виде короткого гайда ты не получишь, он не влезет в формате qna, да и некому тебе его дать.. гугли, все есть в интернете.

    Для начала, чтобы повторить свою языковую модель, которая начнет показывать признаки интеллекта (т.е. нейронка построит внутри модель человеческого интеллекта), нужно минимум десятки миллионов долларов (это оптимистичная оценка). Это при условии наличии специалистов (команда), данных (все бросились парсить интернет и те кто эти данные хостят внезапно осознали что их данные имеют цены) и мотивацию. И да ее качество, в лучшем случае будет на уровне gpt3.5 от openai...
    Например у богатейшей в мире компании google, создавшей собственно алгоритм transformer, стоящий в основе современных llm-ок, имеющей огромные ресурсы, собранные данные со всего интернета, собственное железо (их TPU на порядок энергоэффективнее видеокарт, и развиваются уже десятилетие) - догнать по возможностям openai gpt4, не получилось!

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

    НО! можно взять готовую нейронную сеть (ключевое слово pretrained или base или completion приписка у тех кто публикует такие сетки бесплатно) и использовать их токенизер (между прочем токенизация, тоже не простой процесс, поэтому лучше брать готовый) и finetuning на своих данных. С некоторым везением, результата можно будет добиться с 100-кратно меньшими денежными затратами (была статья где перец за 100$ дообучил llama7B до симуляции чата своих друзей). Помним, что если в обучающей выборке не было твоих знаний (не фактов а именно умений и пониманий) то дообучить этому будет сложнее и скорее всего итоговый результат - сеть начнет забывать что ранее знала и галлюцинировать еще сильнее. Тюнинг обычно используют чтобы повысить качество уже имеющихся умений и определить формат общения (например обучить модель общаться не в форме чата а в форме инструкций). Качество данных (соответствие обучающей выборке) - в этом случае имеет наиважнейшее значение.

    Ну, и есть разные алгоритмы - ключевые слова для гуглинга - finetuning, peft, rhlf. Есть алгоритмы поверх llm-ок, не трогая их веса можно повысить возможности с помощью RAG...

    Лучшие сетки с доступными весами на текущий момент, для обучения и работы с которыми хватит домашних видеокарт - llama3-8B (вышла 3 дня назад, всех шокирует, особенно 70B), openchat35-7B (на основе mistral)
    Ответ написан
    Комментировать
  • Как записать в базу пустое поле?

    @rPman
    Не надо так делать, откуда вы берете такие инструкции?
    VALUES ('.$user_id.','.$a
    пользоваться нужно prepared statements (они есть для всех драйверов, вот например mysqli), это не только исключит разные проблемы с типами (например строки придется экранировать) но и даст бонусом защиту от sql-иньекций

    Причина, почему у тебя не работает - конкатенация NULL со строкой ничего не делает (добавляет пустую строку), а нужно писать NULL либо исключить поле из sql запроса а при создании таблицы у поля написать default null
    Ответ написан
    Комментировать
  • Как в C++ создать массив с неизвестным числом элементов?

    @rPman
    Можно, если размер во время инициализации - константа, описать тип через шаблоны
    template<typename T, size_t size>
    class MyArray
    {
    T data[size];
    ...
    }
    докинув методов для работы с массивом, включая оператор[]... а еще лучше, воспользоваться готовым std::array
    Ответ написан
  • Как обновлять данные по движению мыши?

    @rPman
    https://bettersolutions.com/excel/macros/worksheet...
    размещай на странице свои контролы, на сколько я понимаю при движении над ними отлавливать события мыши можно
    Ответ написан
    Комментировать
  • Какие нейросети имеют доступ к страницам сайте в интернете?

    @rPman
    Ни одна нейросеть на базе gpt не умеет напрямую работать со страницами в интернете.

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

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

    И главная проблема - ограничения на размер контекста. Большие объемы текста тупо не помещаются 4к..8к токенов это тот объем, в пределах которого сети работают хорошо, но чем больше размер контекста (даже если заявлены 16к или 32к) начинаются борьба компромисов, качества и стоимости. Может так получиться что вместо работы со всей информацией сразу, ее делят на части (еще одна проблема по анализу исходной страницы), а затем, набирая вопросы из текущего контекста (та еще задачка) задают их последовательно для каждой, собирая ответы в итоговый контекст и ее уже используют для дальнейшей беседы. Плюс есть еще алгоритмы саморизации. Плюс еще неплохо сюда multishot пристроить, с примерами.

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

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

    @rPman
    Технически это debian linux, и поддержка mdadm в нем есть, но вопрос, как именно работает в нем GUI, требует ли он чтобы массив так же создавался из интерфейса.

    Настоятельно рекомендую сначала установить тестовый вариант OpenMediaVault куда-нибудь на виртуальную машину, создать в другой машине (просто загрузившись с livecd) тестовый массив (сделай диски по 100мб) и проверь как он отреагирует
    Ответ написан
    Комментировать
  • Хочу заняться графической оболочкой для линукс. Есть ли какая-нибудь база дистрибутива?

    @rPman
    Есть два пути, один рекомендует тот кто с крылышками, другой - кто с рожками. Один путь - выбрать язык программирования (например c++ или python), выбрать фреймворк (например qt или gtk), и ваять приложение, затем оформить его в виде deb/rpm пакета (где то тут или чуть чуть раньше, когда выбираешь фреймворк и версии библиотек выбираешь ОС, deb и rm это одни из самых популярных форматов дистрибуции приложений, например debian/ubuntu/minnt - это deb) и затем оформить это в виде iso или аналогов.

    Второй путь chromium based приложение, какой-нибудь electron (соответственно писать на javascript и html), из плюсов, на халяву работа с мультимедиа, минусы - высокие требования к железу а точнее к оперативке (особенно когда у тебя 256Гб-512Гб ram, минипк в формфакторе флешка). Многие почему то выбирают этот путь но он чреват сложной поддержкой в долгую (точнее не он а типовой способ разработки на nodejs когда народ простейшее приложение собирает из ТЫСЯЧ пакетов в зависимостях, тянуть это потом нереал).

    Способ создания iso лучше гуглить, доступно от штатных инструментов linux (вручную собирать и следить за обновлениями) до готовых инструментов, вот пощелкай варианты ответа в этом вопросе как пример.
    Ответ написан
    1 комментарий
  • Linux на SSD рядом с Win10, на внешний HDD или виртуализация?

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

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

    linux менее требовательный к тому, как именно он загружается, в отличии от windows, загрузчик можно устновить куда угодно, хоть на флешку, хоть cdrom, хоть в сети (pxe boot) хоть прописать прямо в efi строке (uefi биосы умеют работать с файловыми системами fat32/ntfs/isofs и возможно linux ext3) ну а само физическое размещение разделов linux и тем более может быть каким угодно (был момент ubuntu можно было ставить внутри файла-контейнера, который лежит на windows ntfs диске, потом это из установщика убрали но физическая возможность есть)

    В зависимости от выбранного способа загрузки в биосе и типа разделов на диске, у тебя должен быть раздел biosboot (если выбрать legacy mbr или называют csm и gpt таблица разделов) или efiboot (если выбран efi или еще называют secure boot или csm), кстати ее можно было бы совместить с виндовым загрузочным разделом но я настоятельно советую держать linux подальше от windows, были случаи когда очередным обновлением майкрософт затирала загрузчик, ломая linux загрузку.
    Ответ написан
    Комментировать
  • Astra Linux - как избавиться от шума в HDD?

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

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

    p.s. первое же видео со звуками типовых поломок hdd от гугла
    Ответ написан
    Комментировать
  • Как сделано всплывающее окно с моим e-mail адресом Google, который я на этом сервере не оставлял?

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

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

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

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

    @rPman
    майкрософтовский эксель по умолчанию (когда ты открываешь csv файл из проводника) ожидает то ли DOS кодировку cp866 то ли windows cp1251 (это для кирилицы), в общем однобайтовую. Чтобы была возможность выбирать (у тебя utf8), нужно открыть пустой документ и из меню данные выбрать вставить из текста, там откроется диалоговое окно с возможностью выбирать (офис помнит импортированный файл и может его повторно перезагружать с сохраненными настройками).

    libreoffice calc диалоговое окно импорта открывает сразу при открытии .csv

    Еще, настоятельно рекомендую в качестве разделителя выбирать ';' или символ табуляции '\t'
    Ответ написан
    1 комментарий
  • Разница в нагреве компонентов при разной нагрузке системой?

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

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

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

    @rPman
    зачем так сложно? читаешь /proc/net/wireless и получаешь начиная с третьей строки список wireless интерфейсов, типа так:
    Inter-| sta-|   Quality        |   Discarded packets               | Missed | WE
     face | tus | link level noise |  nwid  crypt   frag  retry   misc | beacon | 22
    wlan0: 0000   70.  -50   -256        0      0      0      0    325        0
    Ответ написан
    Комментировать
  • Существует ли аналог GPTs?

    @rPman
    Мне кажется рановато искать ГОТОВЫЕ решения В ОТКРЫТОМ доступе на эту тему. Народ только только пилит все это.

    И да, открытые и доступные llm-ки могут быть не достаточно сильными, чтобы успешно отрабатывать данную задачу. Зачем вам поисковая система, которая будет косячить в 10% случаев? 20%? 30%? причем в обе стороны, т.е. не только выдавать не нужное, но и пропускать нужное

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

    Лучше работает, если по каждому вопросу в контекст засовывать документ (или пробегать по абзацам/главам) с тщательно сформулированными дополнительными вопросами (их создание и есть разработка такой системы) ответы закидывать контекст беседы с клиентом. Как минимум использование гугло поиска на основе разговора - работает (проблема только выбирать, что читать,.. много - дорого, мало - недостаточно информации)
    Ответ написан
    Комментировать
  • Какие сейчас текстовые нейросети можно локально поставить?

    @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 скорее всего заточен на китайский)
    Ответ написан
    Комментировать
  • Повысит ли вынос ОС на отдельный SSD диск скорость работы стриминга на сервере?

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

    Я бы разместил ОС на отдельном диске (не обязательно ssd), это слегка поможет.

    От жестких дисков нужно избавляться, они подходят только там где нужно хранить много а доступ редкий, а у вас я так понимаю диски на 100% постоянно? Если вам на только на чтение (пишем один раз читаем много), а сервер ваш, можно приобрести максимально дешевые десктопные ssd и держать на них копию данных с hdd, тогда за относительно небольшие траты можно решить проблему низкой скорости (повторяю - держать копию на hdd так как дешевые десктопные могут тупо из-за контроллера помереть).
    Ответ написан
    Комментировать
  • Как вернуть двумерный массив?

    @rPman
    Помню очень очень давно, когда мне нужен был объект двумерный массив с заданными константами размерами (и достаточно маленький чтобы не перегружать стек), а так же мне не нравилось что двумерные массивы требовали дополнительный массив ссылок, который еще нужно было инициализировать, я создавал класс (формально два, так как перегружать оператор [] можно только один раз, для второй перегрузки нужен класс посредник), симулирующий поведение двумерного массива на одномерном, при этом сам массив определялся не как ссылка на него, а как собственно сам объект
    нытье
    сейчас я код свой старый не найду, мне лень но я попросил chatgpt все написать, и о чудо, bing copilot не справился (отвратительно, майкрософт испортила хороший инструмент) хотя он понял концепцию но умудрился наделать кучу ошибок, пришлось чинить, в прошлом году он прекрасно с таким простым кодом справлялся. Не так, если воспользоваться площадкой для ботов coze, там используется gpt4, то результат получается верным (нет он тоже напортачил в подсчете смещения в массиве), это именно майкрософтовский сопилот тупой
    template<typename T,size_t RowNum, size_t ColNum>
    class Array2D {
    private:
    	T arr[RowNum*ColNum];
    
    public:
    	class Proxy
    	{
    	private:
    		T* _arr;
    
    	public:
    		Proxy(T arr[]) : _arr(arr) {}
    
    		T& operator[](size_t index)
    		{
    			return _arr[index];
    		}
    	};
    
    	Proxy operator[](size_t index)
    	{
    		return Proxy(&arr[index*ColNum]);
    	}
    };
    
    typedef Array2D<int, 3, 5> mas35;
    
    mas35 test()
    {
    	return *(new mas35); // с этим нужно быть предельно осторожным, так как бездумно можно получить утечки памяти
    }
    
    int main()
    {
    	mas35 a=test();
    	a[1][0] = 5;
    // ...
    	return 0;
    }
    Ответ написан
    Комментировать
  • Какое можно использовать клиент-серверное приложение видеоконференции p2p?

    @rPman
    jitsi meet - не p2p но серверную инфраструктуру запускают у себя. Между клиентами связь прямая. На основе webrtc
    Ответ написан
    1 комментарий
  • Можно ли включить звук при звонке определённого контакта в бесшумном режиме?

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

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