radames commited on
Commit
8fe7106
1 Parent(s): d13413d

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +79 -40
index.html CHANGED
@@ -38,10 +38,10 @@
38
  import snarkdown from "https://cdn.skypack.dev/snarkdown";
39
  import hljs from "https://cdn.skypack.dev/highlight.js";
40
  // models base url
41
- const MODELS = {
42
- phi_1_5_q4k: {
43
- base_url:
44
- "https://huggingface.co/lmz/candle-quantized-phi/resolve/main/",
45
  model: "model-q4k.gguf",
46
  tokenizer: "tokenizer.json",
47
  config: "phi-1_5.json",
@@ -49,9 +49,9 @@
49
  seq_len: 2048,
50
  size: "800 MB",
51
  },
52
- phi_1_5_q80: {
53
- base_url:
54
- "https://huggingface.co/lmz/candle-quantized-phi/resolve/main/",
55
  model: "model-q80.gguf",
56
  tokenizer: "tokenizer.json",
57
  config: "phi-1_5.json",
@@ -59,19 +59,23 @@
59
  seq_len: 2048,
60
  size: "1.51 GB",
61
  },
62
- phi_2_0_q4k: {
63
- base_url:
64
- "https://huggingface.co/radames/phi-2-quantized/resolve/main/",
65
- model: ["model-v2-q4k.gguf_aa.part", "model-v2-q4k.gguf_ab.part", "model-v2-q4k.gguf_ac.part"],
 
 
 
 
66
  tokenizer: "tokenizer.json",
67
  config: "config.json",
68
  quantized: true,
69
  seq_len: 2048,
70
  size: "1.57GB",
71
  },
72
- puffin_phi_v2_q4k: {
73
- base_url:
74
- "https://huggingface.co/lmz/candle-quantized-phi/resolve/main/",
75
  model: "model-puffin-phi-v2-q4k.gguf",
76
  tokenizer: "tokenizer-puffin-phi-v2.json",
77
  config: "puffin-phi-v2.json",
@@ -79,9 +83,9 @@
79
  seq_len: 2048,
80
  size: "798 MB",
81
  },
82
- puffin_phi_v2_q80: {
83
- base_url:
84
- "https://huggingface.co/lmz/candle-quantized-phi/resolve/main/",
85
  model: "model-puffin-phi-v2-q80.gguf",
86
  tokenizer: "tokenizer-puffin-phi-v2.json",
87
  config: "puffin-phi-v2.json",
@@ -158,7 +162,10 @@ Very polite review:`,
158
  const getValue = (id) => document.querySelector(`#${id}`).value;
159
  const modelID = getValue("model");
160
  const model = MODELS[modelID];
161
- const weightsURL = model.model instanceof Array ? model.model.map((m) => model.base_url + m) : model.base_url + model.model;
 
 
 
162
  const tokenizerURL = model.base_url + model.tokenizer;
163
  const configURL = model.base_url + model.config;
164
 
@@ -259,9 +266,9 @@ Very polite review:`,
259
  const query = new URLSearchParams(window.location.search);
260
  const modelID = query.get("model");
261
  if (modelID) {
262
- modelSelect.value = modelID;
263
  } else {
264
- modelSelect.value = "phi_1_5_q4k";
265
  }
266
 
267
  for (const [i, { title, prompt }] of TEMPLATES.entries()) {
@@ -287,16 +294,18 @@ Very polite review:`,
287
  prompt.value = template;
288
  prompt.style.height = "auto";
289
  prompt.style.height = prompt.scrollHeight + "px";
 
 
290
  });
291
  modelSelect.addEventListener("change", (e) => {
292
  const query = new URLSearchParams(window.location.search);
293
  query.set("model", e.target.value);
294
  window.history.replaceState(
295
- { },
296
- "",
297
- `${window.location.pathname}?${query}`
298
  );
299
- window.parent.postMessage({queryString: "?" + query }, "*")
300
  const model = MODELS[e.target.value];
301
  document.querySelector("#max-seq").max = model.seq_len;
302
  document.querySelector("#max-seq").nextElementSibling.value = 200;
@@ -345,24 +354,49 @@ Very polite review:`,
345
  <main class="grid grid-cols-1 gap-8 relative">
346
  <span class="absolute text-5xl -ml-[1em]"> 🕯️ </span>
347
  <div>
348
- <h1 class="text-5xl font-bold">Candle Phi 1.5 / Phi 2.0 </h1>
349
  <h2 class="text-2xl font-bold">Rust/WASM Demo</h2>
350
  <p class="max-w-lg">
351
  The
352
- <a href="https://huggingface.co/microsoft/phi-1_5" class="link" target="_blank">Phi-1.5</a> and
353
- <a href="https://huggingface.co/microsoft/phi-2" class="link" target="_blank">Phi-2</a> models achieve
354
- state-of-the-art performance with only 1.3 billion and 2.7 billion parameters, compared to larger models with up
355
- to 13 billion parameters. Here you can try the quantized versions. Additional prompt examples are
356
- available in the
357
- <a href="https://arxiv.org/pdf/2309.05463.pdf#page=8" class="link" target="_blank">
358
- technical report </a>.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
359
  </p>
360
  <p class="max-w-lg">
361
  You can also try
362
- <a href="https://huggingface.co/teknium/Puffin-Phi-v2" class="link" target="_blank">Puffin-Phi V2
 
 
 
 
363
  </a>
364
  quantized version, a fine-tuned version of Phi-1.5 on the
365
- <a href="https://huggingface.co/datasets/LDJnr/Puffin" class="link" target="_blank">Puffin dataset
 
 
 
 
366
  </a>
367
  </p>
368
  </div>
@@ -370,7 +404,7 @@ Very polite review:`,
370
  <p class="text-xs italic max-w-lg">
371
  <b>Note:</b>
372
  When first run, the app will download and cache the model, which could
373
- take a few minutes. The models are <b>~800MB</b> or <b>~1.51GB</b> in
374
  size.
375
  </p>
376
  </div>
@@ -382,8 +416,13 @@ Very polite review:`,
382
  ></select>
383
  </div>
384
  <div>
385
- <h3 class="font-medium">Prompt Templates</h3>
386
- <form id="prompt-templates" class="grid grid-cols-1 sm:grid-cols-2 gap-1 my-2"></form>
 
 
 
 
 
387
  </div>
388
  <form
389
  id="form"
@@ -393,7 +432,7 @@ Very polite review:`,
393
  <textarea
394
  type="text"
395
  id="prompt"
396
- class="font-light w-full px-3 py-2 mx-1 resize-none outline-none"
397
  oninput="this.style.height = 0;this.style.height = this.scrollHeight + 'px'"
398
  placeholder="Add your prompt here..."
399
  >
@@ -524,9 +563,9 @@ Output:</textarea
524
  <div
525
  id="output-counter"
526
  hidden
527
- class="ml-auto font-semibold grid-rows-1 text-sm"
528
  ></div>
529
- <p hidden id="output-generation" class="grid-rows-2"></p>
530
  <span id="output-status" class="m-auto font-light"
531
  >No output yet</span
532
  >
 
38
  import snarkdown from "https://cdn.skypack.dev/snarkdown";
39
  import hljs from "https://cdn.skypack.dev/highlight.js";
40
  // models base url
41
+ const MODELS = {
42
+ phi_1_5_q4k: {
43
+ base_url:
44
+ "https://huggingface.co/lmz/candle-quantized-phi/resolve/main/",
45
  model: "model-q4k.gguf",
46
  tokenizer: "tokenizer.json",
47
  config: "phi-1_5.json",
 
49
  seq_len: 2048,
50
  size: "800 MB",
51
  },
52
+ phi_1_5_q80: {
53
+ base_url:
54
+ "https://huggingface.co/lmz/candle-quantized-phi/resolve/main/",
55
  model: "model-q80.gguf",
56
  tokenizer: "tokenizer.json",
57
  config: "phi-1_5.json",
 
59
  seq_len: 2048,
60
  size: "1.51 GB",
61
  },
62
+ phi_2_0_q4k: {
63
+ base_url:
64
+ "https://huggingface.co/radames/phi-2-quantized/resolve/main/",
65
+ model: [
66
+ "model-v2-q4k.gguf_aa.part",
67
+ "model-v2-q4k.gguf_ab.part",
68
+ "model-v2-q4k.gguf_ac.part",
69
+ ],
70
  tokenizer: "tokenizer.json",
71
  config: "config.json",
72
  quantized: true,
73
  seq_len: 2048,
74
  size: "1.57GB",
75
  },
76
+ puffin_phi_v2_q4k: {
77
+ base_url:
78
+ "https://huggingface.co/lmz/candle-quantized-phi/resolve/main/",
79
  model: "model-puffin-phi-v2-q4k.gguf",
80
  tokenizer: "tokenizer-puffin-phi-v2.json",
81
  config: "puffin-phi-v2.json",
 
83
  seq_len: 2048,
84
  size: "798 MB",
85
  },
86
+ puffin_phi_v2_q80: {
87
+ base_url:
88
+ "https://huggingface.co/lmz/candle-quantized-phi/resolve/main/",
89
  model: "model-puffin-phi-v2-q80.gguf",
90
  tokenizer: "tokenizer-puffin-phi-v2.json",
91
  config: "puffin-phi-v2.json",
 
162
  const getValue = (id) => document.querySelector(`#${id}`).value;
163
  const modelID = getValue("model");
164
  const model = MODELS[modelID];
165
+ const weightsURL =
166
+ model.model instanceof Array
167
+ ? model.model.map((m) => model.base_url + m)
168
+ : model.base_url + model.model;
169
  const tokenizerURL = model.base_url + model.tokenizer;
170
  const configURL = model.base_url + model.config;
171
 
 
266
  const query = new URLSearchParams(window.location.search);
267
  const modelID = query.get("model");
268
  if (modelID) {
269
+ modelSelect.value = modelID;
270
  } else {
271
+ modelSelect.value = "phi_1_5_q4k";
272
  }
273
 
274
  for (const [i, { title, prompt }] of TEMPLATES.entries()) {
 
294
  prompt.value = template;
295
  prompt.style.height = "auto";
296
  prompt.style.height = prompt.scrollHeight + "px";
297
+ runBtn.disabled = false;
298
+ clearBtn.classList.remove("invisible");
299
  });
300
  modelSelect.addEventListener("change", (e) => {
301
  const query = new URLSearchParams(window.location.search);
302
  query.set("model", e.target.value);
303
  window.history.replaceState(
304
+ {},
305
+ "",
306
+ `${window.location.pathname}?${query}`
307
  );
308
+ window.parent.postMessage({ queryString: "?" + query }, "*");
309
  const model = MODELS[e.target.value];
310
  document.querySelector("#max-seq").max = model.seq_len;
311
  document.querySelector("#max-seq").nextElementSibling.value = 200;
 
354
  <main class="grid grid-cols-1 gap-8 relative">
355
  <span class="absolute text-5xl -ml-[1em]"> 🕯️ </span>
356
  <div>
357
+ <h1 class="text-5xl font-bold">Candle Phi 1.5 / Phi 2.0</h1>
358
  <h2 class="text-2xl font-bold">Rust/WASM Demo</h2>
359
  <p class="max-w-lg">
360
  The
361
+ <a
362
+ href="https://huggingface.co/microsoft/phi-1_5"
363
+ class="link"
364
+ target="_blank"
365
+ >Phi-1.5</a
366
+ >
367
+ and
368
+ <a
369
+ href="https://huggingface.co/microsoft/phi-2"
370
+ class="link"
371
+ target="_blank"
372
+ >Phi-2</a
373
+ >
374
+ models achieve state-of-the-art performance with only 1.3 billion and
375
+ 2.7 billion parameters, compared to larger models with up to 13
376
+ billion parameters. Here you can try the quantized versions.
377
+ Additional prompt examples are available in the
378
+ <a
379
+ href="https://arxiv.org/pdf/2309.05463.pdf#page=8"
380
+ class="link"
381
+ target="_blank"
382
+ >
383
+ technical report </a
384
+ >.
385
  </p>
386
  <p class="max-w-lg">
387
  You can also try
388
+ <a
389
+ href="https://huggingface.co/teknium/Puffin-Phi-v2"
390
+ class="link"
391
+ target="_blank"
392
+ >Puffin-Phi V2
393
  </a>
394
  quantized version, a fine-tuned version of Phi-1.5 on the
395
+ <a
396
+ href="https://huggingface.co/datasets/LDJnr/Puffin"
397
+ class="link"
398
+ target="_blank"
399
+ >Puffin dataset
400
  </a>
401
  </p>
402
  </div>
 
404
  <p class="text-xs italic max-w-lg">
405
  <b>Note:</b>
406
  When first run, the app will download and cache the model, which could
407
+ take a few minutes. The models are <b>~800MB</b> or <b>~1.57GB</b> in
408
  size.
409
  </p>
410
  </div>
 
416
  ></select>
417
  </div>
418
  <div>
419
+ <details>
420
+ <summary class="font-medium cursor-pointer">Prompt Templates</summary>
421
+ <form
422
+ id="prompt-templates"
423
+ class="grid grid-cols-1 sm:grid-cols-2 gap-1 my-2"
424
+ ></form>
425
+ </details>
426
  </div>
427
  <form
428
  id="form"
 
432
  <textarea
433
  type="text"
434
  id="prompt"
435
+ class="font-light text-lg w-full px-3 py-2 mx-1 resize-none outline-none"
436
  oninput="this.style.height = 0;this.style.height = this.scrollHeight + 'px'"
437
  placeholder="Add your prompt here..."
438
  >
 
563
  <div
564
  id="output-counter"
565
  hidden
566
+ class="ml-auto font-semibold grid-rows-1"
567
  ></div>
568
+ <p hidden id="output-generation" class="grid-rows-2 text-lg"></p>
569
  <span id="output-status" class="m-auto font-light"
570
  >No output yet</span
571
  >