File size: 1,927 Bytes
36942d4
852d26e
 
 
 
 
 
 
cee13f4
852d26e
095073f
341bd22
852d26e
095073f
 
852d26e
341bd22
 
852d26e
fc2aea6
852d26e
 
 
341bd22
852d26e
341bd22
852d26e
 
485360d
852d26e
 
 
 
 
 
2918965
852d26e
341bd22
 
b56c1a4
852d26e
 
 
 
341bd22
852d26e
 
 
 
341bd22
852d26e
341bd22
852d26e
341bd22
37765a6
852d26e
 
341bd22
0a364b2
852d26e
5c41f51
0a364b2
 
 
67ef8c1
 
341bd22
 
 
e2b2cdb
341bd22
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import os
import threading
import gradio as gr
from transformers import (
    AutoModelForCausalLM,
    AutoTokenizer,
    TextIteratorStreamer,
)

MODEL_NAME = "MaxLSB/LeCarnet-8M"
hf_token = os.environ["HUGGINGFACEHUB_API_TOKEN"]

# Load tokenizer & model locally
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME, token=hf_token)
model = AutoModelForCausalLM.from_pretrained(MODEL_NAME, token=hf_token)
model.eval()

def respond(
    prompt: str,
    chat_history,
    max_tokens: int,
    temperature: float,
    top_p: float,
):
    inputs = tokenizer(prompt, return_tensors="pt")

    streamer = TextIteratorStreamer(
        tokenizer,
        skip_prompt=False,
        skip_special_tokens=True,
    )

    generate_kwargs = dict(
        **inputs,
        streamer=streamer,
        max_new_tokens=max_tokens,
        do_sample=True,
        temperature=temperature,
        top_p=top_p,
        eos_token_id=tokenizer.eos_token_id,
    )

    thread = threading.Thread(target=model.generate, kwargs=generate_kwargs)
    thread.start()

    accumulated = ""
    for new_text in streamer:
        accumulated += new_text
        yield accumulated

# Wire it up in Gradio
demo = gr.ChatInterface(
    fn=respond,
    additional_inputs=[
        gr.Slider(1, 512, value=512, step=1, label="Max new tokens"),
        gr.Slider(0.1, 2.0, value=0.7, step=0.1, label="Temperature"),
        gr.Slider(0.1, 1.0, value=0.9, step=0.05, label="Top‑p"),
    ],
    title="LeCarnet-8M",
    description="Type the beginning of a sentence and watch the model finish it.",
    examples = [
    ["Il était une fois un petit garçon qui vivait dans un village paisible."],
    ["Il était une fois une grenouille qui rêvait de toucher les étoiles chaque nuit depuis son étang."],
    ["Il était une fois un petit lapin perdu"],
    ],
    cache_examples=False,
)

if __name__ == "__main__":
    demo.queue()
    demo.launch()