Pull to refresh
-6
0
Send message

Гайд по работе языковых моделей для начинающих

Level of difficultyMedium
Reading time13 min
Views6.3K

Вместе с дата-сайентистом и биоинформатиком Марией Дьяковой подготовили подробный гайд о том, как устроены языковые модели и что нужно знать, чтобы начать с ними работать.

Читать далее
Total votes 8: ↑6 and ↓2+7
Comments1

Дайджест канала opensource_findings за август 2024

Level of difficultyMedium
Reading time3 min
Views478

Привет!

Под катом множество сложных технических тем внутри питона: от генерации стратегий hypothesis до устройства тайпчекера MyPy.

В качестве тестового формата решил сделать подборку сложных технических тем, про которые писал в августе у себя в тг канале: https://t.me/opensource_findings со ссылками на полные посты.

Посмотрим, насколько такой формат работает, напишите свои мысли в комментарии! Буду благодарен обратной связи, поехали!

Читать далее
Total votes 3: ↑3 and ↓0+5
Comments3

Код как данные: пишем Python на Python

Level of difficultyMedium
Reading time4 min
Views16K
Идея о том, что язык программирования может реализовать сам себя, удивительна. Она вызывает сильное любопытство: «Как это вообще может выглядеть?» С момента своего появления в начале 60-х это мог делать Lisp.

В начале 60-х Джон Маккарти придумал серию примечательных идей, хорошо сочетающихся друг с другом и актуальных даже спустя десятки лет. Сначала он сформулировал их в статье о Lisp, а чуть позже — в руководстве по Lisp 1.5.


Джон Маккарти

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

Такая унификация кода и данных глубоко укоренилась в Lisp, она обеспечивает уровень выразительности, позволяющий языку естественным образом быть выраженным в самом себе.
Читать дальше →
Total votes 19: ↑17 and ↓2+23
Comments8

Ускоряем разработку на FastAPI: Мощный инструментарий для создания и тестирования API

Level of difficultyMedium
Reading time10 min
Views1.6K

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

Ходя по множеству собеседований, я заметил что многие компании, активно использующие FastAPI, разработали собственные библиотеки, но аналогичных инструментов с открытым доступом и свободной лицензией практически нет. Я, как опытный backend-разработчик на Python и Django, решил адаптировать и интегрировать наиболее полезные и востребованные решения для разработки REST API в FastAPI, основываясь на своем опыте работы с Django.

Читать далее
Total votes 6: ↑5 and ↓1+4
Comments8

Загруженность GPU — не самая репрезентативная метрика

Reading time7 min
Views2.9K

В командах ML-инженеров часто пользуются метрикой «GPU Utilization» (Загруженность процессора), чтобы понять, насколько активно задействуется в работе процессор. Чтобы узнать эту информацию, обычно достаточно выполнить команду nvidia-smi в строке терминала. Во многих интегрированных наблюдательных инструментах загруженность процессора также отслеживается как основная характеристика производительности. Но иногда, как ни удивительно, эта метрика даёт не слишком точное представление о производительности GPU. На самом деле, GPU можно загрузить на 100%, выполняя лишь операции чтения и записи (в памяти), но при этом 0 вычислений. Эта статья – не о том, как мы это выяснили, а о том, что нам удалось узнать по ходу дела.

Читать далее
Total votes 7: ↑5 and ↓2+9
Comments1

Справочник-шпаргалка по методологиям и паттернам на Python

Level of difficultyMedium
Reading time40 min
Views8.2K

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

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

Читать далее
Total votes 13: ↑10 and ↓3+7
Comments3

Как обучать огромные модели машинного обучения на случайных GPU

Reading time11 min
Views9.8K
Вы можете спросить: почему эти полумагические модели машинного обучения работают так хорошо? Короткий ответ: эти модели чрезвычайно сложны и обучаются на огромном количестве данных. На самом деле, Lambda Labs недавно подсчитала, что для обучения GPT-3 на одном GPU потребовалось бы 4,6 миллиона долларов — если бы такое было возможно.

Такие платформы, как PyTorch и Tensorflow, могут обучать эти огромные модели, потому что распределяют рабочую нагрузку по сотням (или тысячам) GPU одновременно. К сожалению, этим платформам требуется идентичность графических процессоров (они должны иметь одинаковую память и вычислительную производительность). Но многие организации не имеют тысячи одинаковых GPU. Малые и средние организации покупают разные компьютерные системы, что приводит к неоднородной инфраструктуре, которую нелегко адаптировать для вычисления больших моделей. В этих условиях обучение моделей даже среднего размера может занимать недели или даже месяцы. Если не принять меры, университеты и другие небольшие организации рискуют потерять конкурентоспособность в погоне за разработкой новых, лучших моделей машинного обучения. Но это можно исправить.

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


Приятного чтения!
Total votes 23: ↑23 and ↓0+23
Comments0

Отзывчивые столбчатые диаграммы с Bokeh, Flask и Python 3

Reading time8 min
Views20K

От переводчика


Недавно наткнулся в python digest на туториал по Flask+Bokeh. Туториал ориентирован на новичков, не требуется даже знать синтаксис Python и HTML. Примеры работают под Ubuntu 16.04, на Windows немного отличается работа с виртуальными окружениями.


image

Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments8

Установка Python

Level of difficultyEasy
Reading time6 min
Views11K

Версии Python

На данный момент существует множество как версий Python, так и его реализаций. У данного языка программирования нет одной строгой документации (существует множество видов Python: CPython, Jython, интерпретатор PyPy и множество других), но CPython является основной эталоном (полностью написан на C).

Python работает не по принципу компиляции как множество других языков программирования. “Питон” – это интерпретируемый язык, что означает перевод всего написанного не сразу в машинный код и исполнения его процессором, а в так называемый байт-код (промежуточное представление программ, созданное для их переносимости между платформами).

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

На данный момент широко представлены две версии Python – второй и третьей версии. Они достаточно существенно различаются в первую очередь по синтаксису. Так программы, написанные на одной версии языка, не будут поддерживаться другой версией “питона”.

Установка Python

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

Установка Python в Windows

В первую очередь определившись с реализацией (описано выше), нужно проследовать на официальный сайт разработчиков, во избежание скачивания и установки на свой ПК вирусов и шпионского ПО. Мы выбрали CPython, так как это основная реализация (устанавливаться будет версия 3 как наиболее новая).

Читать далее
Total votes 32: ↑4 and ↓28-24
Comments21

Как создать приложение на C# с использованием приложения на Python

Level of difficultyMedium
Reading time6 min
Views7.1K

Интеграция скриптов Python в приложение на C# позволяет использовать обширные библиотеки Python, сохраняя при этом возможности C#. Этот гайд предоставляет пошаговое руководство по созданию приложения на C#, которое вызывает скрипт Python, использует виртуальное окружение для зависимостей Python и измеряет время выполнения скрипта.

Читать далее
Total votes 12: ↑2 and ↓10-8
Comments15

Как создать часы на Python: уроки программирования для школьников

Level of difficultyEasy
Reading time7 min
Views10K

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

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

Уроки программирования для детей на Python начинаются со знакомства с синтаксисом языка, с ключевыми командами и библиотеками. Хорошо, когда в обучении сразу есть практические занятия и ребята с первых дней курса не просто запоминают и пытаются понять теорию, но создают конкретные проекты. Так информация усваивается гораздо быстрее, да и детям нескучно и интересно учиться.

Читать далее
Total votes 9: ↑6 and ↓3+6
Comments14

Основы архитектуры для джунов: построение масштабируемых и чистых приложений на python (Туториал)

Level of difficultyMedium
Reading time18 min
Views14K

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

Читать далее
Total votes 10: ↑7 and ↓3+4
Comments14

Несколько полезных советов как практиковаться в Python

Reading time9 min
Views41K

Привет, Хабр! Сегодня я предлагаю Вам перевод статьи Duomly, посвящённой изучению и практике программирования на языке Python.


Введение


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


Не смотря ни на что, имеется несколько вещей общих для всех, одна из них — Вам нужно практиковаться, очень много практиковаться!

Читать дальше →
Total votes 12: ↑9 and ↓3+14
Comments17

Анимации градиентного спуска и ландшафта потерь нейронных сетей на Python

Reading time12 min
Views12K
Во время изучения различных алгоритмов машинного обучения я наткнулся на ландшафт потерь нейронных сетей с их горными территориями, хребтами и долинами. Эти ландшафты потерь сильно отличались от выпуклых и гладких ландшафтов потерь, с которыми я столкнулся при использовании линейной и логистической регрессий. Здесь мы создадим ландшафты потерь нейронных сетей и анимированного градиентного спуска с помощью датасета MNIST.


Рисунок 1 — Ландшафт потерь свёрточной нейронной сети с 56 слоями (VGG-56, источник)
Приятного чтения!
Total votes 33: ↑31 and ↓2+39
Comments3

Как загружать большие файлы в телеграмм бота с помощью aiogram 3.x.x

Level of difficultyEasy
Reading time3 min
Views1.5K

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

В этой статье мы рассмотрим, как организовать работу с большими файлами в Telegram-ботах, используя фреймворк aiogram 3.x.x, и как можно развернуть локальный сервер для тестирования и разработки бота. Так же приведу пример простейшего телеграмм бота.

Читать далее
Total votes 4: ↑3 and ↓1+4
Comments5

Популярные алгоритмы машинного обучения. Теоретические основы и реализация с нуля на Python

Level of difficultyHard
Reading time1 min
Views31K

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

Читать далее
Total votes 22: ↑22 and ↓0+22
Comments21

Портрет Хабра-tutorial

Reading time13 min
Views12K
В наш век только бесполезные вещи и необходимы человеку. Оскар Уайльд, Портрет Дориана Грея (источник)

А вы никогда не задумывались, чем обычный пост на хабре (порошок обычныйTM) отличается от tutorial? И как это «отличается» вообще можно измерить? Есть ли здесь какие-то закономерности и можно ли по ним предсказать метку:

В данной статье мы обсудим так называемый exploratory data analysis или кратко EDA (исследовательский анализ данных) применительно к статьям Хабрахабра, а в частности уделим особое внимание tutorial. Прежде всего EDA направлен на детальное изучение данных, и необходим для понимания, с чем мы собственно работаем. Важной частью является сбор и очистка данных и сам выбор какие данные собирать. Особенность метода состоит в визуализации и поиске важных характеристик и тенденций.

Exploratory data analysis — это первый шаг в изучении и понимании данных, без него мы можем загнать себя в многочисленные ловушки, описанные ранее автором в статье: "Как правильно лгать с помощью статистики".

Как выглядит обычный хабра-tutorial


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

Даже в столь упрощенной картине, заметна разница между классами. Наша интуиция и здравый смысл подсказывают нам, что tutorial в среднем чаще добавляют в избранное, но интуиция не говорит насколько чаще, и что они набирают меньше плюсов и просмотров. Эти и многие другие интересные вопросы мы рассмотрим далее в статье.

Структура статьи
  1. Как выглядит обычный хабра-tutorial
  2. Собираем данные
  3. Хабра-данные
  4. Исследуем tutorials
  5. Разбираем интересные примеры
  6. Предсказываем метку tutorial
  7. Как сделать набор данных лучше
  8. Заключение
  9. Дальнейшее чтение

Читать дальше →
Total votes 90: ↑81 and ↓9+72
Comments5

Emacs — 6 трюков для продуктивной работы

Reading time4 min
Views14K
Ранее я уже писал об использовании Emacs в качестве C++ IDE и другом техническом оснащении. Однако, я не обращал особого внимания на то, что использую Emacs и для работы много с чем ещё. Честно говоря, я не смог бы пользоваться этим редактором в полной мере, не будь в нем возможностей, которыми я здесь поделюсь. Также расскажу о настройках, которые я использовал в своём окружении, чтобы запустить всё это «из коробки» (буквально, копируя .emacs).

Чтобы начать


tl; dr: Особо нетерпеливые этот раздел могут пропускать и сразу переходить к настройкам Helm.
У меня установлен Emacs — 26.1, собранный из исходников. Вам это не потребуется. Все пакеты установятся из пакетного менеджера Emacs. Запускаете:

M-x list-packages
Читать дальше →
Total votes 8: ↑5 and ↓3+6
Comments3

Упорядочиваем закладки

Level of difficultyEasy
Reading time3 min
Views6.1K

У меня много статей в закладках. Многие из них я добавил, чтобы прочитать позже. Это статья не про то, почему так произошло и как с этим бороться, а про то, как выбрать статью для удаления чтения. Давайте найдем самые лучшие статьи. Критериями могут быть, например, рейтинг, просмотры и т.д. И красиво оформим в виде HTML-файла.

Пример закладок @alizar: 800+ статей.

Упорядочить!
Total votes 15: ↑15 and ↓0+15
Comments7

Information

Rating
Does not participate
Registered
Activity