AI Infrastructure & DevOps

AI Infrastructure: Hosting Python Streamlit Applications on Hugging Face Spaces

আপনি যখন পাইথন বা কাস্টম ডেটাসেট ব্যবহার করে কোনো মেশিন লার্নিং মডেল বা এআই ইঞ্জিন ট্রেইন করেন, তখন সেটিকে ব্যবহারকারীদের জন্য একটি সুন্দর ওয়েব ইন্টারফেসে রূপান্তর করার সবচেয়ে সহজ টুল হলো **Streamlit**। তবে প্রথাগত সার্ভার বা ভিপিএস (VPS)-এ এই অ্যাপগুলো হোস্ট করতে হলে ডকার কনফিগারেশন এবং ক্লাউড সাবস্ক্রিপশন কস্টের প্রয়োজন পড়ে।

এই সমস্যার নিখরচায় সেরা আধুনিক সমাধান হলো **Hugging Face Spaces**। এটি ডেটা সায়েন্টিস্ট এবং রিচার্জারদের সম্পূর্ণ ফ্রিতে ১৬ জিবি র‍্যাম এবং ২ কোর সিপিইউ সম্পন্ন সার্ভার এনভায়রনমেন্ট প্রদান করে, যেখানে গিট (Git) পুশ মেথডের সাহায্যে যেকোনো পাইথন অ্যাপ্লিকেশন লাইভ করে দেওয়া যায়।

১. মূল অ্যাপ্লিকেশন কোড তৈরি (`app.py`)

আপনার প্রোজেক্ট ডিরেক্টরিতে একটি বেসিক কিন্তু এআই রেডি ফ্রন্টএন্ড লেআউট তৈরি করতে নিচের কোডটি ব্যবহার করুন:

import streamlit as st
import time

# ১. ওয়েব পেজ টাইটেল এবং আইকন কনফিগারেশন
st.set_page_config(page_title="Ahyan Creations AI Hub", page_icon="🤖", layout="centered")

st.title("🤖 Custom Trained AI Model Explorer")
st.write("Welcome to the next-gen inference system cloud engine.")

# ২. ইউজার ইনপুট ইন্টারফেস
user_prompt = st.text_area("Enter your technical context query:", placeholder="Type here...")

if st.button("Synchronize Engine"):
    if user_prompt:
        with st.spinner("Processing deep neural network validation..."):
            time.sleep(2) # মডেলের ইনফারেন্স টাইম সিমুলেশন
            st.success("Matrix Synchronized Successfully!")
            st.info(f"Engine Echo Response: Processing your request pipeline for context -> {user_prompt}")
    else:
        st.warning("Please provide a valid input payload.")

ধাপ ২: ডিপেন্ডেন্সি ও এনভায়রনমেন্ট ডিক্লেয়ারেশন

হাগিং ফেস স্পেসকে আপনার স্ক্রিপ্টের রানিং লাইব্রেরিগুলো চিনিয়ে দেওয়ার জন্য ডিরেক্টরিতে requirements.txt ফাইলটি তৈরি করুন:

streamlit==1.32.0
numpy
pandas

ধাপ ৩: স্পেস তৈরি এবং ডেপ্লয়মেন্ট পাইপলাইন

  1. প্রথমে আপনার Hugging Face Account-এ লগইন করে "New Space" বাটনে ক্লিক করুন।
  2. আপনার স্পেসের একটি নাম দিন এবং SDK অপশন থেকে "Streamlit" সিলেক্ট করুন।
  3. লাইসেন্স অপশন 'MIT' রেখে স্পেসটি ক্রিয়েট করুন।
  4. এবার টার্মিনাল বা টার্মাক্স থেকে গিট ক্লোন করে আপনার তৈরি করা app.py এবং requirements.txt ফাইল দুটি পুশ করে দিন:
# হাগিং ফেস রিপোজিটরি সিঙ্ক ও পুশ মেথড
git add .
git commit -m "feat: deploy core streamlit engine matrix"
git push origin main

ফাইল পুশ হওয়ার সাথে সাথে হাগিং ফেস ব্যাকএন্ডে কন্টেইনার ইমেজ বিল্ড করা শুরু করবে এবং মাত্র কয়েক মিনিটের মধ্যে আপনার অ্যাপ্লিকেশনটি গ্লোবালি লাইভ হয়ে যাবে।

মোবাইল অপ্টিমাইজেশন টিপ: যেহেতু হাগিং ফেসের ফ্রি টায়ারে মেমোরি লিমিট ১৬ জিবি, তাই বড় আকারের মডেল ফাইল (যেমন .bin বা .safetensors) সরাসরি কোডের সাথে গিট পুশ না করে প্রথমে Hugging Face Model Registry-তে আপলোড করুন। পরবর্তীতে আপনার app.py ফাইলের ভেতরে from_pretrained("username/model_name") এপিআই মেথড ব্যবহার করে কল করুন। এতে র‍্যাম ক্র্যাশ হবে না।