|
import streamlit as st |
|
from transformers import pipeline, AutoTokenizer |
|
from langchain_core.output_parsers import StrOutputParser |
|
|
|
|
|
model_name = "Qwen/Qwen2.5-0.5B-Instruct" |
|
tokenizer = AutoTokenizer.from_pretrained(model_name, use_fast=True) |
|
pipe = pipeline("text-generation", model=model_name, device=-1) |
|
parser = StrOutputParser() |
|
|
|
|
|
st.title("Optimized Batch Text Generation with Qwen Model") |
|
|
|
|
|
user_input = st.text_area("Enter your messages (one per line):", "Who are you?\nWhat is your purpose?") |
|
|
|
|
|
if st.button("Generate"): |
|
|
|
user_messages = user_input.splitlines() |
|
messages = [message.strip() for message in user_messages if message.strip()] |
|
|
|
|
|
tokenized_inputs = [tokenizer(message, return_tensors='pt') for message in messages] |
|
|
|
|
|
outputs = [pipe(input_ids=tokenized_input['input_ids'], max_new_tokens=50)[0] for tokenized_input in tokenized_inputs] |
|
|
|
|
|
st.write("Generated Responses:") |
|
for i, output in enumerate(outputs): |
|
generated_text = output['generated_text'] |
|
result = parser.invoke(generated_text) |
|
st.write(f"Input {i+1}: {messages[i]}") |
|
st.write(f"Response {i+1}: {result}\n") |