finetuneๆถๆฅ้ argument after ** must be a mapping, not NoneType
yhygta opened this issue ยท comments
๐ bug ่ฏดๆ
ๆจๅฅฝ๏ผ็
ง็ๅฎ็ฝ็ๆ็จ๏ผไฝฟ็จไบ่ชๅทฑ็ๆฐๆฎ้๏ผfinetuneๆถๆฅ้ argument after ** must be a mapping, not NoneType
ๆ่ฐขๅคงไฝฌไปฌ็็๏ผๅไธไธชissueไธๅฐๅฟๅ
ณ้ญไบ
ไปฃ็ ๅฆไธ๏ผ
import pandas as pd
from uniem.finetuner import FineTuner
df3_raw = """{"sentence1":"้้็ด ", "sentence2":"็บข้็ด ", "label":"0.0"}
{"sentence1":"้้็ด ", "sentence2":"ๅฆฅๅธ้็ด ", "label":"0.0"}
{"sentence1":"้้็ด ", "sentence2":"็กซ้
ธๆฐ้็ด ", "label":"0.0"}
{"sentence1":"้้็ด ", "sentence2":"็ฐ้ป้็ด ", "label":"0.0"}
{"sentence1":"้้็ด ", "sentence2":"ๆฒ้็ด ", "label":"0.0"}
{"sentence1":"้้็ด ", "sentence2":"ๅคๆนๆฐ้็ด ", "label":"0.0"}
{"sentence1":"้้็ด ", "sentence2":"ๅบๅคง้็ด ", "label":"0.0"}
{"sentence1":"้้็ด ", "sentence2":"ๅ
ๆ้็ด ", "label":"0.0"}
{"sentence1":"้้็ด ", "sentence2":"้ปๆฒ้็ด ", "label":"0.0"}
{"sentence1":"้้็ด ", "sentence2":"้้็ด ", "label":"0.0"}
{"sentence1":"้้็ด ", "sentence2":"ๅ้็ด ", "label":"0.0"}
{"sentence1":"้้็ด ", "sentence2":"้ฟๅฅ้็ด ", "label":"0.0"}
{"sentence1":"้้็ด ", "sentence2":"ๆๅฏ้็ด ", "label":"0.0"}
{"sentence1":"้้็ด ", "sentence2":"ๆฐฏ้็ด ", "label":"0.0"}
{"sentence1":"้้็ด ", "sentence2":"่บๆ้็ด ", "label":"0.0"}"""
df3 = pd.read_json(df3_raw, lines=True)
finetuner = FineTuner('moka-ai3/m3e-base/', dataset=df3.to_dict('records'))
finetuner.run(epochs=1)
Python Version
3.10
finetuner.run(epochs=1, batch_size=6)
่ฟๆฏ็ฑไบไธไธช่พน็ๆกไปถๅฏผ่ด็ bug๏ผๅ ไธบไฝ ็ๅพฎ่ฐๆฐๆฎ้ๅคชๅฐไบ๏ผ็ปไธๆไธไธช batch ๏ผ็ปๆ drop_last ๆ่ฟไธช batch ็ดๆฅ drop ๆไบ๏ผๆๅจ่ฐๅฐ batch_size ๅฏไปฅ่งฃๅณ่ฟไธช้ฎ้ข๏ผๅฐฑๅไธ้ข็ไปฃ็ ไธๆ ทใไนๅ็็ๆฌๆไผๅขๅ ๆดๆๆ็้่ฏฏไฟกๆฏใ
ๅฅฝ็๏ผๆ่ฐขๅคงไฝฌ๏ผไธ้ข็่ฟๆ ทๅฏไปฅ็จไบ
from datasets import load_dataset
from uniem.finetuner import FineTuner
dataset = load_dataset('/opt/dl/llm/langchain-ChatGLM/m3ef/ft4/',encoding="GBK")
finetuner = FineTuner('/media/root/_data01/ai/embeddings/m3e-base/', dataset=dataset)
finetuner.run(epochs=1, output_dir='finetuned-model-riddle', batch_size=5)
ft4.csvๆพๅจft4ๆไปถๅคนไธ๏ผๅ ๅฎนๅฆไธ๏ผ
sentence1,sentence2,label
้้็ด ๆไน็จ,็บข้็ด ็ไฝฟ็จๆนๆณ,0
้้็ด ๆไน็จ,ๅฆฅๅธ้็ด ็ไฝฟ็จๆนๆณ0
้้็ด ๆไน็จ,็กซ้
ธๆฐ้็ด ็ไฝฟ็จๆนๆณ,0
้้็ด ๆไน็จ,็ฐ้ป้็ด ็ไฝฟ็จๆนๆณ,0
้้็ด ๆไน็จ,ๆฒ้็ด ็ไฝฟ็จๆนๆณ,0
้้็ด ๆไน็จ,ๅคๆนๆฐ้็ด ็ไฝฟ็จๆนๆณ,0
้้็ด ๆไน็จ,ๅบๅคง้็ด ็ไฝฟ็จๆนๆณ,0
้้็ด ๆไน็จ,ๅ
ๆ้็ด ็ไฝฟ็จๆนๆณ,0
้้็ด ๆไน็จ,้ปๆฒ้็ด ็ไฝฟ็จๆนๆณ,0
้้็ด ๆไน็จ,้้็ด ็ไฝฟ็จๆนๆณ,0
้้็ด ๆไน็จ,ๅ้็ด ็ไฝฟ็จๆนๆณ,0
้้็ด ๆไน็จ,้ฟๅฅ้็ด ็ไฝฟ็จๆนๆณ,0
้้็ด ๆไน็จ,ๆๅฏ้็ด ็ไฝฟ็จๆนๆณ,0
ไฝๆฏๆๆไธ้ข้ฃไธชcsvๆไปถๅญไธๆฅ๏ผไปฅ่ฟไธชไปฃ็ ๏ผhttps://github.com/wangyuxinwhy/uniem/issues/34#issuecomment-1623492087๏ผๆฅๅ๏ผไผๆฅ้TypeError: must be real number, not NoneType
่ฝๆๆฅ้็ไฟกๆฏ่ดดไธไธๅ๏ผ็ฐๅจ่ฟไธชๆฅ้็ไธๅบๆฅๅฅใ
ๅฆๅค๏ผๅพฎ่ฐๆฏๅบไบๅฏนๆฏๅญฆไน ็๏ผไฝไฝ ็ label ้ฝไธบ 0 ๏ผๆฏๆฒกๆๅๆณ่ฟ่กๅฏนๆฏ็ใ้่ฆๆทปๅ ไธไบๆญฃไพ
ๅฅฝ็๏ผๆ่ฐขๆ้ๅ๏ผๆๆฏๅ็ฐX้็ด ๅจLLMไผๆททๅจไธ่ตท๏ผๆฏๅธๆๅจembedding้้ข่ฝๅๅผ๏ผๆไปฅๅไบ0๏ผ่ฟ็งๆ ๅตไธๆๆณๅขๅคงๅบๅๅบฆ๏ผ่ฏท้ฎ่ฏฅๆไนๅค็ๅข๏ผ
ๆฅ้ไฟกๆฏๅฆไธ๏ผ
0it [7:30:19, ?it/s]
โญโโโโโโโโโโโโโโโโโโโโโ Traceback (most recent call last) โโโโโโโโโโโโโโโโโโโโโโโฎ
โ /home/epetai01/anaconda3/envs/cg2_310/lib/python3.10/code.py:90 in runcode โ
โ โ
โ 87 โ โ โ
โ 88 โ โ """ โ
โ 89 โ โ try: โ
โ โฑ 90 โ โ โ exec(code, self.locals) โ
โ 91 โ โ except SystemExit: โ
โ 92 โ โ โ raise โ
โ 93 โ โ except: โ
โ :1 in โ
โ โ
โ /home/epetai01/anaconda3/envs/cg2_310/lib/python3.10/site-packages/uniem/fin โ
โ etuner.py:220 in run โ
โ โ
โ 217 โ โ โ save_on_epoch_end=save_on_epoch_end, โ
โ 218 โ โ ) โ
โ 219 โ โ accelerator.print(f'Start training for {epochs} epochs') โ
โ โฑ 220 โ โ trainer.train() โ
โ 221 โ โ โ
โ 222 โ โ accelerator.wait_for_everyone() โ
โ 223 โ โ accelerator.print('Training finished') โ
โ โ
โ /home/epetai01/anaconda3/envs/cg2_310/lib/python3.10/site-packages/uniem/tra โ
โ iner.py:49 in train โ
โ โ
โ 46 โ โ โ self.model.train() โ
โ 47 โ โ โ self.progress_bar.on_epoch_start() โ
โ 48 โ โ โ โ
โ โฑ 49 โ โ โ for batch_index, batch in enumerate(self.train_dataloader) โ
โ 50 โ โ โ โ with self.accelerator.accumulate(self.model): โ
โ 51 โ โ โ โ โ self.optimizer.zero_grad() โ
โ 52 โ โ โ โ โ batch_output = self.model(**batch) โ
โ โ
โ /home/epetai01/anaconda3/envs/cg2_310/lib/python3.10/site-packages/accelerat โ
โ e/data_loader.py:378 in iter โ
โ โ
โ 375 โ โ dataloader_iter = super().iter() โ
โ 376 โ โ # We iterate one batch ahead to check when we are at the end โ
โ 377 โ โ try: โ
โ โฑ 378 โ โ โ current_batch = next(dataloader_iter) โ
โ 379 โ โ except StopIteration: โ
โ 380 โ โ โ yield โ
โ 381 โ
โ โ
โ /home/epetai01/anaconda3/envs/cg2_310/lib/python3.10/site-packages/torch/uti โ
โ ls/data/dataloader.py:633 in next โ
โ โ
โ 630 โ โ โ if self._sampler_iter is None: โ
โ 631 โ โ โ โ # TODO(pytorch/pytorch#7675 โ
โ 632 โ โ โ โ self._reset() # type: ignore[call-arg] โ
โ โฑ 633 โ โ โ data = self._next_data() โ
โ 634 โ โ โ self._num_yielded += 1 โ
โ 635 โ โ โ if self._dataset_kind == _DatasetKind.Iterable and \ โ
โ 636 โ โ โ โ โ self._IterableDataset_len_called is not None and โ
โ โ
โ /home/epetai01/anaconda3/envs/cg2_310/lib/python3.10/site-packages/torch/uti โ
โ ls/data/dataloader.py:677 in _next_data โ
โ โ
โ 674 โ โ
โ 675 โ def _next_data(self): โ
โ 676 โ โ index = self._next_index() # may raise StopIteration โ
โ โฑ 677 โ โ data = self._dataset_fetcher.fetch(index) # may raise StopIt โ
โ 678 โ โ if self._pin_memory: โ
โ 679 โ โ โ data = _utils.pin_memory.pin_memory(data, self._pin_memor โ
โ 680 โ โ return data โ
โ โ
โ /home/epetai01/anaconda3/envs/cg2_310/lib/python3.10/site-packages/torch/uti โ
โ ls/data/_utils/fetch.py:54 in fetch โ
โ โ
โ 51 โ โ โ โ data = [self.dataset[idx] for idx in possibly_batched_i โ
โ 52 โ โ else: โ
โ 53 โ โ โ data = self.dataset[possibly_batched_index] โ
โ โฑ 54 โ โ return self.collate_fn(data) โ
โ 55 โ
โ โ
โ /home/epetai01/anaconda3/envs/cg2_310/lib/python3.10/site-packages/uniem/dat โ
โ a.py:106 in call โ
โ โ
โ 103 โ โ texts = [record.sentence1 for record in records] โ
โ 104 โ โ texts_pair = [record.sentence2 for record in records] โ
โ 105 โ โ labels = [record.label for record in records] โ
โ โฑ 106 โ โ labels = torch.tensor(labels, dtype=torch.float32) โ
โ 107 โ โ โ
โ 108 โ โ text_ids = self.tokenizer( โ
โ 109 โ โ โ texts, โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
TypeError: must be real number, not NoneType
็่ตทๆฅๆฏๆไธไธชๆ ทๆฌ็ๆ ็ญพๆฏ None ๏ผไฝ ๅฏไปฅๆๅฐ dataset ไธญ็ๅ จ้จๆ ทๆฌ๏ผๆฃๆฅไธไธๆฏไธๆฏๆๆ ทๆฌ็ๆ ็ญพๆฏ Noneใ
็กฎๅฎๆฏๆNone๏ผๆ่ฐขๅคงไฝฌ่งฃ็ญ