Привет, это Настя 👋 Пишу тут про python, визуализацию, учебу, работу и просто новости @tokelau - можно мне написать
Второй год магистратуры МФТИ по Наукам о данных
#про_магу
Ура, лонгрид на эту тему готов. Отдельно ответила на ваши вопросы
Коротко:
- магистратура классная
- я ушла в академ
Открытие дня
Вы знали, что в Colab можно использовать @title, @markdown, @param прямо в ячейке кода и справа даже появится окошко для редактирования переменных?
Документацию не нашла, но таких команд вроде всего три
нашла на Хабре интересную статью Как решить 90% задач NLP: пошаговое руководство по обработке естественного языка. Не думаю, что сегодня материал покрывает все 90%, но основу основ точно да.
Особенно мне нравится подход, сформулированный авторами в конце:
1. начинаем с быстрой и простой модели;Читать полностью…
2. объясняем ее предсказания;
3. понимаем, какие разновидности ошибок она делает;
4. используем полученные знания для принятия решения о следующем шаге — будь то работа над данными, или над более сложной моделью.
больше примеров и немного подробностей про модель: https://habr.com/ru/companies/sberbank/articles/586926/
Читать полностью…Если вы, как и я, слышали о моделях text-to-image, но еще не пробовали, то вот ссылка. Регистрироваться не нужно, генерация занимает примерно минуту
https://rudalle.ru/kandinsky30
Эффективное чтение текстовых файлов с помощью функции read_text()
Функция read_text() входит в состав модуля pathlib (из стандартной библиотеки Python) и предоставляет удобный способ чтения содержимого текстового файла. Этот метод специально предназначен для чтения всего содержимого текстового файла за один раз.
Ключевые особенности read_text():
Простота: при использовании read_text() не нужно вручную открывать или закрывать файл - метод обрабатывает эти операции внутренними средствами.
Считывание всего содержимого: функция считывает все содержимое файла и возвращает его в виде строки.
Обработка исключений: если файл не существует или возникают проблемы с его чтением, read_text() вызовет ошибку FileNotFoundError или OSError.
Только текстовые файлы: Следует помнить, что read_text() предназначена именно для чтения текстовых файлов.
В данном примере для объекта file_path вызывается метод read_text().
Метод считывает все содержимое файла и возвращает его в виде строки, которая затем выводится на печать.
Время от времени меня спрашивают
Помогает ли опыт в программировании изучать английский?
Конечно, да. Конечно, нет.
1. У вас 100% появится лексическая база. Это все упрощает, хотя художественную литературу читать все равно трудно
2. Эта лексическая база будет заточена под ИТ, само собой. Например, я знала слово even в значении "четное число", хотя оно гораздо чаще используется в значении "даже". Как понимаете, в питоне никто не пишет "даже если это условие не работает..."
3. Грамматика все равно боль. Лично я понимаю, о каких объектах речь, но вообще не понимаю в каком времени все происходит и как слова между собой связаны
Я это к чему - к методологии обучения
У начинающих занятия должны занимать 10% теории и 90% практики. Никак нельзя обойтись без семинаров
Когда путь решения бессмысленных задач на набивание руки пройден, нужно переворачивать все с ног на голову и почти полностью вычеркивать семинары
Утро вечера мудренее
Это подход в обучении, который я эмпирическим путем вычислила как оптимальный. Он заключается в том, что любую задачу нужно решать поэтапно и между этапами обязательно должно пройти некоторое время, от пары часов до нескольких дней/месяцев и даже лет
Например, у меня сейчас есть домашнее задание. Этапы его выполнения
- 0. Лично мне всегда нужно смириться с фактом, что нужно сесть и поработать. Я обдумываю, когда смогу этим заняться, какие примерно усилия приложить и просто прокрастинирую
- 1. Читаю задание. Обдумываю план решения и какие есть пробелы, чего я еще не знаю и где об этом почитать. Ранжирую задачи от самой простой к самой сложной. Ухожу думать.....
- 2. Сажусь за самые простые задачи, параллельно закладывая фундамент для решения сложных
- 3. Дальше два варианта: решение сложной задачи само собой вытекает из решения простых либо начинается хаос, потому что задача оказалась точкой роста и решение предстоит изобрести
Кажется, что этот способ еще можно назвать "тянуть резину" и в чем-то это справедливо. Но также опытным путем я узнала, что мозг каким-то невероятным образом со временем усваивает информацию и то, что не решается наскоком чаще всего хорошо решается, если есть время подумать
вау, библиотека на python, с помощью которой можно измерять выбросы CO2 при обучении моделей. Называется codecarbon
Читать полностью…Как изучать Data Science?
Можно оттачивать навыки в одиночку или купить курс и пойти учиться. А можно присоединиться к комьюнити и изучать DS вместе с единомышленниками. Нашла одно классное - Data Drive
Помимо канала ребята собираются каждую неделю в дискорде и там можно:
🟣Послушать как проходит мок интервью
🟣Послушать доклады по машинному обучению (сейчас для каждого пишут порог вхождения)
🟣Почитать и обсудить литературу из области (хочу попасть на доклад по Вероятностному машинному обучению Мэрфи)
Подписывайтесь, если вам нравится изучать DS в хорошей компании
Я вас услышала 😁
Скидка 600 руб до 16 июля по промокоду JULE
Покупать по этой ссылке: https://stepik.org/a/113585
Parquet
С какими типами файлов мы чаще всего работаем в pandas? В моем случае до недавнего времени это был csv, на втором месте Excel. Csv прост, как дважды два, поэтому он всем нравится. Однако для реальности не подходит, потому что реальность - это ежедневная передача-обработка-хранение больших объемов данных. Pandas в таком случае тоже не очень подходит, но это отдельный разговор
На работе мне открыли новый крутой формат - .parquet. Он:
✅Колоночный, как и clickhouse, и считывается в этой СУДБ даже проще csv
✅Данные сжимаются так хорошо, что их нет смысла архивировать
✅Открытый и бесплатный. А так как все хорошее с такими характеристиками рано или поздно распространяется далеко за пределы изначального замысла, то сейчас parquet можно обрабатывать на C++, Java и конечно же на python. Хотя изначально разработан Apache для своей экосистемы Hadoop
Есть пара особенностей:
▪️Всего 7 типов данных, 3 из которых хранят целые числа, 2 - вещественные
▪️Странная обработка null-значений. Например, если я преобразую строковую колонку с null-значениями в parquet, а затем обратно, то на месте пустых значений увижу вполне себе строковые значения ‘nan’
Как работать в pandas
Чтобы считать из parquet в датафрейм пандаса
df = pd.read_parquet(path_to_parquet_file)Cохранить датафрейм в parquet
df.to_parquet(path_to_parquet_file)Понадобится дополнительная библиотека (pyarrow или fastparquet):
pip install pyarrow
pip install fastparquet
Читать полностью…
Ненасильственное общение «Язык жизни», М. Розенберг
Обзор на книгу
а еще в магистратуре я нашла новую работу и у меня даже взяли интервью на эту тему: https://blog.skillfactory.ru/programmirovanie-eto-lyubov/
Читать полностью…Всем привет!
Давненько я не рассказывала как у меня дела, копила новости. Есть три большие темы, о которых хочу рассказать, одна из них магистратура, которую должна была закончить в этом году, но не закончу
Готовлю лонгрид на тему второго года в маге, если есть вопросы, оставляйте в комментариях
🌸Небольшое дополнение к посту про бесплатные курсы по NLP/LLM🌸
#nlp #про_nlp
Серия из 8 лекций на русском языке от Игоря Котенкова (Сиолошная):
"Полная история семейства GPT"
— история и мотивация создания GPT-моделей
— подробный разбор архитектур
— метрики оценки
— законы масштабирования и emergent properties
🟣Плейлист на Youtube
вы знаете что-то, на что не способен чат гпт? В рамках задуманных возможностей
Читать полностью…вот что у меня получилось (промпты в комментариях)
Читать полностью…вау, модели pytorch можно автоматически визуализировать!
Модуль называется tensorboard, в документации примеры с графиками, меня привела в восторг вот такая визуализация модели 🔥🔥🔥
я долгие годы читала текстовые файлы с помощью
file_name = 'text.txt'
with open(file_name) as f:
content = f.read()
Гриб моральной поддержки — канал о том, как беречь себя. Захожу, когда забываю простой факт (на видео)
Читать полностью…Программирование - практическая штука
Мало толку от теоретического знания, как работают if/for/def, нужно решать задачи. Однако эти задачи чаще всего воображаемые и уже давно решенные. И этот этап никак нельзя пропустить, каждый ИТ-шник потратил тысячи часов на "верните тридесятый элемент массива"
Дальше наступает второй этап, когда для написания чего-то практического и классного становится необходимым большую часть времени тратить на теорию. Это в самой практической сфере, которую я знаю
Неожиданное осознание элементарного
Второй год магистратуры
хотела после первого года обучения в онлайн магистратуре рассказать, что в общем и целом это выброс денег на ветер и как плохо все организовано. Рада, что не стала торопиться (кто не знает, я учусь в физтехе по этой программе)
Недавно сходила на первую пару по анализу естественного языка и практически все там было для меня новым и интересным. И это при том, что я не раз со своими учениками разбирала nlp. Смотрим, что будет дальше
В последние дни появилось немного времени и я отправилась читать свои любимые айтишные блоги. Оказалось, пока я этого не делала мой словарный запас программиста устарел и я не всегда понимаю коллег. Делюсь новыми словами (некоторые очевидны, но по какой-то причине все равно обратила на них внимание)
Перевод писала сама, либо брала у авторов, специально ничего не гуглила. Так что пояснения могут быть некорректны, давайте обсуждать и дополнять
Итак,
• бойлерплейт - повторяющийся код, который приходится писать из-за особенностей языка, а не ради описания логики. В целом любой код, который не несет смысла относительно задачи, которая решается
• плейсхолдер - по сути переменная. Например, у нас есть html-страница и мы говорим вот здесь на месте текста должна быть информация о кошке, а здесь на месте картинки - фотография кошки
• промпт - текстовая инструкция для chat gpt или других нейронок
• файнтюнить - Тренировать модель? Улучшать модель?? Так и не поняла до конца. Из комментариев: дообучать модель; предполагается что есть обученная модель для каких-то задач, а мы хотим её адаптировать для своих, под свои данные
• токен - слово (или другая атомарная сущность), за которую нужно платить chat gpt
• атомарная сущность - нечто неделимое. В С++ атомарной называется операция, которую нельзя распараллелить. Например, сложение - нет смысла увеличивать одно число на другое в разных потоках
• LLM / LLMка - новые, модные, хайповые и классные NLP модели/нейросети. Насколько понимаю Chat gpt - это LLM-модель
Пишите, что интересного встречалось вам 👇
Как работает list(map(int, input().split()))?
Вчера возник такой вопрос, давайте попробую рассказать на примере
Идея в чем
Имеется список lst = ["1", "2", "3"]. Числа в кавычках, а значит, это строки. И мы хотим к каждому элементу применить функцию. Здесь логично применить int(), чтобы строки превратились в числа. Есть два способа это сделать:
🍃 через цикл
for i in range(len(lst)):
lst[i] = int(lst[i])
🍃через map
lst = map(int, lst)
Чтобы на выходе получился снова список, еще применяют list() и получается: list(map(int, lst))
💘💘💘💘💘💘💘💘💘💘💘
А что же input().split()? А эта конструкция всегда возвращает список, останется только ввести в консоль числа через пробел, чтобы получился такой же lst
Судя по вашим сообщениям, я не одна прекрасными летними вечерами люблю учиться. Здо́рово! Думаю сделать скидку на курс, поставьте реакции, если вам актуально. Чем больше реакций, тем больше скидка 🔥
Читать полностью…Ненасильственное общение «Язык жизни», М. Розенберг
Обзор на книгу
Не знаю, насколько честно делать обзоры на недочитанные книги, но решила, раз мнение есть, то и поделиться им можно
Мне кажется, раньше советы из книжки "Язык жизни" обитали в основном в психологических пабликах и блогах, а сейчас все чаще замечаю их в профессиональной среде. Например, в прошлом посте упоминала, что в магистратуре нас учили 4 элементам ненасильственного общения (наблюдение, чувство, потребность, просьба)
О чем книга
О том, как очистить входящие и исходящие сообщения от упреков, гнева, обиды и вести конструктивные диалоги
Мое мнение
Думаю, книга рассказывает дельные вещи о межличностной коммуникации. Но… В ней около 280 страниц и за несколько лет я едва осилила половину. Этому есть две причины:
1. Книгу нужно не только читать, но и рефлексировать, и учиться применять новые знания. И это действительно занимает время
2. Тяжело читается. Книга была написана в середине прошлого века и стиль написания соответствующий. Картонные примеры, чересчур поучительный тон. Через 10 страниц я устала читать о том, как абсолютно все проблемы в мире решаются с помощью грамотно построенных предложений
Что главное в ненасильственном общении
Чаще всего пересказывают выше упомянутые 4 элемента, но я этого делать не буду, можно почитать здесь
Главное из усвоенного мной:
1. Снизить градус оценочных суждений и обобщений в своей речи
2. Не брать на себя слишком много. Не додумывать причины, по которым (не)было сказано то или это. Не пытаться читать между строк. Переспросить, если непонятно
Читать или нет
Это может быть сложно, но я бы рекомендовала попробовать
в презентации даже есть видео-визуализация, как все должно работать!
Читать полностью…