কনটেন্টে যান

AI Software Development Life Cycle (AI-SDLC)

ইন্টেলিজেন্ট সিস্টেম বানানোর সিস্টেমেটিক অ্যাপ্রোচ

AI-SDLC ফ্রেমওয়ার্ক

ট্র্যাডিশনাল সফটওয়্যার ডেভেলপমেন্টের চেয়ে AI প্রজেক্টের চ্যালেঞ্জ আলাদা:

  • ডেটার ওপর নির্ভরতা: আউটপুটের মান ইনপুটের মানের ওপর
  • প্রোবাবিলিস্টিক আউটপুট: মডেলের কনফিডেন্সের ওপর ভিত্তি করে ফলাফল বদলায়
  • কন্টিনিউয়াস লার্নিং: মডেলকে অ্যাডাপ্ট আর রিট্রেন করতে হয়
  • ইভ্যালুয়েশন কমপ্লেক্সিটি: ML-তে "সঠিক" সাবজেক্টিভ
flowchart TD
    A[1. প্রবলেম ডেফিনিশন] --> B[2. ডেটা কালেকশন]
    B --> C[3. ডেটা প্রিপারেশন]
    C --> D[4. ফিচার ইঞ্জিনিয়ারিং]
    D --> E[5. মডেল ট্রেনিং]
    E --> F[6. ইভ্যালুয়েশন]
    F -->|সন্তুষ্ট না| G[ইটারেট]
    G --> D
    F -->|সন্তুষ্ট| H[7. ডিপ্লয়মেন্ট]
    H --> I[8. মনিটরিং]
    I -->|ড্রিফট ধরা পড়েছে| A
    style A fill:#e3f2fd
    style H fill:#c8e6c9
    style I fill:#fff3e0

ফেজ-বাই-ফেজ ব্রেকডাউন

ফেজ ১: প্রবলেম ডেফিনিশন

ট্র্যাডিশনাল: রিকোয়ারমেন্টস ডকুমেন্ট লেখো AI-চালিত: ML প্রবলেম টাইপ ডিফাইন করো

প্রবলেম টাইপ উদাহরণ আউটপুট
ক্লাসিফিকেশন স্প্যাম ডিটেকশন ক্যাটেগরি লেবেল
রিগ্রেশন প্রাইস প্রেডিকশন কন্টিনিউয়াস ভ্যালু
ক্লাস্টারিং কাস্টমার সেগমেন্টেশন গ্রুপ অ্যাসাইনমেন্ট
জেনারেশন চ্যাটবট রেসপন্স টেক্সট কনটেন্ট

কী কী প্রশ্ন:

  • AI কোন সিদ্ধান্তে সাহায্য করবে?
  • কোন ডেটা অ্যাভেইলেবল?
  • "সঠিক" বলতে কী বোঝায়?
  • এরর কীভাবে হ্যান্ডেল হবে?

ফেজ ২: ডেটা কালেকশন

সবচেয়ে ক্রিটিক্যাল ফেজ — আবর্জনা ঢুকলে আবর্জনা বের হয়।

flowchart LR
    A[র ডেটা সোর্স] --> B[ইন্টারনাল DB]
    A --> C[APIs]
    A --> D[ইউজার ফিডব্যাক]
    A --> E[পাবলিক ডেটাসেট]
    A --> F[ওয়েব স্ক্র্যাপিং]
    B --> G[ডেটা লেক]
    C --> G
    D --> G
    E --> G
    F --> G
    style G fill:#fff3e0

ডেটা কোয়ালিটি চেকলিস্ট:

  • যথেষ্ট ভলিউম (ন্যূনতম হাজার হাজার উদাহরণ)
  • সুপারভাইজড লার্নিং-এর জন্য লেবেলড ডেটা
  • কোনো সিস্টেমেটিক বায়াস নেই
  • প্রোডাকশন ট্রাফিকের প্রতিনিধি
  • প্রাইভেসি-কমপ্লায়েন্ট

ফেজ ৩: ডেটা প্রিপারেশন

ML-এর জন্য ডেটা ক্লিন আর ট্রান্সফর্ম করা।

# উদাহরণ: ডেটা প্রিপারেশন পাইপলাইন
def prepare_data(raw_data):
    # ডুপ্লিকেট সরাও
    data = remove_duplicates(raw_data)

    # মিসিং ভ্যালু হ্যান্ডেল
    data = fill_missing(data, strategy='mean')

    # ফিচার নরমালাইজ
    data = normalize(data, columns=['price', 'quantity'])

    # ইভ্যালুয়েশনের জন্য স্প্লিট
    train, test = split_data(data, test_size=0.2)

    return train, test

ফেজ ৪: ফিচার ইঞ্জিনিয়ারিং

র ডেটাকে মডেল-ফ্রেন্ডলি ফরম্যাটে বদলাও।

র ডেটা ফিচার কেন?
"2024-01-15" day_of_week=2 দিনভেদে প্যাটার্ন বদলায়
"user@example.com" is_corporate=True বিজনেস বনাম পার্সোনাল
1234.56 log(price)=7.12 ডিস্ট্রিবিউশন নরমালাইজ

ফেজ ৫: মডেল ট্রেনিং

flowchart TD
    A[ট্রেনিং ডেটা] --> B[অ্যালগরিদম বেছে নাও]
    B --> C{টাস্ক টাইপ?}
    C -->|ক্লাসিফিকেশন| D[Random Forest, XGBoost, Neural Net]
    C -->|রিগ্রেশন| E[Linear, Gradient Boosting]
    C -->|টেক্সট| F[LLM, Transformer]
    D --> G[মডেল ট্রেন]
    E --> G
    F --> G
    G --> H[হাইপারপ্যারামিটার টিউনিং]
    H --> I[ট্রেইনড মডেল]
    style G fill:#c8e6c9

Citizen Developer-দের জন্য অ্যালগরিদম:

  • scikit-learn: বিগিনার-ফ্রেন্ডলি ML লাইব্রেরি
  • LangChain: টেক্সট টাস্কের জন্য LLM ইন্টিগ্রেশন
  • LM Studio: প্রাইভেসির জন্য লোকাল ইনফারেন্স

ফেজ ৬: ইভ্যালুয়েশন

ট্র্যাডিশনাল টেস্টিং থেকে মৌলিক পার্থক্য:

flowchart LR
    A[টেস্ট সেট প্রেডিকশন] --> B{গ্রাউন্ড ট্রুথের সাথে তুলনা}
    B --> C[মেট্রিক্স]
    C --> D[অ্যাক্যুরেসি] & E[প্রিসিশন] & F[রিকল]
    D --> G{সন্তোষজনক?}
    E --> G
    F --> G
    G -->|না| H[এরর অ্যানালাইজ]
    H --> I[ফিচার ইঞ্জিনিয়ারিং / রিট্রেন]
    G -->|হ্যাঁ| J[মডেল অনুমোদন]
    style J fill:#c8e6c9

ইভ্যালুয়েশন মেট্রিক্স:

মেট্রিক ইউজ কেস ভালো ভ্যালু
অ্যাক্যুরেসি ব্যালেন্সড ক্লাস >90%
প্রিসিশন ফলস পজিটিভ মিনিমাইজ >85%
রিকল ট্রু কেস মিস করো না >85%
F1 Score প্রিসিশন/রিকল ব্যালেন্স >80%

ফেজ ৭: ডিপ্লয়মেন্ট

flowchart TD
    A[ট্রেইনড মডেল] --> B[মডেল এক্সপোর্ট]
    B --> C[API / সার্ভিস]
    C --> D[Streamlit UI]
    D --> E[প্রোডাকশন ইউজার]
    style D fill:#c8e6c9

এই প্রজেক্টের জন্য:

# লোকাল LLM-সহ LangChain ব্যবহার
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    base_url="http://localhost:1234/v1",
    model="qwen2.5:1.5b"
)

ফেজ ৮: মনিটরিং

AI সিস্টেমে চলমান মনোযোগ দরকার:

flowchart LR
    A[প্রোডাকশন] --> B[প্রেডিকশন মনিটর]
    B --> C{কোয়ালিটি ঠিক আছে?}
    C -->|হ্যাঁ| D[চালিয়ে যাও]
    C -->|ড্রিফট| E[মডেল রিট্রেন]
    C -->|ড্রিফট| F[ডেটা রি-লেবেল]
    E --> G[নতুন মডেল ভার্সন]
    F --> G
    G --> A
    style E fill:#ffcccc
    style F fill:#ffcccc

মনিটরিং মেট্রিক্স:

  • প্রেডিকশন ডিস্ট্রিবিউশন
  • ইউজার স্যাটিসফ্যাকশন রেটিং
  • এরর রেট ট্রেন্ড
  • ডেটা ড্রিফট ডিটেকশন

MLOps: AI-এর DevOps সমতুল্য

flowchart TD
    subgraph Development
        A[ডেটা] --> B[ট্রেন]
        B --> C[টেস্ট]
        C --> D[রেজিস্টার]
    end
    subgraph Deployment
        D --> E[স্টেজ]
        E --> F[প্রোডাকশন]
    end
    subgraph Monitoring
        F --> G[মনিটর]
        G --> H[তুলনা]
        H -->|থ্রেশহোল্ডের নিচে| I[রিট্রেন]
        I --> A
    end
    style G fill:#fff3e0
    style H fill:#fff3e0

মূল MLOps প্র্যাকটিস:

  1. ভার্সন কন্ট্রোল — মডেল, ডেটা, কোড
  2. অটোমেটেড পাইপলাইন — ট্রেন → টেস্ট → ডিপ্লয়
  3. A/B টেস্টিং — মডেল ভার্সন তুলনা
  4. রোলব্যাক ক্যাপাবিলিটি — আগের মডেলে ফেরা

এই প্রজেক্টে প্র্যাকটিক্যাল অ্যাপ্লিকেশন

এই ডকুমেন্টেশনের মডিউলগুলো AI-SDLC ফলো করে:

মডিউল AI-SDLC ফেজ
ISP Classifier ডেটা → ট্রেন → ইভ্যালুয়েট
Qwen + RAG নলেজ → এম্বেড → রিট্রিভ
MLOps Pipeline মনিটর → ট্রিগার → রিট্রেন

পরবর্তী পদক্ষেপ

  • Citizen Developer Guide - গভীর ML এক্সপার্টাইজ ছাড়া AI-SDLC কীভাবে অ্যাপ্লাই করবে
  • Why Reasoning Matters - প্রতিটা SDLC ফেজে রিজনিং টেকনিক
  • ISP Classifier - AI-SDLC অ্যাকশনে দেখো