PR

初のオンライン開催! チュートリアル、カンファレンス、スプリントに加え、スタンプラリーなど新たな試みも。PyCon JP 2020レポート【後編】

2020年10月14日(水)
森野 正博(もりの まさひろ)吉田 健太(よしだ けんた)

はじめに

PyCon JP 2020 カンファレンス1日目のレポートはいかがでしたか? 今回は、前回に引き続き、カンファレンス2日目の様子を紹介します。

Day 1レポートはこちら

PyCon JPは日本国内外のPython ユーザーが一堂に会し、互いに交流を深め、知識を分け合い、新たな可能性を見つけられる場所として毎年9月中旬に開催される国際カンファレンスです。今年のPyCon JP 2020は、2020年8月23日から約1週間に渡るスプリント、8月28、29日のカンファレンス、8月30日のチュートリアルと、1週間の会期で開催されました。

当初、PyCon JP 2020は大田区産業プラザ PiOにてリアル開催で準備を進めていましたが、新型コロナウイルス感染症(COVID-19)の影響を考慮し、オンラインで開催されました。オンライン開催は初の試みでしたが、多数の参加者・視聴者の方が訪れてくださり、大盛況のうちに幕を閉じました。

今回は29日に開催されたカンファレンスの中から、注目セッションの様子と感想について運営スタッフがレポートします。

基調講演:Rich Jones氏

2日目のキーノートセッションは、Rich Jones氏が登壇しました。Rich氏は世界的に展開しているコンサルティングファームGun.ioの共同設立者で、Pythonのサーバーレスフレームワーク「Zappa」の作者でもあります。

この講演は3部構成になっており、第1部では「Going Serverless With Zappa」と題して、主に氏が開発した「Zappa」を紹介していました。VPSや従来のサーバーではWeb運用に多大なコストがかかってしまうことを課題として挙げ、Zappaを用いれば大幅に開発コストがを削減できるほか、メンテナンスも不要となると氏は語ります。さらに、サーバーレスにすることによってインフラを固有の環境に依存することなく、あらゆる場所から開発できるようになることなど、Zappaの基本的なコマンドの紹介や使い方について具体的なケースを取り上げ、実際のコードの書き方を紹介していました。

続く第2部では「Why You Shouldn't Use Zappa」という、一見すると今までの内容を全否定するかのようなタイトルで講演が進められていきました。「AWSは私たちのコミュニティ、つまりOSSのコミュニティと敵対している」というところから話は始まります。AmazonのOSSに対する態度の具体例として、MongoDB、Redis、ElasticSearchのライセンスが変更になってしまったということを挙げていました。

氏の痛烈なAmazon批判は加速していきます。Amazonは税金を払っていない、アメリカの小さな街を壊した、そして、ジェフ・ベソスがいかに搾取をしているかを熱弁していました。ベソスが自分を守るために周辺をガチガチに固めていることを、メカスーツに例えて風刺しているパロディ写真が強烈な印象に残っています。

そして、AWSに取って代わるような自分たちの「Lambda」を作ろうという話が展開されていきます。現在「PLONK」(Prometheus、Linkerd、OpenFaaS、NATS、Kubernetes)というAWS Lambda+API Gatewayの代わりとなるものを作っているそうです。そして、OpenFaaSをPython上で動かすための「Fashion」という氏が作ったライブラリを実際に使用して、動作方法と手順を解説しました。

最後の第3部では「From Serverless to Stateless」というタイトルで講演が進められていきます。「この第3部こそ最も強調したい部分である」と氏は語りました。この21世紀に人類が直面している問題を、テクノロジーに限らず、現在流行中のコロナウイルス、食糧問題、環境汚染、民主主義の後退、仕事に対する目的の消失など様々なものを挙げ、「これらの問題は、もはや一国単位で解決できるような問題ではなく、人類が国境を超えて協力し合って解決していかなければならない」と語ります。そして、WikipediaやPythonのようなOSSにおける世界的な動きは、このような課題を人類が解決するモデルになると力説していました。

第1部から第3部まで、エネルギーに満ち溢れる講演でした。特に、第3部での氏の熱の入った講演には圧倒されるような気持ちになりました。一方で、最後まで一本の道筋が通っており、非常に理解しやすく聞きやすい講演でもありました。技術的な問題に留まらず、「この技術を用いてどのように課題に取り組んでいくか」を大切にしている印象でした。出てきた話題は政治的なものもあり賛否両論があると思います。しかし、自分の身の周りにあるものがどのように世界と関わっているのか、そんなことを考えさせられる、個人的には非常に印象に残った講演でした。

セッション:Yusuke Shibui氏
「Pythonで作る機械学習システムパターン」

Shibui氏は機械学習・インフラエンジニアで、近年はARエンジニアとして活躍されています。今回の講演では、機械学習のシステム作りを実装例と交えながら紹介していました。機械学習のシステムとは言っても、ユーザーやエンジニアなど視点を変えて見てみると機械学習システムのポイントが変わってきます。

しかし、最も大切なのは「どうやって機械学習をユーザーに使ってもらえるのかを考えることである」と氏。ここで機械学習のシステムに必要なものを概観し、システムにはユーザーインターフェース・推論キーの2つが最低限必要であり、さらに機械学習のシステムパターンデザインについてフロー図を用いて解説していきます。

次に、実際にPythonで機械学習システムを作っていく過程を

  • モデルを作る
  • リリースする
  • システムを作る
  • 機械学習システムの品質を維持する
という4つの段階に分け、それぞれ詳細に、アンチパターンを交えながら説明していきます。

モデルを作る段階では、jupyter notebookで開発を進めた場合、開発者以外にはコードの流れが分かりにくくなってしまうことが問題になると氏は懸念します。そこでコードの流れを見やすくするためにパイプラインを作り、バージョニングをする必要があります。リリースの段階ではDockerを用いたパターンが、システムはWeb APIで作るパターンが紹介されました。

また、品質保持の段階では品質を「機械学習の推論モデル」「推論モデルを稼働させるシステム」「運用と体制」の3つのカテゴリーに分け、それぞれ詳細に紹介しました。そして、負荷テストツール「Locust」を用いてレイテンシーを測りボトルネックを見つけていきます。

本セッションは自作した機械学習のデザインパターンについての発表でしたが、フロー図やコード図などが多く、また、実例も豊富で非常に聞きやすいものでした。氏が本セッションで「『モデルを作る』から『本番稼働させる』までの架け橋となると幸いです」と述べられていたように、実践的な内容が盛り込まれたハイレベルなセッションでした。

実務で機械学習を扱う方、また、機械学習に興味のある方は、ぜひアーカイブを参照されることをお勧めします。

セッション:yuuki nakajima氏
「チーム開発立ち上げにやっておいたほうがいいソース管理の方法」

nakajima氏はDjangoをメインで使用しているエンジニアです。講演の対象者は、これからチーム開発を始めようとする人であり、チーム開発の際によくつまずくポイントと、その解決方法について紹介しました。プログラミングが以前よりも一般的になったことで、より多くの人がコードを書くようになり、結果としてエンジニア人口は増加したものの、チーム開発をしたことのないエンジニアがプロジェクトに携わる機会も多くなりました。そういった背景から、氏はプロジェクト全体として、スタイルの一貫性を持たせることが開発を進めていく上でより重要になってきたと言います。

本講演では、

  • ソースコードを整えるための規約「PEP8」
  • コードチェックのライブラリ「flake8」
  • フォーマッター「Black」
の3点を重点的に解説し、実行例を交えながらそれぞれのツールを紹介していました。各ツールの詳細について興味のある方は、ぜひアーカイブを参照してください。また、実際の開発ではフォーマッターを使いつつ、更にcommitする前にpre-commitを導入すると良いと紹介されていました。

なお、本講演は主に開発環境についての発表でしたが、大規模なプロジェクトはもちろん、個人開発にも役立つ内容でした。開発環境を揃えることはチームの足並みを揃えることに繋がるので、より開発に集中するための重要な点が盛り込まれている講演であると感じました。

Python初学者の方、また、現在チーム開発を進めている方にもお勧めしたい講演です。ぜひ、アーカイブを見ていただければと思います。

セッション:山際康貴氏
「ひとりで作る画像検索システム」

山際氏はOLTA株式会社所属のエンジニアであり、武蔵野大学客員研究員も兼務しています。画像検索の注目・需要は日々高まっており実プロダクトでも出始めていることが多く、画像検索のシステムには

  • TBIR
    ・テキストを入力し画像を出力する
    ・画像のメタデータにテキストを設定
  • CBIR
    ・画像を入力し画像を出力する
    ・"似た画像"を見つけ出すシステム
の2種類があるとしていますl。TBIRはElasticSearchなどの全文検索エンジンなどを用いることで容易に実装できるため、本講演ではCBIRの実装について紹介していました。

CBIRの肝になる部分は特徴抽出と特徴検索で、それぞれの実装にPythonは相性が良く、様々なライブラリが提供されているため `pip install` で容易に実装が可能で、画像検索システムを事例に合わせて紹介しました。

特徴抽出では、人間は1枚の画像から様々な解釈を生み出し、それぞれ抽象度や観点に大きな違いがあり、それらを特徴ベクトルに落とし込むための特徴のとり方を具体的なライブラリで提示しています。また、特徴検索では検索規模や特徴量の種類により使用する計算方法が異なり、規模によってはnumpyだけでも簡単に実装できると解説していました。

この他にも画像検索のチュートリアルなども紹介しているので、画像検索に興味がる方は、ぜひアーカイブをご確認ください。

おわりに

カンファレンス2日目のレポートは以上です。1日目と同様に、今回紹介できなかったセッションも多数ありますが、それらは下記のリンクから視聴できます。

●Youtube PyCon JP 公式アカウント
https://www.youtube.com/user/PyConJP/featured

みなさまの気になるセッションは見つかりましたか? ぜひ、他のセッションも見ていただければと思います!

著者
森野 正博(もりの まさひろ)
PyCon JP 2020 システムチームとして初参加。一方で、トーク周りのレビューや連絡も担当。普段は合同会社 mt ファイナンスのデータ周りをいじっている。しかし超零細なため、事務やら経理やらもやっている。 PyConJP をきっかけに 自身の Python 学習を加速させ、最近は Django をいじったりコンペにも参加するようになる。これからも PyCon JP のようなオープンなカンファレンスに引き続き参加していきたいと思っている。
Twitter : @masamori0083
著者
吉田 健太(よしだ けんた)
株式会社エブリーのバックエンドエンジニアとして所属。主にAWSやTerraformと戯れる日々を過ごしている。Pythonとは付き合いが長く、特に自動化やbotなどに長けている。PyCon JPだけではなく他カンファレンスでもスタッフをしており、NOCとして会場のネットワークを安心安全に提供することに注力している。
Twitter : @yoshiken_tut
Github : @yoshiken

連載バックナンバー

Think IT会員サービス無料登録受付中

Think ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。会員登録を済ませてThink ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

他にもこの記事が読まれています