Gabriel Okiri
test
2252f9f
raw
history blame
1.99 kB
import gradio as gr
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
# Model initialization
model_name = "gpt2" # or your specific model
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
# Add special tokens for languages
special_tokens = {"additional_special_tokens": ["[YORUBA]", "[IGBO]", "[HAUSA]"]}
tokenizer.add_special_tokens(special_tokens)
model.resize_token_embeddings(len(tokenizer))
# Move model to GPU if available
device = "cuda" if torch.cuda.is_available() else "cpu"
model.to(device)
def generate_text(prompt, language):
# Add language tag to prompt
tagged_prompt = f"[{language.upper()}] {prompt}"
# Tokenize
inputs = tokenizer(tagged_prompt, return_tensors="pt").to(device)
# Generate
outputs = model.generate(
**inputs,
max_length=100,
num_return_sequences=1,
temperature=0.7,
pad_token_id=tokenizer.eos_token_id
)
# Decode and return
return tokenizer.decode(outputs[0], skip_special_tokens=True)
# Create Gradio interface
iface = gr.Interface(
fn=generate_text,
inputs=[
gr.Textbox(label="Enter your prompt"),
gr.Dropdown(choices=["YORUBA", "IGBO", "HAUSA"], label="Select Language")
],
outputs=gr.Textbox(label="Generated Text"),
title="Nigerian Language Generator",
description="Generate text in Yoruba, Igbo, or Hausa using a fine-tuned GPT model."
)
if __name__ == "__main__":
iface.launch()
# import sys
# import os
# sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
# from model.config import ModelConfig
# from model.model import NigerianLanguageModel
# from interface.gradio_app import create_interface
# def main():
# config = ModelConfig()
# model = NigerianLanguageModel(config)
# interface = create_interface(model)
# interface.launch()
# if __name__ == "__main__":
# main()