finetune的时候为何没有把<|Human|>的loss给mask掉?
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 35/100
- Type d'issue
- Bug
- Clarté
- À clarifier
- Activité
- À l'abandon
- Stack technique
- python
- Domaine
- machine-learning
Piste de recherche
L’issue montre une boucle Python de chargement de JSONL qui construit input_ids et no_loss_spans ; commencez par localiser où self.no_loss_spans est consommé pendant le fine-tuning. Suivez la manière dont les sections et Tool Responses sont représentées, puis vérifiez que le masque de perte correspond aux spans d’entraînement prévus. La tâche est terminée lorsque le comportement du masquage est clarifié ou corrigé et couvert par le chemin de validation existant du projet.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
with open(os.path.join(self.data_dir, f'{self.data_type}.jsonl'), 'r') as f:
for line in f:
sample = json.loads(line)
chat = sample['chat']
num_turns = int(sample['num_turns'])
meta_instruction = sample['meta_instruction']
instruction_ids = self.tokenizer.encode(meta_instruction)
assert isinstance(instruction_ids, list) and len(instruction_ids) > 0
input_ids = copy.deepcopy(instruction_ids)
no_loss_spans = [(0, len(instruction_ids))]
for i in range(num_turns):
cur_turn_ids = []
cur_no_loss_spans = []
cur_turn = chat[f'turn_{i+1}']
for key, value in cur_turn.items():
cur_ids = self.tokenizer.encode(value)
if key == 'Tool Responses':
# The format tokens (<|Results|>:...<eor>\n) should have losses.
cur_no_loss_spans.append((len(input_ids + cur_turn_ids) + 5, len(input_ids + cur_turn_ids + cur_ids) - 2))
assert isinstance(cur_ids, list) and len(cur_ids) > 0
cur_turn_ids.extend(cur_ids)
if len(input_ids + cur_turn_ids) > 2048:
break
input_ids.extend(cur_turn_ids)
no_loss_spans.extend(cur_no_loss_spans)
if len(input_ids) == len(instruction_ids):
continue
assert len(input_ids) > 0 and len(input_ids) <= 2048
self.data.append(input_ids)
self.no_loss_spans.append(no_loss_spans)
- Langage dominant
- Python
- Étoiles
- 12.3k
- Forks
- 1.1k
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de OpenMOSS/MOSS
-
windows的生成速度真的慢到令人发指Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 38/100
-
version?Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 20/100
-
Difficulté 3/5 1-2 jours Accessibilité débutants 30/100
-
moss为什么不更新了Ouverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 10/100
-
moss-moon-003-sft Jupyter测试失败Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 35/100
Toutes les issues de OpenMOSS/MOSS
Issues similaires
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
conda-forge/conda-forge-bot#7025 ·
Les mainteneurs répondent en général sous 1 jour
-
chore(ci): publish.yml's release-job comment counts the hand-created Releases as all of themOuvertearea:ci
Difficulté 1/5 Moins d'une heure Accessibilité débutants 74/100
catincloud-labs/dagster-dex#149 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
home-assistant/core#188424 ·
Les mainteneurs répondent en général sous 1 jour
-
Review backlog (docs-currency): README 'CI run' link lands on a run whose overall badge is cancelledOuverteagent/reviewer needs-kind needs-triage
Difficulté 2/5 1-3 heures Accessibilité débutants 63/100
projectbluefin/utah#880 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
redis/memtier_benchmark#850 ·
Les mainteneurs répondent en général sous 1 jour