From b98635d823714818b863d6f82741c705e1223b80 Mon Sep 17 00:00:00 2001 From: pandora <128635000+pandora-s-git@users.noreply.github.com> Date: Sat, 21 Sep 2024 18:48:28 +0200 Subject: [PATCH 1/4] Fixing Mistral Templates Hi there, fixing the templates as close as possible to the ground truth, you ca find more information regarding the templates in here: https://github.com/mistralai/cookbook/blob/main/concept-deep-dive/tokenization/chat_templates.md Still needs to be verified, so please dont merge yet! --- instruction-templates/Mistral.yaml | 38 +++++++++++++++++++----------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/instruction-templates/Mistral.yaml b/instruction-templates/Mistral.yaml index 02e5b20da1..1bb33ded53 100644 --- a/instruction-templates/Mistral.yaml +++ b/instruction-templates/Mistral.yaml @@ -1,15 +1,25 @@ instruction_template: |- - {%- for message in messages %} - {%- if message['role'] == 'system' -%} - {{- message['content'] -}} - {%- else -%} - {%- if message['role'] == 'user' -%} - {{-'[INST] ' + message['content'].rstrip() + ' [/INST]'-}} - {%- else -%} - {{-'' + message['content'] + '' -}} - {%- endif -%} - {%- endif -%} - {%- endfor -%} - {%- if add_generation_prompt -%} - {{-''-}} - {%- endif -%} \ No newline at end of file + {%- if messages[0]['role'] == 'system' %} + {%- set system_message = messages[0]['content'] %} + {%- set loop_messages = messages[1:] %} + {%- else %} + {%- set loop_messages = messages %} + {%- endif %} + + {{- bos_token }} + {%- for message in loop_messages %} + {%- if (message['role'] == 'user') != (loop.index0 % 2 == 0) %} + {{- raise_exception('After the optional system message, conversation roles must alternate user/assistant/user/assistant/...') }} + {%- endif %} + {%- if message['role'] == 'user' %} + {%- if loop.first and system_message is defined %} + {{- ' [INST] ' + system_message + '\\n\\n' + message['content'] + ' [/INST]' }} + {%- else %} + {{- ' [INST] ' + message['content'] + ' [/INST]' }} + {%- endif %} + {%- elif message['role'] == 'assistant' %} + {{- ' ' + message['content'] + ''}} + {%- else %} + {{- raise_exception('Only user and assistant roles are supported, with the exception of an initial optional system message!') }} + {%- endif %} + {%- endfor %} From 015ad8505b140e0b054e6a94af45f0b2661e2bfe Mon Sep 17 00:00:00 2001 From: pandora <128635000+pandora-s-git@users.noreply.github.com> Date: Sat, 21 Sep 2024 18:51:36 +0200 Subject: [PATCH 2/4] Rename Mistral.yaml to Mistral V1.yaml --- instruction-templates/{Mistral.yaml => Mistral V1.yaml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename instruction-templates/{Mistral.yaml => Mistral V1.yaml} (100%) diff --git a/instruction-templates/Mistral.yaml b/instruction-templates/Mistral V1.yaml similarity index 100% rename from instruction-templates/Mistral.yaml rename to instruction-templates/Mistral V1.yaml From c6047508b7b8a863fdc124fcd363706a07b63fc6 Mon Sep 17 00:00:00 2001 From: pandora <128635000+pandora-s-git@users.noreply.github.com> Date: Sat, 21 Sep 2024 18:54:48 +0200 Subject: [PATCH 3/4] Update Mistral V1.yaml --- instruction-templates/Mistral V1.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/instruction-templates/Mistral V1.yaml b/instruction-templates/Mistral V1.yaml index 1bb33ded53..46194b6620 100644 --- a/instruction-templates/Mistral V1.yaml +++ b/instruction-templates/Mistral V1.yaml @@ -13,12 +13,12 @@ instruction_template: |- {%- endif %} {%- if message['role'] == 'user' %} {%- if loop.first and system_message is defined %} - {{- ' [INST] ' + system_message + '\\n\\n' + message['content'] + ' [/INST]' }} + {{- ' [INST] ' + system_message + '\\n\\n' + message['content'].rstrip() + ' [/INST]' }} {%- else %} - {{- ' [INST] ' + message['content'] + ' [/INST]' }} + {{- ' [INST] ' + message['content'].rstrip() + ' [/INST]' }} {%- endif %} {%- elif message['role'] == 'assistant' %} - {{- ' ' + message['content'] + ''}} + {{- ' ' + message['content'].rstrip() + ''}} {%- else %} {{- raise_exception('Only user and assistant roles are supported, with the exception of an initial optional system message!') }} {%- endif %} From 440292a074d3a1b539b5c782d9bb8cfd77bbe0f3 Mon Sep 17 00:00:00 2001 From: pandora <128635000+pandora-s-git@users.noreply.github.com> Date: Sat, 21 Sep 2024 18:57:07 +0200 Subject: [PATCH 4/4] Update Mistral V1.yaml --- instruction-templates/Mistral V1.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instruction-templates/Mistral V1.yaml b/instruction-templates/Mistral V1.yaml index 46194b6620..950be5c7a2 100644 --- a/instruction-templates/Mistral V1.yaml +++ b/instruction-templates/Mistral V1.yaml @@ -18,7 +18,7 @@ instruction_template: |- {{- ' [INST] ' + message['content'].rstrip() + ' [/INST]' }} {%- endif %} {%- elif message['role'] == 'assistant' %} - {{- ' ' + message['content'].rstrip() + ''}} + {{- '' + message['content'] + ''}} {%- else %} {{- raise_exception('Only user and assistant roles are supported, with the exception of an initial optional system message!') }} {%- endif %}