• Как исправить неправильное отображение данных в csv после экспорта?

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

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

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

    @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
    Ответ написан
  • Какого chat GPT бота выбрать в России?

    @rPman
    Чтобы не зависеть ни от кого, запускай локально openchat35 (тюненый мистрал 7b) требования 8-12Gb vram или на cpu (llama.cpu работает несколько токенов в секунду, более чем достаточно).

    Если на машине есть 64гб памяти, запускать mixtral8x7b, на процессоре работает так же быстро как базовый mistral7, только требования к памяти в 8 раз выше). Эта модель по качеству как openai chatgpt35 +-, где то лучше, где то хуже.

    Еще есть интереснее модели, например cohere command R (35B нужно 64+ ram), или databrix (требует 256 ram, работает по скорости как 30B, речь идет о 8бит квантизации, можно уменьшать но за счет ухудшения результатов), эти модели другие, однозначно лучше той же llama70B в разы (ждем кстати llama3)

    Пользуйся чистым llama.cpp, встроенный в него server принимает http запросы, есть примитивный веб интерфейс, умеет отдавать ответ по токенам.
    Ответ написан
    Комментировать
  • Можно ли включить звук при звонке определённого контакта в бесшумном режиме?

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

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

    @rPman
    Во первых, виртуальные серверы не подходят для числодробилок (исключение - использование GPU или других сопроцессоров типа FPGA, там обычно они делятся по честному), потому что физический сервер будет разделен между несколькими пользователями, и даже если ты наберешь тарифным планом максимальное количество процессоров/ядер, часть ресурсов (для серверных - 3-5%, а для десктопных железок до 10-30% в очень специфических случаях) будут тратиться на обслуживание виртуализации.

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

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

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

    p.s. тебе верно советуют, не смотреть на гигагерцы.
    Все очень зависит от того как и какая задача запускается. Оптимизация кода, выбор архитиктуры (например 32-битная на 64-битной будет работать по другому, где то хуже где то лучше), глобальные параметры (размеры буферов пакетной обработки, количество запущенных воркеров/потоков, настройки кеширования и тюнинг файловой системы ос или выбор конфигурации хранилища,..). Это вопрос исследования, и только эксперименты могут дать какой то адекватный ответ. Еще раз - тестируй на реальном железе.
    Ответ написан
    Комментировать
  • Нужно ли вынимать процессор из сокета при прошивке БИОС программатором?

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

    Но, возможна ситуация, когда контакт программатора слетел и подал питание не туда, в этом случае существует вероятность что-нибудь сломать, и не только процессор но и какой-либо другой чип на плате (там есть компоненты с требованиям к питанию 3v).
    Ответ написан
    Комментировать
  • Можно ли поставить SSD SATA III в старую материнку?

    @rPman
    Да, 2 из 5 портов поддерживают 6Gb скорости, какие именно - читать в мануале.

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

    И нужно понимать, что ограничения скорости интерфейса обычно значительно выше скоростей самого устройства, т.е. даже если вы вставите ssd sata в старый порт sata I, работающий на 1.5мбит, то чтение с диска будет 150мбайт/с, и таких скоростей дешевые устройства тупо не смогут выдать (максимум из кеша, что в контексте задачи пользователь не заметит)
    Ответ написан
    Комментировать
  • Как сделать так чтобы можно было выбирать загружаемую систему?

    @rPman
    За загрузку linux обычно отвечает grub (можно и без него, например uefi умеет, но не советую новичкам туда лезть).
    В зависимости от выбранного типа загрузки в bios - legacy mbr или efi, настройки соответственно разнятся.

    1. в mbr режиме на диске должен быть записан загрузчик (он размещается в dos разделах, в бут секторе и последующих за ним секторах, в gpt разделах для загрузчика выделяют соответствующий раздел 1мб. biosboot)
    2. в efi режиме загрузчик записывается в efi boot раздел, можно использовать тот же раздел что и у windows (тогда загрузкой будет он заведовать, не рекомендую новичкам) либо создать второй efoboot раздел на втором диске, и при загрузке выбирать в биосе второй диск как загрузочный
    Это я написал к тому, чтобы в зависимости от типа загрузки, на втором диске должны быть соответствующие разделы (biosboot или efiboot)

    В обоих случаях все за пользователя делает grub-install /dev/sdX где sdX имя диска (sda - первый, sdb - второй,... советую внимательно проверять, потому как порядок может отличаться от того что в windows). Но для этого нужно загрузиться в linux, если же загрузка прооисходит с livrcd/liveusb загрузочного носителя, то тогда команда будет grub-install /dev/sdX --root-directory=/mnt где /mnt это каталог, в который необходимо смонтировать вручную установленный на втором диске linux (если к примеру там два раздела / и /boot то их нужно смонтировать соответственно в /mnt/ и /mnt/boot). grub автоматически найдет efi раздел и смонтирует его, мало того он автоматически найдет windows и добавит его в grub menu чтобы из linux загрузчика можно было бы загрузить windows... Если возникнет путаница и grub найдет виндовый efi, то можно смонтировать его вручную перед запуском grub-setup
    Ответ написан
    2 комментария
  • Как сделать чтобы приложение для win ce открывалось на весь экран?

    @rPman
    Явно причина в неправильном закрытии explorer. Его автозапуск нужно убирать из реестра, заменой шела на ваше приложение.
    https://developer.toradex.com/windows-ce/knowledge...

    Путь указывать полный

    p.s. еще если это WinForm то у формы можно задать TopMost свойство true, но надо экспериментировать.
    Ответ написан
    Комментировать
  • Есть ли оптимальный способ получения смс с +-50 сим-карт одновременно?

    @rPman
    Самодельный gsm шлюз, модули есть готовые к той же малинке, а там либо переключатель запилить либо ещё как.

    Вторая альтернатива закупить БУ смартфоны на android, это проще но возни много со старым железом
    Ответ написан
    Комментировать
  • Как запустить 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 комментария