wangyuxinwhy / uniem

unified embedding model
Apache License 2.0
829 stars 64 forks source link

finetuneๆ—ถๆŠฅ้”™ argument after ** must be a mapping, not NoneType #34

Closed yhygta closed 1 year ago

yhygta commented 1 year ago

๐Ÿ› 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

wangyuxinwhy commented 1 year ago
finetuner.run(epochs=1, batch_size=6)

่ฟ™ๆ˜ฏ็”ฑไบŽไธ€ไธช่พน็•Œๆกไปถๅฏผ่‡ด็š„ bug๏ผŒๅ› ไธบไฝ ็š„ๅพฎ่ฐƒๆ•ฐๆฎ้›†ๅคชๅฐไบ†๏ผŒ็ป„ไธๆˆไธ€ไธช batch ๏ผŒ็ป“ๆžœ drop_last ๆŠŠ่ฟ™ไธช batch ็›ดๆŽฅ drop ๆŽ‰ไบ†๏ผŒๆ‰‹ๅŠจ่ฐƒๅฐ batch_size ๅฏไปฅ่งฃๅ†ณ่ฟ™ไธช้—ฎ้ข˜๏ผŒๅฐฑๅƒไธŠ้ข็š„ไปฃ็ ไธ€ๆ ทใ€‚ไน‹ๅŽ็š„็‰ˆๆœฌๆˆ‘ไผšๅขžๅŠ ๆ›ดๆ˜“ๆ‡‚็š„้”™่ฏฏไฟกๆฏใ€‚

yhygta commented 1 year ago

ๅฅฝ็š„๏ผŒๆ„Ÿ่ฐขๅคงไฝฌ๏ผŒไธŠ้ข็š„่ฟ™ๆ ทๅฏไปฅ็”จไบ†

yhygta commented 1 year ago

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)

yhygta commented 1 year ago

ft4.csvๆ”พๅœจft4ๆ–‡ไปถๅคนไธ‹๏ผŒๅ†…ๅฎนๅฆ‚ไธ‹๏ผš

yhygta commented 1 year ago

sentence1,sentence2,label ้‡‘้œ‰็ด ๆ€Žไนˆ็”จ,็บข้œ‰็ด ็š„ไฝฟ็”จๆ–นๆณ•,0 ้‡‘้œ‰็ด ๆ€Žไนˆ็”จ,ๅฆฅๅธƒ้œ‰็ด ็š„ไฝฟ็”จๆ–นๆณ•0 ้‡‘้œ‰็ด ๆ€Žไนˆ็”จ,็กซ้…ธๆ–ฐ้œ‰็ด ็š„ไฝฟ็”จๆ–นๆณ•,0 ้‡‘้œ‰็ด ๆ€Žไนˆ็”จ,็ฐ้ป„้œ‰็ด ็š„ไฝฟ็”จๆ–นๆณ•,0 ้‡‘้œ‰็ด ๆ€Žไนˆ็”จ,ๆ›ฒ้œ‰็ด ็š„ไฝฟ็”จๆ–นๆณ•,0 ้‡‘้œ‰็ด ๆ€Žไนˆ็”จ,ๅคๆ–นๆ–ฐ้œ‰็ด ็š„ไฝฟ็”จๆ–นๆณ•,0 ้‡‘้œ‰็ด ๆ€Žไนˆ็”จ,ๅบ†ๅคง้œ‰็ด ็š„ไฝฟ็”จๆ–นๆณ•,0 ้‡‘้œ‰็ด ๆ€Žไนˆ็”จ,ๅ…‹ๆž—้œ‰็ด ็š„ไฝฟ็”จๆ–นๆณ•,0 ้‡‘้œ‰็ด ๆ€Žไนˆ็”จ,้ป„ๆ›ฒ้œ‰็ด ็š„ไฝฟ็”จๆ–นๆณ•,0 ้‡‘้œ‰็ด ๆ€Žไนˆ็”จ,้’้œ‰็ด ็š„ไฝฟ็”จๆ–นๆณ•,0 ้‡‘้œ‰็ด ๆ€Žไนˆ็”จ,ๅœŸ้œ‰็ด ็š„ไฝฟ็”จๆ–นๆณ•,0 ้‡‘้œ‰็ด ๆ€Žไนˆ็”จ,้˜ฟๅฅ‡้œ‰็ด ็š„ไฝฟ็”จๆ–นๆณ•,0 ้‡‘้œ‰็ด ๆ€Žไนˆ็”จ,ๆž—ๅฏ้œ‰็ด ็š„ไฝฟ็”จๆ–นๆณ•,0

yhygta commented 1 year ago

ไฝ†ๆ˜ฏๆˆ‘ๆŠŠไธŠ้ข้‚ฃไธชcsvๆ–‡ไปถๅญ˜ไธ‹ๆฅ๏ผŒไปฅ่ฟ™ไธชไปฃ็ ๏ผˆhttps://github.com/wangyuxinwhy/uniem/issues/34#issuecomment-1623492087๏ผ‰ๆฅๅš๏ผŒไผšๆŠฅ้”™TypeError: must be real number, not NoneType

wangyuxinwhy commented 1 year ago

่ƒฝๆŠŠๆŠฅ้”™็š„ไฟกๆฏ่ดดไธ€ไธ‹ๅ—๏ผŸ็Žฐๅœจ่ฟ™ไธชๆŠฅ้”™็œ‹ไธๅ‡บๆฅๅ•ฅใ€‚

ๅฆๅค–๏ผŒๅพฎ่ฐƒๆ˜ฏๅŸบไบŽๅฏนๆฏ”ๅญฆไน ็š„๏ผŒไฝ†ไฝ ็š„ label ้ƒฝไธบ 0 ๏ผŒๆ˜ฏๆฒกๆœ‰ๅŠžๆณ•่ฟ›่กŒๅฏนๆฏ”็š„ใ€‚้œ€่ฆๆทปๅŠ ไธ€ไบ›ๆญฃไพ‹

yhygta commented 1 year ago

ๅฅฝ็š„๏ผŒๆ„Ÿ่ฐขๆ้†’ๅ“ˆ๏ผŒๆˆ‘ๆ˜ฏๅ‘็ŽฐX้œ‰็ด ๅœจLLMไผšๆททๅœจไธ€่ตท๏ผŒๆ˜ฏๅธŒๆœ›ๅœจembedding้‡Œ้ข่ƒฝๅˆ†ๅผ€๏ผŒๆ‰€ไปฅๅ†™ไบ†0๏ผŒ่ฟ™็งๆƒ…ๅ†ตไธ‹ๆˆ‘ๆƒณๅขžๅคงๅŒบๅˆ†ๅบฆ๏ผŒ่ฏท้—ฎ่ฏฅๆ€Žไนˆๅค„็†ๅ‘ข๏ผŸ

yhygta commented 1 year ago

ๆŠฅ้”™ไฟกๆฏๅฆ‚ไธ‹๏ผš 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(https://github.com/pytorch/pytorch/issues/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

wangyuxinwhy commented 1 year ago

็œ‹่ตทๆฅๆ˜ฏๆœ‰ไธ€ไธชๆ ทๆœฌ็š„ๆ ‡็ญพๆ˜ฏ None ๏ผŒไฝ ๅฏไปฅๆ‰“ๅฐ dataset ไธญ็š„ๅ…จ้ƒจๆ ทๆœฌ๏ผŒๆฃ€ๆŸฅไธ€ไธ‹ๆ˜ฏไธๆ˜ฏๆœ‰ๆ ทๆœฌ็š„ๆ ‡็ญพๆ˜ฏ Noneใ€‚

yhygta commented 1 year ago

็กฎๅฎžๆ˜ฏๆœ‰None๏ผŒๆ„Ÿ่ฐขๅคงไฝฌ่งฃ็ญ”