Skip to content

Commit 80aa7b2

Browse files
authored
[template] fix qwen3 remove '<think></think>' (#4857)
1 parent f770478 commit 80aa7b2

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

swift/llm/template/template/qwen.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,13 @@ class ThinkingTemplate(Template):
5050

5151
def _swift_prepare_messages(self, messages):
5252
super()._swift_prepare_messages(messages)
53-
for i, message in enumerate(messages):
54-
if message['role'] == 'assistant' and isinstance(message['content'], str) and i != len(messages) - 1:
55-
message['content'] = message['content'].split('</think>')[-1].strip()
53+
# Only during inference or training, and only if the loss_scale is set to 'last_round',
54+
# will the previous 'think' entries be deleted.
55+
if not self.is_training or self.loss_scale.name == 'last_round':
56+
for i, message in enumerate(messages):
57+
# Delete the content before '</think>' in all assistant turns except the last round.
58+
if message['role'] == 'assistant' and isinstance(message['content'], str) and i != len(messages) - 1:
59+
message['content'] = message['content'].split('</think>')[-1].strip()
5660

5761

5862
register_template(

swift/plugin/loss_scale/loss_scale.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,3 +164,6 @@ def get_loss_scale(self,
164164
'agentflan': AgentFlanLossScale,
165165
'alpha_umi': AlphaUmiLossScale,
166166
}
167+
168+
for k, v in loss_scale_map.items():
169+
v.name = k

0 commit comments

Comments
 (0)