ເຈົ້າເຄີຍຢາກສ້າງແອັບທີ່ໄວກວ່າ ແລະມີປະສິດທິພາບກວ່າບໍ ແຕ່ຄົ້ນພົບວ່າພາສາການຂຽນໂປຣແກຣມມາດຕະຖານບໍ່ສາມາດຕອບສະໜອງໄດ້ຕາມຄວາມຕ້ອງການຂອງເຈົ້າບໍ?
ນີ້ແມ່ນເວລາທີ່ພາສາ Mojo ເຂົ້າມາຫຼິ້ນ.
Mojo ເປັນພາສາການຂຽນໂປລແກລມໃຫມ່ທີ່ພັດທະນາໂດຍ Modular, ບໍລິສັດທີ່ມີຄວາມຊ່ຽວຊານໃນໂຄງສ້າງພື້ນຖານ AI.
ມັນໄດ້ຖືກອອກແບບໂດຍສະເພາະເພື່ອໃຫ້ຜູ້ພັດທະນາສາມາດສ້າງແອັບຯທີ່ໄວແລະແຂງແຮງກວ່າສໍາລັບກໍລະນີການນໍາໃຊ້ຫຼາຍຢ່າງ, ລວມທັງການພັດທະນາ AI. ໃນບົດຄວາມນີ້, ພວກເຮົາຈະເບິ່ງສິ່ງທີ່ Mojo ແມ່ນ, ມັນເຮັດວຽກແນວໃດ, ແລະເປັນຫຍັງທ່ານຄວນໃຊ້ມັນຢູ່ໃນໂຄງການຕໍ່ໄປຂອງທ່ານ.
ຕົ້ນກໍາເນີດຂອງ Mojo
ຜູ້ສ້າງຂອງ Mojo ໄດ້ຮັບຮູ້ເຖິງຄວາມຕ້ອງການສໍາລັບພາສາການຂຽນໂປຼແກຼມທີ່ປະສົມປະສານຄວາມສາມາດໃນການນໍາໃຊ້ຂອງ Python ກັບຄວາມໄວແລະປະສິດທິພາບຂອງ C.
ແລະ, ພວກເຂົາເຈົ້າໄດ້ສ້າງຕັ້ງພາສາທີ່ຈະຊ່ວຍໃຫ້ນັກພັດທະນາສາມາດສ້າງກິດປະສິດທິພາບສູງໂດຍບໍ່ຈໍາເປັນຕ້ອງຮຽນຮູ້ພາສາມາດຕະຖານຮາດແວ.
ດັ່ງນັ້ນ, ພວກເຂົາເຈົ້າໄດ້ສ້າງ Mojo, ຊຶ່ງຫມາຍຄວາມວ່າຈະເຂົ້າກັນໄດ້ຢ່າງເຕັມສ່ວນກັບລະບົບນິເວດ Python ໃນຂະນະທີ່ສະຫນອງຄວາມໄວລະດັບ C.
Modular: ອົງການຈັດຕັ້ງທີ່ຢູ່ເບື້ອງຫຼັງພາສາ Mojo
ດັ່ງນັ້ນ, ໃຜເປັນຜູ້ສ້າງພາສາອະນາຄົດນີ້?
Modular ແມ່ນການເລີ່ມຕົ້ນພື້ນຖານໂຄງລ່າງ AI ຊັ້ນນໍາຂອງໂລກທີ່ສ້າງຂຶ້ນໂດຍ Chris Lattner ແລະ Tim Davis, ຜູ້ທີ່ພົບກັນຢູ່ Google ແລະຮັບຮູ້ວ່າໂຄງສ້າງພື້ນຖານທີ່ສັບສົນແລະແຕກແຍກເກີນໄປແມ່ນການຈໍາກັດອິດທິພົນຂອງໂລກຂອງ AI.
ຈຸດປະສົງແລະຈຸດປະສົງຂອງ Modular ແມ່ນເພື່ອຄິດຄືນໃຫມ່ໂຄງລ່າງ AI ເພື່ອເສີມຂະຫຍາຍມະນຸດ. ວັດທະນະທໍາແລະຫຼັກການຂອງເຂົາເຈົ້າວາງທີ່ນິຍົມກັບລູກຄ້າ, ຊອບແວການຜະລິດທີ່ມີຄຸນນະພາບສູງ, ແລະໃຫ້ຜົນໄດ້ຮັບທີ່ມີຄວາມຫມາຍ
ເປົ້າໝາຍຂອງ Mojo
Mojo ຖືກອອກແບບມາເພື່ອໃຫ້ຮູບແບບການຂຽນໂປຼແກຼມທີ່ເປັນເອກະລັກສໍາລັບເຄື່ອງເລັ່ງການຮຽນຮູ້ເຄື່ອງຈັກ.
Modular ກໍານົດວ່າ Mojo ຄວນອະນຸຍາດໃຫ້ຂຽນໂປລແກລມແບບທົ່ວໆໄປເພາະວ່າ CPUs ໃນມື້ນີ້ມີ tensors ແລະ AI accelerators ອື່ນໆ. ນອກຈາກນັ້ນ, ເນື່ອງຈາກວ່າ Python ຖືກນໍາໃຊ້ຢ່າງກວ້າງຂວາງໃນການຮຽນຮູ້ເຄື່ອງຈັກແລະຂົງເຂດອື່ນໆ, Modular ເລືອກເຂົ້າຮ່ວມລະບົບນິເວດ Python.
ການນໍາໃຊ້ Python ເພີ່ມເຕີມໄດ້ຜ່ອນຄາຍການອອກແບບພາສາ. ເນື່ອງຈາກວ່າສ່ວນໃຫຍ່ຂອງ syntax ໄດ້ຖືກກໍານົດແລ້ວ, ບໍລິສັດສາມາດແທນທີ່ຈະສຸມໃສ່ການສ້າງກົນໄກການລວບລວມແລະການສະຫນອງຄວາມສາມາດພິເສດຂອງການຂຽນໂປຼແກຼມ.
ຄຸນນະສົມບັດທີ່ສໍາຄັນທີ່ຈະພິຈາລະນາ
ແຜນງານ
ປະເພດກ້າວຫນ້າ
ຄຸນນະສົມບັດປະເພດກ້າວຫນ້າຂອງ Mojo ພາສາເຮັດໃຫ້ຜູ້ພັດທະນາສາມາດນໍາໃຊ້ປະເພດຄໍາອະທິບາຍເພື່ອ ເພີ່ມປະສິດທິພາບ ແລະການກວດສອບຄວາມຜິດພາດ.
ນັກພັດທະນາອາດຈະອອກແບບລະຫັດທີ່ມີປະສິດທິພາບຫຼາຍທີ່ກວດພົບຄວາມຜິດພາດໃນເວລາລວບລວມ, ກໍາຈັດແມງໄມ້ແລະເພີ່ມປະສິດທິພາບ, ໂດຍການສະຫນອງຂໍ້ມູນປະເພດຢ່າງລະອຽດກວ່າ.
ສູນລວມຄ່າໃຊ້ຈ່າຍ
ນັກພັດທະນາສາມາດຄວບຄຸມການເກັບຮັກສາໂດຍການຈັດສັນຂໍ້ມູນໃນແຖວເຂົ້າໄປໃນໂຄງສ້າງຍ້ອນການຫຍໍ້ມາຈາກພາສາ Mojo.
ໂດຍການເຮັດທັນທີກັບຄວາມຕ້ອງການສໍາລັບການຈັດສັນຫນ່ວຍຄວາມຈໍາພິເສດ, ຄຸນນະສົມບັດນີ້ປັບປຸງປະສິດທິພາບລະຫັດແລະຫຼຸດລົງຈໍານວນລະຫັດ boilerplate.
ການປັບແຕ່ງພາສາແບບປະສົມປະສານ
ຟັງຊັນການປັບອັດຕະໂນມັດແບບປະສົມປະສານພາສາໃນພາສາ Mojo ຊ່ວຍໃຫ້ນັກພັດທະນາສາມາດກໍານົດຄ່າທີ່ເຫມາະສົມຂອງພາລາມິເຕີໂດຍອັດຕະໂນມັດທີ່ຈະໄດ້ຮັບຜົນປະໂຫຍດຈາກຮາດແວເປົ້າຫມາຍ.
ດ້ວຍການເຮັດວຽກນີ້, ມັນງ່າຍກວ່າທີ່ຈະເພີ່ມປະສິດທິພາບລະຫັດໂດຍບໍ່ຈໍາເປັນຕ້ອງປັບມັນດ້ວຍຕົນເອງສໍາລັບທຸກໆການປະສົມປະສານຂອງຮາດແວ.
Mojo Language ເປັນເຄື່ອງມືທີ່ມີຄວາມຍືດຫຍຸ່ນແລະມີປະສິດທິພາບສໍາລັບການພັດທະນາ AI ເນື່ອງຈາກວ່າມັນຍັງສະຫນອງພະລັງງານທັງຫມົດຂອງ MLIR (Multi-Level Intermediate Representation), ເວລາແລ່ນ heterogeneous ຂະຫນານ, ແລະເວລາສ້າງໄວ.
ຂະຫນານ
Mojo ໃຊ້ MLIR, ເຊິ່ງອະນຸຍາດໃຫ້ນັກຂຽນໂປລແກລມນໍາໃຊ້ vectors, threads, ແລະຫນ່ວຍງານຮາດແວສໍາລັບ AI ສໍາລັບການຂະຫນານ. Mojo ສະຫນັບສະຫນູນການປະມວນຜົນຂະຫນານໃນໄລຍະຫຼາຍ cores ກົງກັນຂ້າມກັບການປະຕິບັດເສັ້ນດຽວຂອງ Python.
ດ້ວຍຄວາມໄວ 35,000x ຫຼາຍກວ່າ Python, Mojo ເອົາຊະນະພາສາອື່ນໃນແງ່ຂອງຄວາມໄວ.
ເຮັດວຽກຮ່ວມກັນ
ການເຮັດວຽກຮ່ວມກັນກັບລະບົບນິເວດ Python ທັງຫມົດແມ່ນຫນຶ່ງໃນຂໍ້ໄດ້ປຽບທີ່ເປັນເອກະລັກຂອງ Mojo. ນີ້ຫມາຍຄວາມວ່າທ່ານອາດຈະສົມທົບ Mojo ກັບຫ້ອງສະຫມຸດທີ່ມັກ, ເຊັ່ນ Numpy ແລະ Matplotlib, ເຊັ່ນດຽວກັນກັບລະຫັດຕາມຄວາມຕ້ອງການຂອງທ່ານ.
ຕົວຢ່າງ, ທ່ານອາດຈະເຫັນຂໍ້ມູນໃນລະຫັດ Mojo ຂອງທ່ານໂດຍໃຊ້ຫ້ອງສະຫມຸດ Python Matplotlib.
Extensibility
Mojo ຍັງມີຄວາມຍືດຫຍຸ່ນດີ, ໃຫ້ຜູ້ໃຊ້ສາມາດເພີ່ມຂັ້ນຕອນກ່ອນແລະຫຼັງການປຸງແຕ່ງເປັນແບບຈໍາລອງຫຼືແລກປ່ຽນຂັ້ນຕອນທີ່ມີຢູ່ແລ້ວສໍາລັບອັນໃຫມ່.
ເພື່ອປັບປຸງແບບຈໍາລອງຂອງເຂົາເຈົ້າແລະ stack Modular, ນັກພັດທະນາສາມາດນໍາໃຊ້ kernel fusion, graph rewrites, ຫນ້າທີ່ຮູບຮ່າງ, ແລະເຕັກນິກອື່ນໆ.
ເປັນຫຍັງເຈົ້າຈຶ່ງເລືອກມັນຜ່ານ Python?
Python ເປັນພາສາພັດທະນາ AI ທີ່ນິຍົມເພາະມັນມີຄວາມຍືດຫຍຸ່ນແລະຫ້ອງສະຫມຸດທີ່ລວບລວມປະສິດທິພາບສູງ. ຢ່າງໃດກໍຕາມ, ມັນຊ້າກວ່າພາສາເຊັ່ນ C ++ ຢ່າງຫຼວງຫຼາຍ.
ດັ່ງນັ້ນ, ນັກຂຽນໂປລແກລມຮຽນຮູ້ທີ່ຈະໃຊ້ Python wrappers ປະມານພາສາທີ່ໄວກວ່າເພື່ອຫຼີກເວັ້ນການໃຊ້ Python ສໍາລັບພື້ນທີ່ທີ່ສໍາຄັນ.
ນີ້ນໍາໄປສູ່ບັນຫາສອງພາສາ, ໃນແບບຈໍາລອງທີ່ຕ້ອງໄດ້ປ່ຽນຈາກ Python ໄປສູ່ການປະຕິບັດທີ່ໄວກວ່າ, ເຊັ່ນ ONNX ຫຼື torch script, ເຊິ່ງບໍ່ສະຫນັບສະຫນູນຄວາມສາມາດທັງຫມົດຂອງ Python. Python ຍັງມີບັນຫາການປະຕິບັດແລະການຂາດການປຸງແຕ່ງຂະຫນານທີ່ດີ.
ເຖິງແມ່ນວ່ານັກຂຽນໂປລແກລມທີ່ມີປະສົບການກໍ່ພົບວ່າມັນຍາກທີ່ຈະສຶກສາ, ແກ້ບັນຫາ, ແລະແກ້ໄຂບັນຫາການປະຕິບັດເນື່ອງຈາກບັນຫາສອງພາສາ.
ຍັງມີຂໍ້ຈໍາກັດພື້ນຖານກ່ຽວກັບສິ່ງທີ່ Python ສາມາດເຮັດໄດ້ເນື່ອງຈາກວິທີການໂຄງສ້າງພາສາ. ໃນຂະນະທີ່ການປະຕິບັດຕົວຈິງຂອງ algorithms ທີ່ໃຊ້ອົງປະກອບພື້ນຖານອາດຈະເບິ່ງຄືວ່າງ່າຍ, ມັນມີຄວາມຫຍຸ້ງຍາກຫຼາຍແລະຈໍາເປັນຕ້ອງໃຊ້ພາສາທີ່ໄວກວ່າ.
ເລີ່ມຕົ້ນແນວໃດ?
ທ່ານສາມາດເລີ່ມໃຊ້ພາສາ Mojo ດຽວນີ້ຢູ່ໃນ Playground ຂອງເຂົາເຈົ້າເພື່ອເລີ່ມຕົ້ນ. ສະຖານທີ່ຫຼິ້ນທີ່ອີງໃສ່ JupyterHub ໃຫ້ບົດຮຽນແລະໂອກາດໃນການສ້າງລະຫັດ Mojo ຂອງທ່ານເອງ, ເຖິງແມ່ນວ່າ Mojo ຍັງເປັນວຽກທີ່ກໍາລັງດໍາເນີນຢູ່.
ທ່ານອາດຈະລົງທະບຽນສໍາລັບການເຂົ້າເຖິງຢູ່ໃນເວັບໄຊທ໌ຂອງພວກເຂົາເພື່ອເຂົ້າເຖິງ Playground.
ເພື່ອບັນລຸເປົ້າໝາຍປະສິດທິພາບຂອງມັນ, Mojo ນຳໃຊ້ເທັກໂນໂລຍີຄອມພີວເຊີລຸ້ນຕໍ່ໄປທີ່ມີ caching ປະສົມປະສານ, multithreading, ແລະ cloud distribution technologies.
ມັນເພີ່ມພື້ນຖານເພີ່ມເຕີມຕໍ່ກັບການຂຽນໂປລແກລມລະບົບແລະປາຖະຫນາທີ່ຈະກາຍເປັນ Python superset ໃນໄລຍະເວລາ. ເພື່ອເລີ່ມຕົ້ນການເຂົ້າລະຫັດກັບ Mojo, ໃຊ້ Mojo compiler ເພື່ອດໍາເນີນການໂຄງການ Mojo ຈາກ terminal ໃນແບບດຽວກັນກັບ Python ເຮັດ.
ປະຈຸບັນ, ພາສາແມ່ນຢູ່ພາຍໃຕ້ການພັດທະນາແລະມີຈຸດປະສົງໃຫ້ນັກພັດທະນາທີ່ມີປະສົບການໃນການຂຽນໂປຼແກຼມລະບົບ.
ສະຫຼຸບ
Mojo ຖືກພິຈາລະນາເປັນ superset Python. ແລະ, ມັນມີທ່າແຮງທີ່ຈະປະຕິວັດການຂຽນໂປຼແກຼມໂດຍການລວມເອົາຄວາມງ່າຍດາຍຂອງ Python ກັບການປະຕິບັດຂອງ C ++ ແລະ Rust.
ມັນສາມາດໃຊ້ເວລາປະໂຫຍດຢ່າງເຕັມທີ່ ຫ້ອງສະໝຸດ Python ລະບົບນິເວດ, ໃຫ້ນັກພັດທະນາສ້າງຫ້ອງສະຫມຸດທີ່ມີປະສິດທິພາບສູງໂດຍບໍ່ຈໍາເປັນຕ້ອງມີ C, C++, Rust, ຫຼື CUDA.
ມັນຊ່ວຍໃຫ້ການຜະລິດລະຫັດເຄື່ອນທີ່ຍ້ອນການປັບອັດຕະໂນມັດແລະຄຸນສົມບັດການຂຽນໂປຼແກຼມ meta-time.
ເຖິງແມ່ນວ່າມັນຍັງຄົງເປັນວຽກງານທີ່ກໍາລັງດໍາເນີນຢູ່, ມັນມີທ່າແຮງທີ່ຈະກາຍເປັນເຄື່ອງມືການຂຽນໂປລແກລມທີ່ໂດດເດັ່ນແລະຫັນປ່ຽນອຸດສາຫະກໍາການຂຽນໂປຼແກຼມ. ດັ່ງນັ້ນ, ພວກເຮົາຄວນຈະຕິດຕາມການພັດທະນາໃນອະນາຄົດຈາກ Modular!
Chris Santos
ເຈົ້າຄິດວ່າຄົນທີ່ມີຄວາມຮູ້ພື້ນຖານເຖິງປານກາງຈະສາມາດເລີ່ມຕົ້ນການສຶກສາຂອງເຂົາເຈົ້າໃນພາສາໃຫມ່ນີ້ບໍ? ຫຼືທ່ານແນະນໍາໃຫ້ຮຽນພາສາພື້ນຖານເພີ່ມເຕີມກ່ອນ, ເຊັ່ນ Javascript ຫຼື Python?
İlke Candan Bengi
ສະບາຍດີຄຣິສ, ຂໍອະໄພສຳລັບການຕອບຊ້າ! ຂ້ອຍເຊື່ອວ່າການມີຄວາມເຂົ້າໃຈ / ປະສົບການພື້ນຖານຂອງ Python ລ່ວງຫນ້າອາດຈະເປັນປະໂຫຍດກ່ອນທີ່ຈະເລີ່ມຕົ້ນກັບ Mojo.