nsarrazin HF Staff commited on
Commit
07b0bcd
·
unverified ·
1 Parent(s): 41e8a1a

feat: use model id as fallback for finding a tokenizer (#1535)

Browse files
Files changed (1) hide show
  1. src/lib/server/models.ts +16 -9
src/lib/server/models.ts CHANGED
@@ -79,19 +79,26 @@ async function getChatPromptRender(
79
  }
80
  let tokenizer: PreTrainedTokenizer;
81
 
82
- if (!m.tokenizer) {
83
- return compileTemplate<ChatTemplateInput>(
84
- "{{#if @root.preprompt}}<|im_start|>system\n{{@root.preprompt}}<|im_end|>\n{{/if}}{{#each messages}}{{#ifUser}}<|im_start|>user\n{{content}}<|im_end|>\n<|im_start|>assistant\n{{/ifUser}}{{#ifAssistant}}{{content}}<|im_end|>\n{{/ifAssistant}}{{/each}}",
85
- m
86
- );
87
- }
88
-
89
  try {
90
- tokenizer = await getTokenizer(m.tokenizer);
91
  } catch (e) {
 
 
 
 
 
 
 
 
 
 
 
 
92
  logger.error(
93
  e,
94
- `Failed to load tokenizer for model ${m.name} consider setting chatPromptTemplate manually or making sure the model is available on the hub.`
 
 
95
  );
96
  process.exit();
97
  }
 
79
  }
80
  let tokenizer: PreTrainedTokenizer;
81
 
 
 
 
 
 
 
 
82
  try {
83
+ tokenizer = await getTokenizer(m.tokenizer ?? m.id ?? m.name);
84
  } catch (e) {
85
+ // if fetching the tokenizer fails but it wasnt manually set, use the default template
86
+ if (!m.tokenizer) {
87
+ logger.warn(
88
+ `No tokenizer found for model ${m.name}, using default template. Consider setting tokenizer manually or making sure the model is available on the hub.`,
89
+ m
90
+ );
91
+ return compileTemplate<ChatTemplateInput>(
92
+ "{{#if @root.preprompt}}<|im_start|>system\n{{@root.preprompt}}<|im_end|>\n{{/if}}{{#each messages}}{{#ifUser}}<|im_start|>user\n{{content}}<|im_end|>\n<|im_start|>assistant\n{{/ifUser}}{{#ifAssistant}}{{content}}<|im_end|>\n{{/ifAssistant}}{{/each}}",
93
+ m
94
+ );
95
+ }
96
+
97
  logger.error(
98
  e,
99
+ `Failed to load tokenizer ${
100
+ m.tokenizer ?? m.id ?? m.name
101
+ } make sure the model is available on the hub and you have access to any gated models.`
102
  );
103
  process.exit();
104
  }