Antoni-Joan Solergibert winglian commited on
Commit
b32c08f
·
unverified ·
1 Parent(s): fff06af

adding llama3 fastchat conversation monkeypatch (#1539)

Browse files

* adding llama3 fastchat conversation monkeypatch

* Updated conversation turns to work with PR3259 of FastChat

* fixed bos token

* bump fastchat version

---------

Co-authored-by: Wing Lian <[email protected]>

requirements.txt CHANGED
@@ -28,7 +28,7 @@ scipy
28
  scikit-learn==1.2.2
29
  pynvml
30
  art
31
- fschat @ git+https://github.com/lm-sys/FastChat.git@5095615810cf613dba7f27dd155f571fcff976d8
32
  gradio==3.50.2
33
  tensorboard
34
 
 
28
  scikit-learn==1.2.2
29
  pynvml
30
  art
31
+ fschat @ git+https://github.com/lm-sys/FastChat.git@27a05b04a35510afb1d767ae7e5990cbd278f8fe
32
  gradio==3.50.2
33
  tensorboard
34
 
src/axolotl/monkeypatch/fastchat_conversation_turns.py CHANGED
@@ -123,6 +123,17 @@ def get_turns( # pylint: disable=too-many-return-statements
123
  else:
124
  yield role, ""
125
  return
 
 
 
 
 
 
 
 
 
 
 
126
  if self.sep_style == SeparatorStyle.GEMMA:
127
  if self.system_message:
128
  raise ValueError("Gemma chat template does not support system messages")
 
123
  else:
124
  yield role, ""
125
  return
126
+ if self.sep_style == SeparatorStyle.LLAMA3:
127
+ if self.system_message:
128
+ # For llama3, the system message is NOT incorporated into the first human instruction
129
+ # All messages follow <|start_header_id|>' + role + '<|end_header_id|>\n\n'+ message + '<|eot_id|>
130
+ yield "", system_prompt
131
+ for i, (role, message) in enumerate(self.messages):
132
+ if message:
133
+ yield f"<|start_header_id|>{role}<|end_header_id|>\n\n", f"{message.strip()}<|eot_id|>"
134
+ else:
135
+ yield f"<|start_header_id|>{role}<|end_header_id|>\n\n", ""
136
+ return
137
  if self.sep_style == SeparatorStyle.GEMMA:
138
  if self.system_message:
139
  raise ValueError("Gemma chat template does not support system messages")