Личинка программиста – Telegram
Личинка программиста
126 subscribers
17 photos
27 videos
5 files
24 links
База кринжа.
Download Telegram
Всем привет, на связи ноулайфер.

Я написал туториал о настройке ssh соединения для linux и windows машин, а также настройке VS code.
Моя жизнь улучшилась многократно после того как я узнал, что в VS code можно настраивать соединение по приватному ключу, ведь раньше я каждый раз вводил пароль(это было довольно утомительно). Зато теперь моя жизнь эникейщика стала намного проще.

Сам туториал я решил написать на github, потому как я смогу его дополнять если что, или фиксить ошибки.
ССЫЛКА НА ТУТОРИАЛ

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

Один лайк и я расскажу как настроить CI\CD на gitlab, с kubernetes на bare metal на примере django 4 и vue 3. С настройкой домена, конфигурированием сервера и бекапом базы данных в S3.
👍8🔥1
😁4🦄1
Всем привет, на связи ноулайфер.

Сегодня я хотел бы поделится с вами задачей над которой работал последний месяц(ну чуть меньше).
Автоматические методы оценки текста для open end диалоговых систем.

Как много вы про это слышали? Наверное знаете про то что есть какой-то там BLEU или METEOR, используй их и не думай.

Так думал я до этого мини исследования. Не буду томить вот выводы которые я сделал:

• Реализация важнее теории, важно указывать не просто ссылку на оригинальную работу по типу BLEU(а конкретный пакет и версию)
• На данный момент не существует универсальной метрики для оценки open end диалогов. Метрики лучше всего показывают себя на тех данных на которых они тренировались, что свидетельствует об переобучении.
• Важно давать инструкции разметчикам. Во всех работах наблюдается низкий уровень согласованности между людьми. Соответственно алгоритм ничего не найдет в зашумленных данных.
• Необходимо оставлять очень подробную документацию о постановке эксперимента оценок людьми, а также выкладывать данные с их оценками.
• Писать доку к проектам и оборачивать итоговое решение в docker, использовать технологию .devcontainer. Думать о том, что это будут использовать другие.
• Стараться использовать как можно больше метрик в своем исследовании, чтобы собрать как можно данных о метриках в разных доменах
• Необходимо использовать более продвинутые способы сбора информации чем Likert. Так как шкала может пониматься разметчиками совершенно по разному
• Использовать для корреляции Spearman, а не Pearson

Если вам интересно как я пришел к этим выводам, вот презентация на эту тему

А если вы сами что-то понимаете приглашаю законтрибьютить в данную репу https://github.com/dmitrymailk/text_evaluation

Ладно я пошел за хлебом, не теряйте, обнял.
🔥6
hash() в python возвращает разный хеш в разных процессах для одинаковых строк.

Это связано с тем что эта функция зависит от переменной PYTHONHASHSEED, значение которой может меняться, а может не меняться)) Зависит от версии python. Поэтому не стоит ее использовать для создания хешей скажем файлов. Для этого лучше взять к примеру
hashlib.sha256


А зачем и почему так? Почему раньше было по-другому?

А потому что некоторые люди-суки любят ломать и атаковать другие программы. Так вот, если не менять сид функции, которая генерит хеши то возможно увеличить сложность работы алгоритма с O(1) до O(n). ЧЗХ магия? Нет, математика(да магия).

Если некратко почему и как это работает, то вот ссылка. А если кратко, то к примеру словари в python работают на структуре hash table. В целом если на собесе спросят, то у нее сложность O(1) для вставки. Но это в среднем. Если атакующий подберет данные для hash функции так чтобы элементы при хешировании попадали в одни и те же бакеты, то для вставки ему нужно будет пробегать весь связный список чтобы удостовериться в уникальности. Ну это один из примеров, на деле хеш функции много где используются, поэтому если хотите чтобы вам ничего не сломали, то не говорите вообще ничего, даже информация версии языка может быть использована против вас.

Или история о том как я потратил на исправление бага разработчиков deepspeed несколько часов чтобы все начало работать 🤪🤪🤪

Вот вам еще дока на этот счет где об этом тоже ничего не написано.
Но вот тут написано, что странно, я бы сюда точно не полез, если бы мне нужна была хеш функция.
Слава богу что есть люди которые смогли успокоить мою паранойю на stack overflow
👨‍💻8🤯21
Всем привет. В моей группе стало больше 50 подписчиков, а это значит настало время рекламы от спонсоров.

1. Сервис для создания презентаций с красивыми шаблонами. Это некоторый аналог фигмы, только вырезали всю шелуху, оставили только пачку нормальных шаблонов общего типа конкретно для презентаций. pitch.com

2. Лично у меня больше нет оправдания не знать линал, теорвер и абстрактную алгебру в мельчайших деталях. Раньше я бросал многие учебники, потому что было сложно проверить а правильно я решил или нет, а если неправильно то что делать. Вот теперь у нас есть сервис brainly.com, где очень удобно собраны решения к самым крутым техническим книгам. (они просят деньги чтобы смотреть много решений, но можно поступить так же как и с medium - отключить куки для этого сайта в настройках 😎)

3. Бесплатный VPN, распширение для браузера. Hola VPN. Работает безотказно.

Далее поделюсь примерами слайдов которые я быстро накидал пока делал презентацию для курсовой, вроде неплохо для недизайнера.
👍10🔥1🤡1
Импорт llama2.c от karpathy на cython...

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

Я накатал небольшой обзор основных фич данного инструмента. В целом выводы можно сделать следующие. Вам нужен cython если
- вы боитесь писать код на с++, и вы работаете с какими-то невычислительными задачами, а скорость нужна
- вам надо как-то интегрировать инструменты на с++ в свой проект
- у вас чешутся руки, хочется что-то поускорять

Мой вариант если догадались это последний, поэтому на свет родился следующий туториал:
cython_lesson

Вооот, один лайк и в следующий раз я расскажу вам о своих попытках познать жизнь и всё сущее 🤖
👍142🤡1
Выложил бенчмарк для автоматической оценки LLM для русского языка при помощи gpt-4. По факту это просто переведенная версия официального mt-bench, только с модифицированным интерфейсом просмотра и завернутым в докер чтобы это продолжало работать и через год. Ну и соответственно там есть небольшой лидерборд. https://github.com/dmitrymailk/mt_bench_ru
👍7🔥3🤡2
Какое-то время назад я, вдохновившись проектом Saiga, пытался сделать свою модель, более лучшую (спойлер ничего не вышло). Я полагал, чтобы улучшить ее, необходимо собрать больше разнообразных датасетов. Из этого родился данный датасет verbalist.

В большей мере это просто сборник инструкционных датасетов со всего huggingface, с небольшой предобработкой. Однако среди них есть и те которые я собирал вручную, например:

dim/logic_tasks_ru - набор задач по логике для детей взят с веб-сайта.

dim/openreview_prompts_65 - Датасет рецензий на реальные научные статьи с сайта openreview. Вышло на самом деле не так много, так как многие статьи не выложенны на arxiv или просто не имеют рецензий. Плюс я собрал только малую часть данного сайта, а не все что там было.

dim/kinomania_noscripts - Небольшой датасет, который содержит в себе сценарии фильмов целиком и их краткое содержание

dim/bugurt_thread_prompts - Небольшой набор размеченных бугуртов вместе с моим другом, для того чтобы модель научилась писать бугурты на конкретную ситуацию. Собраны из телеграм паблика БУГУРТ ТРЕД(https://news.1rj.ru/str/bugurtthread)

dim/russian_lyrics_prompts - Небольшой датасет промптов собранный мною из различных учебников по стихосложению, чтобы модель научилась писать стихи, используя необходимый литературный прием на конкретную тему.

dim/azbyka_logic_ru - Небольшой набор детских логических и православных задач, взятых с сайта. Обычно у них почти нет развернутого решения, только ответ. Я пытался расписать решение некоторых задач, но меня хватило только на 35, если кто-то займется подобным буду рад .

dim/what_where_when_ru - полная выгрузка данных с https://db.chgk.info, примерно 228k пар вопросов ответов.

dim/bugurt_completion_prompts - Обрезанные бугурты, где в качестве промпта используется строка вида - продолжи бугурт: первая строчка бугурта

dim/forum_uristov_rf_prompts - Вопросы-ответы с российского юридического форума.

dim/huggingartists_prompts - Промпты, которые просят продолжить песню в стиле определенного исполнителя. В данном наборе содержатся почти все исполнители, которых вы можете найти в этой организации https://huggingface.co/huggingartists

Описание остальных датасетов и их предобработки можно найти в основной репе.

Ощущаю себя сизифом 🪨🚶 💬
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍2
Топ моих любимых плагинов для obsidian.md

Сколько не пытался пользоваться онлайн заметками все время приходил к выводу, что я им не доверяю. Поэтому последнее время пользуюсь исключительно obsidian. Однако в его дефолтной версии не хватает удобных фич для работы с картинками или автоматическим сохранением. Поэтому решил поделиться следующим списком:

Autocomplete - помогает быстрее писать часто повторяющиеся слова или термины, типа Т9
Git - автоматически сохраняет заметки в гит. У меня pro на гитхабе, поэтому я могу создавать приватные репозитории. Думаю можно совершенно без проблем прикрутить к любому другому провайдеру или self-hosted.
Clear Unused Images - так как это локальный редактор, то при вставке изображения она просто сохраняется в папку и потом вставляется ее путь. Если я удалю из редактора путь, сама картинка никуда не денется. Для этого создано данное расширение, если картинка не появляется ни в одном документе, то она удаляется по нажатию на одну кнопку. Очень удобно.
Image Toolkit - просмотр изображений в дефолтном obsidian реализован очень неудобно. Данное расширение помогает смотреть изображения при нажатии на них, с возможностью увеличивать и открывать на полный экран.
Mousewheel Image zoom - мне часто при конспектировании различных лекций приходится вставлять скриншоты. При вставке они бывают либо слишком большими, либо слишком маленькими. Раньше приходилось руками подбирать размер, чтобы картинки не мешали. Данное расширение помогает очень быстро адаптировать размер изображения, при этом все остается в рамках стандартного markdown без добавления css.
Paste URL into selection - обожаю коллекционировать полезные ссылки. Чтобы вставить ссылку с подписью в markdown нужно написать конструкцию вида [текст](ссылка) это очень долго, если речь идет о конспектировании. Данный плагин позволяет формировать гиперссылку для выделенного текста при помощи обычного ctrl+V
Scroll To Top - позволяет моментально скролить вверх или вниз страницы.
👍82
Разбор Speculative decoding, почему он работает неправильно?

Мне выпала честь поработать со speculative decoding, поэтому я написал на него подробный разбор с примерами кода. Я понимаю что никто не просил, но держите ссылки.

- почитать в markdown
- почитать в jupyter

Отвечая на вопрос почему же, я хз.
🔥5
2 недели назад великий алгоритм ютуба подсунул мне это видео. В нем были показаны фрагменты как люди при помощи новой нейросети RUNWAY преобразуют популярные игры до фотореализма. Да, в некоторых местах они меняют геометрию, меняют стили, но работа со светом, текстурами, действительно впечатляет. Для меня это было сродни первым видео из киберпанка с модами, когда чел прорывается сквозь пиксели на мотоцикле, а я с прищуренными глазами пытаюсь понять не видеозапись ли это.

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

Поэтому на данный момент я создал вот такую репу с отчетами о прогрессе https://github.com/dmitrymailk/auto_remaster

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

Но я не знаю как одновременно получать оригинальную картинку игры и картинку примененного шейдера.

Если кто-то, знает или у него есть идеи как можно улучшить картинку пожалуйста напишите мне. Прикладываю картинки в комментах. А тут картинки склееные в видео https://youtu.be/AX1ZpzI6wcQ?si=0jLfNGcH7WknHkWm
4👍1
Я попробовал Mochi 1 и VEnhancer для стабилизации видео из картинок.

На мой взгляд Venhancer справляется намного лучше чем mochi, хотя в обеих моделях я недостаточно экспериментировал над промптами и гиперпараметрами. Картинка стала намного стабильнее, больше нет раздражающей ряби, однако потерялся изначальный стиль и вайб картинок. Я думаю это можно будет решить обычной лорой.Также мне кажется что на основе Venhancer сделать некий refiner, чтобы картинка стала более интересной. Нам мой взгляд теперь стоит сосредоточиться на стабилизации картинки для Сontrol Net(кое-кто мне подсказал что типа можно как-то брать данные изображения из буфера, но еще бы я знал что это такое).

Видео в оригинальном качестве лежат в репе

https://github.com/dmitrymailk/auto_remaster
👍3
Моя гипотеза о том что canny фильтр из шейдера стабилизирует картинку оказалась верна. Пришлось заменить некоторые control nets и добавить несколько лор, чтобы сделать картинку более интересной, но теперь объекты в далеке расплываются гораздо меньше. В основном от этого страдают машины, наверное если написать шейдер который будет делать больший акцент на них, то всё решится. Также в моем пайплайне нет лор заточенных на автомобили, что могло бы(возможно) сделать их очертания более адекватными.

Проблема записи видео совместно с шейдером остается актуальной. На данный момент я написал тупой скрипт, который очень часто делает скриншоты через Reshade, однако даже на моем самом мощном ПК это выдает 10-12 фпс в лучшем случае. Как повысить производительность? Я думаю это можно сделать, например, через форк от Reshade и дописать функцию для записи видео, вот тут делается скрин.

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

Наверное пойду терроризировать форумы reshade 😁

(отдельные картинки в комментах и на гитхабе)

https://github.com/dmitrymailk/auto_remaster/
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍1