#ام_دی_کورس
و تمام :)
توی تصویر ها میتونید ورودی متن ها و خروجی های تولید شده را ببینید
کد کامل در ریپوی Md Course
🆔 @MdDaily
و تمام :)
توی تصویر ها میتونید ورودی متن ها و خروجی های تولید شده را ببینید
کد کامل در ریپوی Md Course
🆔 @MdDaily
#ام_دی_کورس
هدف اصلی این آموزش این بود که اگه شما قصد این رو دارید که وارد دنیای یادگیری ماشین و هوش مصنوعی بشید یا به این موارد علاقه دارید یه ایده ی کلی از اینکه چیز ها چطوری کار میکنند و پشت صحنه چه خبره به شما بده .
توی این آموزش از open llama7b استفاده شد که به منابع زیادی برای پردازش نیاز داره و بهینه نشده. ولی برای آموزش من این مدل را انتخاب کردم تا نشون بدم llm چطوری کار میکنه و شما با این روش میتونید llm های دیگه توی Huggingface رو امتحان کنید.
خب تا اینجا با مفاهیم آشنا شدیم و تقریبا فهمیدیم اون پشت صحنه چه خبره. الان وقتشه بریم سراغ LLM هایی که هم بهینه شدند و هم سریع ریسپانس تولید میکنند و حتی میتونید روی سیستم شخصی خودتونم ازشون استفاده کنید اگر منابع خوبی دارید.
ادامه ی توضیحات در پست بعدی :)
🆔 @MdDaily
هدف اصلی این آموزش این بود که اگه شما قصد این رو دارید که وارد دنیای یادگیری ماشین و هوش مصنوعی بشید یا به این موارد علاقه دارید یه ایده ی کلی از اینکه چیز ها چطوری کار میکنند و پشت صحنه چه خبره به شما بده .
توی این آموزش از open llama7b استفاده شد که به منابع زیادی برای پردازش نیاز داره و بهینه نشده. ولی برای آموزش من این مدل را انتخاب کردم تا نشون بدم llm چطوری کار میکنه و شما با این روش میتونید llm های دیگه توی Huggingface رو امتحان کنید.
خب تا اینجا با مفاهیم آشنا شدیم و تقریبا فهمیدیم اون پشت صحنه چه خبره. الان وقتشه بریم سراغ LLM هایی که هم بهینه شدند و هم سریع ریسپانس تولید میکنند و حتی میتونید روی سیستم شخصی خودتونم ازشون استفاده کنید اگر منابع خوبی دارید.
ادامه ی توضیحات در پست بعدی :)
🆔 @MdDaily
This media is not supported in your browser
VIEW IN TELEGRAM
#ام_دی_کورس
توی این ویدیو با استفاده ریپوی https://github.com/camenduru/text-generation-webui-colab و LLM های بهینه شده. باهم یک محیط وب میاریم بالا که از منابع google colab استفاده میکنه و
بهش چالش برنامه نویسی میدیم تا ببینم چطوری حل میکنه و ازش میخوایم برامون متن خلاصه کنه
شما هم میتونید مثل این ویدیو بقیه ی مدل های موجود توی ریپو رو تست کنید. پرامپت هاشون رو تغییر بدید. در محیط وبی که در اختیار دارید مدل رو تمرین بدید و چیز های جدید یاد بگیرید .
اگه دوست داشتید llama-2-7b رو روی سیستم خودتون امتحان کنید از این مقاله استفاده کنید.
این آموزش به اتمام رسید. اگه سوالی داشتید کامنت ها باز هستند.
🆔 @MdDaily
توی این ویدیو با استفاده ریپوی https://github.com/camenduru/text-generation-webui-colab و LLM های بهینه شده. باهم یک محیط وب میاریم بالا که از منابع google colab استفاده میکنه و
llama-2-7b-chat-GPTQ-4bit (4bit) رو تست میکنیم که مناسب چت بات ها هست و بهینه شده تا از منابع کمتری استفاده کنه بهش چالش برنامه نویسی میدیم تا ببینم چطوری حل میکنه و ازش میخوایم برامون متن خلاصه کنه
شما هم میتونید مثل این ویدیو بقیه ی مدل های موجود توی ریپو رو تست کنید. پرامپت هاشون رو تغییر بدید. در محیط وبی که در اختیار دارید مدل رو تمرین بدید و چیز های جدید یاد بگیرید .
اگه دوست داشتید llama-2-7b رو روی سیستم خودتون امتحان کنید از این مقاله استفاده کنید.
این آموزش به اتمام رسید. اگه سوالی داشتید کامنت ها باز هستند.
🆔 @MdDaily
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
ادرنالین رو از دست ندین 👨🏻💻
یک شبکه عصبی جالب برای برنامه نویسا که نادرستی کد رو به دقت شناسایی می کنه و گزینه هایی برای اصلاح آنها ارائه میده.
useadrenaline.com
<Hounaar>
🆔 @MdDaily
یک شبکه عصبی جالب برای برنامه نویسا که نادرستی کد رو به دقت شناسایی می کنه و گزینه هایی برای اصلاح آنها ارائه میده.
useadrenaline.com
<Hounaar>
🆔 @MdDaily
🔥2👨💻1
در مورد این هک هایی که اتفاق میفته و دیتا شرکتهای بزرگ را میبرند، الزاما همیشه از طریق آسیبپذیری نیست، لذا به نکات زیر توجه فرمایید 🤭
به هاستینگ اعتماد نکنید ( مخصوصا ایرانی )، اینها به فایلهای مشتری دسترسی دارند و اگر چیزه جذابی ببینند احتمال دارد برای خودشون کپی کنند.
یک) اگر یک کسب و کار بزرگی دارید که نیازمند سرور اختصاصیست به هر نحوی که شده از شرکتهای معتبر سرور بگیرید و به این هاست فروشهای داخل زیاد اعتماد نکنید
اگر سایت / دیتا جالبی داشته باشید اینها ممکنه درایو سرور را clone میگیرند یا با KVM وصل میشوند و سورس/دیتا سایت شما را بدزدند.
دو) کد خودتون را محافظت کنید اگر مثلا php است با چیزهایی مثل sourceguardian و ... کدتون را encrypt کنید و حتما کد را روی دامنه قفل کنید که فقط روی دامنه شما و localhost اجرا بشود
سه) سیستم عامل را encrypt کنید که سرویس دهنده توانایی دسترسی به فایلها/دیتابیس شما را نداشته باشد
<Teegra>
🆔 @MdDaily
به هاستینگ اعتماد نکنید ( مخصوصا ایرانی )، اینها به فایلهای مشتری دسترسی دارند و اگر چیزه جذابی ببینند احتمال دارد برای خودشون کپی کنند.
یک) اگر یک کسب و کار بزرگی دارید که نیازمند سرور اختصاصیست به هر نحوی که شده از شرکتهای معتبر سرور بگیرید و به این هاست فروشهای داخل زیاد اعتماد نکنید
اگر سایت / دیتا جالبی داشته باشید اینها ممکنه درایو سرور را clone میگیرند یا با KVM وصل میشوند و سورس/دیتا سایت شما را بدزدند.
دو) کد خودتون را محافظت کنید اگر مثلا php است با چیزهایی مثل sourceguardian و ... کدتون را encrypt کنید و حتما کد را روی دامنه قفل کنید که فقط روی دامنه شما و localhost اجرا بشود
سه) سیستم عامل را encrypt کنید که سرویس دهنده توانایی دسترسی به فایلها/دیتابیس شما را نداشته باشد
<Teegra>
🆔 @MdDaily
👀2👍1🤔1🤯1
اگه برای طراحی اپلیکیشن و محصولتون نیاز به ایده و یه منبع الهام دارید این وب سایت اومده تمام illustration های استفاده شده توی سایتها و اپهای معروف رو دسته بندی شده و با اسکرین شات هاشون گذاشته
https://illustrationsuniverse.com/
🆔 @MdDaily
https://illustrationsuniverse.com/
🆔 @MdDaily
👌3🔥2🗿1
Forwarded from Seyed Mahdi Notes (Seyed Mahdi)
دیروز سوال شد ازم که آیا fast api سریع هست؟
خب در مرحله ی اول که اسمش روشه . اسمش فسته . اگه کند بود اسمشو میزاشتن slow api :)
به نظر من این قضیه و شمارش ریکوئست هایی که هر فریمورک میتونه در ثانیه ریسپانس بده (req/sec) کار باطلی هست
بر فرض ما یه app رو تازه نوشتیم(به هر زبونی و فریمورکی فرقی نمیکنه) توی قدم اول رانش میکنیم!!! نمیریم استرس و لود تست ازش بگیریم که همون اول :/
بعد چندین سال صبر میکنیم تا یوزرای همزمان سایت زیادتر بشن!
بعد ازدیاد جمعیت اولین bottleneck ای که بر میخوریم اینه که اپ کند شده... خب ورکر هاشو زیاد میکنیم. توی پایتون گونیکورن این قضیه رو هندل میکنه
بعد یه مدت وقتی شلوغ تر شدیم میبینیم دیتابیس زیر فشاره. خب قبل اینکه توی این استیت باشید باید کوئری هاتون رو تا جای ممکن بهینه میکردید.
توی این مرحله ۲ تا سولوشن دارید! (دقت کنید که هنوز مهم نیست اپ رو با چی نوشتید:))
- کش کردن: بخشی از دیتای دیتابیس رو کش کنید حالا یا با قابلیتای خود دیتابیس یا ردیس ای چیزی بزارید وسط
- کلاستر کردن دیتابیس: میتونید دیتابیس رو ۳ تا اینستنس ازش بیارید بالا و یا slave و master بزارید و تمام read ها رو بفرسید سمت اسلیو
خب تا اینجا احتمالا بالای ۵۰۰ تا یوزر همزمان دارید! ادامه بدم؟
خب قدم بعد مجدد app کم میاره اگه نمیتونید ترد ها و ورکر هاشو بیشتر از این بالا ببرید ؛ اینجاست که بحث فریمورک ها رو مطرح ...
نه خب سخت در اشتباهید بیام سر قضیه فریمورک و زبان بحث کنم
وقتی شما ۱۰۰۰ تا یوزر همزمان دارید یعنی پولتون از پارو بالا میره
برید ۳ تا سرور دیگه بخرید و بکندتون رو روی اونا هم ران کنید(همزمان ۳ جا) بعد از جایی که خریدید بگید یه نتورک داخلی بین این ۴ سرورتون بزاره . روی سرور ۴ ام haproxy یا nginx بزنید که ترافیک ورودی رو پخش کنه بین این ۳ تا سرور ... ایزی
در راستای این پست ، یکی میگفت: اونایی که وسط حرفاشون کلمات انگلیسی استفاده میکنن خیلی کنسل هستن :))))
خب در مرحله ی اول که اسمش روشه . اسمش فسته . اگه کند بود اسمشو میزاشتن slow api :)
به نظر من این قضیه و شمارش ریکوئست هایی که هر فریمورک میتونه در ثانیه ریسپانس بده (req/sec) کار باطلی هست
بر فرض ما یه app رو تازه نوشتیم(به هر زبونی و فریمورکی فرقی نمیکنه) توی قدم اول رانش میکنیم!!! نمیریم استرس و لود تست ازش بگیریم که همون اول :/
بعد چندین سال صبر میکنیم تا یوزرای همزمان سایت زیادتر بشن!
بعد ازدیاد جمعیت اولین bottleneck ای که بر میخوریم اینه که اپ کند شده... خب ورکر هاشو زیاد میکنیم. توی پایتون گونیکورن این قضیه رو هندل میکنه
بعد یه مدت وقتی شلوغ تر شدیم میبینیم دیتابیس زیر فشاره. خب قبل اینکه توی این استیت باشید باید کوئری هاتون رو تا جای ممکن بهینه میکردید.
توی این مرحله ۲ تا سولوشن دارید! (دقت کنید که هنوز مهم نیست اپ رو با چی نوشتید:))
- کش کردن: بخشی از دیتای دیتابیس رو کش کنید حالا یا با قابلیتای خود دیتابیس یا ردیس ای چیزی بزارید وسط
- کلاستر کردن دیتابیس: میتونید دیتابیس رو ۳ تا اینستنس ازش بیارید بالا و یا slave و master بزارید و تمام read ها رو بفرسید سمت اسلیو
خب تا اینجا احتمالا بالای ۵۰۰ تا یوزر همزمان دارید! ادامه بدم؟
خب قدم بعد مجدد app کم میاره اگه نمیتونید ترد ها و ورکر هاشو بیشتر از این بالا ببرید ؛ اینجاست که بحث فریمورک ها رو مطرح ...
نه خب سخت در اشتباهید بیام سر قضیه فریمورک و زبان بحث کنم
وقتی شما ۱۰۰۰ تا یوزر همزمان دارید یعنی پولتون از پارو بالا میره
برید ۳ تا سرور دیگه بخرید و بکندتون رو روی اونا هم ران کنید(همزمان ۳ جا) بعد از جایی که خریدید بگید یه نتورک داخلی بین این ۴ سرورتون بزاره . روی سرور ۴ ام haproxy یا nginx بزنید که ترافیک ورودی رو پخش کنه بین این ۳ تا سرور ... ایزی
در راستای این پست ، یکی میگفت: اونایی که وسط حرفاشون کلمات انگلیسی استفاده میکنن خیلی کنسل هستن :))))
Seyed Mahdi Notes
دیروز سوال شد ازم که آیا fast api سریع هست؟ خب در مرحله ی اول که اسمش روشه . اسمش فسته . اگه کند بود اسمشو میزاشتن slow api :) به نظر من این قضیه و شمارش ریکوئست هایی که هر فریمورک میتونه در ثانیه ریسپانس بده (req/sec) کار باطلی هست بر فرض ما یه app رو…
در ادامه ی پست سید مهدی عزیز منم نظر و تجربه خودم رو میگم:
وقتی شما قراره یه پروژه ایو شروع کنید، اگه تمام مدت به این فکر کنید که قراره از چه ابزاری استفاده بشه و اگه از این ابزار یا تکنولوژی استفاده کنم نکنه در آینده به مشکل بخوره، کند بشه، منسوخ بشه، پشیمون بشم و کلی افکار که قراره شما را بمباران کنه، ممکنه هیچ وقت نتونید اون ایده را شروع یا محصول کنید یا بتونید به نتیجه برسونیدش
واقعا کاربر استفاده کننده براش مهم نیست شما اون پشت از چی استفاده کردید، پروژه را با fast api زدید یا django یا حتی node js . تنها چیزی که برا کاربر مهمه اینکه اون اپ یا سایت داره بدون مشکل کار میکنه
پس شما بجای اینکه به اون تکنولوژی و ابزاری که ازش دارید استفاده میکنید وابسته باشید، باید روی مهارت های خودتون ساختار پروژه تمرکز کنید. اما این دقیقا یعنی چی؟
اینکه شما کدوم ابزار رو استفاده کنید جزئیاته بیشتر از اینکه خودتون رو در گیر جزئیات کنید ببینید دقیقا میخواین چیکار کنید
جزئیات خودش مشخص میشه
برای انتخب زبانی که قراره پروژتون رو باهاش ببرید جلو نه به بنجمارک ها اعتماد کنید و نه از روی ترند انتخاب کنید
چیز های مختلف رو تست کنید و ببینید با کدوم راحت و مسلط هستید با همون پروژه رو ببرید جلو
اما چرا نباید به بنجمارک ها اعتماد کنیم؟
بنجمارک گرفتن اصلا کار آسونی نیست
محیطی که توی اون بنجمارک گرفتن با محیط اجرایی شما فرق میکنه
کدی که توی بنجمارکه با کد شما فرق میکنه
شرایطی که توش بنجمارک گرفتن با شرایط شما فرق میکنه و کلی پارامتر دیگه هست که چرا نباید به بنجمارک ها اعتماد کنیم .
بنجمارک میتونه در حالتی قابل اعتماد باشه که مثلا بین دوتا فریم ورک شک دارید روی محیط اجرایی خودتون با شرایط یکسان از این دوتا بنجمارک میگیرد و به انتخابتون کمک میکنه
به نقل قول از دوستان:
بهترین زبان و تکنولوژی اونیکه شما ازش در آمد دارید :)
در نهایت خیلی خودتون رو قاطی دعوا های اون زبان از اون بهتره ها و اینا نکنید اینا همشون ابزارن، مهم مهارت و دانش خودتونه که مهمه تا ابزاری که دارید باهاش کار میکنید
🆔 @MdDaily
وقتی شما قراره یه پروژه ایو شروع کنید، اگه تمام مدت به این فکر کنید که قراره از چه ابزاری استفاده بشه و اگه از این ابزار یا تکنولوژی استفاده کنم نکنه در آینده به مشکل بخوره، کند بشه، منسوخ بشه، پشیمون بشم و کلی افکار که قراره شما را بمباران کنه، ممکنه هیچ وقت نتونید اون ایده را شروع یا محصول کنید یا بتونید به نتیجه برسونیدش
واقعا کاربر استفاده کننده براش مهم نیست شما اون پشت از چی استفاده کردید، پروژه را با fast api زدید یا django یا حتی node js . تنها چیزی که برا کاربر مهمه اینکه اون اپ یا سایت داره بدون مشکل کار میکنه
پس شما بجای اینکه به اون تکنولوژی و ابزاری که ازش دارید استفاده میکنید وابسته باشید، باید روی مهارت های خودتون ساختار پروژه تمرکز کنید. اما این دقیقا یعنی چی؟
اینکه شما کدوم ابزار رو استفاده کنید جزئیاته بیشتر از اینکه خودتون رو در گیر جزئیات کنید ببینید دقیقا میخواین چیکار کنید
جزئیات خودش مشخص میشه
برای انتخب زبانی که قراره پروژتون رو باهاش ببرید جلو نه به بنجمارک ها اعتماد کنید و نه از روی ترند انتخاب کنید
چیز های مختلف رو تست کنید و ببینید با کدوم راحت و مسلط هستید با همون پروژه رو ببرید جلو
اما چرا نباید به بنجمارک ها اعتماد کنیم؟
بنجمارک گرفتن اصلا کار آسونی نیست
محیطی که توی اون بنجمارک گرفتن با محیط اجرایی شما فرق میکنه
کدی که توی بنجمارکه با کد شما فرق میکنه
شرایطی که توش بنجمارک گرفتن با شرایط شما فرق میکنه و کلی پارامتر دیگه هست که چرا نباید به بنجمارک ها اعتماد کنیم .
بنجمارک میتونه در حالتی قابل اعتماد باشه که مثلا بین دوتا فریم ورک شک دارید روی محیط اجرایی خودتون با شرایط یکسان از این دوتا بنجمارک میگیرد و به انتخابتون کمک میکنه
به نقل قول از دوستان:
بهترین زبان و تکنولوژی اونیکه شما ازش در آمد دارید :)
در نهایت خیلی خودتون رو قاطی دعوا های اون زبان از اون بهتره ها و اینا نکنید اینا همشون ابزارن، مهم مهارت و دانش خودتونه که مهمه تا ابزاری که دارید باهاش کار میکنید
🆔 @MdDaily
👍8
این ابزار اپن سورس DevToys هم خیلی جالبه . بهتون لیستی از ابزار هایی که برای استفاده ازشون مجبورید برید سراغ سایت های آنلاین یا از ابزار های شخص ثالث استفاده کنید رو به صورت اجرای افلاین میده .
لیست ابزار هاش:
Converters
JSON <> YAML
Timestamp
Number Base
Cron Parser
Encoders / Decoders
HTML
URL
Base64 Text & Image
GZip
JWT Decoder
Formatters
JSON
SQL
XML
Generators
Hash (MD5, SHA1, SHA256, SHA512)
UUID 1 and 4
Lorem Ipsum
Checksum
Text
Escape / Unescape
Inspector & Case Converter
Regex Tester
Text Comparer
XML Validator
Markdown Preview
Graphic
Color Blindness Simulator
Color Picker & Contrast
PNG / JPEG Compressor
Image Converter
نسخه ی ویندوز را از devtoys.app و نسخه ی مک را هم از ریپوی گیت هاب DevtoysMac میتونید دانلود کنید. و فعلا مشابهی براش تو لینوکس نیست :)
🆔 @MdDaily
لیست ابزار هاش:
Converters
JSON <> YAML
Timestamp
Number Base
Cron Parser
Encoders / Decoders
HTML
URL
Base64 Text & Image
GZip
JWT Decoder
Formatters
JSON
SQL
XML
Generators
Hash (MD5, SHA1, SHA256, SHA512)
UUID 1 and 4
Lorem Ipsum
Checksum
Text
Escape / Unescape
Inspector & Case Converter
Regex Tester
Text Comparer
XML Validator
Markdown Preview
Graphic
Color Blindness Simulator
Color Picker & Contrast
PNG / JPEG Compressor
Image Converter
نسخه ی ویندوز را از devtoys.app و نسخه ی مک را هم از ریپوی گیت هاب DevtoysMac میتونید دانلود کنید. و فعلا مشابهی براش تو لینوکس نیست :)
🆔 @MdDaily
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
در ادامه ی پست قبلی توی این ویدیو یوتیوب آموزش نصب و استفاده از برخی ابزار های Devtoys رو آموزش داده که در فرایند توسعه به شما کمک میکنه
🆔 @MdDaily
🆔 @MdDaily
👍2
بالاخره Mojo به صورت عمومی منتشر شد و می تونید با ثبت نام توی سایت https://www.modular.com/mojo با دانلود Mojo Sdk این زبان را تست کنید
پیش نیاز هاشم اینکه حتما آخرین نسخه python و کامپایلر clang++ یا g++ رو داشته باشید.
روی ویندوز یا مک ازش نمیتونید به صورت مستقیم استفاده کنید چون فقط روی توزیع های لینوکسی کار میکنه و توزیع پیشنهادی سایت mojo نسخه ی پایدار یا آخرین نسخه ی منتشر شده ی اوبونتو هستش
پس در نتیجه برای نصبش رو ویندوز باید از WSL استفاده کنید
توی پست های بعدی باهم این زبان رو نصب و تست میکنیم ؛)
🆔 @MdDaily
پیش نیاز هاشم اینکه حتما آخرین نسخه python و کامپایلر clang++ یا g++ رو داشته باشید.
روی ویندوز یا مک ازش نمیتونید به صورت مستقیم استفاده کنید چون فقط روی توزیع های لینوکسی کار میکنه و توزیع پیشنهادی سایت mojo نسخه ی پایدار یا آخرین نسخه ی منتشر شده ی اوبونتو هستش
پس در نتیجه برای نصبش رو ویندوز باید از WSL استفاده کنید
توی پست های بعدی باهم این زبان رو نصب و تست میکنیم ؛)
🆔 @MdDaily
خب بعد از تکمیل فرایند ثبت نام در سایت Mojo برای شما صفحه ی دانلود را میاره که بهتون آموزش میده توی ویندوز یا مک یا لینوکس چطوری میتونید sdk را نصب کنید . به نظر میرسه که فعلا فقط برای توزیع ابونتو در دسترس هستش و برای نصب و تست توی بقیه ی توزیع های لینوکسی مثل آرچ یا فدورا میتونید از داکر ایمیج اوبنتو یا پروژه ی distrobox استفاده کنید.
پ ن :
توزیع خودمم آرچ هستش و من از distrobox استفاده میکنم. به طور خلاصه distrobox پروژه ایه که به شما اجازه میده از بقیه ی توزیع های لینوکسی توی ترمینالتون استفاده کنید.
🆔 @MdDaily
پ ن :
توزیع خودمم آرچ هستش و من از distrobox استفاده میکنم. به طور خلاصه distrobox پروژه ایه که به شما اجازه میده از بقیه ی توزیع های لینوکسی توی ترمینالتون استفاده کنید.
🆔 @MdDaily
خب یک فایل جدید بنام hello.mojo ایجاد کردم و با کامند :
برنامه را اجرا کردم که خروجیه :
رو نمایش داد :)
یکی از تفاوت های سینتکس mojo با پایتون که توی کد هم مشخصه تابع شروع کننده برنامس بجای کد پایتون :
🆔 @MdDaily
mojo hello.mojo برنامه را اجرا کردم که خروجیه :
hello world رو نمایش داد :)
یکی از تفاوت های سینتکس mojo با پایتون که توی کد هم مشخصه تابع شروع کننده برنامس بجای کد پایتون :
if __name__ = = "__main__":توی mojo از :
def main():استفاده میشه
🆔 @MdDaily
👍1
خب بریم سراغ تست سرعت اجرای پایتون و mojo در برنامه ی fibonacci .
اینجا ما کد پایتون و mojo رو داریم که یک برنامه ی fibonacci را با فرمول:
موقع نوشتن کدش توی mojo متوجه شدم هنوز این زبان خیلی ناقصه و بر خلاف تبلیغاتی که براش انجام شده هنوز نمیشه توی محیط واقعی ازش استفاده کرد. مثلا موقع استفاده از print توی mojo شما نمیتونید از keyword ها مثل پایتون استفاده کنید و با خطای:
اما بریم سراغ سرعت اجرا:
Python:
و بله پایتون اینجا داره بهتر عمل میکنه :)
🆔 @MdDaily
اینجا ما کد پایتون و mojo رو داریم که یک برنامه ی fibonacci را با فرمول:
Fn = Fn-1 + Fn-2
اجرا می کنند موقع نوشتن کدش توی mojo متوجه شدم هنوز این زبان خیلی ناقصه و بر خلاف تبلیغاتی که براش انجام شده هنوز نمیشه توی محیط واقعی ازش استفاده کرد. مثلا موقع استفاده از print توی mojo شما نمیتونید از keyword ها مثل پایتون استفاده کنید و با خطای:
keyword arguments are not supported yet
مواجه میشید. اما بریم سراغ سرعت اجرا:
Python:
python fib.py 0.02s user 0.01s system 97% cpu 0.031 total
Mojo:mojo fib.mojo 0.09s user 0.03s system 114% cpu 0.102 total و بله پایتون اینجا داره بهتر عمل میکنه :)
🆔 @MdDaily
👍1🔥1🍾1
Md Daily
خب بریم سراغ تست سرعت اجرای پایتون و mojo در برنامه ی fibonacci . اینجا ما کد پایتون و mojo رو داریم که یک برنامه ی fibonacci را با فرمول: Fn = Fn-1 + Fn-2 اجرا می کنند موقع نوشتن کدش توی mojo متوجه شدم هنوز این زبان خیلی ناقصه و بر خلاف تبلیغاتی که…
💡 نتیجه
بعد از اینکه با دستور :
Mojo executable :
- آیا mojo میتونه جای پایتون رو بگیره؟
جواب کوتاه: نه
خیلی پروژه های بزرگ هوش مصنوعی و آنالیز داده با پایتون نوشته شدن و اگه قرار باشه به mojo مهاجرت کنند، مجبورن خیلی بازنویسی کنند و هزینه و زمان زیادی را صرف کنند
- آیا mojo واقعا از پایتون سریع تره؟
جواب کوتاه: هم آره هم نه
در حالت عادی پایتون از mojo سریع تره ولی بعد از گرفتن خروجی در mojo سرعت برنامه ای که با mojo نوشته شده از پایتون بیشتر میشه
- آیا منی که پایتون بلدم یعنی mojo هم بلدم؟
جواب کوتاه: تقریبا نه
با مراجعه به مستندات mojo میتونید ببیند که چه قدر نوشتن برنامه در پایتون و mojo متفاوته و قواعد این زبان ها مثل هم نیستند . mojo روی کاغذ سینتکسش شبیه پایتونه ولی در عمل خیلی متفاوته .
- آیا mojo با اکوسیستم پایتون کاملا سازگاره؟
جواب کوتاه: بستگی داره
برای استفاده از پکیج های پایتونی تو mojo باید پکیج python را صدا بزنید که پکیج پایتون mojo برای شما چیزی که مد نظرتونه رو import کنه مثلا برای استفاده از numpy :
- آيا mojo متن بازه؟
نه!
قرار نیست هر چیز جدیدی که میاد جایگزین زبان های قبلی بشه . مثل چند وقت پیش که زبان carbon خیلی سروصدا کرد و الان میبینیم ازش هیچ خبری نیست
خلاصه اینکه خوبه چیز های جدید را امتحان کنید و یاد بگیرید ولی خیلی درگیر جو ترند ها نشید :)
🆔 @MdDaily
بعد از اینکه با دستور :
mojo build fib.mojo
برنامه را بیلد کردم و مجدد تست گرفتم سرعت اجرایی به طرز چشمگیری افزایش پیدا کرد :Mojo executable :
./fib 0.00s user 0.00s system 84% cpu 0.003 total
اما چیزی که تا اینجای کار مشخصه اینکه mojo صرفا سینتکسش شبیه پایتون هستش و اگر شما یک برنامه ای دارید که با پایتون نوشتید و قصد داشته باشید با mojo ازش خروجی بگیرید این کار بدون بازنویسی بخش های زیادی از پروژه ی شما فعلا غیر ممکنه و mojo خیلی با built in های پایتونی سازگار نیست و داره مسیر جدا گونه ایو دنبال میکنه. - آیا mojo میتونه جای پایتون رو بگیره؟
جواب کوتاه: نه
خیلی پروژه های بزرگ هوش مصنوعی و آنالیز داده با پایتون نوشته شدن و اگه قرار باشه به mojo مهاجرت کنند، مجبورن خیلی بازنویسی کنند و هزینه و زمان زیادی را صرف کنند
- آیا mojo واقعا از پایتون سریع تره؟
جواب کوتاه: هم آره هم نه
در حالت عادی پایتون از mojo سریع تره ولی بعد از گرفتن خروجی در mojo سرعت برنامه ای که با mojo نوشته شده از پایتون بیشتر میشه
- آیا منی که پایتون بلدم یعنی mojo هم بلدم؟
جواب کوتاه: تقریبا نه
با مراجعه به مستندات mojo میتونید ببیند که چه قدر نوشتن برنامه در پایتون و mojo متفاوته و قواعد این زبان ها مثل هم نیستند . mojo روی کاغذ سینتکسش شبیه پایتونه ولی در عمل خیلی متفاوته .
- آیا mojo با اکوسیستم پایتون کاملا سازگاره؟
جواب کوتاه: بستگی داره
برای استفاده از پکیج های پایتونی تو mojo باید پکیج python را صدا بزنید که پکیج پایتون mojo برای شما چیزی که مد نظرتونه رو import کنه مثلا برای استفاده از numpy :
from python import Pythonو خب اینجا داره پایتون اجرا میشه و خروجی mojo هم دیگه سرعتی که انقدر داره دربارش تبلیغ میشه رو نداره.
# This is equivalent to Python's `import numpy as np`
let np = Python.import_module("numpy")
- آيا mojo متن بازه؟
نه!
قرار نیست هر چیز جدیدی که میاد جایگزین زبان های قبلی بشه . مثل چند وقت پیش که زبان carbon خیلی سروصدا کرد و الان میبینیم ازش هیچ خبری نیست
خلاصه اینکه خوبه چیز های جدید را امتحان کنید و یاد بگیرید ولی خیلی درگیر جو ترند ها نشید :)
🆔 @MdDaily
👍4
🔸 خیلی از تصمیمهای ما بر اساس ترس و شک هستن و ترسهامون اقدامات و کارهای ما رو تحت تأثیر قرار میدن. مثلاً ممکنه دلمون بخواد که حوزه کاریمون رو تغییر بدیم، ولی با خودمون فکر میکنیم نکنه دیر باشه یا نتونم موفق بشم؟
🔹و همین ترس و شک باعث میشه این کار رو انجام ندیم. در واقع ما به جای اینکه دلیلی برای انجام کار پیدا کنیم، دنبال دلیلی هستیم که اون کار رو انجام ندیم.
🔸اشتباه کردن یه اتفاق اجتنابناپذیره، همینطور احساس ترس یا شک؛ اما آیا این موضوع به این معنیه که اگر جایی ترسیدیم یا شک داشتیم نباید ادامه بدیم؟ اصلاً این طور نیست. اما چطور میتونیم به این ترس غلبه کنیم؟ در ادامه ۵ راهکاری که بهمون توی این کار کمک میکنه رو توضیح دادیم.
<TechRasa>
🆔 @MdDaily
🔹و همین ترس و شک باعث میشه این کار رو انجام ندیم. در واقع ما به جای اینکه دلیلی برای انجام کار پیدا کنیم، دنبال دلیلی هستیم که اون کار رو انجام ندیم.
🔸اشتباه کردن یه اتفاق اجتنابناپذیره، همینطور احساس ترس یا شک؛ اما آیا این موضوع به این معنیه که اگر جایی ترسیدیم یا شک داشتیم نباید ادامه بدیم؟ اصلاً این طور نیست. اما چطور میتونیم به این ترس غلبه کنیم؟ در ادامه ۵ راهکاری که بهمون توی این کار کمک میکنه رو توضیح دادیم.
<TechRasa>
🆔 @MdDaily
👍1