HuggingFace 一から

LLM(Large Language Model)  Calendar 2024
https://qiita.com/advent-calendar/2024/llm
12日目の記事です。

# introduction
Hugging Face って何ですか
https://qiita.com/tadokuno/items/c4536dea7f629d37549c

>当時は全く知識が無かったので、なんか海外のやばいサイトかなと思ったのと、拡張子がckptのモデルファイルは、マルウェアを仕込むことも可能なので、safetensorを使うように、という情報を得たので、それをダウンロードして使うことはしませんでした。



Hugging Face transformersドキュメントのまとめページ
https://qiita.com/taka_yayoi/items/155f97efbff594df4386

AIプラットフォーム「Hugging Face」の使い方を解説
https://qiita.com/SAKUBUN/items/d02dd7288fbda01995ed

初心者でもわかる！Hugging Faceを使いこなして、RAG風プロンプトエンジニアリングで精度UPする方法
https://qiita.com/ryo18/items/251f5a7baa745e982526

Llama 2向けのDatasetsを作成してHugging Faceに登録するまで
https://qiita.com/yn01/items/54f7ceb4edfaba119d34

Hugging Face Spacesで、plumberで作成したWeb APIをホストする方法
https://qiita.com/Yuuki-Osada/items/72644b62d5a7d1e19eda

Hugging Faceのssh鍵の作り方
https://qiita.com/mae616/items/bbf35f97396301ac2e6d

sd-webui-animatediffで高解像度・高フレームレートのクロマキーの動画を作成（v3_sd15_mm.ckpt）
https://qiita.com/kongo-jun/items/3ce1535fab836fd725af

## youtube
【日本語 GPT 文章生成】Hugging Face 入門① 〜Pipelineで、学習済みモデルを使ってみよう〜 【with りんなちゃん】
https://www.youtube.com/watch?v=Fss7czY2R0s

【日本語 BERT 穴埋め問題】Hugging Face 入門② 〜言語モデルの種類と事前学習を理解しよう〜 【エンコーダモデル・デコーダモデル】
https://www.youtube.com/watch?v=5FLiO7F_RpU

【Tokenizer (トークナイザー) とは？】Hugging Face 入門③ 〜TokenizerとModelオブジェクトの使い方〜 【with 日本語GPTモデル】
https://www.youtube.com/watch?v=eeqOO0neq7I

【有名人のツイート生成！】Hugging Face 入門④ 〜GPTモデルのファインチューニング〜 【with 日本語GPTモデル】
https://www.youtube.com/watch?v=GeACtQATkoY


【2023/09/14】【初心者向け】まだ間に合う！HuggingFace入門-TransformersでAI推論&学習
https://www.youtube.com/watch?v=yIL7dZNuH6E

## ckpt
Pytorchの.ckptファイルの引っ越し．モデル構造を変更したときの重みの移行
https://qiita.com/fztkm/items/07e73ad8a37b43445793

ckptファイルをload_state_dictで読み込んだ話
https://qiita.com/sarashina/items/bcfd8134ae823a14009a


# Otehrs
Hugging Faceで独自データセットを使う
https://qiita.com/izaki_shin/items/70d4c51618c068fbb7a7

Hugging Face CI/CDにおけるエラー解消: Git LFS設定と画像ファイルの履歴削除
https://qiita.com/Maki-HamarukiLab/items/9c2e7da8e4b153307ea4

Hugging Face からのモデルのダウンロード
https://qiita.com/mizutan/items/e79f3ef6b8b833891ee3

Hugging Faceのライブラリを使ってTokenize
https://qiita.com/ishikawa-takumi/items/5fc45ddd121b23db5de9

Hugging Face 画像生成
https://qiita.com/miketorii/items/b559b56b85ab443772fc

Hugging Face🤗の拡散モデル入門
https://qiita.com/hotekagi/items/5afabf5945f125020eb1

Databricks ❤️ Hugging Face
https://qiita.com/taka_yayoi/items/665da50ddf7920d33677

Hugging Faceトランスフォーマーパイプラインを用いてNLPをスタートする
https://qiita.com/taka_yayoi/items/f0540a29b3cfa9868585

Hugging Faceのdbrx-instructを動かしてみる
https://qiita.com/taka_yayoi/items/c67b3f5fb168342a4b90

Hugging FaceとDeepSpeedによる大規模言語モデルのファインチューニング
https://qiita.com/taka_yayoi/items/fadf3ce5b3d4e954ef83

サクッと API を作ろう｜FastAPI, Hugging Face,Docker,Python
https://qiita.com/tregu148/items/73045efce0a6216e1cd9

# Reference
[翻訳] Hugging Face transformersのクイックスタート
https://qiita.com/taka_yayoi/items/f3c74c8a242368412615

[翻訳] Hugging Face transformersの推論パイプライン
https://qiita.com/taka_yayoi/items/fe841afc78c27b153b44

[翻訳] Hugging Face transformersにおけるAutoClassを用いた事前学習済みインスタンスのロード
https://qiita.com/taka_yayoi/items/af736dd515c0d12faaf7

[翻訳] Hugging Face transformersにおける前処理
https://qiita.com/taka_yayoi/items/d6300140765b9b1406c5

[翻訳] Hugging Face transformersにおける事前学習済みモデルのファインチューン
https://qiita.com/taka_yayoi/items/597c6b1c36abaf9c1b3c

[翻訳] Hugging Face transformersにおける質問応答
https://qiita.com/taka_yayoi/items/044caf839e83b210042b

[翻訳] Hugging faceのPEFTのクイックツアー
https://qiita.com/taka_yayoi/items/9196444274d6a63cda76

```python  
model.save_pretrained("output_dir")
# if pushing to Hub
from huggingface_hub import notebook_login
notebook_login()
model.push_to_hub("my_awesome_peft_model")
```

```python
  from transformers import AutoModelForSeq2SeqLM
+ from peft import PeftModel, PeftConfig

+ peft_model_id = "smangrul/twitter_complaints_bigscience_T0_3B_LORA_SEQ_2_SEQ_LM"
+ config = PeftConfig.from_pretrained(peft_model_id)
  model = AutoModelForSeq2SeqLM.from_pretrained(config.base_model_name_or_path)
+ model = PeftModel.from_pretrained(model, peft_model_id)
  tokenizer = AutoTokenizer.from_pretrained(config.base_model_name_or_path)

  model = model.to(device)
  model.eval()
  inputs = tokenizer("Tweet text : @HondaCustSvc Your customer service has been horrible during the recall process. I will never purchase a Honda again. Label :", return_tensors="pt")

  with torch.no_grad():
      outputs = model.generate(input_ids=inputs["input_ids"].to("cuda"), max_new_tokens=10)
      print(tokenizer.batch_decode(outputs.detach().cpu().numpy(), skip_special_tokens=True)[0])
  'complaint'
```

[翻訳] Hugging FaceのマルチGPUにおける効率的なトレーニング
https://qiita.com/taka_yayoi/items/ecf3564d62b3c1d1e1cb

[翻訳] Hugging faceのPEFT
https://qiita.com/taka_yayoi/items/67950183d32b112246ba

## Related document
DatabricksとHugging Faceを用いた保険Q&Aにおける意図分類
https://qiita.com/taka_yayoi/items/ad1d8970606048e0a0fb

Hugging Face、Databricksモデルサービング、Databricks Appsによるインペイントアプリの構築
https://qiita.com/taka_yayoi/items/9a7be741b08bfec41d5e

DatabricksにおけるHugging Faceモデルの分散ファインチューニング
https://qiita.com/taka_yayoi/items/fdf409f2cf6e7e1f7f22

DatabricksにおけるシングルGPUにおけるHugging Faceモデルのファインチューニング
https://qiita.com/taka_yayoi/items/755d1e52b6b07b760ebe

atabricksモデルサービングによるHugging Face transformersモデルのデプロイ
https://qiita.com/taka_yayoi/items/aebac893b1c2f73245eb

MLflow 2.3のHugging Faceトランスフォーマーのサポートを試す
https://qiita.com/taka_yayoi/items/ad370a7f57c4eae58800

Hugging Face Diffusers、Databricks Appsとモデルサービングで構築する顔ハメ看板アプリ
https://qiita.com/taka_yayoi/items/9ef95cb2f39fddd047af

LoRAによる効率的なファインチューニング：大規模言語モデルにおける最適パラメータ選択のガイド
https://qiita.com/taka_yayoi/items/7f50d3ebbe4bebd6877c