Upgrade to Pro — share decks privately, control downloads, hide ads and more …

進化し続けるPython事情、こっちも使えるか考えてみよう!

abenben
February 10, 2022

 進化し続けるPython事情、こっちも使えるか考えてみよう!

2022年2月10日のPythonエンジニア勉強会vol.2.0で発表した『進化し続けるPython事情、こっちも使えるか考えてみよう!』のスライドです。
https://tech-street.connpass.com/event/237595/
#テックストリート

abenben

February 10, 2022
Tweet

More Decks by abenben

Other Decks in Technology

Transcript

  1. View Slide

  2. 2013年1⽉に札幌から東京に移住。
    現在は教育&HR企業でブロックチェーンを活⽤した
    Webプロジェクトのテックリードを担当。
    北海道(苫⼩牧)⽣まれで、12歳と24歳の娘、3歳の
    孫がいる。趣味は旅⾏と神社巡り。
    Pythonや機械学習、ブロックチェーン、クラウド、⾦
    融、ソフトウェア開発に関するITコミュニティのスタッ
    フ(主にコンテンツ企画担当)や、先端技術、ビジネス
    や組織改⾰のイベント企画、執筆などの個⼈活動を⾏う。
    コミュニティ運営スタッフ
    Start Python Club、⾦融エンジニア養成コミュニティほか多数
    監修、執筆、翻訳、査読
    ・Sparkによる実践データ解析 ―⼤規模データのための機械学習事例集
    ・マンガと図解でスッキリわかる プログラミングのしくみ
    ・実践 ⾦融データサイエンス 隠れた構造をあぶり出す6つのアプローチ
    ・テスト駆動Python
    ・あたらしいPythonによるデータ分析の教科書
    ・みんなのブロックチェーン
    ・フィンテックエンジニア養成読本
    ・Python 3スキルアップ教科書
    ・After GAFA 分散化する世界の未来地図
    ・実践シナリオ・プランニング
    阿部 ⼀也
    (あべんべん)
    Institution for a Global Society株式会社
    上席研究員
    Profile

    View Slide

  3. Start Python Clubを運営してます 3

    View Slide

  4. 免責事項 4
    ຊ಺༰͸ݸਓͷݟղͰ͋Δɻ
    ॴଐ૊৫Λ୅ද͢Δ΋ͷͰ͸͋Γ·ͤΜɻ
    ࢿྉ͸ͷͪ΄Ͳެ։͠·͢ɻ

    View Slide

  5. 5
    本⽇のお話
    • 1ZUIPOͷਐԽ
    • 1ZUIPOʹΑΔՄࢹԽ
    • 1ZUIPOʹΑΔσʔλαΠΤϯε
    ࠓճ͸ओʹɺΈΜͳͷ1ZUIPOษڧձͰొஃ͍͍ͨͩͨ
    ༗ࣝऀୡͷൃද͔ΒֶΜͩ಺༰Λݩʹ͓࿩͠͠·͢ɻ

    View Slide

  6. Pythonの進化
    6

    View Slide

  7. TIOBE Index for February 2022 7
    https://www.tiobe.com/tiobe-index/
    5*0#&*OEY͸ɺݕࡧΤϯδϯͰͷݕࡧ਺ͳͲΛ΋ͱʹ݄ճߋ৽͞ΕΔϓϩάϥϛϯάݴޠͷਓؾࢦඪ

    View Slide

  8. Pythonはグルー⾔語 8

    View Slide

  9. View Slide

  10. Pythonソフトウェア財団
    (PSF)
    10
    1ZUIPOͷੜΈͷ਌

    View Slide

  11. リリースの予定を確認する⽅法 11
    IUUQTEPDTQZUIPOPSHKBXIBUTOFXJOEFYIUNM ͔Β֬ೝͰ͖·͢ɻ

    View Slide

  12. Python3のリリース⽇ 12
    • ೥݄೔ʹ1ZUIPO͸ऴྃ
    • ೥͸1ZUIPO࢖ͬͯΔਓ͕ଟ͔ͬͨ
    • ͔Β͸ɺϦϦʔε͕೥̍ʹͳͬͨ
    ೥ʹҰ౓ͷϦϦʔεʹ

    View Slide

  13. Python3の進化(個人の嗜好で抜粋)
    13

    View Slide

  14. Python3.0(2008-12-03) 14
    ΞεΩʔ͔ΒϢχίʔυ΁ɺQSJOUจͷॻࣜɺ੔਺ͷ࢓༷ͳͲ͕มΘͬͨ

    View Slide

  15. Python3.8(2019-10-14) 22
    GTUSJOH
    ηΠ΢νԋࢉࢠ
    x = 123
    y = "abc"
    print("{} and {}".format(x, y))
    # 123 and abc
    print("{first} and {second}".format(first=x, second=y))
    # 123 and abc
    array = [1, 2, 3, 4, 5, 6, 7]
    if (n := len(array)) > 5:
    print(n)
    # 7

    View Slide

  16. Python3.9(2020-10-04) 23
    %JDUͷϚʔδ
    dict1 = {"a":1, "b":2}
    dict2 = {"c":3, "d":4}
    dict1.update(dict2) # dict1にdict2をマージする
    print(dict1)
    # {'a': 1, 'b': 2, 'c': 3, 'd': 4}

    View Slide

  17. Python3.10(2021-10-04) 24
    ύλʔϯϚονϯάʢ4XJUDIจͰ͸ͳ͍ʣ
    class Point:
    x: int
    y: int
    def location(point):
    match point:
    case Point(x=0, y=0):
    print("Origin is the point's location.")
    case Point(x=0, y=y):
    print(f"Y={y} and the point is on the y-axis.")
    case Point(x=x, y=0):
    print(f"X={x} and the point is on the x-axis.")
    case Point():
    print("The point is located somewhere else on
    the plane.")
    case _:
    print("Not a point")

    View Slide

  18. Python3.11(変更の可能性あり) 25
    ͍·ͷͱ͜Ζྫ֎΍Τϥʔ࣌ͷτϨʔεվળఔ౓

    View Slide

  19. 翻訳してまとめてる記事を発⾒! 26
    https://qiita.com/ksato9700/items/e2356ea9c19c3ff8a467
    Python3.5の新機能から
    毎回翻訳をして
    Qiitaへまとめてる人がいた。

    View Slide

  20. 主流パッケージはここで探す 27
    https://github.com/vinta/awesome-python
    "XFTPNFͷ1ZUIPO͕͓નΊ
    ྫɿ/-1ͷྫʢ೔ຊޠ/-1͸ࡌͬͯͳ͍ʣ

    View Slide

  21. ついでにこれも
    検討しよう
    28

    View Slide

  22. 便利なライブラリを使ってよいテストをする 29

    View Slide

  23. 静的な解析で品質を上げよう 30
    https://github.com/vinta/awesome-python#code-analysis

    View Slide

  24. 型を書いて品質を上げる 32
    NZQZ͸1ZUIPOͰ੩తܕνΣοΫΛߦ͏ϥΠϒϥϦ
    ܕࢦఆͳ͠ ܕࢦఆ͋Γ
    NZQZͰνΣοΫ

    View Slide

  25. 型 型破 。型 無 、 形無 。 33
    कഁ཭
    ͋·Γؔ܎ͳ͍͔΋͠Εͳ͍͚Ͳɺ͜Μͳݴ༿͕͋Γ·͢

    View Slide

  26. Python関係の直近発売‧発売予定の本 34

    View Slide

  27. Pythonによる
    可視化
    35

    View Slide

  28. 可視化パッケージ(Python) 36
    Diarams

    View Slide

  29. 可視化パッケージ(Python) 37
    https://www.python-graph-gallery.com/

    View Slide

  30. Django 4.0 38
    https://codezine.jp/article/detail/15301

    View Slide

  31. Flask 39
    • ඞཁ࠷௿ݶͷػೳ͚ͩΛଗ͑ͨܰྔ8FC
    ΞϓϦέʔγϣϯϑϨʔϜϫʔΫ
    https://jelvix.com/blog/django-vs-flask
    'MBTL͔%KBOHP͔Ͱ໎͏ਓ͕पΓʹΘΓͱଟ͍

    View Slide

  32. Streamlit 40
    $ pip install streamlit
    $ python -m streamlit.cli run app.py
    Πϯετʔϧ
    ࣮ߦ
    σʔλ෼ੳ΍"*ॲཧͳͲͷίʔυΛ؆୯ʹ8FCΞϓϦέʔγϣϯͰ͖Δɻ
    ʢʹଞͷਓʹ֬ೝͯ͠΋Β͑Δʣ
    ίʔυ΍σʔλΛमਖ਼ͨ͠Β࠶ىಈ͠ͳͯ͘΋൓ө͞ΕΔɻ

    View Slide

  33. Jupyter Lab 41
    ͞ΒʹσεΫτοϓ൛΋͋Γ·͢ʂ
    • +VQZUFS 1SPKFDUͰ͸8FCϕʔεͷΠϯλϥΫ
    ςΟϒͳ෼ੳ؀ڥΛఏڙ͍ͯ͠Δ
    • +VQZUFS -BC͸+VQZUFS /PUFCPPLͷޙܧ൛
    • +VQZUFS -BCͰ͸ෳ਺ͷλϒʢ1ZUIPOɺλʔϛ
    φϧ౳ʣ͕։͚Δ
    • Ϣʔβʔೝূ౳͕͍ͭͨ+VQZUFS )VC΋͋Δ
    https://jupyter.org/

    View Slide

  34. 分析〜Webアプリ
    42
    個人で分析 分析を関係者に見せる 軽量型のWebアプリ化 本格的なWebアプリ化

    View Slide

  35. 可視化関連の書籍(主にPython) 43

    View Slide

  36. 1ZUIPOʹΑΔ
    σʔλαΠΤϯε
    44

    View Slide

  37. データサイエンティストのスキル 45

    View Slide

  38. GPUを使う(Google Colabを利⽤する) 46
    https://colab.research.google.com/notebooks/gpu.ipynb
    (16΍516ΛແྉͰ࢖͑ΔͷͰͪΐͬͱͨ࣌͠ʹ͸ศརͰ͢ɻʢ࢓ࣄͰ͸࢖ͬͯ͸Πέͳ͍ʣ

    View Slide

  39. Huggingface Transformers 47
    • ʮࣗવݴޠཧղʯͱʮࣗવݴޠੜ੒ʯͷ࠷ઌ୺ͷ
    ൚༻ΞʔΩςΫνϟʢ#&35ɺ(15ͳͲʣͱඇ
    ৗʹଟ͘ͷࣄલֶशࡁΈϞσϧΛఏڙ͢ΔϥΠϒ
    ϥϦ
    • σϑΝΫτͳࣗવݴޠॲཧͷਂ૚ֶशϑϨʔϜ
    ϫʔΫ

    View Slide

  40. PyCaret 48
    https://youtu.be/s6d0_UnarMg
    •ίʔυ࣮૷͕ඇৗʹ؆୯ʢ਺ߦͰ࣮૷Մೳʣ
    •σʔλͷલॲཧ΋ࣗಈͰ࣮ࢪ
    •ϋΠύʔύϥϝʔλͷࣗಈ࠷దԽ͕Մೳ
    •৭ʑͳղੳ݁ՌΛਤͰ֬ೝ͕Մೳ
    σʔλͷલॲཧ΍ՄࢹԽɺϞσϧ։ൃΛ
    ਺ߦͷίʔυͰ࣮ݱ͢Δ"VUP.-ϥΠϒϥϦ

    View Slide

  41. ⽇本語NLP ライブラリ 49
    ࠷ઌ୺ࣗવݴޠॲཧϥΠϒϥϦͷ࠷దͳબ୒ͱ༗༻ͳར༻ํ๏ QZDPOKQ
    https://youtu.be/kwC0vKGbo1s
    https://speakerdeck.com/taishii/pycon-jp-2020

    View Slide

  42. MecabからJanomeへ 50
    +BOPNF͸ಋೖ͕؆୯ʢεϐʔυ͸ྼΔʣ
    .FDBCͷΠϯετʔϧ͸͸·Γ΍͍͢ʢಛʹ8JOEPXTʣ
    +BOPNF͸QJQ͚ͩͰ0,

    View Slide

  43. Tario 51
    $ pip install toiro[all_tokenizers]
    Πϯετʔϧ
    > from tairo import tokenizers
    > available_tokenizers = tokenizers.available_tokenizers()
    > print(available_tokenizers)
    > pip install toiro[all_tokenizers]
    {
    "nagisa":{"is_available":true,"version":"0.2.7"},
    "janome":{"is_available":true,"version":"0.4.1"},
    "mecab-python3":{"is_available":false,"version":false},
    "sudachipy":{"is_available":true,"version":"0.6.2"},
    "spacy":{"is_available":true,"version":"3.2.1"},
    "ginza":{"is_available":false,"version":false},
    "kytea":{"is_available":false,"version":false},
    "jumanpp":{"is_available":false,"version":false},
    "sentencepiece":{"is_available":true,"version":"0.1.91"},
    "fugashi-ipadic":{"is_available":false,"version":fals},
    "tinysegmenter":{"is_available":true,"version":"0.1.0",
    "fugashi-unidic":{"is_available":false,"version":false}
    }
    Πϯετʔϧ
    https://github.com/taishi-i/toiro
    ܗଶૉղੳثൺֱϥΠϒϥϦ

    View Slide

  44. NLPのトレンドを⼿っ取り早く知りたい⼈ 52
    https://ja.stateofaiguides.com/

    View Slide

  45. 有料ブログ:NLPのリサーチが豊富でお薦め 53
    ࣗ෼͸&WFSOPUFͰ؅ཧͯ͠ௐࠪͳͲʹར༻͍ͯ͠Δ

    View Slide

  46. GPT-3、DALL-E 54
    https://openai.com/blog/dall-e/
    論文 : https://arxiv.org/pdf/2102.12092.pdf
    DALL-E
    GPT-3
    Open AI によって開発された超巨大言語モデル
    論文 : https://arxiv.org/pdf/2005.14165.pdf
    (15ͷը૾൛

    View Slide

  47. DALL-E in Pytorch 55
    (15΍%"--&͸ެ։͞Ε͍ͯͳ͍ɻ
    %"--&ͷ1Z5PSDI࣮૷ෳ੡൛͕͋Δ
    https://github.com/lucidrains/DALLE-pytorch
    https://github.com/lucidrains/big-sleep
    #JH4MFFQ
    https://github.com/lucidrains/deep-daze
    %FFQ%B[F

    View Slide

  48. AWS Lambda 56
    ݱࡏαϙʔτ͍ͯ͠Δόʔδϣϯ͸ʙ
    ͕αϙʔτ͞Εͨͷ͸೥݄ͳͷͰ΋ಉ͡ࠒʁ

    View Slide

  49. AWS(SageMaker)は便利 57
    https://aws.amazon.com/jp/builders-flash/202003/awsgeek-sagemaker/

    View Slide

  50. Amazon SageMaker Studio Lab 58
    1ZUIPOݴޠ΍3ݴޠͳͲ͕࢖͑Δແྉͷ
    σʔλαΠΤϯεͷΦϯϥΠϯ࡞ۀ؀ڥ
    https://aws.amazon.com/jp/sagemaker/studio-lab/

    View Slide

  51. 量⼦コンピューターのトレンドも押さえよう 59
    https://qiita.com/abenben/items/1ccc51cd5d9ba18b30c1
    ੲɺྔࢠίϯϐϡʔλͰ෼͔Βͳ͍෦෼͕͚͋ͬͨͲɺ
    ͱΓ͋͑ͣΘ͔Δ෦෼͚ͩॻ͍ͯ2JJUBʹࡌͤͨΒϓϧϦΫ΋Β͑ͨɻ

    View Slide

  52. Github Copilot 60
    0QFO"*Λར༻ͨ͠ίʔσΟϯάΞγελϯτ
    74$PEF΍1Z$IBSNʹϓϥάΠϯ͕͋Δ
    ᶃ଍͠ࢉΛؔ਺໊ॻ͍ͯͨΒ
    ᶄϩδοΫ͕ࣗಈͰ
    ϩδοΫ͕ग़͖ͯͨ
    ᶅzEFGzͱॻ͍͚ͨͩͰҾ͖ࢉͷॲཧ͕
    ᶆzEFGzͱॻ͍͚ͨͩͰ࣍͸ׂΓࢉ
    ᶇzEFGUFzͱॻ͍ΈͨΒςεΫؔ਺͕ީิʹ
    ᶈίϝϯτཝʹ΋উखʹίϝϯτͷީิ͕ͰΔ
    1Z$IBSNϓϥάΠϯͷྫ
    Զ͸΋͏͍Βͳ͍ʁ
    ˞֤छϥΠηϯεͷ৘ใΛ
    ղੳ͍ͯ͠ΔͷͰ
    ෺ٞΛৢ͍ͯ͠Δ

    View Slide

  53. ⾃然⾔語処理の新刊など 61

    View Slide

  54. データサイエンスで気になる新刊 62

    View Slide

  55. まとめ
    6
    3

    View Slide

  56. まとめ 64
    • ৽ػೳͰָʹྑ͘Ͱ͖ͳ͍͔ݕ౼͠ΐ͏ɻ
    • ίϯςΩετผʹՄࢹԽํ๏Λݕ౼͠Α͏ɻ
    • ࣗಈͰ΍ͬͯ͘ΕΔ΋ͷ͕૿͖͑ͯͨͷͰɺ
    ೚ͤΕΔͱ͜Ζ͸೚ͤͯຊۀʹઐ೦͠Α͏ɻ

    View Slide

  57. IGSではエンジニアを募集してます! 65
    ৄ͘͠͸ͪ͜Β΁
    https://www.green-japan.com/company/8228

    View Slide