AI-д зориулсан архитектур: Ухаалаг автоматжуулалтын эрин үед уян хатан програм хангамжийн системийг бий болгох | B4N1

AI-д зориулсан архитектур: Ухаалаг автоматжуулалтын эрин үед уян хатан програм хангамжийн системийг бий болгох

9 months ago · b4n1 Read time: 7 min

Танилцуулга

Хиймэл оюун ухаан (AI) гарч ирснээр програм хангамжийн системийг зохион бүтээх, хөгжүүлэх, ашиглахад хувьсгал хийсэн. AI технологи тасралтгүй хөгжиж, төлөвшихийн хэрээр програм хангамжийн архитекторууд уян хатан байдал, өргөтгөх чадвар, гүйцэтгэлийн оновчтой байдлыг хангахын зэрэгцээ эдгээр чадавхийг системдээ нэгтгэх сорилттой тулгарч байна. Энэ нийтлэлд бид хиймэл оюун ухаанаар ажилладаг програм хангамжийн системийг зохион бүтээх дэвшилтэт стратегиудыг судлах бөгөөд уян хатан байдал, өргөтгөх чадвар, гүйцэтгэлийн оновчлолын гол талуудад анхаарлаа хандуулах болно.

Хиймэл оюун ухаанаар ажилладаг систем дэх уян хатан байдлын ач холбогдол

Тохиромжтой байдал нь програм хангамжийн архитектурын чухал тал юм, ялангуяа хиймэл оюун ухаанаар ажилладаг системүүдийн хувьд. AI системүүд нь угаасаа нарийн төвөгтэй бөгөөд алдаа гаргах хандлагатай байдаг бөгөөд энэ нь системийн сул зогсолт, өгөгдөл алдагдах, нэр хүндэд хохирол учруулах зэрэг ихээхэн үр дагаварт хүргэж болзошгүй юм. Хиймэл оюун ухаанаар ажилладаг уян хатан систем нь бүтэлгүйтлийг тэсвэрлэж, сэргээх чадвартай байх ёстой бөгөөд ингэснээр бизнесийн үйл ажиллагаанд хамгийн бага саад учруулах болно.

Хиймэл оюун ухаанаар ажилладаг уян хатан системийг бий болгох стратеги

  1. Алдаа хүлээцтэй байдал: Илүүдэл болон бүтэлгүйтэл зэрэг гэмтэлд тэсвэртэй механизмуудыг хэрэгжүүлэх нь хиймэл оюун ухаанаар ажилладаг системүүд бүрэлдэхүүн хэсэг эвдэрсэн үед ч үргэлжлүүлэн ажиллахад тусална.
  2. Алдаа илрүүлэх, залруулах: Алдаа илрүүлэх, залруулах найдвартай механизмыг хэрэгжүүлэх нь хиймэл оюун ухаанаар ажилладаг системүүдийн алдааг олж илрүүлэх, багасгахад тусалж, системийн сул зогсолт, өгөгдөл алдагдах эрсдэлийг бууруулдаг.
  3. Тасралтгүй хяналт, санал хүсэлт: Тасралтгүй хяналт, санал хүсэлтийн механизмууд нь хиймэл оюун ухаанаар ажилладаг систем дэх асуудлуудыг тодорхойлж, шийдвэрлэхэд тусалж, тэдгээр нь уян хатан, оновчтой гүйцэтгэлийг хангадаг.

Жишээ: Зэвийг ашигласан алдааг тэсвэрлэх чадвартай хиймэл оюун ухаантай систем

// Шаардлагатай номын санг импортлох
std::thread ашиглах;
std :: sync :: {Arc, Mutex} ашиглах;

// AI загварыг төлөөлөх бүтцийг тодорхойлно
бүтэц AiModel {
    загвар: Arc<Mutex<f64>>,
}

// AI загварыг сургах функцийг тодорхойлно
fn train_model(загвар: &Arc<Mutex<f64>>) {
    // AI загварыг сургах
    thread::sleep(std::time::Duration::from_secs(5));
    *model.lock().unwrap() = 0.5;
}

// AI загварыг ашиглан таамаглал гаргах функцийг тодорхойлно
fn make_prediction(загвар: &Arc<Mutex<f64>>) -> f64 {
    // AI загварыг ашиглан таамаглал гаргах
    thread::sleep(std::time::Duration::from_secs(2));
    *model.lock(). задлах()
}

// Гэмтэлд тэсвэртэй хиймэл оюун ухаанаар ажилладаг системийг бий болгох функцийг тодорхойлно
fn create_fault_tolerant_system() -> (AiModel, AiModel) {
    // AI загварын хоёр жишээг үүсгэ
    загвар1 = Arc::new(Mutex::new(0.0));
    загвар2 = Arc::new(Mutex::new(0.0));

    // AI загваруудыг сургах
    галт тэрэгний_загвар(&загвар1);
    галт тэрэгний_загвар(&загвар2);

    // Хоёр AI загварыг буцаана уу
    (загвар1, загвар2)
}

fn main() {
    // Гэмтэлд тэсвэртэй хиймэл оюун ухаанаар ажилладаг системийг бий болгох
    зөвшөөрөх (загвар1, загвар2) = алдаа_тэсвэртэй_системийг үүсгэх();

    // AI загваруудыг ашиглан таамаглал гаргах
    урьдчилан таамаглах1 = урьдчилан таамаглах (& загвар1);
    урьдчилан таамаглах2 = урьдчилан таамаглах (& загвар2);

    // Таамаглалыг хэвлэх
    println!("Таамаглал 1: {}", таамаглал1);
    println!("Таамаглал 2: {}", таамаглал2);
}

Энэхүү жишээ нь AI загварын хоёр жишээг бүтээж, сургадаг Rust-ийг ашиглан гэмтэлд тэсвэртэй хиймэл оюун ухаанаар ажилладаг системийг харуулж байна. AI загваруудын аль нэг нь бүтэлгүйтсэн ч систем нь үргэлжлүүлэн ажиллах боломжтой бөгөөд бизнесийн үйл ажиллагаанд хамгийн бага саад учруулах болно.

Хиймэл оюун ухаанаар ажилладаг систем дэх өргөтгөх чадварын ач холбогдол

Өргөтгөх чадвар нь програм хангамжийн архитектурын өөр нэг чухал тал юм, ялангуяа хиймэл оюун ухаанаар ажилладаг системүүдийн хүрээнд. AI системүүд нь их хэмжээний өгөгдлийг боловсруулахад ихээхэн хэмжээний тооцооллын нөөц шаарддаг бөгөөд энэ нь гүйцэтгэлийн бууралт, өргөтгөх чадварын асуудалд хүргэж болзошгүй юм. Өргөтгөх боломжтой хиймэл оюун ухаанаар ажилладаг систем нь ажлын ачаалал, өгөгдлийн хэмжээг өөрчлөхөд дасан зохицож, оновчтой гүйцэтгэл, хариу үйлдэл үзүүлэх чадвартай байх ёстой.

Өргөтгөх боломжтой хиймэл оюун ухаанаар ажилладаг системийг бий болгох стратеги

  1. Хэвтээ масштабаар тооцох: Ачаалал тэнцвэржүүлэх, автоматаар масштаблах зэрэг хэвтээ масштабын механизмыг хэрэгжүүлэх нь хиймэл оюун ухаанаар ажилладаг системүүд өөрчлөгдөж буй ажлын ачаалал болон өгөгдлийн эзлэхүүнд дасан зохицоход тусалдаг.
  2. Босоо масштабаар тооцох: Техник хангамж, программ хангамжийн бүрэлдэхүүн хэсгүүдийг шинэчлэх зэрэг босоо масштабын механизмыг хэрэгжүүлэх нь хиймэл оюун ухаанаар ажилладаг системүүд тооцооллын нэмэгдүүлсэн эрэлт хэрэгцээг хангахад тусална.
  3. Түгээмэл тооцоолол: Өгөгдлийн параллелизм ба загварын параллелизм гэх мэт тархсан тооцооллын механизмуудыг хэрэгжүүлэх нь хиймэл оюун ухаанаар ажилладаг системүүд их хэмжээний өгөгдлийг зэрэгцүүлэн боловсруулахад тусална.

Жишээ: Go-г ашиглан өргөтгөх боломжтой хиймэл оюун ухаантай систем

// Шаардлагатай номын санг импортлох
үндсэн багц

импортлох (
    "fmt"
    "синк"
)

// AI загварыг төлөөлөх бүтцийг тодорхойлно
AiModel бүтцийг төрөл {
    загвар []float64
}

// AI загварыг сургах функцийг тодорхойлно
func trainModel(загвар *AiModel) {
    // AI загварыг сургах
    би хувьд := range model.model {
        загвар.загвар[i] = 0.5
    }
}

// AI загварыг ашиглан таамаглал гаргах функцийг тодорхойлно
func makePrediction(загвар *AiModel) []float64 {
    // AI загвар ашиглан таамаглал дэвшүүлэх
    таамаглал := make([]float64, len(model.model))
    i := мужын таамаглал {
        таамаглал[i] = загвар.загвар[i]
    }
    буцах таамаглал
}

// Өргөтгөх боломжтой хиймэл оюун ухаанаар ажилладаг системийг бий болгох функцийг тодорхойлно
func createScalableSystem() (*AiModel, *sync.WaitGroup) {
    // AI загвар үүсгэх
    загвар := &AiModel{загвар: make([]float64, 100)}

    // AI загварыг сургах
    галт тэрэгний загвар (загвар)

    // AI загварыг синхрончлохын тулд хүлээх бүлэг үүсгэнэ үү
    wg := &sync.WaitGroup{}
    wg.Add(10)

    // AI загвар болон хүлээх бүлгийг буцаана уу
    буцах загвар, wg
}

func main() {
    // Өргөтгөх боломжтой хиймэл оюун ухаанаар ажилладаг системийг бий болгох
    загвар, wg := createScalableSystem()

    // AI загварыг зэрэгцээгээр таамаглах
    би := 0; би < 10; би++ {
        go func() {
            таамаглал := makePrediction(загвар)
            fmt.Println(таамаглал)
            wg.Done()
        }()
    }

    // Бүх таамаглал дуусахыг хүлээнэ үү
    wg.Wait()
}

Энэ жишээ нь AI-ийн шинэ загварыг бий болгож, сургаж байгаа Go-г ашиглан өргөжүүлэх боломжтой хиймэл оюун ухаанаар ажилладаг системийг харуулж байна. Систем нь ажлын ачаалал, өгөгдлийн хэмжээг өөрчлөхөд дасан зохицож, оновчтой гүйцэтгэл, хариу үйлдэл үзүүлэх боломжтой.

Хиймэл оюун ухаанаар ажилладаг системүүдийн гүйцэтгэлийг оновчтой болгохын ач холбогдол

Гүйцэтгэлийн оновчлол нь хиймэл оюун ухаанаар ажилладаг системүүдэд чухал ач холбогдолтой бөгөөд энэ нь AI загваруудын нарийвчлал, үр ашигтай байдалд ихээхэн нөлөөлдөг. AI загварууд нь их хэмжээний өгөгдлийг боловсруулахад ихээхэн хэмжээний тооцооллын нөөц шаарддаг бөгөөд энэ нь гүйцэтгэлийн бууралт, өргөтгөх чадварын асуудалд хүргэж болзошгүй юм. Гүйцэтгэлийг оновчтой болгосон хиймэл оюун ухаанаар ажилладаг систем нь өгөгдлийг үр ашигтай, үнэн зөв боловсруулж, оновчтой гүйцэтгэл, хариу үйлдэл үзүүлэх чадвартай байх ёстой.

Гүйцэтгэлийг оновчтой болгосон хиймэл оюун ухаанаар ажилладаг системийг бий болгох стратеги

  1. Загвар тайрах: Шаардлагагүй жин, холболтыг арилгах зэрэг загварын тайрах механизмыг хэрэгжүүлэх нь AI загваруудын тооцооллын шаардлагыг багасгахад тусална.
  2. Мэдлэг нэрэх: Мэдлэгийг том хиймэл оюун ухааны загвараас жижиг загвар руу шилжүүлэх зэрэг мэдлэгийг нэрэх механизмыг хэрэгжүүлэх нь хиймэл оюун ухааны загваруудын тооцооллын шаардлагыг багасгахад тусална.
  3. Quantization: AI загварын жин, идэвхжүүлэлтийн нарийвчлалыг бууруулах зэрэг тоон тооцооллын механизмыг хэрэгжүүлэх нь AI загваруудын тооцооллын шаардлагыг багасгахад тусална.

Жишээ: Python ашиглан гүйцэтгэлийг оновчтой болгосон хиймэл оюун ухаантай систем

# Шаардлагатай номын санг импортлох
импортын бамбар
импортын бамбар.nn гэж nn

# Гүйцэтгэлийг оновчтой болгосон AI загварыг тодорхойлох
анги AiModel(nn.Module):
    def __init__(өөрөө):
        super(AiModel, өөрөө).__init__()
        self.fc1 = nn.Linear(784, 128) # 784 оролтын онцлог, 128 далд нэгж
        self.fc2 = nn.Linear(128, 10) # 128 далд нэгж, 10 гаралтын онцлог

    def урагш (өөрөө, x):
        x = torch.relu(self.fc1(x)) # далд давхаргыг идэвхжүүлэх функц
        x = self.fc2(x)
        буцаах x

# AI загварыг сургах функцийг тодорхойлох
def trainModel(загвар, төхөөрөмж, галт тэрэгний_ачагч, оновчтой болгох, эрин үе):
    model.train()
    batch_idx-д (өгөгдөл, зорилтот) дугаарлах(галт тэрэгний_ачаагч):
        өгөгдөл, зорилтот = өгөгдөл.то(төхөөрөмж), зорилтот.т(төхөөрөмж)
        optimizer.zero_grad()
        гаралт = загвар (өгөгдөл)
        алдагдал = nn.CrossEntropyLoss()(гаралт, зорилт)
        алдагдал.буцах()
        optimizer.step()
        хэрэв batch_idx % 100 == 0:
            хэвлэх(f'Epoch {эрин үе+1}, Багц {batch_idx+1}, Алдагдал: {loss.item()}')

# AI загварыг ашиглан таамаглал гаргах функцийг тодорхойлох
def makePrediction(загвар, төхөөрөмж, test_loader):
    model.eval()
    тест_алдагдал = 0
    зөв = 0
    torch.no_grad()-тай:
        өгөгдлийн хувьд test_loader доторх зорилтот:
            өгөгдөл, зорилтот = өгөгдөл.то(төхөөрөмж), зорилтот.т(төхөөрөмж)
            гаралт = загвар (өгөгдөл)
            test_loss += nn.CrossEntropyLoss()(гаралт, зорилт).зүй()
            _, таамагласан = бамбар.макс(гаралт, 1)
            зөв += (урьдчилан таамагласан == зорилтот). нийлбэр().зүй()

    нарийвчлал = зөв / len(test_loader.dataset)
    буцах нарийвчлал

# Гүйцэтгэлийг оновчтой болгосон хиймэл оюун ухаанаар ажилладаг системийг бий болгох функцийг тодорхойлох
def createPerformanceOptimizedSystem():
    # AI шинэ загвар бүтээх
    загвар = AiModel()

    # AI загварыг сур
    төхөөрөмж = torch.device("cuda:0" бол torch.cuda.is_available() өөр "cpu")
    галт тэрэгний_ачаагч, туршилтын_ачаагч = ... # ачааллын сургалт, туршилтын өгөгдөл
    оновчтой болгох = torch.optim.SGD(model.parameters(), lr=0.01)
    муж дахь эриний хувьд(10):
        галт тэрэгний загвар(загвар, төхөөрөмж, галт тэрэгний_ачагч, оновчтой болгох, эрин үе)

    # AI загварыг ашиглан таамаглал гаргах
    нарийвчлал = makePrediction(загвар, төхөөрөмж, тест_ачаач)
    буцах загвар, нарийвчлал

# Гүйцэтгэлийг оновчтой болгосон хиймэл оюун ухаанаар ажилладаг системийг бий болгох
загвар, нарийвчлал = createPerformanceOptimizedSystem()
хэвлэх(f' Нарийвчлал: {нарийвчлал:.2f}')

Энэ жишээ нь шинэ хиймэл оюун ухааны загварыг бий болгож, сургаж сургадаг Python ашиглан гүйцэтгэлийг оновчтой болгосон хиймэл оюун ухаанаар ажилладаг системийг харуулж байна. Систем нь өгөгдлийг үр ашигтай, үнэн зөв боловсруулж, оновчтой гүйцэтгэл, хариу үйлдэл үзүүлэх боломжтой.

Дүрслэл

Дараах график нь хиймэл оюун ухаанаар ажилладаг системийн гүйцэтгэлийг нарийвчлал, тооцоолох цаг хугацааны хувьд харуулж байна.

{
  "төрөл": "шугам",
  "өгөгдөл": {
    "шошго": ["Epoch 1", "Epoch 2", "Epoch 3", "Epoch 4", "Epoch 5"],
    "өгөгдлийн багц": [
      {
        "label": "Нягт байдал",
        "өгөгдөл": [0.8, 0.85, 0.9, 0.92, 0.95],
        "backgroundColor": "rgba(255, 99, 132, 0.2)",
        "borderColor": "rgba(255, 99, 132, 1)",
        "pointBackgroundColor": "rgba(255, 99, 132, 1)",
        "pointBorderColor": "#fff",
        "pointHoverBackgroundColor": "#fff",
        "pointHoverBorderColor": "rgba(255, 99, 132, 1)"
      },
      {
        "label": "Тооцоолох хугацаа",
        "өгөгдөл": [10, 8, 6, 4, 2],
        "backgroundColor": "rgba(54, 162, 235, 0.2)",
        "borderColor": "rgba(54, 162, 235, 1)",
        "pointBackgroundColor": "rgba(54, 162, 235, 1)",
        "pointBorderColor": "#fff",
        "pointHoverBackgroundColor": "#fff",
        "pointHoverBorderColor": "rgba(54, 162, 235, 1)"
      }
    ]
  },
  "сонголт": {
    "гарчиг": {
      "дэлгэц": үнэн,
      "text": "AI-ээр ажилладаг системийн гүйцэтгэл"
    },
    "масштаб": {
      "yAxes": [
        {
          "хачиг": {
            "beginAtZero": үнэн
          }
        }
      ]
    }
  }
}

Энэхүү график нь хиймэл оюун ухаанаар ажилладаг системийн гүйцэтгэлийг нарийвчлал, тооцооллын цаг хугацааны хувьд харуулж, цаг хугацааны явцад систем хэрхэн сайжирч байгааг харуулж байна.

Дүгнэлт

AI-д зориулсан архитектур нь уян хатан байдал, өргөтгөх чадвар, гүйцэтгэлийг оновчтой болгох гол талуудын талаар гүнзгий ойлголттой байхыг шаарддаг. Хөгжүүлэгчид уян хатан, өргөтгөх боломжтой, гүйцэтгэлийг оновчтой болгосон хиймэл оюун ухаантай системийг бий болгох дэвшилтэт стратегийг хэрэгжүүлснээр системүүдээ ажлын ачаалал болон өгөгдлийн хэмжээ өөрчлөгдөхөд дасан зохицож, оновчтой гүйцэтгэл, хариу үйлдэл үзүүлэх чадвартай байх боломжтой. Энэ өгүүлэлд өгсөн жишээнүүд нь Rust, Go, Python програмуудыг ашиглан алдааг тэсвэрлэх чадвартай, өргөтгөх боломжтой, гүйцэтгэлийг оновчтой болгосон хиймэл оюун ухаантай системийг хэрхэн бүтээхийг харуулж байна.


Have Questions?

Let's Talk

Contact me on LinkedIn