Browse Source

revert embedded templates to use prompt/response

This reverts commit 19753c18c01183b4c974e36e89b0c7cbdcc3c38a.

for compat. messages will be added at a later date
Michael Yang 9 months ago
parent
commit
57ec6901eb

+ 2 - 2
server/routes_create_test.go

@@ -546,8 +546,8 @@ func TestCreateDetectTemplate(t *testing.T) {
 
 		checkFileExists(t, filepath.Join(p, "blobs", "*"), []string{
 			filepath.Join(p, "blobs", "sha256-553c4a3f747b3d22a4946875f1cc8ed011c2930d83f864a0c7265f9ec0a20413"),
-			filepath.Join(p, "blobs", "sha256-68b0323b2f21572bc09ba07554b16b379a5713ee48ef8c25a7661a1f71cfce77"),
-			filepath.Join(p, "blobs", "sha256-eb72fb7c550ee1f1dec4039bd65382acecf5f7536a30fb7ccace39a8d0cb590b"),
+			filepath.Join(p, "blobs", "sha256-c608dc615584cd20d9d830363dabf8a4783ae5d34245c3d8c115edb3bc7b28e4"),
+			filepath.Join(p, "blobs", "sha256-f836ee110db21567f826332e4cedd746c06d10664fd5a9ea3659e3683a944510"),
 		})
 	})
 

+ 1 - 8
template/alfred.gotmpl

@@ -1,8 +1 @@
-{{- if .Messages }}
-{{- if .System }}<start_system>{{ .System }}<end_message>
-{{- end }}
-{{- range .Messages }}<start_{{ .Role }}>{{ .Content }}<end_message>
-{{- end }}<start_assistant>
-{{- else -}}
-{{ if .System }}<start_system>{{ .System }}<end_message>{{ end }}{{ if .Prompt }}<start_user>{{ .Prompt }}<end_message>{{ end }}<start_assistant>{{ .Response }}<end_message>
-{{- end -}}
+{{ if .System }}<start_system>{{ .System }}<end_message>{{ end }}{{ if .Prompt }}<start_user>{{ .Prompt }}<end_message>{{ end }}<start_assistant>{{ .Response }}<end_message>

+ 0 - 13
template/alpaca.gotmpl

@@ -1,15 +1,3 @@
-{{- if .Messages }}
-{{- if .System }}{{ .System }}
-
-{{ end }}
-{{- range .Messages }}
-{{- if eq .Role "user" }}### Instruction:
-{{- else if eq .Role "assistant" }}### Response:
-{{- end }}
-{{ .Content }}
-
-{{ end }}### Response:
-{{ else -}}
 {{ if .System }}{{ .System }}
 
 {{ end }}{{ if .Prompt }}### Instruction:
@@ -18,4 +6,3 @@
 {{ end }}### Response:
 {{ .Response }}
 
-{{ end -}}

+ 0 - 9
template/chatml.gotmpl

@@ -1,15 +1,6 @@
-{{- if .Messages }}
-{{- if .System }}<|im_start|>system
-{{ .System }}<|im_end|>
-{{ end }}
-{{- range .Messages }}<|im_start|>{{ .Role }}
-{{ .Content }}<|im_end|>
-{{ end }}<|im_start|>assistant
-{{ else -}}
 {{ if .System }}<|im_start|>system
 {{ .System }}<|im_end|>
 {{ end }}{{ if .Prompt }}<|im_start|>user
 {{ .Prompt }}<|im_end|>
 {{ end }}<|im_start|>assistant
 {{ .Response }}<|im_end|>
-{{ end -}}

+ 0 - 12
template/chatqa.gotmpl

@@ -1,18 +1,6 @@
-{{- if .Messages }}
-{{- if .System }}System: {{ .System }}
-
-{{ end }}
-{{- range .Messages }}
-{{- if eq .Role "user" }}User:
-{{- else if eq .Role "assistant" }}Assistant:
-{{- end }} {{ .Content }}
-
-{{ end }}Assistant:
-{{- else -}}
 {{ if .System }}System: {{ .System }}
 
 {{ end }}{{ if .Prompt }}User: {{ .Prompt }}
 
 {{ end }}Assistant: {{ .Response }}
 
-{{ end -}}

+ 3 - 12
template/codellama-70b-instruct.gotmpl

@@ -1,19 +1,10 @@
-{{- if .Messages }}
-{{- if .System }}Source: system
-
- {{ .System }} <step> {{ end }}
-{{- range .Messages }}Source: {{ .Role }}
-
- {{ .Content }} <step> {{ end }}Source: assistant
-Destination: user
-
- {{ else -}}
 {{ if .System }}Source: system
 
  {{ .System }} <step> {{ end }}Source: user
 
  {{ .Prompt }} <step> Source: assistant
+{{- if not .Response }}
 Destination: user
+{{- end }}
 
- {{ .Response }} <step>
-{{- end -}}
+ {{ .Response }} <step> 

+ 0 - 10
template/falcon-instruct.gotmpl

@@ -1,15 +1,5 @@
-{{- if .Messages }}
-{{- if .System }}System: {{ .System }}
-{{ end }}
-{{- range .Messages }}
-{{- if eq .Role "user" }}User:
-{{ else if eq .Role "assistant" }}Falcon:
-{{ end }}{{ .Content }}
-{{ end }}Falcon:
-{{ else -}}
 {{ if .System }}System: {{ .System }}
 {{ end }}{{ if .Prompt }}User:
 {{ .Prompt }}
 {{ end }}Falcon:
 {{ .Response }}
-{{ end -}}

+ 0 - 12
template/gemma-instruct.gotmpl

@@ -1,17 +1,5 @@
-{{- if .Messages }}
-{{- range $index, $_ := .Messages }}<start_of_turn>
-{{- if eq .Role "user" }}user
-{{- if and $.System (eq $index 0) }}
-{{ $.System }}
-{{- end }}
-{{- else if eq .Role "assistant" }}model
-{{- end }}
-{{ .Content }}<end_of_turn>
-{{ end }}<start_of_turn>model
-{{ else -}}
 <start_of_turn>user
 {{ if .System }}{{ .System }}
 {{ end }}{{ .Prompt }}<end_of_turn>
 <start_of_turn>model
 {{ .Response }}<end_of_turn>
-{{ end -}}

+ 0 - 14
template/granite-instruct.gotmpl

@@ -1,16 +1,3 @@
-{{- if .Messages }}
-{{- if .System }}System:
-{{ .System }}
-
-{{ end }}
-{{- range .Messages }}
-{{- if eq .Role "user" }}Question:
-{{- else if eq .Role "assistant" }}Answer:
-{{- end }}
-{{ .Content }}
-
-{{ end }}Answer:
-{{ else -}}
 {{ if .System }}System:
 {{ .System }}
 
@@ -20,4 +7,3 @@
 {{ end }}Answer:
 {{ .Response }}
 
-{{ end -}}

+ 4 - 14
template/llama2-chat.gotmpl

@@ -1,16 +1,6 @@
-{{- if .Messages }}
-{{- range $index, $_ := .Messages }}
-{{- if eq .Role "user" }}[INST] {{ if eq $index 0 }}<<SYS>>
-{{- if $.System }}
-{{ $.System }}
+[INST] <<SYS>>
+{{- if .System }}
+{{ .System }}
 {{ end }}<</SYS>>
 
-{{ end }}{{ .Content }}
-{{- else }} [/INST] {{ .Content }}</s><s>
-{{- end }}
-{{- end }} [/INST]
-{{- else -}}
-[INST] <<SYS>>{{ if .System }}{{ .System }}{{ end }}<</SYS>>
-
-{{ .Prompt }} [/INST] {{ .Response }}</s>
-{{- end -}}
+{{ .Prompt }} [/INST] {{ .Response }}</s><s>

+ 1 - 13
template/llama3-instruct.gotmpl

@@ -1,19 +1,7 @@
-{{- if .Messages }}
-{{- if .System }}<|start_header_id|>system<|end_header_id|>
-
-{{ .System }}<|eot_id|>
-{{- end }}
-{{- range .Messages }}<|start_header_id|>{{ .Role }}<|end_header_id|>
-
-{{ .Content }}<|eot_id|>
-{{- end }}<|start_header_id|>assistant<|end_header_id|>
-
-{{ else -}}
 {{ if .System }}<|start_header_id|>system<|end_header_id|>
 
 {{ .System }}<|eot_id|>{{ end }}{{ if .Prompt }}<|start_header_id|>user<|end_header_id|>
 
 {{ .Prompt }}<|eot_id|>{{ end }}<|start_header_id|>assistant<|end_header_id|>
 
-{{ .Response }}<|eot_id|>
-{{- end -}}
+{{ .Response }}<|eot_id|>

+ 0 - 13
template/magicoder.gotmpl

@@ -1,15 +1,3 @@
-{{- if .Messages }}
-{{- if .System }}{{ .System }}
-
-{{ end }}
-{{- range .Messages }}
-{{- if eq .Role "user" }}@@ Instruction
-{{- else if eq .Role "assistant" }}@@ Response
-{{- end }}
-{{ .Content }}
-
-{{ end }}@@ Response
-{{ else -}}
 {{ if .System }}{{ .System }}
 
 {{ end }}{{ if .Prompt }}@@ Instruction
@@ -18,4 +6,3 @@
 {{ end }}@@ Response
 {{ .Response }}
 
-{{ end -}}

+ 3 - 10
template/mistral-instruct.gotmpl

@@ -1,10 +1,3 @@
-{{- if .Messages }}
-{{- range $index, $_ := .Messages }}
-{{- if eq .Role "user" }}[INST] {{ if and $.System (eq (len (slice $.Messages $index)) 1) }}{{ $.System }}
-{{ end }}{{ .Content }}
-{{- else if eq .Role "assistant" }}[/INST] {{ .Content }}</s>
-{{- end }}
-{{- end }}[/INST]
-{{- else -}}
-[INST] {{ if .System }}{{ .System }} {{ end }}{{ .Prompt }}[/INST] {{ .Response }}</s>
-{{- end -}}
+[INST] {{ if .System }}{{ .System }}
+
+{{ end }}{{ .Prompt }}[/INST] {{ .Response }}</s>

+ 1 - 11
template/openchat.gotmpl

@@ -1,11 +1 @@
-{{- if .Messages }}
-{{- if .System }}GPT4 Correct System: {{ .System }}<|end_of_turn|>
-{{- end }}
-{{- range .Messages }}GPT4 Correct
-{{- if eq .Role "user" }} User:
-{{- else if eq .Role "assistant" }} Assistant:
-{{- end }} {{ .Content }}<|end_of_turn|>
-{{- end }}GPT4 Correct Assistant:
-{{- else -}}
-{{ if .System }}GPT4 Correct System: {{ .System }}<|end_of_turn|>{{ end }}GPT4 Correct User: {{ .Prompt }}<|end_of_turn|>GPT4 Correct Assistant: {{ .Response }}<|end_of_turn|>
-{{- end -}}
+{{ if .System }}GPT4 Correct System: {{ .System }}<|end_of_turn|>{{ end }}GPT4 Correct User: {{ .Prompt }}<|end_of_turn|>GPT4 Correct Assistant: {{ .Response }}<|end_of_turn|>

+ 0 - 9
template/phi-3.gotmpl

@@ -1,15 +1,6 @@
-{{- if .Messages }}
-{{- if .System }}<|system|>
-{{ .System }}<|end|>
-{{ end }}
-{{- range .Messages }}<|{{ .Role }}|>
-{{ .Content }}<|end|>
-{{ end }}<|assistant|>
-{{ else -}}
 {{ if .System }}<|system|>
 {{ .System }}<|end|>
 {{ end }}{{ if .Prompt }}<|user|>
 {{ .Prompt }}<|end|>
 {{ end }}<|assistant|>
 {{ .Response }}<|end|>
-{{ end -}}

+ 0 - 14
template/solar-instruct.gotmpl

@@ -1,16 +1,3 @@
-{{- if .Messages }}
-{{- if .System }}### System:
-{{ .System }}
-
-{{ end }}
-{{- range .Messages }}
-{{- if eq .Role "user" }}### User:
-{{ .Content }}
-{{ else if eq .Role "assistant" }}### Assistant:
-{{ .Content }}</s>
-{{ end }}
-{{ end }}### Assistant:
-{{ else -}}
 {{ if .System }}### System:
 {{ .System }}
 
@@ -20,4 +7,3 @@
 {{ end }}### Assistant:
 {{ .Response }}</s>
 
-{{ end -}}

+ 0 - 15
template/starcoder2-instruct.gotmpl

@@ -1,17 +1,3 @@
-{{- if .Messages }}
-{{- if .System }}{{ .System }}
-
-{{ end }}
-{{- range .Messages }}
-{{- if eq .Role "user" }}### Instruction
-{{ .Content }}
-
-{{ else if eq .Role "assistant" }}### Response
-{{ .Content }}<|endoftext|>
-
-{{ end }}
-{{- end }}### Response
-{{ else -}}
 {{ if .System }}{{ .System }}
 
 {{ end }}{{ if .Prompt }}### Instruction
@@ -20,4 +6,3 @@
 {{ end }}### Response
 {{ .Response }}<|endoftext|>
 
-{{ end -}}

+ 39 - 20
template/template_test.go

@@ -116,7 +116,14 @@ func TestTemplate(t *testing.T) {
 						t.Fatal(err)
 					}
 
-					if diff := cmp.Diff(actual.Bytes(), expect); diff != "" {
+					bts := actual.Bytes()
+
+					if slices.Contains([]string{"chatqa.gotmpl", "llama2-chat.gotmpl", "mistral-instruct.gotmpl", "openchat.gotmpl", "vicuna.gotmpl"}, match) && bts[len(bts)-1] == ' ' {
+						t.Log("removing trailing space from output")
+						bts = bts[:len(bts)-1]
+					}
+
+					if diff := cmp.Diff(bts, expect); diff != "" {
 						t.Errorf("mismatch (-got +want):\n%s", diff)
 					}
 				})
@@ -203,11 +210,18 @@ func TestExecuteWithMessages(t *testing.T) {
 		{
 			"mistral",
 			[]template{
-				{"no response", `[INST] {{ if .System }}{{ .System }}{{ "\n\n" }}{{ end }}{{ .Prompt }}[/INST] `},
-				{"response", `[INST] {{ if .System }}{{ .System }}{{ "\n\n" }}{{ end }}{{ .Prompt }}[/INST] {{ .Response }}`},
-				{"messages", `{{- range $index, $_ := .Messages }}
-{{- if eq .Role "user" }}[INST] {{ if and (eq $index 0) $.System }}{{ $.System }}{{ "\n\n" }}
-{{- end }}{{ .Content }}[/INST] {{ else if eq .Role "assistant" }}{{ .Content }}
+				{"no response", `[INST] {{ if .System }}{{ .System }}
+
+{{ end }}{{ .Prompt }}[/INST] `},
+				{"response", `[INST] {{ if .System }}{{ .System }}
+
+{{ end }}{{ .Prompt }}[/INST] {{ .Response }}`},
+				{"messages", `{{- $system := aggregate $.Messages "system" -}}
+{{- range $index, $_ := .Messages }}
+{{- if eq .Role "user" }}[INST] {{ if $system }}{{ $system }}
+{{- $system = "" }}
+
+{{ end }}{{ .Content }}[/INST] {{ else if eq .Role "assistant" }}{{ .Content }}
 {{- end }}
 {{- end }}`},
 			},
@@ -223,12 +237,18 @@ func TestExecuteWithMessages(t *testing.T) {
 		{
 			"mistral system",
 			[]template{
-				{"no response", `[INST] {{ if .System }}{{ .System }}{{ "\n\n" }}{{ end }}{{ .Prompt }}[/INST] `},
-				{"response", `[INST] {{ if .System }}{{ .System }}{{ "\n\n" }}{{ end }}{{ .Prompt }}[/INST] {{ .Response }}`},
-				{"messages", `
+				{"no response", `[INST] {{ if .System }}{{ .System }}
+
+{{ end }}{{ .Prompt }}[/INST] `},
+				{"response", `[INST] {{ if .System }}{{ .System }}
+
+{{ end }}{{ .Prompt }}[/INST] {{ .Response }}`},
+				{"messages", `{{- $system := aggregate $.Messages "system" -}}
 {{- range $index, $_ := .Messages }}
-{{- if eq .Role "user" }}[INST] {{ if and (eq $index 0) $.System }}{{ $.System }}{{ "\n\n" }}
-{{- end }}{{ .Content }}[/INST] {{ else if eq .Role "assistant" }}{{ .Content }}
+{{- if eq .Role "user" }}[INST] {{ if $system }}{{ $system }}
+{{- $system = "" }}
+
+{{ end }}{{ .Content }}[/INST] {{ else if eq .Role "assistant" }}{{ .Content }}
 {{- end }}
 {{- end }}`},
 			},
@@ -256,12 +276,9 @@ Hello friend![/INST] Hello human![INST] What is your name?[/INST] `,
 {{ .Response }}<|im_end|>
 `},
 				{"messages", `
-{{- range $index, $_ := .Messages }}
-{{- if and (eq .Role "user") (eq $index 0) $.System }}<|im_start|>system
-{{ $.System }}<|im_end|>{{ "\n" }}
-{{- end }}<|im_start|>{{ .Role }}
-{{ .Content }}<|im_end|>{{ "\n" }}
-{{- end }}<|im_start|>assistant
+{{- range $index, $_ := .Messages }}<|im_start|>{{ .Role }}
+{{ .Content }}<|im_end|>
+{{ end }}<|im_start|>assistant
 `},
 			},
 			Values{
@@ -294,9 +311,11 @@ What is your name?<|im_end|>
 `},
 				{"messages", `
 {{- range .Messages }}
-{{- if eq .Role "user" }}Question: {{ .Content }}{{ "\n\n" }}
-{{- else if eq .Role "assistant" }}Answer: {{ .Content }}{{ "\n\n" }}
-{{- end }}
+{{- if eq .Role "user" }}Question: {{ .Content }}
+
+{{ else if eq .Role "assistant" }}Answer: {{ .Content }}
+
+{{ end }}
 {{- end }}Answer: `},
 			},
 			Values{

+ 3 - 1
template/testdata/llama2-chat.gotmpl/system-user-assistant-user

@@ -2,4 +2,6 @@
 You are a helpful assistant.
 <</SYS>>
 
-Hello, how are you? [/INST] I'm doing great. How can I help you today?</s><s>[INST] I'd like to show off how chat templating works! [/INST]
+Hello, how are you? [/INST] I'm doing great. How can I help you today?</s><s>[INST] <<SYS>><</SYS>>
+
+I'd like to show off how chat templating works! [/INST]

+ 3 - 1
template/testdata/llama2-chat.gotmpl/user-assistant-user

@@ -1,3 +1,5 @@
 [INST] <<SYS>><</SYS>>
 
-Hello, how are you? [/INST] I'm doing great. How can I help you today?</s><s>[INST] I'd like to show off how chat templating works! [/INST]
+Hello, how are you? [/INST] I'm doing great. How can I help you today?</s><s>[INST] <<SYS>><</SYS>>
+
+I'd like to show off how chat templating works! [/INST]

+ 3 - 2
template/testdata/mistral-instruct.gotmpl/system-user-assistant-user

@@ -1,2 +1,3 @@
-[INST] Hello, how are you?[/INST] I'm doing great. How can I help you today?</s>[INST] You are a helpful assistant.
-I'd like to show off how chat templating works![/INST]
+[INST] You are a helpful assistant.
+
+Hello, how are you?[/INST] I'm doing great. How can I help you today?</s>[INST] I'd like to show off how chat templating works![/INST]

+ 0 - 11
template/vicuna.gotmpl

@@ -1,15 +1,4 @@
-{{- if .Messages }}
-{{- if .System }}{{ .System }}
-
-{{ end }}
-{{- range .Messages }}
-{{- if eq .Role "user" }}USER: {{ .Content }}
-{{ else if eq .Role "assistant" }}ASSISTANT: {{ .Content }}</s>
-{{ end }}
-{{- end }}ASSISTANT:
-{{- else -}}
 {{ if .System }}{{ .System }}
 
 {{ end }}{{ if .Prompt }}USER: {{ .Prompt }}
 {{ end }}ASSISTANT: {{ .Response }}</s>
-{{ end -}}

+ 0 - 9
template/zephyr.gotmpl

@@ -1,15 +1,6 @@
-{{- if .Messages }}
-{{- if .System }}<|system|>
-{{ .System }}</s>
-{{ end }}
-{{- range .Messages }}<|{{ .Role }}|>
-{{ .Content }}</s>
-{{ end }}<|assistant|>
-{{ else -}}
 {{ if .System }}<|system|>
 {{ .System }}</s>
 {{ end }}{{ if .Prompt }}<|user|>
 {{ .Prompt }}</s>
 {{ end }}<|assistant|>
 {{ .Response }}</s>
-{{ end -}}