Задать вопрос
  • Как воспользоваться LLamaSharp?

    @rPman
    Оригинальные веса llama были выложены кажется на github
    magnet:?xt=urn:btih:ZXXDAUWYLRUXXBHUYEMS6Q5CE5WA3LVA&dn=LLaMA

    получаешь что то типа
    7B/checklist.chk
    7B/params.json
    7B/consolidated.00.pth
    13B/...
    ...
    tokenizer_checklist.chk
    tokenizer.model

    тебе нужны все tokenizer* файлы в корне и один из каталогов, соответствующий размеру модели (7B и 13B не знают русского и слабоваты)

    Этот c# проект - это биндинг к оригинальному проекту llama.cpp, там есть python скрипт convert.py (зависимости ставь сам, недостаточно requirements.txt нужен еще pytorch и еще что то, сам разберешься, в windows я не помогу) для конвертации из huggingface формата в суперэффективный ggml (этот формат постоянно меняется, где то раз в месяц, поэтому бессмысленно качать готовые, так как они будут привязаны к конкретной версии llama.cpp), его главная фича - mmap, веса не грузятся в память приложения а остаются в файловом кеше ОС, т.е. повторный запуск приложения моментальный.

    Будь готов к нескольким конвертациям, модели большие, особенно 65B, на диске тебе потребуется как минимум один раз хранить f16 версию (2 байта на вес, т.е. 130Gb для 65B модели) после его можно (но не обязательно) сконвертировать в формат с квантизацией (на вес будет требоваться к примеру 4 бита или 8), это значительно ускоряет работу ценой незначительного ухудшения качества.

    python convert.py --outtype f16 --outfile llama-7b-q4_0.ggml /torrents/LLaMA/7B
    вместо f16 можешь поставить f32, требования к памяти взлетят до 4 байт на вес но в теории это может быть тоже быстро (если критично, проведи бенчмарки), мои тесты показывают что f16 медленнее q4_0

    Опционально можешь провести квантизацию:
    ./quantize llama-7b-f16.ggml llama-7b-q4_0.ggml 2
    тут 2 это тип квантизации
    usage: ./quantize model-f32.bin [model-quant.bin] type [nthreads]
      type = "q4_0" or 2
      type = "q4_1" or 3
      type = "q5_0" or 8
      type = "q5_1" or 9
      type = "q8_0" or 7
    Очевидно что q4_... потребуют половину байта на вес (требования к 64b модели будут примерно 42+5GB ram), разница версий квантизации в скорости и качестве (q4_0 быстрее и чуть хуже q4_1 но я уверен что без синтетических тестов эту разницу на практике не заметишь даже между q16 и q4, она там единицы процентов, но вот скорость значительно отличается).

    Для работы llama.cpp нужен один файл .ggml (внутри и веса и токенизер) его и пиши в путь до модели.

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

    @AHMED_RAPIRA
    Надо скорее не статьи, а исследования искать, по критериям своего "превосходит". Такие, скучные pdf-ки с графиками и формулами, стирающие глаза в кровь, их можно найти на: ресерчгейт киберленинка и тд

    Так же можно поискать инфу в самом репозитории Rust по issues

    Тут можно посмотреть что во что компилируется и посравнивать:
    https://godbolt.org/
    Ответ написан
    Комментировать
  • Где учить алгоритмы и структуры данных?

    includedlibrary
    @includedlibrary
    Вот хорошая книга Алгоритмы: построение и анализ
    "Грокаем алгоритмы" слишком поверхностная книга, читать её не имеет никакого смысла.
    Ответ написан
    3 комментария
  • Как установить линукс рядом с линуксом?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    В Ununtu, не поверите, есть все то, что и в Kali. (Ох уж эти пынтыстеры )
    Так что просто снесите Kali и установите Ubuntu!
    Ну и также, сделайте отдельный раздел, и на него установите Ubuntu, если уж так хочется много линуксов.
    Разделы можно подвигать в grarted, он есть в livecd c убунтой.
    Ответ написан
  • Как определить ОС с которой пользователь сидит в телеграм?

    SoreMix
    @SoreMix
    yellow
    Никак, нет такой функции. Проще всего спросить у пользователя, предложить два варианта кнопок, одна с гео, вторая "не могу отправить" и там уже какая нибудь другая обработка
    Ответ написан
    1 комментарий
  • Смотрят ли на оценки в дипломе при устройстве на работу?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Даже на наличие диплома редко смотрят, внутрь вообще никто никогда не заглядывает.
    Ответ написан
    Комментировать
  • Есть ли статьи, которые приводят наглядные примеры того, как код на rust превосходит код на других языках?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В топике непонятно что автор имеет в виду под превосходством.

    Я думаю что если заказать статьи разным техно-писателям то они напишут каждый про свое. Один
    может писать про удобство процесса разработки (и это важно). Другой напишет про безопасность
    по memory safety. Третий может напишет про ФП и обобщенное программирование и может
    быть про автоматическое доказательство каких-то свойств которые есть у софта.

    Могу констатировать в живых примерах что ядро линукс уже содержит 55 исходников на rust (по состоянию
    на 5/13/2023) и следовательно кому-то это надо. Кто-то заказал внедрение нового компиллятора.
    Видимо язык С уже не устраивал. Я пытался просмотреть эти сорцы но моих знаний Rust и Linux kernel
    разработки пока не хватает чтобы дать хоть какой-то внятный комментарий по поводу. Ну раз коммитеры
    вкоммитили значит все таки было очень нужно.

    Здесь критерий автора было-стало не работает. Но зато есть другой критерий. Не было-стало
    что тоже само по себе является пруфом эволюции.

    Про Mozilla тоже можно посмотреть. Возможно там найдуться примеры где было на С++ и стало на Rust.
    Ведь это по сути была главная причина возникновения самого языка Rust.
    Ответ написан
    Комментировать
  • Есть ли в России краудфандинг-площадки для технических проектов?

    Bredun
    @Bredun
    Автор проекта "Простая наука", телеведущий
    Технический проект советую запускать на boomstarter.ru. Основываюсь на своих наблюдениях и реальном опыте запуска проекта.

    Планета.ру больше для творческих и, особенно, для музыкальных проектов.
    Ответ написан
    Комментировать
  • Есть ли сертификационные программы по языку C/C++?

    @mamkaololosha
    brainbench.com может выдать сертификат.
    Но тут есть нюанс, что сертификаты по С/C++ бессмысленны. Это не фулл-стековые языки: там нет GUI, потоков, графики, БД. Могут быть сертификаты "Разработка БД на С++ с использованием Oracle" или "Разработка графики на С++ с использованием Direct X". Но это джуниоровский уровень. Полная пересборка С++-проекта может занять 2-3-4 часа. Почитайте статью про chromium habrahabr.ru/post/165193/. Тут есть парадокс, что между джуниором С++ и хорошим программистов С++ очень большая пропасть. Пропасть может быть в 5-7 лет работы. Тут сертификаты уже не помогут.
    Ответ написан
    2 комментария
  • Схема работы с git и dev-сервером. Что посоветуете?

    SeaInside
    @SeaInside
    16 лет пилю все эти штуки
    Кажется, вопросу нужно решение :)
    TLDR: Вопрос решается простым действием - ветвиться от main, а не от develop.

    Подробное объяснение с примером можно найти внутри комментариев к ответу Василия Банникова.
    Ответ написан
    Комментировать
  • Как проверить хорошо ли петли ноутбука затянуты и смазаны?

    @nehrung
    Не забывайте кликать кнопку "Отметить решением"!
    Я уже отвечал, что классический тест для этой цели - это "тест одной руки": если одной рукой удаётся открыть крышку с экраном, не придерживая второй рукой корпус, то шарниры не перетянуты. И если крышка, оставленная под 45 градусов, не падает назад на клавиатуру, а остаётся висеть в этом положении, то шарниры не недотянуты.
    Каким способом наладчик добьётся этой натяжки - его проблемы. Если для этого требуется пересобрать ноут несколько раз - ну значит, надо пересобирать несколько раз.
    А что касается того,
    что не собранный до конца ноутбук нельзя закрывать и открывать крышку
    то это относится не к шарнирам, а только к риску оборвать один из шлейфов, ведущих к крышке. Просто надо быть поаккуратнее.
    Ответ написан
    Комментировать
  • Зачем перед str ставить +?

    axifive
    @axifive
    Software Engineer
    Чтобы преобразовать строку в число

    +"76" == Number("76")
    Ответ написан
    3 комментария
  • Отрисовка треугольника в консоли. Какая часть отрисовывает символы: вложенность или её основа?

    Adler_lug
    @Adler_lug
    i - порядковый номер строки (от 0), который ограничен высотой
    j- позиция в строке, которая не может быть больше порядкового номера строки.
    Результат выполнения кода видели? Там все до безобразия просто и понятно.
    Не пойму, что тут может быть непонятно...
    Ответ написан
    3 комментария
  • Существует ли модель, обратная Stable Diffusion?

    @rPman
    https://github.com/mlfoundations/open_clip
    https://huggingface.co/laion/CLIP-ViT-H-14-laion2B...

    лучше гуглить сразу CLIP image classification, тьма моделей начиная с openai, разбираться долго

    p.s. еще про анализ объектов на изображении лучше начни копать от сюда или лучше segment-anything фейсбук много чего выкладывает
    Ответ написан
    Комментировать
  • Почему в некоторых мониторах 144 Гц?

    @rPman
    https://hi-news.ru/computers/pochemu-igrovye-monit...
    144 — это 24 умноженное на 6. Все текущие герцовки дисплеев делятся на 24: 120 Гц, 144 Гц, 240 Гц, 360 Гц.
    Ответ написан
    7 комментариев
  • Не открывается exe файл после компиляции gcc. Что делать?

    @dima20155
    you don't choose c++. It chooses you
    Что значит не открывается?
    Если у вас приложение, которое выводит "hello world", то вы просто не успеете увидеть, результат, как оно мгновенно закрывается. Если я прав, то используйте std::getchar(); (или её С аналог) в конце.
    Ответ написан
    2 комментария
  • Экранирование sql запросов, достаточно ли функции?

    Adamos
    @Adamos
    Самописные "защиты от инъекций" вследствие непонимания автором того, что он вообще делает, обычно убивают двух зайцев сразу.
    И оставляют дыру в безопасности, и портят данные в базе.
    Для реальной защиты подготовленного запроса, как правило, достаточно. Но если очень постараться, дырку можно проделать и в нем.
    Ответ написан
    Комментировать
  • Экранирование sql запросов, достаточно ли функции?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Эта функция не самописная, а цельнотянутая. Причем из самых смрадных помоек интернета.
    К защите от инъекций не имеет вообще никакого отношения.

    - trim() ни к инъекциям, ни к защите отношения не имеет
    - stripslashes() просто бессмысленная функция, которая только портит данные
    - htmlspecialchars() не имеет отношения к SQL. Применяется при выводе данных, а не при получении
    - real_escape_string() - единственная функция, которая имеет отношение к SQL, но при этом вообще не предназначенная ни для каких защит.

    Попробуйте на основании этой информации самостоятельно оценить полезность вашей функции.

    Возьмем классический пример
    $_GET['id'] = '1;DROP TABLE Students;';
    $id = formatstr($_GET['id']);
    $sql = "SELECT * FRPM Students WHERE id=$id";

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

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

    bingo347
    @bingo347
    Crazy on performance...
    Метод clone из трейта Clone производит копию некоторого ресурса, мы получаем еще один ресурс во владение. При этом данные не обязательно копируются, логика может быть любой, например Rc и Arc в нем просто увеличивают счетчик ссылок, а ресурс остается одним, разделяя владение на несколько владельцев.
    Ссылки ограничены временем жизни ресурса, на который они ссылаются, к тому же менять ресурс мы можем только по уникальной ссылке, а метод clone создаст копию ресурса и отдаст владение этой копией, что позволит этой копии жить дольше, чем исходный ресурс, а так же изменять эту копию независимо от исходного ресурса.
    Ответ написан
    1 комментарий
  • Почему сильно напрягаются глаза от ноутбука с IPS?

    GavriKos
    @GavriKos
    Микропетпроджект - домашнее облако homeCloud
    Дело может быть в чем угодно. Глаза индивидуальны. Так вот чтобы докинуть:
    - яркость не та что вам привычна
    - контрастность не та что вам привычна
    - окружающее освещение не подходит
    - шим таки есть
    - расстояние/уго/посадка неверные
    - и все возможные и невозможные сочетания этих и других факторов.

    Что поможет? Ну или смириться - глаза привыкнут, или настраивать что можно настроиьт, или менять ноут. Конкретного ответа никто кроме ваших глаз не даст
    Ответ написан
    4 комментария