Пишем GPT в 60 строк NumPy — часть 1
Если уже тестировали популярные модельки нейросетей через API или даже просто когда-то что-то где-то слышали и хотите копнуть глубже, в этой статье автор рассказал, как написать GPT всего в 60 строках numpy с нуля: https://habr.com/ru/post/716902/
Для понимания статьи достаточно базово разбираться в Python, NumPy и обладать небольшим опытом в обучении нейросетей. В реализации отсутствует большая часть функциональности, чтобы максимально её упростить. В общем, enjoy.
Вообще, понимание архитектуры GPT — всего лишь небольшая часть более масштабной темы больших языковых моделей, но жизненно важная для разработчиков нейросетей. GPT оказалась первой архитектурой, у которой есть удобные свойства масштабирования, высокой параллелизации на GPU и качественного моделирования последовательностей. Ну и самое приятное, что исходники выложены на гитхабе: github.com/jaymody/picoGPT.
#ml
Если уже тестировали популярные модельки нейросетей через API или даже просто когда-то что-то где-то слышали и хотите копнуть глубже, в этой статье автор рассказал, как написать GPT всего в 60 строках numpy с нуля: https://habr.com/ru/post/716902/
Для понимания статьи достаточно базово разбираться в Python, NumPy и обладать небольшим опытом в обучении нейросетей. В реализации отсутствует большая часть функциональности, чтобы максимально её упростить. В общем, enjoy.
Вообще, понимание архитектуры GPT — всего лишь небольшая часть более масштабной темы больших языковых моделей, но жизненно важная для разработчиков нейросетей. GPT оказалась первой архитектурой, у которой есть удобные свойства масштабирования, высокой параллелизации на GPU и качественного моделирования последовательностей. Ну и самое приятное, что исходники выложены на гитхабе: github.com/jaymody/picoGPT.
#ml
👍14🔥1
Пишем GPT в 60 строк NumPy — часть 2
Оказалось, что только кинул предыдущий пост в отложку, как через несколько часов вышла вторая (и финальная) часть статьи. Что ж, увидел, исправляюсь, делюсь с вами: https://habr.com/ru/post/717644/
В этой части автор уже вплотную подходит к тому этапу масштабирования. Когда требуется куча труда разработчиков и денег, а фреймворки обучения могут становиться абсурдно долгими и сложными. Так что если ваш путь лежит как раз в такие команды, это хорошая база для старта.
#ml
Оказалось, что только кинул предыдущий пост в отложку, как через несколько часов вышла вторая (и финальная) часть статьи. Что ж, увидел, исправляюсь, делюсь с вами: https://habr.com/ru/post/717644/
В этой части автор уже вплотную подходит к тому этапу масштабирования. Когда требуется куча труда разработчиков и денег, а фреймворки обучения могут становиться абсурдно долгими и сложными. Так что если ваш путь лежит как раз в такие команды, это хорошая база для старта.
#ml
👍6👎3
Самые популярные вопросы на собеседовании: «Как перевести строку в верхний/нижний регистр?»
Это очень простой вопрос, но и на них иногда «спотыкаются», особенно новички. Для ответа на этот вопрос можно использовать строковые методы
#собеседование
Это очень простой вопрос, но и на них иногда «спотыкаются», особенно новички. Для ответа на этот вопрос можно использовать строковые методы
upper()
и lower()
:small_word = 'potatocake'
big_word = 'FISHCAKE'
small_word.upper()
#=> 'POTATOCAKE'
big_word.lower()
#=> 'fishcake'
#собеседование
👍19🔥3👎1👏1
Forwarded from Python: задачки и вопросы
👍11
Forwarded from Python: задачки и вопросы
Объяснение:
Функция
И так как в примере выше мы подаём ей
Функция
range()
может принимать в качестве параметров исключительно int-значения
И так как в примере выше мы подаём ей
float-число
, на выходе нам выдаётся ошибка👍39💩1
Самые популярные вопросы на собеседовании: «Объясните функцию range»
Range генерирует список целых чисел. Её можно использовать тремя способами. Функция принимает от одного до трёх аргументов.
#собеседование
Range генерирует список целых чисел. Её можно использовать тремя способами. Функция принимает от одного до трёх аргументов.
range(stop)
— генерирует целые числа от 0 до целого числа stop
:[i for i in range(10)]
#=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
range(start, stop)
— генерирует целые числа от start
до stop
:[i for i in range(2,10)]
#=> [2, 3, 4, 5, 6, 7, 8, 9]
range(start, stop, step)
— генерирует целые числа от start
до stop
с интервалами step
:list(range(2,10,2))
#=> [2, 4, 6, 8]
#собеседование
👍38👎5🔥1💩1
Дайджест Python #4: версия 3.12 и свой GPT за 60 строк кода
Собрали дайджест из лучших материалов по Python. Как написать свою GPT-модель всего за 60 строк кода, что нового в Python в версии 3.12 и как повлиять на работу коммунальных служб с помощью машинного обучения — читайте в статье:
https://tproger.ru/articles/dajdzhest-python-4-versija-3-12-i-svoj-gpt-za-60-strok-koda/
#дайджест
Собрали дайджест из лучших материалов по Python. Как написать свою GPT-модель всего за 60 строк кода, что нового в Python в версии 3.12 и как повлиять на работу коммунальных служб с помощью машинного обучения — читайте в статье:
https://tproger.ru/articles/dajdzhest-python-4-versija-3-12-i-svoj-gpt-za-60-strok-koda/
#дайджест
👍8👎1💩1
Как учить Python с нуля с удовольствием: пишем своего чат-бота
Python — подходящий язык программирования для старта. Но многие новички учат его неправильно: почти все онлайн-курсы, тренажёры, книги и видео предлагают начинать учить Python с каких-то странных задач, вроде: «Давайте решим вот эту математическую задачку» или «Давайте напишем рекурсивный поиск чисел Фибоначчи».
Автор этой статьи Илья Осипов втянулся в программирование, когда писал чат-бота для своего вуза. Расписание на сайте было неудобным и он решил написать чат-бота, который будет присылать расписание занятий в более удобном виде. И через годчат-ботом пользовалось уже 4 тысячи пользователей.
В статье Илья предлагает начать изучение с решения реальных проблем и написать своего полезного чат-бота: https://tproger.ru/articles/kak-uchit-python-s-nulya-s-udovol-stviem-piwem-svoego-chat-bota/
#начинающим #telegram
Python — подходящий язык программирования для старта. Но многие новички учат его неправильно: почти все онлайн-курсы, тренажёры, книги и видео предлагают начинать учить Python с каких-то странных задач, вроде: «Давайте решим вот эту математическую задачку» или «Давайте напишем рекурсивный поиск чисел Фибоначчи».
Автор этой статьи Илья Осипов втянулся в программирование, когда писал чат-бота для своего вуза. Расписание на сайте было неудобным и он решил написать чат-бота, который будет присылать расписание занятий в более удобном виде. И через годчат-ботом пользовалось уже 4 тысячи пользователей.
В статье Илья предлагает начать изучение с решения реальных проблем и написать своего полезного чат-бота: https://tproger.ru/articles/kak-uchit-python-s-nulya-s-udovol-stviem-piwem-svoego-chat-bota/
#начинающим #telegram
👍18❤2👎1💩1
5 лучших ресурсов для изучения Python: часть 2
Недавно я уже постил подборочку из 5 годных источников, которые помогают прокачаться в Python.
Пост собрал почти 300 репостов, а это много. Поэтому делюсь ещё пятёркой тоже вполне себе крутых источников для изучения Python (кроме этого канала, конечно 😎). Тут уже даже и бесплатные книги есть.
Сохраняйте себе и учитесь на здоровье:
1. Python.org
Шутки шутками, мемы мемами, а лучший источник для изучения любого языка — это его документация. На Python.org есть куча ссылок, материалов и ресурсов по работе языком. А ещё — отличное руководство для начинающих, которое проведет вас по основам языка.
2. Электронная книга «Learn Python the Hard Way»
Бесплатную книгу «Learn Python the Hard Way» можно читать онлайн на любых устройствах, в т.ч. и мобильных. Не знаю, откуда данные, но несколько раз видел утверждение, что её читают минимум 1,5 млн людей. Если правда, считаю, достойно.
3. LearnPython.org
Это — платформа с интерактивными руководствами, с которыми можно попрактиковаться прямо в браузере. Идеально для новичков.
4. Серия книг «Invent with Python»
В основе серии лежит идея «наслаждаться процессом его изучения». Каждое руководство, совет и урок освещают подход к решению какой-то определенной задачи.
Онлайн-версии доступны бесплатно.
5. Электронная книга «Dive into Python 3»
Это — онлайн-книга, в которой объясняются отличия третьей версии языка Python от второй. Тема уже более узкая, но зато книгу тоже можно скачать бесплатно.
#подборка
Недавно я уже постил подборочку из 5 годных источников, которые помогают прокачаться в Python.
Пост собрал почти 300 репостов, а это много. Поэтому делюсь ещё пятёркой тоже вполне себе крутых источников для изучения Python (кроме этого канала, конечно 😎). Тут уже даже и бесплатные книги есть.
Сохраняйте себе и учитесь на здоровье:
1. Python.org
Шутки шутками, мемы мемами, а лучший источник для изучения любого языка — это его документация. На Python.org есть куча ссылок, материалов и ресурсов по работе языком. А ещё — отличное руководство для начинающих, которое проведет вас по основам языка.
2. Электронная книга «Learn Python the Hard Way»
Бесплатную книгу «Learn Python the Hard Way» можно читать онлайн на любых устройствах, в т.ч. и мобильных. Не знаю, откуда данные, но несколько раз видел утверждение, что её читают минимум 1,5 млн людей. Если правда, считаю, достойно.
3. LearnPython.org
Это — платформа с интерактивными руководствами, с которыми можно попрактиковаться прямо в браузере. Идеально для новичков.
4. Серия книг «Invent with Python»
В основе серии лежит идея «наслаждаться процессом его изучения». Каждое руководство, совет и урок освещают подход к решению какой-то определенной задачи.
Онлайн-версии доступны бесплатно.
5. Электронная книга «Dive into Python 3»
Это — онлайн-книга, в которой объясняются отличия третьей версии языка Python от второй. Тема уже более узкая, но зато книгу тоже можно скачать бесплатно.
#подборка
👍15👎1💩1
Что вы делали на этой неделе? Пост хвастовства за 27 февраля — 3 марта
Не важно, разработчик вы или тестировщик, деврел или эйчар. Расскажите, какие задачи вы героически решили, и делитесь успехами. Кидайте всё, чем хочется похвастаться: текст, скриншоты кода и даже ссылочки на видео:
https://tproger.ru/articles/chto-vy-delali-na-jetoj-nedele-post-hvastovstva-za-27-fevralja-3-marta/
#обсуждение
Не важно, разработчик вы или тестировщик, деврел или эйчар. Расскажите, какие задачи вы героически решили, и делитесь успехами. Кидайте всё, чем хочется похвастаться: текст, скриншоты кода и даже ссылочки на видео:
https://tproger.ru/articles/chto-vy-delali-na-jetoj-nedele-post-hvastovstva-za-27-fevralja-3-marta/
#обсуждение
👍5💩3
Отгадай слово: как создать игру с элементами машинного обучения и выйти в ноль за 2 месяца
Интересная история, как ребята разработали игру, в которую за два месяца сыграли уже более 107 тысяч уникальных пользователей.
Такие истории на самом деле хороши тем, что там нет успешного успеха и всех этих «мы бросили универ и полгода разрабатывали синхрофазо2048 в гараже». Просто ребята сели, собрали игру на Python, потратились на серваки, набили шишек и в итоге получили очень хороший опыт. И хотя бы затраты на сервак окупили.
Как разрабатывали, как монетезировали и как во всём этом прижился ИИ — можно почитать в статье: https://habr.com/ru/company/aitalenthub/blog/718064/
#ml
Интересная история, как ребята разработали игру, в которую за два месяца сыграли уже более 107 тысяч уникальных пользователей.
Такие истории на самом деле хороши тем, что там нет успешного успеха и всех этих «мы бросили универ и полгода разрабатывали синхрофазо2048 в гараже». Просто ребята сели, собрали игру на Python, потратились на серваки, набили шишек и в итоге получили очень хороший опыт. И хотя бы затраты на сервак окупили.
Как разрабатывали, как монетезировали и как во всём этом прижился ИИ — можно почитать в статье: https://habr.com/ru/company/aitalenthub/blog/718064/
#ml
👍6😁2👎1💩1
VS Code, python, контейнеры — как обуздать эту триаду и разрабатывать внутри контейнера
Наверняка, у каждого был такой момент, когда понимаешь, что простенького редактора или родной среды программирования Python недостаточно и хочется начать программировать по-взрослому.
Но оказывается, что навороченные редакторы кода ещё и настроить правильно нужно. А чтобы полностью настроить среду под себя, иногда уходит очень приличное количество времени.
Это небольшой туториал о настройке VS Code для работы с Python. Просто, по делу, а если планируете работать с контейнерами, то вам отдельно повезло: https://habr.com/ru/company/ruvds/blog/717110/
#vscode
Наверняка, у каждого был такой момент, когда понимаешь, что простенького редактора или родной среды программирования Python недостаточно и хочется начать программировать по-взрослому.
Но оказывается, что навороченные редакторы кода ещё и настроить правильно нужно. А чтобы полностью настроить среду под себя, иногда уходит очень приличное количество времени.
Это небольшой туториал о настройке VS Code для работы с Python. Просто, по делу, а если планируете работать с контейнерами, то вам отдельно повезло: https://habr.com/ru/company/ruvds/blog/717110/
#vscode
👍21❤2👎2💩2
Больше ботов богу ботов: создаём бота, использующего Яндекс.Диск
В этом гайде вы узнаете, как создать Telegram-бота на Python с помощью библиотеки aiogram. Вы подробно рассмотрите процесс создания бота, начиная от регистрации в Telegram, заканчивая разбором программного кода:
https://habr.com/ru/post/720130/
#бот #telegram
В этом гайде вы узнаете, как создать Telegram-бота на Python с помощью библиотеки aiogram. Вы подробно рассмотрите процесс создания бота, начиная от регистрации в Telegram, заканчивая разбором программного кода:
https://habr.com/ru/post/720130/
#бот #telegram
💩9👍6😁1
Кстати, про литкод: определяем ваш уровень решения LeetCode задач от 1 до 5
Недавно я уже писал про интересную статью, в которой рассмотрели решение одной из сложных задач с платформы. Напомню, что LeetCode — это своего рода тренажёр по всяким заковыристым алгоритмическим задачам для подготовки к техническим собеседованиям.
И вот ещё более интересная статья про реальный опыт с LeetCode и (внимание!) подготовке к интервью в FAANG подобные компании путём разбиения её на уровни.
Цифры местами грубые, утверждения субъективные, но очень советую к прочтению, если интересуетесь темой: https://habr.com/ru/post/713498/
#задачи
Недавно я уже писал про интересную статью, в которой рассмотрели решение одной из сложных задач с платформы. Напомню, что LeetCode — это своего рода тренажёр по всяким заковыристым алгоритмическим задачам для подготовки к техническим собеседованиям.
И вот ещё более интересная статья про реальный опыт с LeetCode и (внимание!) подготовке к интервью в FAANG подобные компании путём разбиения её на уровни.
Цифры местами грубые, утверждения субъективные, но очень советую к прочтению, если интересуетесь темой: https://habr.com/ru/post/713498/
#задачи
👍16
Если ещё не видели, делюсь большим питоном!
birp (борп) — большой русский питон, судя по всему, чей-то мемный проект, который позволяет писать код на русском, но всё ещё пользоваться всеми преимуществами Питона. Транслятор переводит не только ключевые слова, но и встроенные функции, типы, магические методы, а так же некоторые другие слова: https://github.com/evtn/birp
Например, код:
Транслируется в:
Если честно, даже не знаю, каким хэштегом помечать такие посты. Как думаете, как помечать такие посты, чтобы потом их можно было найти? #кек, #треш, #угар, #зверобой? Помогите придумать достойный тег в комментах, чтобы не терять годноту :)
birp (борп) — большой русский питон, судя по всему, чей-то мемный проект, который позволяет писать код на русском, но всё ещё пользоваться всеми преимуществами Питона. Транслятор переводит не только ключевые слова, но и встроенные функции, типы, магические методы, а так же некоторые другие слова: https://github.com/evtn/birp
Например, код:
граница = целое(ввод("Введите верхнюю границу: "))
для число в диапазон(граница):
вывод(число)
Транслируется в:
bound = int(input("Введите верхнюю границу: "))
for number in range(bound):
print(number)
Если честно, даже не знаю, каким хэштегом помечать такие посты. Как думаете, как помечать такие посты, чтобы потом их можно было найти? #кек, #треш, #угар, #зверобой? Помогите придумать достойный тег в комментах, чтобы не терять годноту :)
😁34👍11💩10🤯2
Поздравляем с международным женским днём!
И делимся с вами несколькими хорошими материалами:
— Если не знали, до 1984 года женщин-программистов было больше, чем мужчин. Интересное исследование и краткий исторический экскурс про вклад женщин в IT: https://mel.fm/deti/shkolniki/987324-women_programming
— Минутка ностальгии. Женщины в Bell Labs 1960-х годов — в фотографиях на фоне огромных ЭВМ тех времён: https://tproger.ru/articles/women-of-bell-labs-in-the-1960s/
— Как относятся к девушкам-программистам сейчас, и сложно ли девушке устроиться на работу в IT-отрасль, особенно если она хочет быть именно программистом: https://tproger.ru/experts/36/
#история
И делимся с вами несколькими хорошими материалами:
— Если не знали, до 1984 года женщин-программистов было больше, чем мужчин. Интересное исследование и краткий исторический экскурс про вклад женщин в IT: https://mel.fm/deti/shkolniki/987324-women_programming
— Минутка ностальгии. Женщины в Bell Labs 1960-х годов — в фотографиях на фоне огромных ЭВМ тех времён: https://tproger.ru/articles/women-of-bell-labs-in-the-1960s/
— Как относятся к девушкам-программистам сейчас, и сложно ли девушке устроиться на работу в IT-отрасль, особенно если она хочет быть именно программистом: https://tproger.ru/experts/36/
#история
👍14❤5😱2
Самые популярные вопросы на собеседовании: «В чем разница между методами экземпляра, класса и статическими методами в Python?»
Методы экземпляра: принимают параметр
Статические методы: используют декоратор
Проиллюстрируем разницу на вымышленном классе
У класса
Давайте инициализируем экземпляр с атрибутом
Теперь вызовем статический метод. Статические методы не могут изменять состояние класса или экземпляра, поэтому обычно используются для служебных функций, например, сложения двух чисел. Наши проверяют погоду. Говорят, что солнечно:
Теперь используем метод класса для изменения фирменного напитка (
Обратите внимание, что
Методы экземпляра: принимают параметр
self
и относятся к определенному экземпляру класса.Статические методы: используют декоратор
@staticmethod
, не связаны с конкретным экземпляром и являются автономными (атрибуты класса или экземпляра не изменяются).Проиллюстрируем разницу на вымышленном классе
CoffeeShop
:class CoffeeShop:
specialty = 'espresso'
def __init__(self, coffee_price):
self.coffee_price = coffee_price
# instance method
def make_coffee(self):
print(f'Making {self.specialty} for ${self.coffee_price}')
# static method
@staticmethod
def check_weather():
print('Its sunny')
# class method
@classmethod
def change_specialty(cls, specialty):
cls.specialty = specialty
print(f'Specialty changed to {specialty}')
У класса
CoffeeShop
есть атрибут specialty
(фирменный напиток), установленный по умолчанию в значение 'espresso
'. Каждый экземпляр CoffeeShop
инициализируется с атрибутом coffee_price
. У него также три метода: метод экземпляра, статический метод и метод класса.Давайте инициализируем экземпляр с атрибутом
coffee_price
, равным 5. Затем вызовем метод экземпляра make_coffee
:coffee_shop = CoffeeShop('5')
coffee_shop.make_coffee()
#=> Making espresso for $5
Теперь вызовем статический метод. Статические методы не могут изменять состояние класса или экземпляра, поэтому обычно используются для служебных функций, например, сложения двух чисел. Наши проверяют погоду. Говорят, что солнечно:
coffee_shop.check_weather()
#=> Its sunny
Теперь используем метод класса для изменения фирменного напитка (
specialty
), а затем сделаем кофе (make_coffee
):coffee_shop.change_specialty('drip coffee')
#=> Specialty changed to drip coffee
coffee_shop.make_coffee()
#=> Making drip coffee for $5
Обратите внимание, что
make_coffee
раньше делал эспрессо, а теперь заваривает капельную кофеварку (drip coffee
).👍31