Spaces:
Paused
Paused
Husnain
commited on
💎 [Feature] New model supported: command-r-plus (CohereForai/c4ai-com…
Browse files- messagers/message_composer.py +15 -15
messagers/message_composer.py
CHANGED
|
@@ -48,10 +48,10 @@ class MessageComposer:
|
|
| 48 |
|
| 49 |
def merge(self, messages) -> str:
|
| 50 |
# Templates for Chat Models
|
| 51 |
-
#
|
| 52 |
# - https://huggingface.co/mistralai/Mixtral-8x7B-Instruct-v0.1#instruction-format
|
| 53 |
# - https://huggingface.co/NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO#prompt-format
|
| 54 |
-
# - https://huggingface.co/
|
| 55 |
# - https://huggingface.co/google/gemma-1.1-7b-it#chat-template
|
| 56 |
|
| 57 |
# Mistral and Mixtral:
|
|
@@ -64,8 +64,8 @@ class MessageComposer:
|
|
| 64 |
# Hello, who are you?<|im_end|>
|
| 65 |
# <|im_start|>assistant
|
| 66 |
|
| 67 |
-
#
|
| 68 |
-
#
|
| 69 |
|
| 70 |
# Google Gemma-it
|
| 71 |
# <start_of_turn>user
|
|
@@ -103,8 +103,8 @@ class MessageComposer:
|
|
| 103 |
self.merged_str_list.append(message_line)
|
| 104 |
self.merged_str_list.append("<|im_start|>assistant")
|
| 105 |
self.merged_str = "\n".join(self.merged_str_list)
|
| 106 |
-
# https://huggingface.co/
|
| 107 |
-
elif self.model in ["
|
| 108 |
self.messages = self.concat_messages_by_role(messages)
|
| 109 |
self.merged_str_list = []
|
| 110 |
self.end_of_turn = "<|end_of_turn|>"
|
|
@@ -113,17 +113,17 @@ class MessageComposer:
|
|
| 113 |
content = message["content"]
|
| 114 |
if role in self.inst_roles:
|
| 115 |
self.merged_str_list.append(
|
| 116 |
-
f"
|
| 117 |
)
|
| 118 |
elif role in self.answer_roles:
|
| 119 |
self.merged_str_list.append(
|
| 120 |
-
f"
|
| 121 |
)
|
| 122 |
else:
|
| 123 |
self.merged_str_list.append(
|
| 124 |
-
f"
|
| 125 |
)
|
| 126 |
-
self.merged_str_list.append(f"
|
| 127 |
self.merged_str = "\n".join(self.merged_str_list)
|
| 128 |
# https://huggingface.co/google/gemma-1.1-7b-it#chat-template
|
| 129 |
elif self.model in ["gemma-1.1-7b"]:
|
|
@@ -149,9 +149,9 @@ class MessageComposer:
|
|
| 149 |
self.merged_str_list.append(f"{self.start_of_turn}model\n")
|
| 150 |
self.merged_str = "\n".join(self.merged_str_list)
|
| 151 |
# https://huggingface.co/NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO#prompt-format
|
| 152 |
-
# https://huggingface.co/
|
| 153 |
-
# elif self.model in ["
|
| 154 |
-
elif self.model in ["
|
| 155 |
tokenizer = AutoTokenizer.from_pretrained(self.model_fullname)
|
| 156 |
self.merged_str = tokenizer.apply_chat_template(
|
| 157 |
messages, tokenize=False, add_generation_prompt=True
|
|
@@ -168,13 +168,13 @@ if __name__ == "__main__":
|
|
| 168 |
# model = "mixtral-8x7b"
|
| 169 |
# model = "nous-mixtral-8x7b"
|
| 170 |
# model = "gemma-1.1-7b"
|
| 171 |
-
# model = "
|
| 172 |
model = "command-r-plus"
|
| 173 |
composer = MessageComposer(model)
|
| 174 |
messages = [
|
| 175 |
{
|
| 176 |
"role": "system",
|
| 177 |
-
"content": "You are
|
| 178 |
},
|
| 179 |
{"role": "user", "content": "Hello, who are you?"},
|
| 180 |
{"role": "assistant", "content": "I am a bot."},
|
|
|
|
| 48 |
|
| 49 |
def merge(self, messages) -> str:
|
| 50 |
# Templates for Chat Models
|
| 51 |
+
# - https://huggingface.co/docs/transformers/main/en/chat_templating
|
| 52 |
# - https://huggingface.co/mistralai/Mixtral-8x7B-Instruct-v0.1#instruction-format
|
| 53 |
# - https://huggingface.co/NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO#prompt-format
|
| 54 |
+
# - https://huggingface.co/openchat/openchat-3.5-0106
|
| 55 |
# - https://huggingface.co/google/gemma-1.1-7b-it#chat-template
|
| 56 |
|
| 57 |
# Mistral and Mixtral:
|
|
|
|
| 64 |
# Hello, who are you?<|im_end|>
|
| 65 |
# <|im_start|>assistant
|
| 66 |
|
| 67 |
+
# OpenChat:
|
| 68 |
+
# GPT4 Correct User: Hello<|end_of_turn|>GPT4 Correct Assistant: Hi<|end_of_turn|>GPT4 Correct User: How are you today?<|end_of_turn|>GPT4 Correct Assistant:
|
| 69 |
|
| 70 |
# Google Gemma-it
|
| 71 |
# <start_of_turn>user
|
|
|
|
| 103 |
self.merged_str_list.append(message_line)
|
| 104 |
self.merged_str_list.append("<|im_start|>assistant")
|
| 105 |
self.merged_str = "\n".join(self.merged_str_list)
|
| 106 |
+
# https://huggingface.co/openchat/openchat-3.5-0106
|
| 107 |
+
elif self.model in ["openchat-3.5"]:
|
| 108 |
self.messages = self.concat_messages_by_role(messages)
|
| 109 |
self.merged_str_list = []
|
| 110 |
self.end_of_turn = "<|end_of_turn|>"
|
|
|
|
| 113 |
content = message["content"]
|
| 114 |
if role in self.inst_roles:
|
| 115 |
self.merged_str_list.append(
|
| 116 |
+
f"GPT4 Correct User:\n{content}{self.end_of_turn}"
|
| 117 |
)
|
| 118 |
elif role in self.answer_roles:
|
| 119 |
self.merged_str_list.append(
|
| 120 |
+
f"GPT4 Correct Assistant:\n{content}{self.end_of_turn}"
|
| 121 |
)
|
| 122 |
else:
|
| 123 |
self.merged_str_list.append(
|
| 124 |
+
f"GPT4 Correct User: {content}{self.end_of_turn}"
|
| 125 |
)
|
| 126 |
+
self.merged_str_list.append(f"GPT4 Correct Assistant:\n")
|
| 127 |
self.merged_str = "\n".join(self.merged_str_list)
|
| 128 |
# https://huggingface.co/google/gemma-1.1-7b-it#chat-template
|
| 129 |
elif self.model in ["gemma-1.1-7b"]:
|
|
|
|
| 149 |
self.merged_str_list.append(f"{self.start_of_turn}model\n")
|
| 150 |
self.merged_str = "\n".join(self.merged_str_list)
|
| 151 |
# https://huggingface.co/NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO#prompt-format
|
| 152 |
+
# https://huggingface.co/openchat/openchat-3.5-0106
|
| 153 |
+
# elif self.model in ["openchat-3.5", "nous-mixtral-8x7b"]:
|
| 154 |
+
elif self.model in ["openchat-3.5", "command-r-plus"]:
|
| 155 |
tokenizer = AutoTokenizer.from_pretrained(self.model_fullname)
|
| 156 |
self.merged_str = tokenizer.apply_chat_template(
|
| 157 |
messages, tokenize=False, add_generation_prompt=True
|
|
|
|
| 168 |
# model = "mixtral-8x7b"
|
| 169 |
# model = "nous-mixtral-8x7b"
|
| 170 |
# model = "gemma-1.1-7b"
|
| 171 |
+
# model = "openchat-3.5"
|
| 172 |
model = "command-r-plus"
|
| 173 |
composer = MessageComposer(model)
|
| 174 |
messages = [
|
| 175 |
{
|
| 176 |
"role": "system",
|
| 177 |
+
"content": "You are a LLM developed by OpenAI.\nYour name is GPT-4.",
|
| 178 |
},
|
| 179 |
{"role": "user", "content": "Hello, who are you?"},
|
| 180 |
{"role": "assistant", "content": "I am a bot."},
|