|
import streamlit as st |
|
from transformers import AutoTokenizer, AutoModelWithLMHead |
|
|
|
tokenizer = AutoTokenizer.from_pretrained("mistralai/Mixtral-8x7B-Instruct-v0.1") |
|
@st.cache_data |
|
def load_model(model_name): |
|
model = AutoModelWithLMHead.from_pretrained("mistralai/Mixtral-8x7B-Instruct-v0.1") |
|
return model |
|
|
|
model = load_model("mistralai/Mixtral-8x7B-Instruct-v0.1") |
|
|
|
def infer(input_ids, max_length, temperature, top_k, top_p): |
|
|
|
output_sequences = model.generate( |
|
input_ids=input_ids, |
|
max_length=max_length, |
|
temperature=temperature, |
|
top_k=top_k, |
|
top_p=top_p, |
|
do_sample=True, |
|
num_return_sequences=1 |
|
) |
|
|
|
return output_sequences |
|
default_value = "Ask me anything!" |
|
|
|
|
|
st.title("Chatbot") |
|
|
|
sent = st.text_area("Message", default_value, height = 100) |
|
max_length = st.sidebar.slider("Max Length", min_value = 10, max_value=30) |
|
temperature = st.sidebar.slider("Temperature", value = 1.0, min_value = 0.0, max_value=1.0, step=0.05) |
|
top_k = st.sidebar.slider("Top-k", min_value = 0, max_value=5, value = 0) |
|
top_p = st.sidebar.slider("Top-p", min_value = 0.0, max_value=1.0, step = 0.05, value = 0.9) |
|
|
|
encoded_prompt = tokenizer.encode(sent, add_special_tokens=False, return_tensors="pt") |
|
if encoded_prompt.size()[-1] == 0: |
|
input_ids = None |
|
else: |
|
input_ids = encoded_prompt |
|
|
|
|
|
output_sequences = infer(input_ids, max_length, temperature, top_k, top_p) |
|
|
|
|
|
|
|
for generated_sequence_idx, generated_sequence in enumerate(output_sequences): |
|
print(f"=== GENERATED SEQUENCE {generated_sequence_idx + 1} ===") |
|
generated_sequences = generated_sequence.tolist() |
|
|
|
|
|
text = tokenizer.decode(generated_sequence, clean_up_tokenization_spaces=True) |
|
|
|
|
|
|
|
|
|
|
|
total_sequence = ( |
|
sent + text[len(tokenizer.decode(encoded_prompt[0], clean_up_tokenization_spaces=True)) :] |
|
) |
|
|
|
generated_sequences.append(total_sequence) |
|
print(total_sequence) |
|
|
|
|
|
st.write(generated_sequences[-1]) |