# #82 小山さんwhitphxさんをゲストに OSSを仕事にをキーワードにHugging Faceや周辺のPython UIフレームワークについて語る
Season: 3
Topic: 82
# Note
Guest:
小山さん tkoyam010
科学技術計算の受託解析と受託開発をする企業に所属しています。プライベートでPyVistaという可視化ライブラリのメンテナをしています。今まで作者におんぶにだっこでしたが、作者2人が活動に時間をさけなくなってきたため忙しくなってきました。
橘祐一郎さん。SNSはwhitphxでやっています https://twitter.com/whitphx
ここ2年くらいStreamlitというpure-Python Web UI frameworkのOSSコミュニティによくいます。コア開発者ではなく、Streamlitの拡張を書いたり、issueや小さいPRを送ったりしています。最初は余暇で無給の趣味としてやっていましたが、半年前からHugging Faceで職を得ました。
Note:
- 00:00:00 82回Podcastスタート。小山さん、whitphxさんの紹介
- 00:03:21 今回の対談企画は、OSSと仕事の関係の話
- 00:04:15 Hugging FaceやLLMの話を先にしましょう。Hugging Faceはそもそも何?
- 00:06:53 Hugging Faceは、会社(組織)、 サービス https://huggingface.co/ 、ライブラリ https://pypi.org/project/transformers/ などがある
- 00:07:43 huggingface.co の Spaces がデプロイサービスで便利で使いやすい。Gradio / Streamlit が標準でサポートされているので、Pythonだったら簡単に使える
- 00:08:48 Transformersは自然言語処理のフレームワークですごく便利
- 00:12:34 LLMなどのモデルによっては、ネットワーク越しにデータを渡しているものがあるから企業内のデータを使う場合は注意が必要ですね。
- 00:13:49 Spacesの使い所や便利さを再確認。WebでUIを簡単にホストしてくれる。
- 00:17:57 Spacesで、GPUを使うこともできる。課金が必要なんですが。
- 00:20:48 学習するときのGPUはどのようなものを使っているのか? ローカル/クラウド? 16GB VRAM??
- 00:25:56 LLMの世界は、営利企業やそれなりの組織じゃないと手が出せない? ファインチューニングはできるか?
- 00:26:34 LLMもモデルの大きさはどう選ぶ?
- 00:30:11 GradioのはHugging Faceでメンテナンスされている。Panelとの違いは? Streamlitと同じレイヤー
- 00:32:05 Python UIフレームワークは他にも、Shiny for Python, Solara, Plotly Dash, Reflex, Reacton, ReactPyとか
- 00:33:13 PyVistaはtrameを使っている
- 00:34:38 Ruby on Railsかは始まったと思われる、軽量Webフレームワークの群雄割拠な時代を少し振り返る
- 00:36:09 Streamlitとか、Tornadoバックエンドが多い。Gradioなど比較的新しいものはFastAPIが使われている
- 00:40:05 PyQtとかGUIツールよりもWebの世界になっている?
- 00:42:36 StreamlitのWasm版をwhitphxさんが作っていいる話
- 00:45:31 whitphxさんが9月のPyCon TW、10月のPyCon APAC in JapanでStreamlitのWasm版のトークをする
- 00:46:02 GradioのWasm版は、Hugging Faceの立場でOSSに関わって作っている
- 00:47:59 OSSでメシを食う話(今回のメイントピック)
- 00:49:36 ピュアにOSSだけでメシを食っているっていう人はどのくらいいるのか?寄付ベースかな?
- 00:52:33 OSSプロジェクトに関係すると成長が実感できる。趣味を超えて仕事と関連したい。
- 00:53:05 小山さんはフリータイムの100%をPyVistaにコミットしている
- 01:01:37 Sphinxはリリースマネージャーがイギリスの方に変わって開発スタイルが大きく変化。さらに一人の腕力で開発がめっちゃ進んでいる。
- 01:08:52 PyVistaのPR承認後、マージまで24時間待つルールは面白い。
- 01:11:30 WebアプリのUI/UXをどうするか? whitphxさんは「インタフェースデザインのお約束」で勉強したが。
- 01:17:30 StreamlitとGradioのフレームワーク設計の違いについて。状態変更で再実行 vs コールバック関数を一つだけ渡す
- 01:25:47 Panelやについても少しだけ。
- 01:27:17 Plotly Dashに比べると、Streamlitのパフォーマンスは気になる??書きやすさとかコード量の違いがある。
- 01:31:02 Hugging Face SpacesのGitの機能と開発スタイルを寺田が聞く。開発はGitHubでやる方がスタイルに合うかな。
- 01:40:13 海外カンファレンス登壇のモチベーションについて、3人で確認し合う
- 01:49:13 PyCon USのスペイン語トラックを他で、別言語で出来ないかな?
- 01:59:03 収録が2時間になってしまうのでこの辺で終了。
関連リンク:
- Streamlit: https://streamlit.io/
- Gradio: https://www.gradio.app/
- Panel: https://panel.holoviz.org/
- trame: https://kitware.github.io/trame/index.html
- Plotly Dash: https://dash.plotly.com/
- Tornado: https://www.tornadoweb.org/en/stable/
- FastAPI: https://fastapi.tiangolo.com/ja/
- PyVista: https://docs.pyvista.org/version/stable/
- Sphinx: https://www.sphinx-doc.org/ja/master/
- インタフェースデザインのお約束: https://amzn.to/3YKvxsN
Send in a voice message: https://podcasters.spotify.com/pod/show/terapyon/message