Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

When starting with DPO datasets, failed error with TypeError. #2174

Open
6 of 8 tasks
Yuto-24 opened this issue Dec 11, 2024 · 1 comment
Open
6 of 8 tasks

When starting with DPO datasets, failed error with TypeError. #2174

Yuto-24 opened this issue Dec 11, 2024 · 1 comment
Labels
bug Something isn't working waiting for reporter

Comments

@Yuto-24
Copy link

Yuto-24 commented Dec 11, 2024

Please check that this issue hasn't been reported before.

  • I searched previous Bug Reports didn't find any similar reports.

Expected Behavior

Going without any errors.

Current behaviour

Using Dockerfile image like

ARG AXOLOTL_IMG_VER=main-20241027-py3.11-cu121-2.3.1
FROM winglian/axolotl:$AXOLOTL_IMG_VER

# タイムゾーンの設定
ENV TZ=Asia/Tokyo
RUN ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

WORKDIR /workspace/axolotl
RUN pip3 install packaging ninja mlflow \
    && pip3 install -e '.[flash-attn,deepspeed]'
WARNING: BNB_CUDA_VERSION=121 environment variable detected; loading libbitsandbytes_cuda121.so.
This can be used to load a bitsandbytes version that is different from the PyTorch CUDA version.
If this was unintended set the BNB_CUDA_VERSION variable to an empty string: export BNB_CUDA_VERSION=
If you use the manual override make sure the right libcudart.so is in your LD_LIBRARY_PATH
For example by adding the following to your .bashrc: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<path_to_cuda_dir/lib64

[2024-12-11 01:25:17,497] [INFO] [real_accelerator.py:203:get_accelerator] Setting ds_accelerator to cuda (auto detect)
df: /root/.triton/autotune: No such file or directory
[2024-12-11 01:25:17,842] [INFO] [root.spawn:60] [PID:30] gcc -pthread -B /root/miniconda3/envs/py3.11/compiler_compat -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /root/miniconda3/envs/py3.11/include -fPIC -O2 -isystem /root/miniconda3/envs/py3.11/include -fPIC -c /tmp/tmp_dru9906/test.c -o /tmp/tmp_dru9906/test.o
[2024-12-11 01:25:17,911] [INFO] [root.spawn:60] [PID:30] gcc -pthread -B /root/miniconda3/envs/py3.11/compiler_compat /tmp/tmp_dru9906/test.o -laio -o /tmp/tmp_dru9906/a.out
 [WARNING]  Please specify the CUTLASS repo directory as environment variable $CUTLASS_PATH
 [WARNING]  sparse_attn requires a torch version >= 1.5 and < 2.0 but detected 2.3
 [WARNING]  using untested triton version (2.3.1), only 1.0.0 is known to be compatible
/root/miniconda3/envs/py3.11/lib/python3.11/site-packages/pydantic/_internal/_fields.py:151: UserWarning: Field "model_kwargs" has conflict with protected namespace "model_".

You may be able to resolve this warning by setting `model_config['protected_namespaces'] = ()`.
  warnings.warn(

     #@@ #@@      @@# @@#
    @@  @@          @@  @@           =@@#                               @@                 #@    =@@#.
    @@    #@@@@@@@@@    @@           #@#@=                              @@                 #@     .=@@
      #@@@@@@@@@@@@@@@@@            =@# @#     ##=     ##    =####=+    @@      =#####+  =#@@###.   @@
    @@@@@@@@@@/  +@@/  +@@          #@  =@=     #@=   @@   =@#+  +#@#   @@    =@#+  +#@#   #@.      @@
    @@@@@@@@@@  ##@@  ##@@         =@#   @#      =@# @#    @@      @@   @@    @@      #@   #@       @@
     @@@@@@@@@@@@@@@@@@@@          #@=+++#@=      =@@#     @@      @@   @@    @@      #@   #@       @@
                                  =@#=====@@     =@# @#    @@      @@   @@    @@      #@   #@       @@
    @@@@@@@@@@@@@@@@  @@@@        #@      #@=   #@=  +@@   #@#    =@#   @@.   =@#    =@#   #@.      @@
                                 =@#       @#  #@=     #@   =#@@@@#=    +#@@=  +#@@@@#=    .##@@+   @@
    @@@@  @@@@@@@@@@@@@@@@

[2024-12-11 01:25:19,388] [DEBUG] [axolotl.normalize_config:83] [PID:30] [RANK:0] bf16 support detected, enabling for this configuration.�[39m
[2024-12-11 01:25:19,456] [INFO] [axolotl.normalize_config:207] [PID:30] [RANK:0] GPU memory usage baseline: 0.000GB (+0.493GB misc)�[39m
[2024-12-11 01:25:20,056] [INFO] [axolotl.cli.preprocess.do_cli:49] [PID:30] [RANK:0] ChatML set. Adding default system message: あなたは、誠実で優秀なアシスタントです。�[39m
�[33m[2024-12-11 01:25:20,056] [WARNING] [axolotl.cli.preprocess.do_cli:71] [PID:30] [RANK:0] �[31mpreprocess CLI called without dataset_prepared_path set, using default path: last_run_prepared�[39m�[39m
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/workspace/axolotl/src/axolotl/cli/preprocess.py", line 105, in <module>
    fire.Fire(do_cli)
  File "/root/miniconda3/envs/py3.11/lib/python3.11/site-packages/fire/core.py", line 135, in Fire
    component_trace = _Fire(component, args, parsed_flag_args, context, name)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/miniconda3/envs/py3.11/lib/python3.11/site-packages/fire/core.py", line 468, in _Fire
    component, remaining_args = _CallAndUpdateTrace(
                                ^^^^^^^^^^^^^^^^^^^^
  File "/root/miniconda3/envs/py3.11/lib/python3.11/site-packages/fire/core.py", line 684, in _CallAndUpdateTrace
    component = fn(*varargs, **kwargs)
                ^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/axolotl/src/axolotl/cli/preprocess.py", line 76, in do_cli
    load_rl_datasets(cfg=parsed_cfg, cli_args=parsed_cli_args)
  File "/workspace/axolotl/src/axolotl/cli/__init__.py", line 500, in load_rl_datasets
    train_dataset, eval_dataset = load_prepare_dpo_datasets(cfg)
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/axolotl/src/axolotl/utils/data/rl.py", line 132, in load_prepare_dpo_datasets
    train_dataset = load_split(cfg.datasets, cfg)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/workspace/axolotl/src/axolotl/utils/data/rl.py", line 81, in load_split
    for data_file in ds_cfg["data_files"]:
TypeError: 'NoneType' object is not iterable

Steps to reproduce

  1. Set the jsonl on data/general/aya-ja-nemotron-dpo-masked_train_10.jsonl as below
  2. Start the preprocess using CUDA_VISIBLE_DEVICES=0,1,2,3 python -m axolotl.cli.preprocess ${YAML_PATH} 2>&1
  3. Error comes
{"idx": 1863, "instruction": "プロレスで1対1で戦うことをシングルマッチというのに対し、2人1組で戦うことを何というでしょう?", "chosen": "答えはタッグマッチです。\n\nプロレスにおいて、シングルマッチは1対1の戦いを指します。一方、2人1組で戦う試合形式もあります。この形式では、リング上には両チームから1人ずつ、合計2人の選手が戦います。しかし、リング外にはそれぞれのパートナーが待機しており、タッチすることで交代することができます。この2人1組のチーム戦をタッグマッチと呼びます。\n\nしたがって、答えはタッグマッチです。\n", "rejected": "それは「ダブルマッチ」または「ツーマンマッチ」と呼ばれます。", "chosen_model": "cyberagent/calm3-22b-chat", "rejected_model": "team-hatakeyama-phase2/tanuki-8B-exp007", "answer": "タッグマッチです。"}
{"idx": 1604, "instruction": "ドイツのある都市で毎年7月末に行われる、ワーグナーの代表作のみを演奏する音楽祭は何でしょう?", "chosen": "答えはバイロイト音楽祭です。\n\n まず、質問ではドイツのある都市で毎年7月末に行われる音楽祭を尋ねています。そして、その音楽祭ではワーグナーの代表作のみを演奏するとあります。ワーグナーはドイツの作曲家であり、彼の作品のみを演奏する音楽祭は限られています。その中でも特に有名なのが、バイロイト音楽祭です。バイロイト音楽祭は、ワーグナー自身が設立に携わり、彼の作品を上演するために設計されたフェストシュピールハウスで開催されています。したがって、質問で尋ねられている音楽祭はバイロイト音楽祭であると判断できます。\n\nしたがって、答えはバイロイト音楽祭です。\n", "rejected": "それは「バイエンナ・ワーグナー・フェスティバル」です。バイエンナはドイツのバイエンナ市で毎年7月末に開催される音楽祭で、ワーグナーの代表作のみを演奏するコンサートが行われます。", "chosen_model": "cyberagent/calm3-22b-chat", "rejected_model": "team-hatakeyama-phase2/tanuki-8B-exp007", "answer": "バイロイト音楽祭です。"}
{"idx": 346, "instruction": "大相撲で、十両の取り組みが終わり、幕内の取り組みに入るまでの時間を何というでしょう?", "chosen": "答えは中入りです。\n\n大相撲の取り組みは、序ノ口、序二段、三段目、幕下、十両、幕内という順で行われます。十両の取り組みが終わると、いよいよ最高峰の幕内の取り組みが始まります。しかし、十両と幕内の間には、少し長めの休憩時間が設けられています。この休憩時間を「中入り」と呼びます。この時間には、土俵の整備が行われたり、次の取り組みの力士が呼び出されたりします。したがって、質問の答えは中入りとなります。\n\nしたがって、答えは中入りです。\n", "rejected": "相撲の取り組みは、通常、約25分間続きます。十両の取り組みが終わると、約15分間の幕内の取り組みが始まります。", "chosen_model": "cyberagent/calm3-22b-chat", "rejected_model": "team-hatakeyama-phase2/tanuki-8B-exp007", "answer": "中入り"}
{"idx": 6221, "instruction": "英語で「錐(きり)」という意味の、ドライ・ジンをライムジュースで割って作られるカクテルは何でしょう?", "chosen": "答えはギムレットです。\n\nまず、質問ではカクテルの名前を尋ねています。そして、そのカクテルはドライ・ジンをライムジュースで割って作られるとあります。さらに、英語で「錐(きり)」という意味の言葉がカクテルの名前に含まれる可能性が高いです。そこで、英語で「錐(きり)」を調べると、gimletという単語が見つかりました。そして、gimletという名前のカクテルを調べると、ドライ・ジンとライムジュースを混ぜて作られることが分かりました。\n\nしたがって、答えはギムレットです。\n", "rejected": "ドライ・ジンとライムジュースを使用して作られるカクテルの名前は「マティーニ」です。", "chosen_model": "cyberagent/calm3-22b-chat", "rejected_model": "team-hatakeyama-phase2/tanuki-8B-exp007", "answer": "ギムレット"}
{"idx": 2359, "instruction": "ゴルフのクラブの別名で、1番ウッドはドライバー、2番ウッドはブラッシーですが、3番ウッドは何でしょう?", "chosen": "答えはスプーンです。\n\nゴルフのクラブの別名で、1番ウッドはドライバー、2番ウッドはブラッシーであることが与えられています。一般的に、3番ウッドの別名はスプーンと呼ばれています。これは、ウッドクラブのロフト角が大きくなるにつれて、ヘッドの形状が丸みを帯びてくるため、スプーンのような形になることに由来しています。\n\nしたがって、答えはスプーンです。\n", "rejected": "3番ウッドは、通常、サンドウェッジやピッチングウェッジなどのサンド系のクラブを指します。これらのクラブは、地面からの距離がドライバーよりも少し長いため、ボールをより正確に打つことができます。", "chosen_model": "cyberagent/calm3-22b-chat", "rejected_model": "team-hatakeyama-phase2/tanuki-8B-exp007", "answer": "スプーンです。"}
{"idx": 5433, "instruction": "木曽川の一部、飛騨川との合流点から犬山城の下までの峡谷を、あるヨーロッパの川にちなんで何というでしょう?", "chosen": "答えは日本ラインです。\n\n まず、質問では木曽川の一部、飛騨川との合流点から犬山城の下までの峡谷を指しています。この地域は、岐阜県と愛知県の県境に位置し、美しい自然景観で知られています。この峡谷は、ヨーロッパのライン川に似ていることから、日本ラインと呼ばれるようになりました。ライン川は、ドイツとフランスの国境を流れるヨーロッパ有数の大河で、その景観の美しさは世界的に有名です。日本ラインも、ライン川に匹敵する美しい景観を持つことから、この名前が付けられました。\n\nしたがって、答えは日本ラインです。\n", "rejected": "それは「ライン川」です。", "chosen_model": "cyberagent/calm3-22b-chat", "rejected_model": "team-hatakeyama-phase2/tanuki-8B-exp007", "answer": "日本ライン"}
{"idx": 1519, "instruction": "文章からキーワードを選び、その解釈を述べなさい。 \n北海道の標茶町と厚岸町では2019年から、飼っている牛が66頭襲われています。全部同じ1頭のヒグマが襲っていると考えられています。\n標茶町で6月25日、カメラに1頭の熊が写りました。体の長さが2mから2.2mで、木に体をこすっていました。\n町によると、この熊の毛から調べたDNAの型と、牛を襲っているヒグマのDNAの型が同じでした。牛を襲っているヒグマだとはっきりわかった写真はこれが初めてです。このヒグマは前の日は10kmぐらい遠くの牧場で牛を襲っています。\n標茶町の人は「体全部に黒い毛があることや、1日にどこまで行くかがわかりました。どうやって捕まえるか考えたいです」と話しています。\n", "chosen": "キーワード:ヒグマ、DNA、標茶町、厚岸町、牛、襲撃、写真、体長、移動距離\n\n解釈:\n\n北海道の標茶町と厚岸町では、2019年から牛がヒグマに襲われる事件が頻発しており、その数は66頭に上ります。これらの襲撃は、同じ1頭のヒグマによるものと考えられています。\n\n標茶町で6月25日に撮影された写真には、体長約2mから2.2mのヒグマが写っており、この熊の毛から採取したDNAの型が、牛を襲っているヒグマのDNA型と一致しました。この写真は、牛を襲っているヒグマを明確に特定できた初めての証拠となっています。\n\nさらに、このヒグマは前日に約10km離れた牧場で牛を襲っており、1日の移動距離の大きさが明らかになりました。標茶町の住民は、このヒグマの体の特徴や移動距離が判明したことで、捕獲方法を検討したいと話しています。\n", "rejected": "キーワード: ヒグマ, 標茶町, 厚岸町, 襲われる, 66頭, 1頭, 6月25日, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う, 写真, 毛, 型, 同じ, 襲う Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure Sure", "chosen_model": "cyberagent/calm3-22b-chat", "rejected_model": "team-hatakeyama-phase2/tanuki-8B-exp007", "answer": "この文章に含まれるキーワードとその解釈は以下です。\n- 飼っ: 1)動物にえさを与えて養う。\n- 牛: 1)昔から家畜として飼われてきた動物。頭に二本の角がある。食べた草を、あとで口にもどして「反すう」する。仕事に使う役牛、乳をしぼる乳牛、肉をとる肉牛などがいる。\n- 頭: 1)あたま。2)集団の上に立つ者。3)はじめ。4)辺り。付近。5)けものを数える言葉。\n- 襲わ: 1)ふいにせめる。2)急に来て害を与える。3)急にそのような気持ちになる。\n- ヒグマ: 1)大型のクマで、冬は穴に入って冬眠し、性質が荒い。日本では北海道にすむ。\n- 襲っ: 1)山にすむ大きなけもの。日本にはツキノワグマ・ヒグマがいる。冬になると、穴に入って冬眠する。\n- 熊: 1)(下の字や絵が)すけて見える。2)写真にとられる。\n- 写り: 1)おしつけて動かす。ある物と、他の物をすりつける。\n- こすっ: 1)生物の細胞の中にあって、遺伝子を構成する物質。\n- DNA: 1)形を作るもとになるもの。原型。2)基本となる、決まったやり方。3)ある特徴や性質。4)しきたり。\n- 型: 1)牛・馬などを、放し飼いにして育てる広い所。まきば。"}
{"idx": 921, "instruction": "女子の体操競技で使われる平均台の、足を乗せる部分の幅は何センチメートルでしょう?", "chosen": "答えは10センチメートルです。\n\n女子の体操競技で使われる平均台の、足を乗せる部分の幅は、国際体操連盟の規定で決められています。その規定によると、平均台の幅は10センチメートルとなっています。\n\nしたがって、答えは10センチメートルです。\n", "rejected": "平均台の足を乗せる部分の幅は、通常、20~30センチメートルです。これは、競技者の身長や体格に合わせて調整されています。", "chosen_model": "cyberagent/calm3-22b-chat", "rejected_model": "team-hatakeyama-phase2/tanuki-8B-exp007", "answer": "10センチメートルです。"}
{"idx": 1169, "instruction": "五角形の対角線は5本ですが、六角形の対角線は何本あるでしょう?", "chosen": "答えは9本です。\n\n五角形の対角線が5本であることから、六角形の対角線の本数を考えてみましょう。六角形の頂点の一つから、他の5つの頂点に線を引くことができます。しかし、そのうちの2本は隣の頂点と結ぶ線なので、対角線とはなりません。したがって、一つの頂点から引ける対角線は3本です。六角形の頂点は6つあるので、全ての頂点から対角線を引くと、3×6=18本となります。しかし、このままでは一本の対角線を二度数えていることになります。そこで、半分の9本が六角形の対角線の本数となります。\n\nしたがって、答えは9本です。\n", "rejected": "六角形の対角線の数を求めるためには、まず六角形の内角の和を考えます。六角形の内角の和は、(6-2)×180度 = 720度です。次に、対角線の数を求めるために、内角の数を2で割ります。つまり、720度 ÷ 2 = 360度です。この360度を6で割ると、54度になります。したがって、六角形の対角線の数は54度です。", "chosen_model": "cyberagent/calm3-22b-chat", "rejected_model": "team-hatakeyama-phase2/tanuki-8B-exp007", "answer": "9本です。"}
{"idx": 2392, "instruction": "次の段落を完成させなさい: 国の研究所は、2020年に調べた日本の人口のデータを使って、2070年の日本の人口を計算しました。この中には日本に住む外国人も入っています。", "chosen": "国の研究所は、2020年の日本の人口データを基に、2070年までの人口動態を予測する研究を行いました。この予測では、日本に居住する外国人も含まれています。研究所の分析によると、2070年には日本の人口は約1億人程度になると見込まれています。この予測は、出生率、死亡率、および国内外の移住状況を考慮した総合的なもので、日本の人口減少と高齢化の進行を反映しています。\n", "rejected": "2070年の日本の人口は、2020年のデータを基に計算され、約1億2千万人になると予測されています。この中には、日本に住む外国人も含まれています。", "chosen_model": "cyberagent/calm3-22b-chat", "rejected_model": "team-hatakeyama-phase2/tanuki-8B-exp007", "answer": "2020年の人口は1億2615万人でした。研究所によると、2056年に1億人より少なくなります。2070年には30%以上少ない8700万人ぐらいになります。 65歳以上の人の割合は、2020年は28.6%でしたが、2070年には38.7%になります。1年に生まれる子どもは、2043年に70万人より少なくなります。前に計算したときより3年早くなっています。 外国人の割合は2070年には10.8%になります。研究所は、外国人が増えるため、前に計算したときより、日本の人口が少なくなるスピードがゆっくりになると考えています。"}

Config yaml

base_model: llm-jp/llm-jp-3.3-7B
model_type: AutoModelForCausalLM
tokenizer_type: AutoTokenizer

load_in_8bit: false
load_in_4bit: false
strict: false

output_dir: outputs/llm-jp/3.3/7B/20241211

chat_template: chatml
default_system_message: あなたは、誠実で優秀なアシスタントです。

shuffle_merged_datasets: true
rl: dpo
datasets:
  - path: data/general/aya-ja-nemotron-dpo-masked_train_10.jsonl
    ds_type: json
    split: train
    type:
      field_prompt: prompt
      field_chosen: chosen
      field_rejected: rejected

val_set_size: 0.05

sequence_len: 4096
sample_packing: false
pad_to_sequence_len: true

gradient_accumulation_steps: 4
micro_batch_size: 1
num_epochs: 2
optimizer: paged_adamw_8bit
lr_scheduler: cosine
learning_rate: 0.0002

train_on_inputs: false
group_by_length: false
bf16: auto
fp16:
tf32: true

gradient_checkpointing: true
gradient_checkpointing_kwargs:
  use_reentrant: false
early_stopping_patience:
resume_from_checkpoint:
logging_steps: 1
xformers_attention:
flash_attention: true

warmup_ratio: 0.1
evals_per_epoch: 1
eval_table_size:
saves_per_epoch: 1
deepspeed: deepspeed_configs/zero1.json
weight_decay: 0.0

Possible solution

I found the issues occures at src/axolotl/utils/data/rl.py, line 81, in load_split with TypeError: 'NoneType' object is not iterable.

def load_prepare_dpo_datasets(cfg):
  def load_split(dataset_cfgs, _cfg):
      split_datasets: List[Any] = []
      for i, ds_cfg in enumerate(dataset_cfgs):
          if ds_cfg["ds_type"] == "json":
              for data_file in ds_cfg["data_files"]:

But if comes after if ds_cfg["ds_type"] == "json", so that ds_cfg exist.
And this ds_cfg comes from cfg.datasets.

def load_prepare_dpo_datasets(cfg):
    (...)
    with zero_first(is_main_process()):
        train_is_preprocessed = False
        eval_is_preprocessed = False
        if train_dataset := _load_preprocessed_ds(cfg, cfg.datasets):
            train_is_preprocessed = True
        else:
            train_dataset = load_split(cfg.datasets, cfg)

This cfg comes from where load_prepare_dpo_datasets is called; src/axolotl/cli/__init__.py,

def load_rl_datasets(
    *,
    cfg: DictDefault,
    cli_args: TrainerCliArgs,  # pylint: disable=unused-argument
) -> TrainDatasetMeta:
    train_dataset, eval_dataset = load_prepare_dpo_datasets(cfg)

And finally, this load_rl_datasets is called from src/axolotl/cli/preprocess.py

def do_cli(config: Union[Path, str] = Path("examples/"), **kwargs):
    (...)
    with disable_datasets_caching():
        if parsed_cfg.rl:  # and parsed_cfg.rl != "orpo":
            load_rl_datasets(cfg=parsed_cfg, cli_args=parsed_cli_args)

I found that this cfg directly comes from config.yaml

But there are no option of data_files on config and coudn't find on any src.

Could anyone fix this issues?

Which Operating Systems are you using?

  • Linux
  • macOS
  • Windows

Python Version

3.10.15

axolotl branch-commit

main

Acknowledgements

  • My issue title is concise, descriptive, and in title casing.
  • I have searched the existing issues to make sure this bug has not been reported yet.
  • I am using the latest version of axolotl.
  • I have provided enough information for the maintainers to reproduce and diagnose the issue.
@Yuto-24 Yuto-24 added the bug Something isn't working label Dec 11, 2024
@winglian
Copy link
Collaborator

for now, try this:

datasets:
  - path: data/general/aya-ja-nemotron-dpo-masked_train_10.jsonl
    data_files:
      - data/general/aya-ja-nemotron-dpo-masked_train_10.jsonl
    ds_type: json
    split: train
    type:
      field_prompt: prompt
      field_chosen: chosen
      field_rejected: rejected

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working waiting for reporter
Projects
None yet
Development

No branches or pull requests

2 participants