Всем привет, захотел попробовать сделать свой ии-переводчик. Для создания своей модели мне не хватает знаний, поэтому решил попробовать обучить что-нибудь на основе MobileLLM, но я не смог разобраться в документации. Если кто-то ужетработал с этой штукой, помогите, пожалуйста.
Во фрилансе уже 13 лет, и, похоже, лимит моих нервов исчерпан.
Устал работать без выходных и отпусков, проливать кровь за каждую копейку в каждом договоре. Сочинять досудебные писульки, когда заказчик пытается обмануть. Да и вообще спать стал плохо и глаз дергается. :)
Да, фриланс — это высокий доход, но и скотское отношение к своему здоровью. Хрен с ним, с баблом, хочется стабильной зарплаты. Пусть чуть меньше, но с выходными и отпусками.
За 23 года в IT как-то не довелось ни разу проходить собеседования или искать работу. Все по сарафану: звали, переманивали, а потом мне надоело работать на кого-то, и я решил уйти в свободное плавание. Чем я только не занимался: админил что угодно, работал в геймдеве (шейдеры, ассеты), разрабатывал и запускал майнинг- и рендер-фермы, торговал железом из Китая. А потом сломал себе позвоночник — аж в трех местах в начале 21 года.
Ну, что делать? Пришлось вспомнить, что когда-то кодил на ассемблере: драйвера для контроллеров спектроскопов и хроматографов. Чтобы быстрее встать в рабочее русло, взялся за Python. Удивительно, как продвинулись технологии с тех пор, как я делал сайты на CGI с Perl.
Быстро вник в тему на живых проектах для себя. За полгода до этого заказывал телеграм-бота за 100 USDT. Функционал его меня не устроил, так что изучение Python начал с переписывания бота под свои нужды. Потом взялся за сайт. Подумать только: от лени раньше использовал идиотские CMS вроде Joomla или WordPress для своих задач. А тут Django: полный контроль над процессом, всё понятно, не надо гуглить про баги в очередном плагине. Если что-то не работает — значит сам дурак, и это легко исправить, когда осознаешь где накосячил.
Затем знакомый попросил спарсить авито и сделать аналитику по конкурентам. Оказалось, есть куча библиотек для этого. Правда, авито пытается бороться с парсерами, но немного подумав, это можно обойти. Однако их кодеры не дремлют: периодически меняют алгоритмы обнаружения.
Другой знакомый решил торговать шинами, а как организовать процесс — не понимал. Сел с ним, провели мозговой штурм, придумали простенькую ERP. Суть: брать данные по API у десятка оптовиков, приводить к единому формату, добавлять процент и выгружать в авито. Потом она обросла функционалом: парсила недостающие фото, добавляла свои (клиенты лучше клюют на живые фото), анализировала продажи по менеджерам и сезонам, сканировала QR на складе для упрощения размещения, связывалась с 1С и автоматизировала процесс. Всё это работало на Django: шустро и стабильно. Правда, отвратительная ORM Django меня раздражала, поэтому заменил её на SQLAlchemy, сессии Django — на posix_ipc где-то на Redis организовал. Дружба Django с асинхронностью тоже оставляла желать лучшего, что ускорило отказ переход на сторонние библиотеки и методы в этой части.
Вскоре похожую ERP сделали другому знакомому — для автозапчастей. Там добавили онлайн-магазин, ботов, ИИ-ассистентов и прочие фишки.
Это было интересно. По началу энтузиазм захватывал: работал по 12 часов в удовольствие. Но со временем понял, что качество никому не нужно. Главное, чтобы работало. Оптимизация, лучшие практики — в топку. Всё ради "быстро, дешево, кое-как". Конечно, старался делать качественно ради внутреннего перфекциониста, но со временем даже он стал уставать.
Устал. Надоело бороться за красивое против быстрого. Лучше буду после найма пару часов для себя что-то шлифовать, чем воевать с заказчиками.
Забавно, но те, кого звал на проекты, со временем в панике убегали. Заказчики тоже не понимают, что на поддержку таких систем нужен штат. Говорил им: это дорогое удовольствие, но иначе всё загнется. Люди нужны на отдельные направления, а не менеджеры с телефонов в нагрузку.
В общем, сосватал последнему заказчику директолога и кодера, а сам решил завязать.
Теперь о найме. Не имею понятия, что должно быть в резюме. Написал GPT свои компетенции, он выдал простыню на канцелярите. Чуть поправил, вывесил на hh с адекватным запросом в зп. Уже пару недель — тишина. Может, в резюме у меня оверскилл. Читал про такое явление, но не понимаю, чем оно плохо.
Друзья тоже особо помочь не могут: двое сказали, что возможно что-то будет после нового года. Где тут нехватка IT-кадров?
Мандраж для собеседований приготовлен. Теоретик я никакой, книг по программированию читал всего пару: "Ассемблер Z-80". Остальное изучал по мануалам. Попросил GPT погонять меня по вопросикам с собесов, но хз. Вроде и понятно о чем спрашивает, но блин, разумеется любой теоретик читающий профильные бложики меня уделает на раз.
Сегодня отправил резюме в Сбер. Знакомый пугает, что там на работе от инфарктов мрут. Страшно. Непривычно. Боюсь побьют. :)
В общем вот такой 13 летний опыт фриланса. И ну его нафиг, себя надо беречь.
Недавно я задумался над глобальной проблемой. Если все программисты соберутся вместе, смогут ли они придумать способ спасти планету от изменения климата?
Вот моё решение на Python, чтобы помочь сократить потери энергии:
Отлично, попробуем что-то более сложное. Высокая загрузка ЦПУ или ГПУ приводит к большему потреблению энергии. Итак, этот скрипт Python использует APScheduler для периодической проверки загрузки системы, и если она слишком высока, он выключает или переводит компьютер в спящий режим. 🌍
На этом мои вечерние размышления заканчиваются. Если вы обычно работаете с прожорливым искусственным интеллектом или высоконагруженными системами, сегодня можно взять попкорн, включить что-то интересное на телефоне и перевести компьютер в режим экономии энергии.
Прошло ещё какое-то количество дней моего обучения. Что могу сказать, кажется я начал потихоньку падать в яму Даннинга-Крюгера. Надеюсь, что написал без ошибок и употребил к месту:)
Что я имею в виду.
Пройден курс на Степике для начинающих. Попробовал протыкать курс для продвинутых- не дошел до середины повторения. Обратился к сайту metanit.(забыл). Разобрал там темы работы с файлами, с датой и временем, работы с модулями и библиотеками. Написал программку, которая посчитала мне количество слов в Евгении Онегине. На удивление, кроме предлогов, слова там чаще всего используются 1 раз. Ай да Пушкин, что ещё сказать.
Ну и вот, весь такой одухотворённый, скормил список новообретенных знаний чату гпт и попросил накидать примеров реальных задач реальных программистов с учётом моего списка.
Это БАЗА, ответил мне чат и выплюнул такое количество возможностей, что я слегка припух. Много, на самом деле. В общем, начал я тыкать во всякие запросы к серверам, взаимодействие с API, телеграм-ботов, работу с эксель-таблицами (тут вообще голову свернул, т.к. таблицу брал из своей реальной жизни, а она (таблица) ну просто ппц). Что-то получилось, большая часть, конечно, нет. Зато передо мной открылись такие широкие горизонты, что я почувствовал себя... Хм, в общем, ощутил свою маленькость.
Как я понял (пока не дошел до ООП со всякими блек-джеками и классами), что много построено на циклах с условиями, списках/словарях и огромном количестве подключаемых модулей и библиотек. Под любой, видимо, сих, кто-то уже придумал целую библиотеку, а то и несколько. Если я правильно понял, то метод библиотеки содержит в себе готовую конструкцию из тех же циклов с условиями, но завернутую в одно слово-метод. Теперь для меня стали более понятны слова про "чтение документации" и необходимость много знать и запоминать. Ну и необходимость знания английского наконец-то обрела конкретные формы.
Да, окончательно спрыгнул со Степика. Задачки решаю теперь на codewars. Это, конечно, отдельная история.
Плотно подсел на жпт. Помогает гуглить, подкидывает примеры использования тех или иных знаний, подсказывает пути решения. Я пользуюсь чатом от khanacademy, он не сразу даёт ответ, а помогает разобраться самому, направляя мысли в нужное русло.
Вот, пока пишу сегодняшнюю заметку, потихоньку в голове вырисовываются дальнейшие перспективы и итоги. Спешу поделиться:
1 "Все уже украдено до нас"- судя по всему, под любую задачу кто-то умный уже написал библиотеку. Осталось только ее найти и научиться применять.
2 Повторение- мать ученья. Как мне говорил @vikvikst, все приходит через пальцы. Обратил внимание, что работа с файлами и всякие запросы пока даются трудновато. Вроде, все понятно и написанный код я могу описать, но написать с нуля пока не получается. С другой стороны, конструкции, пройденные ранее уже отлетают от зубов пальцев из-за частого использования (могу погуглить только конкретный метод, но уже знаю, что ищу)
3 Обилие информации по прежнему пугает. В том смысле, что не совсем понятно, за что хвататься. Пробовал пользоваться роадмапами из интернета и из комментов в первых постах, но там тоже как-то все по-взрослому. Попросил gpt накидать мне роадмап для чайников. Пусть не такая удобная визуализация, зато вполне понятно, куда бежать, что поучить, и что поделать.
4. Периодически накатывает ощущение "все это зря, ты тупой, никогда не получится" и все такое. Оно, как правило, мимолётное, я же знаю, что умный. Мне мама сказала:)
Плавно перетекаем от итогов к планам:
1 Продолжаю решать задачки на codewars в качестве разминки и/или заминки перед занятиями.
2 Думаю, есть смысл нагуглить себе идею проекта и начать его делать "от и до"
3. Насколько я понял, из синтаксиса мне осталось освоить только классы и разнообразные виды функций, кроме обычных.
4. Нашел себе книгу из серии Head First, "Учимся программировать. С примерами на Python"
5. Благое намерение смотреть Ютуб, пока в разъездах, превратилось в какой-то ад из блогеров которые учат вкатываться, крутить опыт, обсирают тех, кто учит крутить опыт, рассказывают, что рынок ИТ уже умер, вещают о том, что рынок ИТ сейчас на подъеме и прочую шелуху. Выделить 30 минут и накидать себе плейлист на неделю- ленюсь. Сегодня все же сверюсь с роадмапом и надергаю тематических видосов.
Уже было 2 или 3 дня выходных. Учитывал только время за компом и решение задач с телефона
Вот такие вот делища. Если есть, что посоветовать или выразить какую-нибудь критику, буду очень рад и признателен!
Для наглядности предобработки текстовых данных от Spacy, Pymorphy3, Simplemma, Natasha, NLTK и TextBlob решил собрать указанные библиотеки в один файл и продемонстрировать их результаты...
Для предобработки текстовых данных от Spacy, Pymorphy3, Simplemma, Natasha, NLTK и TextBlob импортируем: import spacy, pymorphy3, simplemma, natasha, nltk, textblob,
если нет указанных библиотек, тогда устанавливаем через pip: pip install spacy, pymorphy3, simplemma, natasha, nltk, textblob
Для проведения лемматизации, скачиваем необходимые языковые модели, например: для spacy nlp = spacy.load('ru_core_news_sm') для pymorphy3 morph = pymorphy3.MorphAnalyzer() для nltk nltk.download('wordnet') nltk.download('omw-1.4') для natasha from natasha import ( Segmenter, NewsEmbedding, NewsMorphTagger, NewsSyntaxParser, MorphVocab ) segmenter = Segmenter() emb = NewsEmbedding() morph_tagger = NewsMorphTagger(emb) syntax_parser = NewsSyntaxParser(emb) morph_vocab = MorphVocab()
Не забываем и про скачивание стоп-слов, например: nltk.download('stopwords')
Создаем функцию для предобработки текста, например:
def preprocess_text_simplemma(text): . text = text.lower() . # упускаем некоторые моменты предобратки ... . tokens = text.split() . # Фильтрация токенов и лемматизация . filtered_tokens = [simplemma.lemmatize(word, lang='ru') for word in tokens if word not in stop_words] . return filtered_tokens