| |
| """ |
| Gradient.com এ Lychee-GPT-9B চালানোর জন্য script |
| Gradient Notebook এ এটা run করুন |
| """ |
|
|
| import torch |
| from transformers import AutoTokenizer, AutoModelForCausalLM |
| import gradio as gr |
| import os |
|
|
| print("🚀 Installing dependencies...") |
| os.system("pip install -q torch transformers gradio accelerate safetensors") |
|
|
| print("📥 Loading Lychee-GPT-9B model...") |
| print("⏱️ এটা 5-10 মিনিট লাগতে পারে...") |
|
|
| MODEL_ID = "mx-llms/Lychee-GPT-9B" |
|
|
| try: |
| |
| tokenizer = AutoTokenizer.from_pretrained( |
| MODEL_ID, |
| trust_remote_code=True |
| ) |
| |
| |
| model = AutoModelForCausalLM.from_pretrained( |
| MODEL_ID, |
| torch_dtype=torch.float32, |
| device_map="auto", |
| trust_remote_code=True, |
| ) |
| |
| model.eval() |
| print("✅ Model loaded successfully!") |
| |
| except Exception as e: |
| print(f"❌ Error loading model: {e}") |
| model = None |
| tokenizer = None |
|
|
| def generate_text(prompt, max_length=256, temperature=0.7, top_p=0.9): |
| """Generate text using Lychee-GPT-9B""" |
| if model is None or tokenizer is None: |
| return "❌ Model failed to load" |
| |
| try: |
| inputs = tokenizer(prompt, return_tensors="pt") |
| |
| with torch.no_grad(): |
| output = model.generate( |
| inputs["input_ids"], |
| max_new_tokens=int(max_length), |
| temperature=float(temperature), |
| top_p=float(top_p), |
| do_sample=True, |
| pad_token_id=tokenizer.eos_token_id, |
| ) |
| |
| response = tokenizer.decode(output[0], skip_special_tokens=True) |
| |
| if prompt in response: |
| response = response.replace(prompt, "", 1).strip() |
| |
| return response if response else "No response generated" |
| |
| except Exception as e: |
| return f"❌ Error: {str(e)}" |
|
|
| |
| print("\n🎨 Creating Gradio interface...") |
|
|
| with gr.Blocks(title="Lychee-GPT-9B", theme=gr.themes.Soft()) as demo: |
| gr.Markdown(""" |
| # 🎉 Lychee-GPT-9B Demo |
| |
| আপনার নিজস্ব LLM Model - Gradient এ চলছে! |
| |
| ⏱️ **প্রথম response একটু slow হতে পারে (model warming up)** |
| """) |
| |
| with gr.Row(): |
| with gr.Column(scale=1): |
| prompt = gr.Textbox( |
| label="প্রশ্ন/Prompt", |
| placeholder="কিছু লিখুন...", |
| lines=4, |
| info="আপনার প্রশ্ন বা prompt দিন" |
| ) |
| |
| with gr.Row(): |
| max_len = gr.Slider( |
| label="Max Length", |
| minimum=10, |
| maximum=512, |
| value=256, |
| step=10, |
| ) |
| |
| with gr.Row(): |
| temp = gr.Slider( |
| label="Temperature", |
| minimum=0.0, |
| maximum=1.0, |
| value=0.7, |
| step=0.1, |
| ) |
| |
| top_p = gr.Slider( |
| label="Top P", |
| minimum=0.0, |
| maximum=1.0, |
| value=0.9, |
| step=0.05, |
| ) |
| |
| submit_btn = gr.Button("🚀 Generate", variant="primary", size="lg") |
| |
| with gr.Column(scale=1): |
| output = gr.Textbox( |
| label="Response", |
| lines=10, |
| interactive=False, |
| ) |
| |
| |
| gr.Examples( |
| examples=[ |
| ["বাংলা ভাষা সম্পর্কে বলুন"], |
| ["পাইথন প্রোগ্রামিং কি?"], |
| ["একটি সংক্ষিপ্ত গল্প বলুন"], |
| ["কৃত্রিম বুদ্ধিমত্তা কি?"], |
| ], |
| inputs=prompt, |
| label="উদাহরণ প্রশ্ন" |
| ) |
| |
| |
| submit_btn.click( |
| fn=generate_text, |
| inputs=[prompt, max_len, temp, top_p], |
| outputs=output, |
| ) |
| |
| |
| prompt.submit( |
| fn=generate_text, |
| inputs=[prompt, max_len, temp, top_p], |
| outputs=output, |
| ) |
|
|
| print("\n🌐 Launching Gradio interface...") |
| print("=" * 50) |
| print("Space URL will appear below 👇") |
| print("=" * 50) |
|
|
| |
| demo.launch( |
| server_name="0.0.0.0", |
| server_port=7860, |
| share=True, |
| show_error=True, |
| ) |