Хиймэл оюун ухаан програм зохиож чадах уу?
March 25, 2024
Програм зохиох хэцүү юу, хиймэл оюун ухаан яагаад програмистыг орлох хэцүү вэ?
Хамгийн хэцүү хэсэг нь код бичих биш (not coding), харин хэрэглэгчийн хэрэгцээ шаардлага.
Хиймэл оюун ухааны хөгжлийн талаарх мэдээ нийтлэл, хүний амьдралд, хөдөлмөрийн зах зээлд хэрхэн нөлөөллөх тухай бодол таамгууд хөвөрсөн жил, сар өнгөрч байна. Тэдгээрийн нэг сэдэв нь програм зохиогч нарын ажлыг хиймэл оюун ухаан орлоно, AI 🤖 програм зохионо. Үүнийг ярьж байгаа хүмүүсийн төсөөллөөр програм хангамжийн бизнес эрхлэгч, төслийн менежер нар уламжлалт арга барилын оронд (програмист код бичдэг) шууд хиймэл оюун ухаан ашиглан бүтээгдэхүүнээ хөгжүүлж эхлэх тухай юм. 15+ жил энэ салбарт ажилласан програмистын хувьд, AI нь програм зохиож биднийг орлоно гэдэгт санаа зовохгүй байгаа бөгөөд, "хүн төрөлхтөн" програм зохиогч одоо ч чухал хэвээрээ. Гэхдээ энэ зөвхөн миний хувийн бодол гэдгийг нэмж дурдах нь зүйтэй.
Энэ нийтлэлд програм хангамж болон хэрэглэгчийн шаардлага, тэдгээрийн уялдаа холбоо, мөн хиймэл оюун ухааны одоогийн хэрэглээ, асуудлуудын талаар цухас тайлбарлах болно.
Код бичих амархан биш байж болох боловч, өнгөрсөн хугацаанд миний бие програмын "дундаж түвшний" даалгавар (том систем жижиг "хэсгүүдэд" -д хуваагддаг) дээр хэзээ ч 2 - оос илүү долоо хоног зарцуулж байсан түүх үгүй билээ. Хийх зүйлс нь тодорхой, бизнес логик нь ойлгомжтой бол код бичих тийм хэцүү биш - ихэнхдээ. Програм бүтээхэд хэцүү болгодог бодит хүчин зүйл нь хэрэглэгчийн хүсэл шаардлагад нийцэн ажиллаж байгаа эсэхэд оршдог.
💡 Жнь; та фитнесийн апп хийж байгаа гэж төсөөлье, үндсэн шийдэл хэрэглэгчид ашиглахад амархан "user-friendly", тэд өдөр тутмын дасгал хийсэн үзүүлэлтээ хянах, хэр калори хэрэглэж - хэдийг нь шатаасан, өдрийн зорилгоо биелүүлсэн эсэх, мөн хувийн дасгалжуулагч шиг танд тохирох төрөл бүрийн зөвлөгөө санал болгодог байж болох юм. Гэхдээ, эцсийн дүндээ - энэ апп ын амжилт хэрэглэгчийн анхны зорилгыг хангаж чадсан эсэхээс хамаарна (тухайн хэрэглэгч яг үнэхээр турсан уу). Өөрөөр хэлбэл код бичих нь програм зохиохын хамгийн хэцүү хэсэг огт биш юм, харин шаардлагаа тодорхойлох, тэр шаардлага нь хэрэглэгчийн хэрэгцээнд яг цав таарч чадах эсэх нь хамгийн төвөгтэй тал нь. Эдгээр шаардлагыг одоо ч хүн өөрөө тодорхойлж байгаад асуудал оршиж буй. 😎
Програмистыг хиймэл оюут системээр солихын тулд, програмын захиалагч нь эцсийн хэрэглэгчийн шаардлагыг буюу яг юу хүсэж байгааг хиймэл оюун ухаанд маш нарийн тайлбарлаж ойлгуулах ёстой 📌. Миний өнгөрсөн карьерын түүхэнд хийж байсан төслүүдийн шаардлага ихэнхдээ тодорхойгүй байдаг байв, хөгжүүлэлтийн явцад маш их өөрчлөгддөг эсвэл буруу байдаг. Үүнийг би ганцаараа туулаагүй бөгөөд, туршлагатай инженерүүд 99% үүнтэй санал нийлнэ гэдэгт итгэж байна.
Тиймээс, програмистууд хиймэл оюун ухаанаас айх хэрэггүй. 👇
🤖 AI одоо: Шатар VS өөрөө жолоодлоготой машин
Хиймэл оюун ухаан тийм ч шинэ зүйл биш. Анхны хиймэл оюуны төлөөлөл нь тэд шатар тоглож сурсан явдал байв.
♞ 1980 он, хиймэл оюун ухаан шатар тоглож сурах эхний алхмууд хийгдэв, улмаар хүнийг ялах боломжтой гэж үзэж байв. Энэ нь тийм ч гайхаад байх зүйл биш бөгөөд учир нь шатрын параметрүүд (хувьсагч) ХЯЗГААРТАЙ. Шатрын хөлөг дээрх бүх байрлал ойролцоогоор 120 оронтой (10120) тоогоор илэрхийлэгдэх ба шатар нь шийдэлтэй тоглоом юм. Ийм учраас компьютерт шатрын нүүдлийн хувилбаруудыг жилээс жилд ахиулан баяжуулсаар хиймэл оюут системүүд дэлхий шатрын их мастеруудыг хожих хүртлээ хөгжсөн нь ийм учиртай. Гэхдээ энэ тоглоом одоог хүртэл бүрэн шийдэгдээгүй
🚗 Хиймэл оюуны өөр нэг том төлөөлөл бол өөрөө жолоодлоготой машин юм. Технологийн томчууд "self-driving car" ын судалгаа хөгжүүлэлтэд их хөрөнгө оруулалт, нөөц зарцуулсны үр дүнд машин өөрийгөө жолоодож чаддаг болжээ, гэхдээ зарим тээг, асуудал байгаа. Ихэнх тохиолдолд, жолоочийг жолооны хүрд дээр гараа байлгах зөвлөмжтэй аж. Өөрөөр хэлбэл машин бүрэн автомат жолоодлоготой болоогүй, одоогоор.
🚗 ♞ Өөрөө жолоодлоготой машинууд, эсвэл шатар тоглодог AI 🤖, аль аль нь "rule-based engines" ашиглаж шийдвэр гаргадаг. Гэхдээ, машины хувьд шатрын дүрмээс өөр, учир нь зам дээр тохиолдож болох нөхцөл байдал маш тодорхойгүй юм.
Технологийн салбарт, 5, 6 -н есийн стандарт гэж байдаг. Ямар нэг вэб сайт, онлайн үйлчилгээ хэдэн хувийн (99.999% эсвэл 99.9999%) тасралтгүй ажиллагаатай байсан гэдгийг үнэлдэг тоон үзүүлэлт бөгөөд, өөрөөр хэлбэл 100% найдвартай систем гэж огт байдаггүй. Та 99% ийг өндөр үзүүлэлт гэж бодож байгаа бол энэ нь хангалттай үзүүлэлт биш юм - яагаад гэдгийг тайлбарлая;
Нэг жилд: 365 X 24 X 60 минут = 525,600 минут
- 99% амжилттай ажилласан систем -> жилд 87.6 цаг буюу 3 өдөр тасалдсан
- 99.9% амжилттай ажилласан систем -> 526 минут буюу 8.76 цаг тасалдсан
- 99.99% -> 52 минут
- 99.999% -> 5.2 минут
- 99.9999% -> 0.52 минут, 31.5 секунт
Үүнээс харахад 99% нь тийм гайхалтай өндөр үзүүлэлт огт биш - жилд бүхэл бүтэн 3 өдөр буюу 87.6 цаг ажиллагаагүй байсан гэсэн үг юм. Тек компаниуд тасалдлыг бууруулахаар зорьж 99.9%, 99.99% буюу ширхэг 9 нэгж бүрд гарах зардал огцом өсөх болно. Системийг 99.9999% амжилттай ажиллуулна гэдэг тийм амар биш бөгөөд маш их хүчин чармайлт өндөр зардал шаарддаг аж.
Энэ нь осол аваар гарах, хүний амь аюулд учрах эрсдэл үргэлж байсаар байна гэсэн үг ба хиймэл оюун ухаант машиныг дээрхи үзүүлэлтэнд хэр ойрхон байх яриа огт утгагүй юм. Эдгээр эрсдэл, үр дагавар хүнээс үүдэлтэйгээр одоо ч бидний дунд өдөр бүр тохиолдож байна. Улс орнуудын засгийн газрууд энэ төрлийн осол аваарыг ямар хэмжээнд байхыг зөвшөөрөх, эсвэл технологи нэвтэрснээр хэдэн хувь бууруулж болохыг би хэлж мэдэхгүй. Ямар ч тохиолдолд AI 🤖 нь дор хаяж хүнээс илүү машин жолоодох түвшинд хүрсэн байх ёстой.
Өөрөө жолоодлоготой машины хувьд, зөвшөөрөгдөх аюулгүйн түвшинд хүрэхэд маш хэцүү бөгөөд учир нь "машин жолоодох" гэдэг процессыг тодорхойлох хувьсагчийн тоо ХЯЗГААРГҮЙ
Магадгүй 95% эсвэл 99% хувьд хүрнэ гэж таамаглаж болох ч түүнд хүрсний дараа гарч болох боломжит эрсдэлийн тоо маш өндөр хэвээр үлдэнэ. Цаг агаарын нөхцөл байдал бороо цас, зам засвар, гэнэтийн осол, хаалттай зам, замын тэмдэг тэмдэглэгээ бүдгэрсэн, танигдахгүй байх гэх мэт маш олон хүчин зүйлээс хамаарна. Энэ бүх зүйлсийг зөв таньж тооцоолно гэдэг "AI model" - уудын хувьд маш хүнд даалгавар юм.AI програм зохиож чадахгүй, зөвхөн код
Програм хангамж зохиох, түүнийгээ тогтмол тордож хөгжүүлэх үйл явц нь шатар тоглохоос илүүтэйгээр, машин жолоодохтой адил процесс. Шатар тоглоход гарах үр дүн маш тодорхой, аль нэг талын хожлоор дуусах ба тэнд хүний амь нас, осол аваар, цаг агаарын талаар тооцоолох ямар ч шаардлагагүй, нэг үгээр дүрэм, үр дүн нь тов тодорхой програм юм. Харин програм хангамж зохиох процесс бараг төгсгөлгүй, тодорхой үр дүнд хүргэж болох ч, шинэ боломж, сайжруулалт нэмэх, алдаа засах, хэрэглэгчийн болон орчны нөхцөл шаардлага өөрчлөгдөх гэх мэтчилэн тасралтгүй үргэлжлэх, үл дуусах цикл.
Саяхан дэлхий нийтийг хамарсан Covid - 19 өвчний нөлөөгөөр хичнээн програм хангамжинд өөрчлөлт орсон бол
Би та бүхэнд нэгэн програмын хөгжүүлэлтийн багт тохиолдсон түүхийг хуваалцая. Covid - 19 ын улмаас өвчний шинж тэмдгийг тодорхойлох тодорхой асуумж бүхий програм хийх шаардлагатай байсан аж - Ok, тийм ч төвөгтэй ажил биш.Гэхдээ түр хүлээгээрэй, нөгөө програм нь алслагдмал, wifi, сүлжээ муутай газар ажиллах хэрэгцээ шаардлагатай. Үүний улмаас, тэдгээр асуумжийг "мессеж" ээр хүлээн авах шийдэл яригдаж. Асуумж нь 10 асуулттай бөгөөд, хэрэглэгчийн хариултуудыг танихын тулд таслалаар тусгаарлах, дугаар тавих гэх мэт янз бүрийн арга заавар өгч болно гэж тооцов. Гэсэн хэдий ч хэрэглэгч, таслал алдах зэргээс үүдэн алдаа гаргаж болох ба яг хүссэн зөв хариултаа авч чадна гэдэг туйлын эргэлзээтэй тул инженерүүд энэ програмыг үр ашиггүй хэмээн үзсэн тул хийхээс татгалзсан юм.
Тэгвэл тухайн захиалагч үүнийг хиймэл оюун ухаан ашиглан хийнэ гэж төсөөлье - "мсж ээр судалгаа авдаг програм бич", 🤖 AI зөрүүлээд судалгааны асуултууд ямар байх, учирч болзошгүй хүндрэлүүдийг тооцоолж хэлж чадах байх. Гэхдээ
AI бүгдийг мэддэг ид шидтэн огт биш, түүнд өгөх үүрэг даалгавар, гарах үр дүнг чи өөрөө маш тодорхой мэддэг байх ёстой. Миний хувьд, ямар нэг програм хийх үед тухайн асуудлыг ойлгохын тулд заавал тодорхой цаг хугацаа зарцуулдаг ба яг код бичиж эхлэх хүртлээ би зарим асуудлын нарийн учир жанцанг ухаарч амжаагүй байдаг.Өнгөрсөн 10 гаруй жилийн хугацаанд, програм хангамжийн хөгжүүлэлт хийдэг арга барил "Waterfall" - аас "Agile" руу шилжсэн юм. Ерөнхийдөө "Waterfall" арга нь хэрэглэгч яг юу хүсээд байгааг програм бичиж эхлэхээс өмнө урьдчилан тодорхойлж дууссаны дараа код оо бичиж эхэлдэг арга юм. Харин "Agile" арга барил нь кодоо бичиж байх зуураа хэрэглэгчийн шаардлагыг ойлгож тэдгээрийг тусгаж, өөрчлөлтийг шингээж явах боломжтой илүү уян хатан сайн арга барил.
Маш олон төслүүд "Waterfall" аргаас болж амжилтгүй болж бүтэлгүйтсэн байдаг ба учир нь захиалагч нар бүх зүйлийг нарийн ширийн тодорхойлж чадсан гэж боддог юм. Гэвч эцсийн үр дүнг хараад тэд сэтгэл хангалуун бус байдаг. Энэ асуудлыг "Agile" аар засах гэж зорьж байгаа билээ.
Тэгэхээр, хэрвээ захиалагч яг юу хүсэж буйгаа яг таг мэдэж байвал, AI 🤖 магадгүй хүнээс хурдан бөгөөд хямдхан програм бичих боломжтой ба, аль хэдийн бичээд эхэлсэн - яагаад гэвэл "хүн төрөлхтөн" инженерүүд аль хэдийн учрыг нь олоод бичээд үлдээсэн тул.
Тодруулбал, AI магадгүй "Waterfall" аргаар програм бичвэл хүнээс илүү амжилттай хийнэ, учир нь хүн энэ арга барилд хангалттай сайн биш ба бүх зүйлийг AI шиг урьдчилан тооцоолж чадахгүй гэдгийг өнгөрсөн түүх гэрчилнэ. Гэвч хиймэл оюун ухаант машинууд хэрэглэгчийн толгой доторхи хүсэл шаардлагыг ухаж гаргах, мэдрэх, эсвэл тэд чамд яг юу хэрэгтэй байгаа, эсвэл хэрэггүйг хэлж чадахгүй.
Зүйрлэж хэлбэл, та шинэ хаус бариулахаар төлөвлөж байна гэж төсөөлье, танд 2 сонголт бий - эхлээд та бүх зүйлээ тодорхойлно (Waterfall) - хаусны план аа гаргаад, хэдэн өрөөтэй байх, ямар өнгийн ханын цаастай байх, гэх мэт бүгдийг урьдчилж төлөвлөөд хийнэ гэвэл, AI магадгүй хүнээс хурдан хийнэ. Эсрэгээрээ ерөнхий бүтцээ гаргаад, явцын дунд ямар ч байдлаар өөрчилж болохоор хийнэ гэвэл AI 🤖 хийж чадах болов уу, үүнд хүн илүү байж ч мэднэ учир нь тэд "Agile" арга барилд илүү сайн. Гэхдээ ямар ч тохиолдолд, та хүссэн хаус аа барьсан уу?
Програм зохиох ажлын хамгийн хэцүү хэсэг нь код бичих биш, харин хэрэглэгчийн хэрэгцээ шаардлагыг ойлгох.
