mkiku2896 commited on
Commit
12d1e28
·
verified ·
1 Parent(s): 85e4f09

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +6 -141
README.md CHANGED
@@ -11,127 +11,16 @@ language:
11
  - en
12
  ---
13
 
14
- # -*- coding: utf-8 -*-
15
- """LoRA_template_unsloth_20241127.ipynb
 
 
16
 
17
- Automatically generated by Colab.
18
 
19
- Original file is located at
20
- https://colab.research.google.com/drive/1dVcEdRFvOj7DO5Ch5fF372vbtfYeUlUT
21
 
22
- # 最終課題コンペ用 Fine-tuning テンプレート(unsloth)
23
 
24
- 最終課題コンペにて Fine-tuning を行ないたい方に向けの Fine-tuning コードです。
25
- こちらは L4 を利用できない受講生の方向けにUnslothを用いたものとなっております。
26
- Google Colab の無料版で利用可能な T4 でも動作可能になっています。
27
- 環境設定の難易度が高いので、慎重に取り組んでいただければと思います。
28
-
29
-
30
- ### terminalでのconda環境構築(Omnicampusの環境などの場合)
31
- 事前にterminalで環境構築の必要があります。Google Colabでは不要です。
32
- ```
33
- # conda環境の構築
34
- wget "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
35
-
36
- # このコマンドではいくつか質問があるので答えて下さい。おそらくインストール先のデフォルトは/root/miniforge3かと思います
37
- bash Miniforge3-$(uname)-$(uname -m).sh
38
-
39
- # 以下、インストール先が/root/miniforge3であることを前提とします
40
- export PATH=/root/miniforge3/bin:$PATH
41
- conda init
42
-
43
- # ここで一度、terminalを立ち上げ直す必要があります。
44
- # 以下のリンク先に従い環境を作ります。
45
- # https://docs.unsloth.ai/get-started/installation/conda-install
46
- conda create --name unsloth_env python=3.10 pytorch-cuda=12.1 pytorch cudatoolkit xformers -c pytorch -c nvidia -c xformers -y
47
- conda activate unsloth_env
48
- pip install "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git"
49
- pip install --no-deps "trl<0.9.0" peft accelerate bitsandbytes
50
-
51
- # jupyter notebook用のセットアップ。
52
- conda install -c conda-forge ipykernel
53
- python -m ipykernel install --user --name=unsloth_env --display-name "Python (unsloth_env)"
54
- ```
55
- """
56
-
57
- from google.colab import drive
58
- drive.mount('/content/drive')
59
-
60
- !pip install datasets
61
-
62
- # import os
63
- # import json
64
- # import pandas as pd
65
-
66
- # # ディレクトリパス
67
- # data_dir = "/content/drive/MyDrive/2024メタバース工学部LLM/03.教材(講義前後にUP予定)/05.最終課題/サンプルコード/Distribution20241221_all"
68
-
69
- # # ディレクトリ内のすべてのJSONファイルを取得
70
- # json_files = [os.path.join(data_dir, f) for f in os.listdir(data_dir) if f.endswith(".json")]
71
-
72
- # # JSONファイルを読み込み、縦に統合
73
- # all_data = []
74
- # for json_file in json_files:
75
- # try:
76
- # with open(json_file, 'r', encoding='utf-8') as f:
77
- # data = json.load(f) # JSONをロード
78
- # if isinstance(data, list): # JSONがリスト形式の場合
79
- # all_data.extend(data) # リストを結合
80
- # else:
81
- # all_data.append(data) # オブジェクトの場合そのまま追加
82
- # except json.JSONDecodeError as e:
83
- # print(f"Error decoding JSON in file {json_file}: {e}")
84
- # except Exception as e:
85
- # print(f"Error reading file {json_file}: {e}")
86
-
87
- # # 統合されたデータをDataFrameに変換
88
- # if all_data: # データが存在する場合のみ実行
89
- # merged_data = pd.DataFrame(all_data)
90
- # # 結果を保存(必要に応じて)
91
- # output_path = os.path.join(data_dir, "merged_data.json")
92
- # merged_data.to_json(output_path, orient="records", force_ascii=False, indent=4)
93
- # print(f"統合されたデータは {output_path} に保存されました。")
94
- # else:
95
- # print("統合するデータが見つかりませんでした。")
96
-
97
- # Google Colab の場合は上記の環境構築手順を行なわず、単にこのセルから実行していってください。
98
- !pip uninstall unsloth -y
99
- !pip install --upgrade --no-cache-dir "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git"
100
-
101
- # Google Colab のデフォルトで入っているパッケージをアップグレード(Moriyasu さんありがとうございます)
102
- !pip install --upgrade torch
103
- !pip install --upgrade xformers
104
-
105
- # notebookでインタラクティブな表示を可能とする(ただし、うまく動かない場合あり)
106
- # Google Colabでは実行不要
107
- !pip install ipywidgets --upgrade
108
-
109
- # Install Flash Attention 2 for softcapping support
110
- import torch
111
- #if torch.cuda.get_device_capability()[0] >= 8:
112
- #!pip install --no-deps packaging ninja einops "flash-attn>=2.6.3"
113
-
114
- """## モデルのロード
115
- 以下のコードでモデルを読み込みます。
116
- 受講生の方からご指摘頂いたのですが、unslothでgemma2を読み込むと、自動でunslothが作成した��公式モデルがダウンロードされるようです。
117
- 対処方法がわからない受講生はLLM-jp-3のみをご利用ください!
118
- """
119
-
120
- # Hugging Face Token を指定
121
- # 下記の URL から Hugging Face Token を取得できますので下記の HF_TOKEN に入れてください。
122
- # Write権限を付与してください。
123
- # https://huggingface.co/settings/tokens
124
- HF_TOKEN = ””””
125
-
126
- # あるいは Google Colab シークレットを使う場合、左のサイドバーより🔑マークをクリック
127
- # HF_TOKEN という名前で Value に Hugging Face Token を入れてください。
128
- # ノートブックからのアクセスのトグルをオンにし、下記の二行のコードのコメントアウトを外してください。
129
-
130
- # from google.colab import userdata
131
- # HF_TOKEN=userdata.get('HF_TOKEN')
132
-
133
- from google.colab import output
134
- output.enable_custom_widget_manager()
135
 
136
  # llm-jp/llm-jp-3-13bを4bit量子化のqLoRA設定でロード。
137
 
@@ -167,30 +56,6 @@ model = FastLanguageModel.get_peft_model(
167
  max_seq_length = max_seq_length,
168
  )
169
 
170
- # 学習に用いるデータセットの指定
171
- # 今回はLLM-jp の公開している Ichikara Instruction を使います。データにアクセスするためには申請が必要ですので、使いたい方のみ申請をしてください。
172
- # Ichikara Instruciton を Hugging Face Hub にて公開することはお控えください。
173
- # また、CC-BY-NC-SAですのでモデルはライセンスを継承する前提でお使いください。
174
-
175
- # 下記のリンクから申請を終えた先に Google Drive があり、Distribution20241221_all というフォルダごとダウンロードしてください。
176
- # 今回は「ichikara-instruction-003-001-1.json」を使います。必要であれば展開(!unzip など)し、データセットのパスを適切に指定してください。
177
- # omnicampusの開発環境では取得したデータを左側にドラッグアンドドロップしてお使いください。
178
- # Google Colab の場合も左のサイドバーよりドラッグ&ドロップでアップデートしてください。
179
-
180
- # https://liat-aip.sakura.ne.jp/wp/llmのための日本語インストラクションデータ作成/llmのための日本語インストラクションデータ-公開/
181
- # 関根聡, 安藤まや, 後藤美知子, 鈴木久美, 河原大輔, 井之上直也, 乾健太郎. ichikara-instruction: LLMのための日本語インストラクションデータの構築. 言語処理学会第30回年次大会(2024)
182
-
183
- from datasets import load_dataset
184
-
185
- dataset = load_dataset("json", data_files="/content/drive/MyDrive/2024メタバース工学部LLM/03.教材(講義前後にUP予定)/05.最終課題/サンプルコード/Distribution20241221_all/ichikara-instruction-003-001-1.json")
186
- # パスの指定にご注意ください。アップロードしたファイルを右クリックし、「パスをコピー」をクリック、上記の data_files と合致していることをご確認ください。Omnicampus のディレクトリ構造とは異なるかもしれません。
187
-
188
- # 学習時のプロンプトフォーマットの定義
189
- prompt = """### 指示
190
- {}
191
- ### 回答
192
- {}"""
193
-
194
 
195
  """
196
  formatting_prompts_func: 各データをプロンプトに合わせた形式に合わせる
 
11
  - en
12
  ---
13
 
14
+ 〇使い方
15
+ メインの実行ファイルはfile and versionsにある
16
+ "LoRA_template_unsloth_20241127 (3).ipynb"
17
+ 動作環境はgooglecolabを想定
18
 
19
+ 〇SFT用データ
20
 
 
 
21
 
 
22
 
23
+ 〇以下参考
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
 
25
  # llm-jp/llm-jp-3-13bを4bit量子化のqLoRA設定でロード。
26
 
 
56
  max_seq_length = max_seq_length,
57
  )
58
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
 
60
  """
61
  formatting_prompts_func: 各データをプロンプトに合わせた形式に合わせる