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

【初心者向け】まだ間に合う! Hugging Face入門 -TransformersでAI推論&学習

Takahiro Esaki
September 14, 2023

【初心者向け】まだ間に合う! Hugging Face入門 -TransformersでAI推論&学習

次のイベントの投影資料です。

<イベントURL>
https://studyco.connpass.com/event/294971/

<イベント名>
【初心者向け】まだ間に合う!HuggingFace入門-TransformersでAI推論&学習

<概要>
ChatGPTが出てきてしばらく経ちますが、LLMや自然言語処理の領域のAIの進展は目覚ましいものがありますよね。

一方、ChatGPT以外でLLMを触ったことがない、AIモデルの実際の扱い方がよくわからない、という方々もまだまだ多いのではないでしょうか。

そんなみなさんにオススメなのが、Hugging Faceです。

AIの文脈で独特な顔文字のアイコン (こういうの🤗) とともに、Hugging Faceという言葉を見聞きする方も増えているかもしれません。

というのも、Hugging Faceは「AIの民主化を実現すること」をモットーに、AIを人々が気軽に使うにためのとても便利なサービスや技術を提供してくれています。

すなわち、Hugging Faceのサービスや技術について知見を持って使っていくことで、私たちは簡単にLLMなどのAIテクノロジーを扱うことができるようになります。

そこで今回は「Hugging Face Hub」で公開されているモデル (LLM) を、Transformersというライブラリを使ってAIの推論や学習 (ファインチューニング) を実施するデモンストレーションを実施します。

また、上記に関連して、LLMを触っていく上で押さえておきたい基礎的なキーワードや概念についてもざっくり確認します。

これを機に、改めてAIやLLMについての理解を深めながら、1人でも多くの方に実際にAIを触って体験していただければ嬉しいと考えています。

Takahiro Esaki

September 14, 2023
Tweet

More Decks by Takahiro Esaki

Other Decks in Technology

Transcript

  1. - 1 -
    - 1 -
    【初⼼者向け】まだ間に合う︕
    Hugging Face⼊⾨ -TransformersでAI推論&学習
    LLMをテーマにしてAIを体験しよう︕
    2023/09/14
    Takahiro Esaki
    🌸

    View Slide

  2. - 2 -
    - 2 -
    講師紹介
    【経歴】
    n東京⼤学 ⽂学部 ⼼理学専修課程 卒業
    • 専⾨︓⾼次認知(記憶・学習・⾏動 など)
    n業務/ITコンサルティング
    • 基幹システム運⽤保守業務改⾰
    • 基幹システム刷新PMO
    • サプライチェーン最適化/需要予測最適化
    • データ分析システム刷新PM/アーキテクチャ設計 など
    n新規事業開発・アジャイル開発・ローコード開発
    • クラウドソーシングプラットフォームサービス
    • アパレルプラットフォームサービス
    • 海外クリエーター向けe-Learningサービス など
    nCSM (カスタマーサクセスマネージャー) @IBM Japan※
    • AI & Cloudソリューションの活⽤促進
    • コミュニティ活動・アドボケート活動 など
    ※本講演・本資料は IBM Japan, Ltd. を代表するものではございません
    江﨑 崇浩
    (Takahiro Esaki)
    X (旧Twitter)
    @t_esaking
    LinkedIn
    CSMをご紹介する記事を執筆しましたので、ぜひご確認ください︕
    https://www.imagazine.co.jp/customer-success-manager/

    View Slide

  3. - 3 -
    - 3 -
    本⽇の⽬的
    n ゴール
    • Transformersライブラリを使ってLLM(⼤規模⾔語モデル)によるAI推論を気軽に実施できるようになる
    ü Hugging Faceの基本的なところを押さえる🤗
    ü さらに、Fine-tuning (AI学習)もやってみる🌸
    • 上記を通して、LLMに関する基本的なキーワードや概念の理解を深める
    n 対象者
    • AIや⾃然⾔語処理の初学者
    • LLMやGPUなどのAIに関するキーワードを何となくは知っている⼈
    • AIの学習や推論をあまり体験/体感することができていない⼈
    n 注意
    • 本⽇の内容に関係する機械学習/AIのトピックはざっくりと解説しますが、網羅的かつ詳細には説明はしません
    • あくまで、Hugging Faceを使って、AIの学習と推論を体験してもらうことが⽬的の勉強会になっています
    カジュアルにAIを体験しみようという趣旨なので、リラックスしながら楽しんでいただければ嬉しいです

    View Slide

  4. - 4 -
    - 4 -
    本⽇の内容
    n Hugging Faceで公開されているモデルを使って①AI推論 と ②AI学習(Fine-tuning)を体験します
    ①AI推論︓まずはモデルを使ってみる︕ ②AI学習︓既存モデルをカスタマイズする︕(Fine-tuning)
    公開されているモデル
    CPU
    OS (w/GPUドライバー)
    GPU
    AI推論⽤のコード/ライブラリ
    Python, PyTorch, CUDA など
    公開されているモデル
    CPU
    OS (w/GPUドライバー)
    GPU
    AI学習⽤のコード/ライブラリ
    Python, PyTorch, CUDA など
    学習⽤
    データ

    View Slide

  5. - 5 -
    - 5 -
    Hugging Faceとは︖
    n Wikipediaによると…
    • ⼀⾔で⾔うと、「機械学習の⺠主化を⽬的としたプラットフォームを提供する会社」
    n Hugging Faceの技術・サービス
    • Diffusers ライブラリ
    ü Diffusers ライブラリは、画像や⾳声の拡散モデルを扱うためのオープンソースな Python パッケージである。Stable Diffusion
    を始めとした画像⽣成モデルの学習や推論の実装も含まれる
    • Transformers ライブラリ
    ü Transformers ライブラリは、⽂章、画像、⾳声でのタスクを⾏う Transformer のオープンソースな Python パッケージである。
    PyTorch、TensorFlow、JAX ライブラリと互換性があり、BERT や GPT モデルのような著名なモデルの実装も含まれる
    • Hugging Face Hub
    ü Hugging Face Hub は、ユーザーが事前学習済みモデルやデータセット、機械学習プロジェクトのデモなどを共有できるプラット
    フォームである。プロジェクトに関する Discussions や Pull Requests、コードの共有やコラボレーションなど GitHub にインス
    パイアされた機能が存在する。また、Gradio や Streamlit、Docker を利⽤した Web ベースでの機械学習アプリケーションのデ
    モを公開できるホスティングサービス Hugging Face Spaces を提供している
    参考︓https://ja.wikipedia.org/wiki/Hugging_Face
    本⽇取り扱う範囲

    View Slide

  6. - 6 -
    - 6 -
    TransformerとTransformersの違いに注意
    n Transformer
    • 「Attention Is All You Need」というGoogleの論⽂で提唱
    • 「Attention」という仕組みを使ったモデル・アーキテクチャのこと
    ü In this work we propose the Transformer, a model architecture
    eschewing recurrence and instead relying entirely on an attention
    mechanism to draw global dependencies between input and output.
    ü 出典︓https://arxiv.org/pdf/1706.03762.pdf
    • Foundation Model (基盤モデル)と表現されることも多い
    ü 参考︓https://blogs.nvidia.co.jp/2022/04/13/what-is-a-transformer-model/
    n Transformers
    • Hugging Faceが提供する機械学習ライブラリ (OSS)
    ü 🤗Transformersは、テキスト、視覚、⾳声などの異なるモダリティに対し
    てタスクを実⾏するために、事前に学習させた数千のモデルを提供します。
    ü 出典︓https://github.com/huggingface/transformers/blob/main/README_ja.md
    Transformer(基盤モデル)を、Transformers(ライブラリ)で操作すると理解してもらればOK

    View Slide

  7. - 7 -
    - 7 -
    おまけ︓トランスフォーマー
    n こっちの⽅は⽇本語ではトランスフォーマーだけど、英語では「Transformers」
    参考︓タカラトミー
    https://tf.takaratomy.co.jp/tf_bwagain/
    • コンボイ「私に良い考えがある」(名台詞)
    • 公式の関係図、
    デストロン(右側)の陣営ひどいww

    View Slide

  8. - 8 -
    - 8 -
    TransformerとFine-tuning
    n Transformer(基盤モデル) のFine-tuningのイメージ(例︓⾃然⾔語処理)
    基盤モデル
    (BERT/GPT-3などの
    ⼤規模⾔語モデル︓
    LLM)
    ⼤量の
    データ
    ⼤量の計算資源
    ⾃⼰教師あり
    学習
    Fine-tuning
    (教師あり学習)
    特定のタスクや
    ビジネスドメイン特化
    のモデル
    計算資源
    追加の
    データ
    1
    2
    3

    View Slide

  9. - 9 -
    - 9 -
    TransformerとFine-tuning
    n Transformer(基盤モデル) のFine-tuningのイメージ(例︓⾃然⾔語処理)
    基盤モデル
    (BERT/GPT-3などの
    ⼤規模⾔語モデル︓
    LLM)
    ⼤量の
    データ
    ⼤量の計算資源
    ⾃⼰教師あり
    学習 計算資源
    追加の
    データ
    Fine-tuning
    (教師あり学習)
    特定のタスクや
    ビジネスドメイン特化
    のモデル
    n ⾃⼰教師あり学習とは︖
    • Self-Supervised Learning︓SSL
    • 正解ラベルを⼈間の⼿で⼤量に準備することはせずに、問題⽂から正解を特定できるタスクを実施する
    • 2つのマスキング⽅法
    ü Multi Head Attention と Masked Multi Head Attention
    • Multi Head Attentionの例
    ü The apple is on the table. → The apple is [MASK] the table. → onが正解
    • Masked Multi Head Attentionの例
    ü The apple is on the table. → The apple is [MASK]. → onが正
    1
    1
    2
    3
    ⼤量データで「⾃⼰教師あり学習」の事前学習をして、追加データで「教師あり学習」して下流タスクの精度向上

    View Slide

  10. - 10 -
    - 10 -
    TransformerとFine-tuning
    n Transformer(基盤モデル) のFine-tuningのイメージ(例︓⾃然⾔語処理)
    n ⾃然⾔語処理における「タスク」とは︖
    • ⽂書分類 (Sequence Classification)
    • 固有表現抽出 (Named Entity Recognition)
    • 感情分析 (Sentiment Analysis)
    • ⽂章要約 (Text Summarization)
    • ⽂章⽣成 (Text Generation)
    • 質問応答 (Question Answering)
    • 機械翻訳 (Machine Translation)
    • etc…
    2
    ⾃然⾔語処理の⽂脈での「タスク」とは、上記のような特定の専⾨⽤語を意味すると理解するのがオススメ
    n ざっくりした各モデルの特徴
    • エンコーダーモデル (BERTなど)︓分類系が得意
    ü Multi Head Attentionで学習
    • デコーダーモデル (GPT, MPTなど)︓⽣成系が得意
    ü Masked Multi Head Attentionで学習
    • エンコーダー・デコーダーモデル (BARTなど)︓翻訳系が得意
    ü Multi Head Attention と Masked Multi Head Attentionで学習
    基盤モデル
    (BERT/GPT-3などの
    ⼤規模⾔語モデル︓
    LLM)
    ⼤量の
    データ
    ⼤量の計算資源
    ⾃⼰教師あり
    学習 計算資源
    追加の
    データ
    Fine-tuning
    (教師あり学習)
    特定のタスクや
    ビジネスドメイン特化
    のモデル
    1
    2
    3

    View Slide

  11. - 11 -
    - 11 -
    TransformerとFine-tuning
    n Transformer(基盤モデル) のFine-tuningのイメージ(例︓⾃然⾔語処理)
    n ビジネスドメイン特化とは︖
    • ビジネスドメイン=「事業領域」。ざっくり⾔うと「企業特有のビジネス/業務を遂⾏するに必要な知識体系」のこと
    • ⾃然⾔語処理の⽂脈では「企業特有のビジネス/業務に関するデータで学習させて(Fine-tuning)、そのビジネス/業
    務を実現するためのタスクが得意なモデルを作る」くらいに押さえればOK
    3
    • 例
    ü VoC分析業務︓製品やサービスのアンケート・問い合わせ内容から、どんな評価なのか分類・集計する
    ü ⾦融アナリスト業務︓企業の決算報告書から今後の株価を予測するレポートを作成する
    基盤モデルをFine-tuningすることで、特定のビジネスドメインに貢献できるモデルを作ることが期待される
    基盤モデル
    (BERT/GPT-3などの
    ⼤規模⾔語モデル︓
    LLM)
    ⼤量の
    データ
    ⼤量の計算資源
    ⾃⼰教師あり
    学習 計算資源
    追加の
    データ
    Fine-tuning
    (教師あり学習)
    特定のタスクや
    ビジネスドメイン特化
    のモデル
    1
    2
    3
    • 参考︓Bloombergの⾦融機関向けLLM ※これ⾃体はFine-tuningではなくゼロから⾦融データに特化してモデル作成
    ü プレスリリース︓https://about.bloomberg.co.jp/blog/press-bloomberggpt-50-billion-parameter-llm-tuned-finance/
    ü 論⽂のConclusionで、Fine-tuningによるLLMの改善について⾔及あり︓https://arxiv.org/pdf/2303.17564.pdf

    View Slide

  12. - 12 -
    - 12 -
    本⽇のデモ
    n 本⽇の全体像はこちらです
    環境準備 基盤モデルの選択 AI推論
    AI学習
    (Fine-tuning)
    • 今回はGoogle Colabを活⽤
    するので詳細は割愛
    • Hugging Face公開のモデル
    を選択。今回は↓
    • https://huggingface.co/ri
    nna/japanese-gpt2-small
    • 2つのやり⽅をご紹介 • あるアイドルVTuberのSNS
    投稿から学習データを作成
    して、その⼝調などを学習
    できるかにぇ🌸

    View Slide

  13. - 13 -
    - 13 -
    本⽇のデモ
    n Fine-tuningの学習データとして活⽤させてもらうのは…
    出典︓ホロライブ
    https://hololive.hololivepro.com/talents/sakuramiko/
    ʹΌͬ͸ΖʙʂϗϩϥΠϒॴଐͷΤϦʔτቭঁΞΠυϧ͘͞ΒΈ͜Ͱͬ͢ʂ

    View Slide

  14. - 14 -
    - 14 -
    本⽇のデモ
    n Fine-tuningの学習データの作り⽅
    出典︓さくらみこ X (旧Twitter)
    https://twitter.com/sakuramiko35
    Xのポスト(投稿)を
    気合いでコピペして
    テキストデータ作成︕
    <深謀遠慮な選定理由>
    ⼊⼿容易なデータ
    ⼝調が特徴的で
    変化がわかりやすそう
    Έͪ͜
    ͔Θ͍͍
    追記︓「オープンデータ」という表現は適切ではないので訂正します。
    今回は個⼈の技術実験・ナレッジシェアの⽬的で、不適切な利⽤がされな
    い前提でSNSのデータを使⽤しております。
    もし本件が原因でトラブルが起きるようなら動画・資料などの変更・⾮公
    開・削除などの対応をさせていただきます

    View Slide

  15. - 15 -
    - 15 -
    本⽇のデモ
    n 本⽇の全体像はこちらです
    環境準備 基盤モデルの選択 AI推論
    AI学習
    (Fine-tuning)
    • 今回はGoogle Colabを活⽤
    するので詳細は割愛
    • Hugging Face公開のモデル
    を選択。今回は↓
    • https://huggingface.co/ri
    nna/japanese-gpt2-small
    • 2つのやり⽅をご紹介 • あるアイドルVTuberのSNS
    投稿データから学習モデル
    を作成して、その⼝調など
    を学習できるかにぇ…

    View Slide

  16. - 16 -
    - 16 -
    本⽇のデモ
    n 本⽇の全体像はこちらです
    環境準備 基盤モデルの選択 AI推論
    AI学習
    (Fine-tuning)
    • 今回はGoogle Colabを活⽤
    するので詳細は割愛
    • Hugging Face公開のモデル
    を選択。今回は↓
    • https://huggingface.co/ri
    nna/japanese-gpt2-small
    • 2つのやり⽅をご紹介 • あるアイドルVTuberのSNS
    投稿データから学習モデル
    を作成して、その⼝調など
    を学習できるかにぇ…

    View Slide

  17. - 17 -
    - 17 -
    Transformersを使ったAI推論の実⾏
    n ⼤きく2つのやり⽅
    1. pipeline() メソッドの利⽤︓めっちゃお⼿軽︕
    1. 必要なライブラリ (Transformers など) をインポート
    2. pipeline(タスク名、モデル名)でオブジェクト化
    3. オブジェクトにプロンプトやメタデータを渡して実⾏する
    2. TokenierとModelの利⽤︓細かいことできる︕
    Tokenizer Model Tokenizer
    • モデルによって使ってもらいたいTokenizerオブジェクト、Modelオブジェクトの指定がある
    • 基本的に、AutoTokenizerなど、Auto**の名前が多い
    • If you plan on using a pretrained model, itʼs important to use the associated pretrained tokenizer.
    • https://huggingface.co/docs/transformers/v4.33.0/en/preprocessing
    Tips
    • ユーザから⼊⼒されたテキストを数
    値に変換(インプットの作成)
    • インプットの数値を受け取って、何
    らかの計算をして、アウトプットと
    して数値を返す
    • Modelがアウトプットした数値をテ
    キストに変換して、ユーザが読める
    ようにする


    • 「ちいかわとは、」
    → [213, 356, 465, 823, 543,
    2]
    • [213, 356, 465, 823, 543, 2]
    → [213, 356, 465, 823, 543, 2,
    9835, 5243, 76, 4267]
    • [213, 356, 465, 823, 543, 2,
    9835, 5243, 76, 4267]
    → 「ちいかわとは、なんか⼩さくて
    かわいいやつである」

    View Slide

  18. - 18 -
    - 18 -
    本⽇のデモ
    n 本⽇の全体像はこちらです
    環境準備 基盤モデルの選択 AI推論
    AI学習
    (Fine-tuning)
    • 今回はGoogle Colabを活⽤
    するので詳細は割愛
    • Hugging Face公開のモデル
    を選択。今回は↓
    • https://huggingface.co/ri
    nna/japanese-gpt2-small
    • 2つのやり⽅をご紹介 • あるアイドルVTuberのSNS
    投稿データから学習モデル
    を作成して、その⼝調など
    を学習できるかにぇ…

    View Slide

  19. - 19 -
    - 19 -
    Transformersを使ったAI学習(Fine-tuning)の実⾏
    n Fine-tuningの⼤まかな流れは次のとおり
    基盤モデルの選択 データ収集
    データセットの
    読み込み
    • 実施したいタスクや性能、
    ライセンス形態、必要リ
    ソースなどを踏まえて選
    択する
    • Hugging Faceの公開
    データセット利⽤、API
    利⽤、⼿動で作成…
    • 良いモデルを作るには、
    ここで頑張る必要あり
    モデル訓練と
    テスト推論
    モデルの評価
    • ⽇本語だとJGLUEなどの
    ベンチマーキングが有名
    • ビジネスドメインの解決
    能⼒を評価するには、評
    価軸や仕組みを考える必
    要あり
    AI学習⽤のコーディングをする部分
    今回はここにフォーカス
    n データセットの読み込み
    • datasetsライブラリ︓ datasets.load_dataset(種類、パス)
    • datasets.map()で⽂章をIdに変換する(数値化する)
    • data_collatorでモデルに投⼊するために調整して、バッチというデータの塊に変換する
    ü Transformersライブラリの中で準備されている。DataCollatorForLanguageModelingが該当
    n モデル訓練とテスト推論
    • TrainingArguments()でメタデータ、GPUの設定などを定義
    • Trainerのtrain()で訓練実⾏
    • テスト推論もTrainerクラスの中でやってくれてる

    View Slide

  20. - 20 -
    - 20 -
    本⽇の内容(再掲)
    n Hugging Faceで公開されているモデルを使って①AI推論 と ②AI学習(Fine-tuning)を体験します
    AI学習︓既存モデルをカスタマイズする︕(Fine-tuning)
    公開されているモデル
    CPU
    OS (w/GPUドライバー)
    GPU
    AI学習⽤のコード/ライブラリ
    Python, PyTorch, CUDA など
    学習⽤
    データ
    AI推論︓まずはモデルを使ってみる︕
    公開されているモデル
    CPU
    OS (w/GPUドライバー)
    GPU
    AI推論⽤のコード/ライブラリ
    Python, PyTorch, CUDA など
    Hugging Faceぜひ触ってみてください︕
    Hugging Face Hubで公開されている
    Transformer(基盤モデル)を
    Transformers(ライブラリ)で操作
    • pipeline
    • Tokenizer
    • Model
    • datasets
    • TrainingArguments
    • Trainer

    View Slide

  21. - 21 -
    - 21 -
    本⽇のメッセージ
    n 最後にこれだけは伝えたかった・・・
    出典︓ホロライブ
    https://hololive.hololivepro.com/talents/sakuramiko/
    Έ͔ͪ͜Θ͍͍

    View Slide

  22. - 22 -
    - 22 -
    技術イベントの宣伝
    名称︓ IBM TechXchange Conference Japan 技術者集まれ︕ テクノロジーに出会える2⽇間
    対象︓ 技術者の皆様
    ⽇時︓ 2023年10⽉31⽇(⽕)- 11⽉1⽇(⽔)
    会場︓ベルサール東京⽇本橋
    東京都中央区⽇本橋2-7-1 東京⽇本橋タワーB2・4F・5F ベルサール東京⽇本橋 アクセス
    受講料︓無料(事前登録制)
    詳細・申込︓https://ibm.biz/techxchangejp
    紹介社員の欄には
    「江﨑 崇浩」と
    ⼊⼒お願いします

    View Slide