Slide 1

Slide 1 text

copyright © 2023 CMS Comunications Inc. all rights reserved. Pythonの現状から データ分析やLLM活用への発展 ─すぐにPythonを使ってみたくなる─ CMSコミュニケーションズ代表取締役 一般社団法人PyCon JP Associations理事 寺田 学 「オープンセミナー香川 2023」 2023年9月9日

Slide 2

Slide 2 text

copyright © 2023 CMS Comunications Inc. all rights reserved. 自己紹介と所属組織

Slide 3

Slide 3 text

copyright © 2023 CMS Comunications Inc. all rights reserved. 自己紹介 寺田 学 (Manabu TERADA) ● Pythonエンジニア ● Podcast 「terapyon channel」(https://podcast.terapyon.net) ● 主な関連書籍(共著・監修・監訳) ○ Pythonデータ分析 実践ハンドブック(2023年,インプレス,共著)・・まもなく発売 ○ Pythonによるあたらしいデータ分析の教科書 第2版 (2022年,翔泳社,共著) ○ Python実践レシピ(2022年,技術評論社,共著) ○ Python FlaskによるWebアプリ開発入門 (2022年,翔泳社,監修)

Slide 4

Slide 4 text

copyright © 2023 CMS Comunications Inc. all rights reserved. 所属組織 ● 株式会社 CMSコミュニケーションズ 代表取締役 ● 一般社団法人PyCon JP Association理事 ● 一般社団法人Pythonエンジニア育成推進協会顧問理事 ● Python Software Foundation Fellow

Slide 5

Slide 5 text

copyright © 2023 CMS Comunications Inc. all rights reserved. Python技術支援のコンサルサービス 関連技術

Slide 6

Slide 6 text

copyright © 2023 CMS Comunications Inc. all rights reserved. PyCon APAC 2023 チケット発売中 ● https://2023-apac.pycon.jp/ ● 日程: 10/27(金)〜29(日) の3日間 ● チケット: 12,000円(ランチ付き) ○ https://pretix.eu/pyconjp/2023-apac/

Slide 7

Slide 7 text

copyright © 2023 CMS Comunications Inc. all rights reserved. セミナーの流れ ● Pythonの使われ方 ● Pythonバージョンと最新版について ● Pythonをどう動かすか? ● データ分析・機械学習系定番ライブラリと利用シーン ● LLMにおけるPythonの活用事例 ● コミュニティやPyConについて

Slide 8

Slide 8 text

copyright © 2023 CMS Comunications Inc. all rights reserved. Pythonの使われ方

Slide 9

Slide 9 text

copyright © 2023 CMS Comunications Inc. all rights reserved. Pythonの使われ方 ─ 1 OS等のサーバ系ツール ● Red Hat系Linux インストーラ ● yum パッケージマネージャ ● Ansible パッケージの構成ツール ● OpenStack クラウドシステム構築ツール

Slide 10

Slide 10 text

copyright © 2023 CMS Comunications Inc. all rights reserved. Pythonの使われ方 ─ 2 Webシステム ● Webフレームワーク Django / Flask / Pyramid / FastAPI ● 各種テンプレート用パッケージ ● O/Rマッパー ● その他のツール Scrapyなど

Slide 11

Slide 11 text

copyright © 2023 CMS Comunications Inc. all rights reserved. Pythonの使われ方 ─ 3 データ分析や科学技術計算 ● データ型やデータ分析ツール NumPy / pandas ● 科学技術計算 SciPy ● 可視化ツール Matplotlib ● 機械学習ツールキット scikit-learn ● ディープラーニング TensorFlow / PyTorch

Slide 12

Slide 12 text

copyright © 2023 CMS Comunications Inc. all rights reserved. Pythonの使われ方 ─ 4 IoT ● Raspberry Pi ● MicroPython

Slide 13

Slide 13 text

copyright © 2023 CMS Comunications Inc. all rights reserved. Pythonの使われ方 ─ 5 3Dグラフィックス ● Maya ● Blender

Slide 14

Slide 14 text

copyright © 2023 CMS Comunications Inc. all rights reserved. Pythonの使われ方 ─ 6 Pythonが苦手なこと ● Web フロントエンド開発 (WASMで状況が変わるか??) ● デスクトップGUIアプリ開発 ● 速度重視の低レイヤー処理 ● 超大規模なミッションクリティカルな分野の処理

Slide 15

Slide 15 text

copyright © 2023 CMS Comunications Inc. all rights reserved. Pythonバージョンと最新版について

Slide 16

Slide 16 text

copyright © 2023 CMS Comunications Inc. all rights reserved. Pythonのバージョンとサポート期間 年1回リリース&5年サポート https://devguide.python.org/versions/

Slide 17

Slide 17 text

copyright © 2023 CMS Comunications Inc. all rights reserved. Pythonの最新版について リリーススケジュール ● Python 3.12 が、2023年10月にリリース ● 年1リリースされる ● あせって、バージョンアップしなくても良い ● 最近は、動作速度アップを頑張っている ● 型ヒントやコーディングのしやすさを重視

Slide 18

Slide 18 text

copyright © 2023 CMS Comunications Inc. all rights reserved. Pythonをどう動かすか?

Slide 19

Slide 19 text

copyright © 2023 CMS Comunications Inc. all rights reserved. Pythonを手元で動かす 手元のPCにPythonをインストール ● 対話モードで試す ● VS CodeなどのIDEを使う (これが多い) ● JupyterLabを使う (データ系だと一般的)

Slide 20

Slide 20 text

copyright © 2023 CMS Comunications Inc. all rights reserved. Pythonをクラウド環境で動かす 手元のPCで動かせない場合 ● Google Colaboratoryを使う ● サーバ上で対話モードなどを使う ● サーバーレス環境で動かす

Slide 21

Slide 21 text

copyright © 2023 CMS Comunications Inc. all rights reserved. データ分析・機械学習系定番ライブラリ と 利用シーン

Slide 22

Slide 22 text

copyright © 2023 CMS Comunications Inc. all rights reserved. データ分析・機械学習定番ライブラリ ● Jupyter ・・環境 ● NumPy / pandas / Matplotlib / Plotly・・データ加工・可視化 ● scikit-learn ・・機械学習 ● PyTorch / Keras / TensorFlow ・・ディープラーニング ● Streamlit / Gradio ・・Web UIフレームワーク ● Transformers / LangChain ・・自然言語処理・LLM系

Slide 23

Slide 23 text

copyright © 2023 CMS Comunications Inc. all rights reserved. 用途別定番ライブラリ ─ 1 データ分析をやってみたい ● JupyterLab ・・Webブラウザでコードの実験 ● pandas ・・DataFrame(2次元表データの加工など) ● Plotly ・・動的な可視化ツール

Slide 24

Slide 24 text

copyright © 2023 CMS Comunications Inc. all rights reserved. 用途別定番ライブラリ ─ 2 機械学習 ● JupyterLab上で ● pandas / NumPy ・・データ加工など ● scikit-learn ・・機械学習ライブラリ ● Matplotlib / Plotly ・・結果を可視化

Slide 25

Slide 25 text

copyright © 2023 CMS Comunications Inc. all rights reserved. 用途別定番ライブラリ ─ 3 ディープラーニングに挑戦 ● Google Colaboratoryの活用 ● PyTorch ・・深層学習フレームワーク

Slide 26

Slide 26 text

copyright © 2023 CMS Comunications Inc. all rights reserved. 用途別定番ライブラリ ─ 4 Webで機械学習のデモを作りたい ● Gradio or StlieamlitでWeb UIを作る ● LangChain ・・LLM関連のツールキット ● PyTorch ・・深層学習フレームワーク

Slide 27

Slide 27 text

copyright © 2023 CMS Comunications Inc. all rights reserved. LLMにおけるPythonの活用事例 ─ライブラリを活用して作ってみよう─

Slide 28

Slide 28 text

copyright © 2023 CMS Comunications Inc. all rights reserved. LLM (Large Language Model)とは 大規模言語モデル ● ChatGPTに代表される ● 無料で使えるもの、日本語に特化したものも ● 開発にはPythonが使われていることが多い ● Pythonインターフェースが提供される

Slide 29

Slide 29 text

copyright © 2023 CMS Comunications Inc. all rights reserved. LLM (Large Language Model)でできること ● テキスト生成: LLMは与えられたプロンプトに基づいてテキストを生成することができます。 ● 質問応答: ユーザーからの質問に対して情報を提供することができます。 ● 文章の要約: 長い文章やドキュメントを短く要約することができます。 ● 翻訳: 一定の精度で言語を翻訳することが可能です。 ● 文章校正: 文法や綴りのミスを指摘・修正する能力があります。 ● コードの生成・助言: 簡単なプログラミングの質問に答えたり、コードのスニペットを生成。 ● 知識の検索: トレーニングデータに基づく情報や事実を提供することができます。 ● クリエイティブライティング: 物語、詩、台本などのクリエイティブなテキストを生成 ● 学習・教育のサポート: 学習者の質問に答える、学習コンテンツを補完する情報を提供 ● ゲームや趣味のアドバイス: ボードゲームの戦略や趣味に関する質問に答える ● 一般的な会話: ユーザーと一般的な会話を楽しむことができます。 Chat GPT4によると (文言の末尾を一部修正 )

Slide 30

Slide 30 text

copyright © 2023 CMS Comunications Inc. all rights reserved. 文書をベクター検索 ─ 全体像

Slide 31

Slide 31 text

copyright © 2023 CMS Comunications Inc. all rights reserved. 文書をベクター検索 ─ インデックス化

Slide 32

Slide 32 text

copyright © 2023 CMS Comunications Inc. all rights reserved. 文書をベクター検索 ─ インデックス化 ● 元データ ● ベクトル化 ● ベクトルDB

Slide 33

Slide 33 text

copyright © 2023 CMS Comunications Inc. all rights reserved. 文書をベクター検索 ─ 質問・回答

Slide 34

Slide 34 text

copyright © 2023 CMS Comunications Inc. all rights reserved. 文書をベクター検索 ─ 質問・回答 ● ベクトル化 ● 文章生成 ● Web UI

Slide 35

Slide 35 text

copyright © 2023 CMS Comunications Inc. all rights reserved. 文書をベクター検索 ─ 全体像(再確認)

Slide 36

Slide 36 text

copyright © 2023 CMS Comunications Inc. all rights reserved. LLMを気軽に使うには LangChain https://www.langchain.com/ ● 大規模言語モデルを使うフレームワーク ● Python や JavaScriptから使える ● OpenAIのGPTモデルを気軽に使える ● 別の言語モデルにも対応

Slide 37

Slide 37 text

copyright © 2023 CMS Comunications Inc. all rights reserved. 文書をベクター検索 ─ LangChain

Slide 38

Slide 38 text

copyright © 2023 CMS Comunications Inc. all rights reserved. GitHub Issueを検索 ─ 概要 モチベーション ● 高度な検索を実現したい ● 検索結果を有効活用したい ● プライベートな情報を効率的に見つけたい

Slide 39

Slide 39 text

copyright © 2023 CMS Comunications Inc. all rights reserved. GitHub Issueを検索 ─ サンプル ● cpython ● pyvista ● plone ● volto ● plone.restapi ● nvda ● nvdajp ● cocoa https://huggingface.co/spaces/terapyon/gh-issue-search

Slide 40

Slide 40 text

copyright © 2023 CMS Comunications Inc. all rights reserved. GitHub Issueを検索 ─ サンプル

Slide 41

Slide 41 text

copyright © 2023 CMS Comunications Inc. all rights reserved. GitHub Issueを検索 ─ 技術要素

Slide 42

Slide 42 text

copyright © 2023 CMS Comunications Inc. all rights reserved. GitHub Issueを検索 ─ 技術要素 (1) ● GitHub Issue ● ツールを利用: https://github.com/kazamori/github-api-tools ● JSONL形式でダウンロード

Slide 43

Slide 43 text

copyright © 2023 CMS Comunications Inc. all rights reserved. GitHub Issueを検索 ─ 技術要素 (2) ● データをOpenAI APIに渡さない方針 ● Embedding: "intfloat/multilingual-e5-large" ● MTEB Leaderboard: https://huggingface.co/spaces/mteb/leaderboard

Slide 44

Slide 44 text

copyright © 2023 CMS Comunications Inc. all rights reserved. GitHub Issueを検索 ─ 技術要素 (3) ● ベクトルDB: Qdrant Cloud ● https://qdrant.tech/

Slide 45

Slide 45 text

copyright © 2023 CMS Comunications Inc. all rights reserved. GitHub Issueを検索 ─ 技術要素 (4) ● ベクトル化と同じものを使う必要がある ● Embedding: "intfloat/multilingual-e5-large" ● query: パラメータを追加している

Slide 46

Slide 46 text

copyright © 2023 CMS Comunications Inc. all rights reserved. GitHub Issueを検索 ─ 技術要素 (5) ● OpenAI APIを利用 ● 独自のLLMを利用するには、GPUが必要 ● 精度が変わってくる

Slide 47

Slide 47 text

copyright © 2023 CMS Comunications Inc. all rights reserved. GitHub Issueを検索 ─ 技術要素 (6) ● Streamlit: https://streamlit.io/ ● ホスティング: Hugging Face Spaces: https://huggingface.co/spaces

Slide 48

Slide 48 text

copyright © 2023 CMS Comunications Inc. all rights reserved. GitHub Issueを検索 ─ ソースコード https://huggingface.co/spaces/terapyon/gh-issue-search/tree/main

Slide 49

Slide 49 text

copyright © 2023 CMS Comunications Inc. all rights reserved. コミュニティやPyConについて

Slide 50

Slide 50 text

copyright © 2023 CMS Comunications Inc. all rights reserved. PyCon APAC 2023 チケット発売中 ● https://2023-apac.pycon.jp/ ● 日程: 10/27(金)〜29(日) の3日間 ● チケット: 12,000円(ランチ付き) ○ https://pretix.eu/pyconjp/2023-apac/

Slide 51

Slide 51 text

copyright © 2023 CMS Comunications Inc. all rights reserved. コミュニティの今 ─ 1 四国 ● UDONPy・・高松を中心に月1勉強会 ○ https://udonpy.connpass.com/ ● Python Boot Camp 徳島2nd ○ 2023年10月14日開催 ○ https://pyconjp.connpass.com/event/293032/

Slide 52

Slide 52 text

copyright © 2023 CMS Comunications Inc. all rights reserved. コミュニティの今 ─ 2 国外 ● 多くの国でPyConが開催 ● US / Euroは、変わらず大きな規模で開催

Slide 53

Slide 53 text

copyright © 2023 CMS Comunications Inc. all rights reserved. コミュニティの今 ─ 3 女性向け ● PyLadies Caravan ○ https://tokyo.pyladies.com/caravan/index.html

Slide 54

Slide 54 text

copyright © 2023 CMS Comunications Inc. all rights reserved. Pythonを 使ってみたくなりましたか?

Slide 55

Slide 55 text

copyright © 2023 CMS Comunications Inc. all rights reserved. ご清聴 ありがとうございました。

Slide 56

Slide 56 text

copyright © 2023 CMS Comunications Inc. all rights reserved. Q&A