Slide 1

Slide 1 text

Hugging Faceを使いこなして ローカルLLMを推論する 戸塚 翔太

Slide 2

Slide 2 text

自己紹介 - 戸塚翔太(Blueish) - Go, Rust, Python - 生成AI, 機械学習 - 松尾研GENIAC開発メンバーとして参加 - 静岡県(浜松)に住んでます - 近くの方がいれば、一緒に勉強会しましょう - X: @totsumaru_dot

Slide 3

Slide 3 text

Agenda 1. 概要(背景、目的など) 2. Hugging Faceの全体像 3. Hugging Face環境で推論する 4. Google Colabで推論する 5. 手元のPCで推論する

Slide 4

Slide 4 text

背景 - 毎日のように新しいモデルが出てきている - GPT-3.5は超えていて、GPT-4と勝負できるレベル - APIしか使えないと、結局みんな同じようなアイデアになる - 最近ローカルLLMがアツいらしい - https://soysoftware.sakura.ne.jp/archives/3903

Slide 5

Slide 5 text

API使えば良くない? - APIで済むサービスであれば、APIを使った方が効率がいいことが多い - そもそもGPTやClaudeはAPIしか公開されていない - エンジニアたるもの、仕組みと使い方くらいは知っておこうぜ - ローカルLLMはAPIの制約を受けず、モデルも豊富 - 緊急ではないが重要なこと?

Slide 6

Slide 6 text

ローカルLLMとは? (解釈の幅はありますが...ここでの定義) - 手元で動かすことができるモデル - オープンに(重みが)公開されているモデル - OpenAIのGPT3,4やAnthropicのClaudeは入らない

Slide 7

Slide 7 text

ローカルLLMのハードル - 気軽に試せない - 手元のPCのスペックが足りない

Slide 8

Slide 8 text

伝えたいこと - 推論するだけなら難しくないよ! - もっと気軽に実行できる環境もあるよ!

Slide 9

Slide 9 text

今日の目標 - Hugging Faceの全体像を理解する - 自分でローカルLLMを推論できるようになる - ローカルLLMを使ったアプリケーションを公開する - (本番用は想定していない。検証用など)

Slide 10

Slide 10 text

Agenda 1. 概要(背景、目的など) 2. Hugging Faceの全体像 3. Hugging Face環境で推論する 4. Google Colabで推論する 5. 手元のPCで推論する

Slide 11

Slide 11 text

2. Hugging Faceの全体像 - Hugging Face Hub - Transformers - Diffusers - Datasets - Tokenizers - Accelerate - …etc - とにかく機能が多い Hugging Face documentations

Slide 12

Slide 12 text

2. Hugging Faceの全体像 【Hub】 - Models - Datasets - Spaces - Repositories *モデルカード(README)を確認してください 【Libraries】 - Transformers - Datasets - Tokenizers

Slide 13

Slide 13 text

Agenda 1. 概要(背景、目的など) 2. Hugging Faceの全体像 3. Hugging Face環境で推論する (メイン) 4. Google Colabで推論する 5. 手元のPCで推論する

Slide 14

Slide 14 text

3. Hugging Face環境で推論する Google Colabや手元のPCでなく、Hugging Faceの環境でLLMを動かせる。 # やり方は2通り - Spacesを使用する - Inference API(推論API)を使用する # 注意 - 無料枠には制限がある - そもそも使えないモデルもある↑ $9でNvidia A100 40GB vRAMが使えるようになった! → ZeroGPU Spaces To get full optimization To run private models To get access to GPU inference

Slide 15

Slide 15 text

3. Hugging Face環境で推論する ① Spacesを使用する - Gradioなどを簡単にホスティングできる(git push) - Streamlit,Dockerも対応 画像がHot Dogかどうかを判定

Slide 16

Slide 16 text

3. Hugging Face環境で推論する ① Spacesを使用する - 各モデルの「Deploy」からも簡単にデプロイできる - コードを書かずにボタンを押すだけで、テンプレートコードがデプロイできる

Slide 17

Slide 17 text

3. Hugging Face環境で推論する ② Inference API(推論API)を使用する - モデル名, Tokenを用意して、cURLで推論できる - モデルサイズが大きいものはエラーが出る - Proプラン($9.00/month)加入で制限が大きく緩和 { "error": "The model meta-llama/Meta-Llama-3-8B is too large to be loaded automatically (16GB > 10GB). Please use Spaces (https://huggingface.co/spaces) or Inference Endpoints (https://huggingface.co/inference-endpoints)." } Hubの各モデルにもある

Slide 18

Slide 18 text

Agenda 1. 概要(背景、目的など) 2. Hugging Faceの全体像 3. Hugging Face環境で推論する 4. Google Colabで推論する 5. 手元のPCで推論する

Slide 19

Slide 19 text

4. Google Colabで推論する - Transformers - まずはpipelineを使う - Datasets - Tokenizers たったこれだけのコードで推論ができる

Slide 20

Slide 20 text

Agenda 1. 概要(背景、目的など) 2. Hugging Faceの全体像 3. Hugging Face環境で推論する 4. Google Colabで推論する 5. 手元のPCで推論する

Slide 21

Slide 21 text

5. 手元のPCで推論する (もちろんGoogle Colabと同じコードは実行できますが、ここではツールの紹介のみ) - Llama.cpp - Ollama - LM Studio # UI - Enchanted - Open WebUI - Text Generation WebUI

Slide 22

Slide 22 text

最後に - 無料枠には制限がある(割と動かないモデルも多い) - Google Colabをおすすめ - Spacesを使ってまずは公開してみよう - モデルカードをよく確認しよう - 公開する場合は、ライセンスに注意しよう

Slide 23

Slide 23 text

終わり