mirror of
https://github.com/huggingface/candle.git
synced 2025-06-16 02:38:10 +00:00
Simple QOL.
- Add ms/token on llama2.c (15ms/token on my personal machine) - Hide `Run` buttons while models are not ready - Add dummy `progress` while weights are downloading (I briefly looked at putting a real progressbar.. and nothing easy enough came up.)
This commit is contained in:
@ -43,6 +43,7 @@ pub struct CurrentDecode {
|
||||
|
||||
pub struct App {
|
||||
status: String,
|
||||
loaded: bool,
|
||||
temperature: std::rc::Rc<std::cell::RefCell<f64>>,
|
||||
generated: String,
|
||||
n_tokens: usize,
|
||||
@ -81,6 +82,7 @@ impl Component for App {
|
||||
generated: String::new(),
|
||||
current_decode: None,
|
||||
worker,
|
||||
loaded: false,
|
||||
}
|
||||
}
|
||||
|
||||
@ -102,6 +104,7 @@ impl Component for App {
|
||||
match msg {
|
||||
Msg::SetModel(md) => {
|
||||
self.status = "weights loaded succesfully!".to_string();
|
||||
self.loaded = true;
|
||||
console_log!("loaded weights");
|
||||
self.worker.send(WorkerInput::ModelData(md));
|
||||
true
|
||||
@ -186,7 +189,15 @@ impl Component for App {
|
||||
</p>
|
||||
</div>
|
||||
{"temperature: "}<input type="range" min="0." max="1.2" step="0.1" value={self.temperature.borrow().to_string()} {oninput} id="temp"/>
|
||||
<button class="button" onclick={ctx.link().callback(move |_| Msg::Run)}> { "run" }</button>
|
||||
|
||||
<br/ >
|
||||
{
|
||||
if self.loaded{
|
||||
html!(<button class="button" onclick={ctx.link().callback(move |_| Msg::Run)}> { "run" }</button>)
|
||||
}else{
|
||||
html! { <progress id="progress-bar" aria-label="Loading weights..."></progress> }
|
||||
}
|
||||
}
|
||||
<br/ >
|
||||
<h3>
|
||||
{&self.status}
|
||||
|
@ -47,6 +47,7 @@ pub struct CurrentDecode {
|
||||
|
||||
pub struct App {
|
||||
status: String,
|
||||
loaded: bool,
|
||||
segments: Vec<Segment>,
|
||||
current_decode: Option<CurrentDecode>,
|
||||
worker: Box<dyn Bridge<Worker>>,
|
||||
@ -86,6 +87,7 @@ impl Component for App {
|
||||
segments: vec![],
|
||||
current_decode: None,
|
||||
worker,
|
||||
loaded: false,
|
||||
}
|
||||
}
|
||||
|
||||
@ -107,6 +109,7 @@ impl Component for App {
|
||||
match msg {
|
||||
Msg::SetDecoder(md) => {
|
||||
self.status = "weights loaded succesfully!".to_string();
|
||||
self.loaded = true;
|
||||
console_log!("loaded weights");
|
||||
self.worker.send(WorkerInput::ModelData(md));
|
||||
true
|
||||
@ -186,7 +189,10 @@ impl Component for App {
|
||||
<tr>
|
||||
<th>{name}</th>
|
||||
<th><audio controls=true src={format!("./{name}")}></audio></th>
|
||||
<th><button class="button" onclick={ctx.link().callback(move |_| Msg::Run(i))}> { "run" }</button></th>
|
||||
{ if self.loaded {
|
||||
html!(<th><button class="button" onclick={ctx.link().callback(move |_| Msg::Run(i))}> { "run" }</button></th>)
|
||||
}else{html!()}
|
||||
}
|
||||
</tr>
|
||||
}
|
||||
}).collect::<Html>()
|
||||
@ -197,7 +203,9 @@ impl Component for App {
|
||||
{&self.status}
|
||||
</h2>
|
||||
{
|
||||
if self.current_decode.is_some() {
|
||||
if !self.loaded{
|
||||
html! { <progress id="progress-bar" aria-label="loading weights…"></progress> }
|
||||
} else if self.current_decode.is_some() {
|
||||
html! { <progress id="progress-bar" aria-label="decoding…"></progress> }
|
||||
} else { html!{
|
||||
<blockquote>
|
||||
|
Reference in New Issue
Block a user