Forwarded from Ninja Learn | نینجا لرن
دوتا قسمت دیگه هم اپلود شد 🤗
قسمت ۱۰:
https://youtu.be/7EIETZsnug4?si=8scR_A4B-MaihEew
قسمت ۱۱:
https://youtu.be/mlRZ_SMetbc?si=evTftHxoIJBqkUS1
@ninja_learn_ir
قسمت ۱۰:
https://youtu.be/7EIETZsnug4?si=8scR_A4B-MaihEew
قسمت ۱۱:
https://youtu.be/mlRZ_SMetbc?si=evTftHxoIJBqkUS1
@ninja_learn_ir
YouTube
🚀 اموزش مقدماتی DRF - 📚 قسمت 10 - 👨🏫 serializer چیست؟
خوش اومدی به Ninjalearn اینجا بهت کمک میکنیم تا مهارتهای برنامهنویسی و توسعه وب رو بصورت تخصصی و اصولی یاد بگیری. 💻 از مفاهیم پایه تا تکنیکهای پیشرفته، همه چیز رو به سادهترین و کاربردیترین شکل ممکن آموزش میدیم. با ما همراه شو تا به یک توسعهدهنده حرفهای…
Forwarded from Ninja Learn | نینجا لرن
💎 همه چیز درباره DDoS و روشهای جلوگیری با Cloudflare 💎
امروز میخوایم در مورد یه مشکل خیلی جدی برای وبسایتها صحبت کنیم: DDoS و اینکه چجوری میتونید با Cloudflare از سایتتون محافظت کنید.
حالا DDoS یعنی چی؟ 🤔
خب DDoS مخفف Distributed Denial of Service هست. یعنی یه تعداد زیادی کامپیوتر یا سرور همزمان کلی درخواست به یه سرور خاص میفرستن تا اون سرور از کار بیفته و سایتتون بالا نیاد.
چرا DDoS خطرناکه؟ ⚠️
1⃣ قطعی سرویس: سایت یا سرور شما ممکنه زمان زیادی از دسترس خارج بشه.
2⃣ افت عملکرد: سرعت سایتتون به شدت میاد پایین.
3⃣ ضرر مالی: ممکنه ضرر مالی زیادی ببینید.
چجوری با Cloudflare جلوی DDoS رو بگیریم؟ 🛡
1⃣ استفاده از CDN: Cloudflare به عنوان یه CDN، محتوای سایت شما رو توی سرورهای مختلف تو دنیا ذخیره میکنه. این کار باعث میشه درخواستها به جای سرور اصلی، برن به نزدیکترین سرور Cloudflare و فشار روی سرور اصلی کم بشه. 🌍
2⃣ فایروالهای پیشرفته: Cloudflare فایروالهای خیلی قوی داره که میتونن درخواستهای مشکوک رو تشخیص بدن و مسدودشون کنن. 🔥
3⃣ محافظت از لایه DNS: خب Cloudflare از Anycast DNS استفاده میکنه، یعنی درخواستها رو بین سرورهای مختلف پخش میکنه و این کار جلوی DDoS رو میگیره. 🌐
4⃣ تحلیل و نظارت ترافیک: با ابزارهای Cloudflare میتونید ترافیک ورودی به سایتتون رو دقیق بررسی کنید و از حملات احتمالی مطلع بشید. 📊
5⃣ محدود کردن درخواستها: Cloudflare به شما این امکان رو میده که تعداد درخواستهای ورودی از هر IP رو محدود کنید. ⛔
6⃣ خدمات Mitigation: خب Cloudflare ابزارهای ویژهای برای مقابله با حملات DDoS داره که خودکار و فوری وارد عمل میشن. 💼
چیکار کنیم موقع حمله DDoS؟ 🤔
- پیکربندی Cloudflare: مطمئن بشید که تنظیمات Cloudflare درست انجام شده و محافظت DDoS فعال هست. 🛠️
سخن پایانی🎯:
فهمیدیم که ddos چقدر خطرناکه و چطوری میتونیم با استفاده از ابزارهایی مثل cloud flare جلوشو بگیریم
امیدوارم این مطلب به دردتون خورده باشه :)❤️
@ninja_learn_ir
امروز میخوایم در مورد یه مشکل خیلی جدی برای وبسایتها صحبت کنیم: DDoS و اینکه چجوری میتونید با Cloudflare از سایتتون محافظت کنید.
حالا DDoS یعنی چی؟ 🤔
خب DDoS مخفف Distributed Denial of Service هست. یعنی یه تعداد زیادی کامپیوتر یا سرور همزمان کلی درخواست به یه سرور خاص میفرستن تا اون سرور از کار بیفته و سایتتون بالا نیاد.
چرا DDoS خطرناکه؟ ⚠️
1⃣ قطعی سرویس: سایت یا سرور شما ممکنه زمان زیادی از دسترس خارج بشه.
2⃣ افت عملکرد: سرعت سایتتون به شدت میاد پایین.
3⃣ ضرر مالی: ممکنه ضرر مالی زیادی ببینید.
چجوری با Cloudflare جلوی DDoS رو بگیریم؟ 🛡
1⃣ استفاده از CDN: Cloudflare به عنوان یه CDN، محتوای سایت شما رو توی سرورهای مختلف تو دنیا ذخیره میکنه. این کار باعث میشه درخواستها به جای سرور اصلی، برن به نزدیکترین سرور Cloudflare و فشار روی سرور اصلی کم بشه. 🌍
2⃣ فایروالهای پیشرفته: Cloudflare فایروالهای خیلی قوی داره که میتونن درخواستهای مشکوک رو تشخیص بدن و مسدودشون کنن. 🔥
3⃣ محافظت از لایه DNS: خب Cloudflare از Anycast DNS استفاده میکنه، یعنی درخواستها رو بین سرورهای مختلف پخش میکنه و این کار جلوی DDoS رو میگیره. 🌐
4⃣ تحلیل و نظارت ترافیک: با ابزارهای Cloudflare میتونید ترافیک ورودی به سایتتون رو دقیق بررسی کنید و از حملات احتمالی مطلع بشید. 📊
5⃣ محدود کردن درخواستها: Cloudflare به شما این امکان رو میده که تعداد درخواستهای ورودی از هر IP رو محدود کنید. ⛔
6⃣ خدمات Mitigation: خب Cloudflare ابزارهای ویژهای برای مقابله با حملات DDoS داره که خودکار و فوری وارد عمل میشن. 💼
چیکار کنیم موقع حمله DDoS؟ 🤔
- پیکربندی Cloudflare: مطمئن بشید که تنظیمات Cloudflare درست انجام شده و محافظت DDoS فعال هست. 🛠️
سخن پایانی🎯:
فهمیدیم که ddos چقدر خطرناکه و چطوری میتونیم با استفاده از ابزارهایی مثل cloud flare جلوشو بگیریم
#cdn #ddos #وب #امنیت_اینترنتی
Forwarded from LearnPOV | لرن پی او وی (Mohammad hossein)
میدونید فرق بین Framework و Libarary چیه ؟
Forwarded from DevTwitter | توییت برنامه نویسی
حدود ۶ سال پیش بخش آموزش وردپرس رو شروع کردیم و من عضو کوچیکی از این تیم شدم.
از اون روز تا الان خیلی چیزها عوض شده و البته خودم هم مدت زیادیه تمرکزم رفته روی محلیسازی و گسترش وردپرس تو ایران، ولی دیدن نتیجه اون تلاشها و مشارکتها واقعا لذتبخشه.
learn.w.org
@DevTwitter | <Morteza Geransayeh/>
از اون روز تا الان خیلی چیزها عوض شده و البته خودم هم مدت زیادیه تمرکزم رفته روی محلیسازی و گسترش وردپرس تو ایران، ولی دیدن نتیجه اون تلاشها و مشارکتها واقعا لذتبخشه.
learn.w.org
@DevTwitter | <Morteza Geransayeh/>
Forwarded from 🎄 یک برنامه نویس تنبل (Raymond Dev)
🔶 وبسایت AnandTech پس از نزدیک 3 دهه (۲۷ سال)، پوشش اخبار حوزه فناوری و مطالب تخصصی در زمینه سختافزار به کار خود پایان داد. «رایان اسمیت» (Ryan Smith)، سردبیر این وبسایت، این خبر را در پست خداحافظی منتشر کرد. البته تمام محتواهای قبلی این وبسایت در دسترس کاربران خواهد بود.
#خبر
@TheRaymondDev
#خبر
@TheRaymondDev
Forwarded from Code Module | کد ماژول (genix)
با Node-Schedule آشنا بشید 💀
Node-Schedule یک پکیج برنامه ریزی قدرتمند و انعطاف پذیر مثل cron برای Node.js هست که به دولوپر ها این امکان رو میده، تا وظایف برنامه ریزی شده رو به راحتی تنظیم و مدیریت کنن. این یک API ساده و در عین حال قوی ارائه میکنه که هم از زمانبندی به سبک cron و هم از اجرای یکبار کار پشتیبانی میکنه، و اون رو به گزینهای برای مدیریت وظایف برنامهریزیشده در برنامههای Node.js تبدیل میکنه.
از این پکیج چه استفاده ای میشه؟🤔
Node-Schedule به گونه ای طراحی شده که زمان بندی کار رو ساده کنه. این به دولوپر ها اجازه میده تا کارها رو بر اساس نحو آشنای cron، که زمان اجرای وظایف مشخص میکنه، برنامه ریزی کنن. به عنوان مثال، میتونید یک کار رو برای اجرا هر روز در یک زمان خاص، هر ساعت یا حتی الگوهای پیچیده تر مثل هر سه شنبه دوم ماه برنامه ریزی کنید. این کتابخانه همچنین از گزینههای زمانبندی سادهتر مثل تنظیم یک کار برای اجرا در یک تاریخ و زمان خاص پشتیبانی میکنه.
یکی از ویژگی های برجسته Node-Schedule توانایی اون در انجام وظایف تکراری و تکالیف با سهولت یکسان هست. همچنین میتونه تفاوتهای منطقه زمانی رو مدیریت کنه و اطمینان حاصل کنه که وظایف شما بدون توجه به مکان سرور در زمانهای صحیح اجرا میشه. علاوه بر این، Node-Schedule به شما این امکان رو میده که کارها رو به صورت پویا لغو یا زمان بندی مجدد کنید و به شما کنترل کامل بر زمان بندی وظایف برنامه خود رو میده.
Node-Schedule یک ابزار ضروری برای دولوپرهایی هست، که نیاز به مدیریت و اجرای وظایف برنامه ریزی شده در برنامه های خودشون رو دارن. Node-Schedule با API منعطف، پشتیبانی شبیه به cron و توانایی انجام وظایف تکراری و یکباره، فرآیند زمانبندی کار رو ساده میکنه. برای کسب اطلاعات بیشتر به ریپازیتوری این پکیج مراجعه کنید.
#node_schedule
@CodeModule
Node-Schedule یک پکیج برنامه ریزی قدرتمند و انعطاف پذیر مثل cron برای Node.js هست که به دولوپر ها این امکان رو میده، تا وظایف برنامه ریزی شده رو به راحتی تنظیم و مدیریت کنن. این یک API ساده و در عین حال قوی ارائه میکنه که هم از زمانبندی به سبک cron و هم از اجرای یکبار کار پشتیبانی میکنه، و اون رو به گزینهای برای مدیریت وظایف برنامهریزیشده در برنامههای Node.js تبدیل میکنه.
از این پکیج چه استفاده ای میشه؟
Node-Schedule به گونه ای طراحی شده که زمان بندی کار رو ساده کنه. این به دولوپر ها اجازه میده تا کارها رو بر اساس نحو آشنای cron، که زمان اجرای وظایف مشخص میکنه، برنامه ریزی کنن. به عنوان مثال، میتونید یک کار رو برای اجرا هر روز در یک زمان خاص، هر ساعت یا حتی الگوهای پیچیده تر مثل هر سه شنبه دوم ماه برنامه ریزی کنید. این کتابخانه همچنین از گزینههای زمانبندی سادهتر مثل تنظیم یک کار برای اجرا در یک تاریخ و زمان خاص پشتیبانی میکنه.
یکی از ویژگی های برجسته Node-Schedule توانایی اون در انجام وظایف تکراری و تکالیف با سهولت یکسان هست. همچنین میتونه تفاوتهای منطقه زمانی رو مدیریت کنه و اطمینان حاصل کنه که وظایف شما بدون توجه به مکان سرور در زمانهای صحیح اجرا میشه. علاوه بر این، Node-Schedule به شما این امکان رو میده که کارها رو به صورت پویا لغو یا زمان بندی مجدد کنید و به شما کنترل کامل بر زمان بندی وظایف برنامه خود رو میده.
Node-Schedule یک ابزار ضروری برای دولوپرهایی هست، که نیاز به مدیریت و اجرای وظایف برنامه ریزی شده در برنامه های خودشون رو دارن. Node-Schedule با API منعطف، پشتیبانی شبیه به cron و توانایی انجام وظایف تکراری و یکباره، فرآیند زمانبندی کار رو ساده میکنه. برای کسب اطلاعات بیشتر به ریپازیتوری این پکیج مراجعه کنید.
#node_schedule
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from کانال مهرداد لینوکس (Mehrdad Linux)
regex crossword.pdf
21.2 KB
فایل pdf جدول کلمات متقاطع با عبارت باقاعد regular expression
Forwarded from متخصص وردپرس | پوینا
کد تخفیف ووکارس برای خرید اول
اگر میخواید یک کد تخفیف برای خرید اول داشته باشید
کافیه این کد رو بزارید داخل فاکشن قالب و کد تخفیف رو بزارید داخلش
جای 5TUJ5KQF میتویند کد تخفیف خودتون رو بزارید
این کد خیلی بهتر از پلاگین های دیگه کار میکنه و عملکرد بهتری داره
function apply_first_order_discount($valid, $coupon) {
if ($coupon->get_code() === '5TUJ5KQF') {
$user_id = get_current_user_id();
$customer_orders = wc_get_orders(array(
'customer_id' => $user_id,
'status' => 'completed',
));
if (count($customer_orders) > 0) {
wc_add_notice('این کد تخفیف فقط برای اولین خرید شما قابل استفاده است.', 'error');
return false;
}
}
return $valid;
}
add_filter('woocommerce_coupon_is_valid', 'apply_first_order_discount', 10, 2);
@poinair پوینا
اگر میخواید یک کد تخفیف برای خرید اول داشته باشید
کافیه این کد رو بزارید داخل فاکشن قالب و کد تخفیف رو بزارید داخلش
جای 5TUJ5KQF میتویند کد تخفیف خودتون رو بزارید
این کد خیلی بهتر از پلاگین های دیگه کار میکنه و عملکرد بهتری داره
function apply_first_order_discount($valid, $coupon) {
if ($coupon->get_code() === '5TUJ5KQF') {
$user_id = get_current_user_id();
$customer_orders = wc_get_orders(array(
'customer_id' => $user_id,
'status' => 'completed',
));
if (count($customer_orders) > 0) {
wc_add_notice('این کد تخفیف فقط برای اولین خرید شما قابل استفاده است.', 'error');
return false;
}
}
return $valid;
}
add_filter('woocommerce_coupon_is_valid', 'apply_first_order_discount', 10, 2);
@poinair پوینا
Forwarded from LearnPOV | لرن پی او وی (Mohammad hossein)
اگه از پستامون خوشتون میاد شیر و ریاکشن یادتون نره چون بهمون انرژی میده تا روز به روز پستای بیشتر و با کیفیت تری بزاریم 🚀❤️
Forwarded from Gopher Academy
🔵 عنوان مقاله
▶ Pointers for Performance?
🟢 خلاصه مقاله:
مقالهای که مورد بررسی قرار گرفته، به بحث در مورد تاثیر بازگرداندن یک اشارهگر (pointer) به جای یک مقدار (value) از یک تابع در زبان برنامهنویسی Go پرداخته است. در زبان Go، اجرای عملکردها با بازگرداندن مقادیر عموماً توصیه میشود مگر آنکه دلایل مشخصی برای استفاده از اشارهگرها وجود داشته باشد. مقاله بیان میکند که بازگرداندن اشارهگرها میتواند در مواردی که با اندازه های بزرگ دادهساختاری سروکار داریم یا عملیاتهای پیچیدهای نیاز به انجام است، مفید باشد. این امر به دلیل کاهش تکرار کپی کردن دادهها در حافظه است. اما، استفاده نادرست از اشارهگرها میتواند به مشکلاتی مانند نشت حافظه و دسترسیهای ناامن منجر شود. مقاله تأکید میکند که تصمیم گیری برای بازگرداندن اشارهگر یا مقدار باید با توجه به الزامات کارایی و امنیت مشخص شود و نباید به صورت کلی بدون در نظر گرفتن جزئیات پیادهسازی صورت گیرد.
🟣لینک مقاله:
https://www.youtube.com/watch?v=ISOjCvpNiYA
➖➖➖➖➖➖➖➖
👑 @gopher_academy
▶ Pointers for Performance?
🟢 خلاصه مقاله:
مقالهای که مورد بررسی قرار گرفته، به بحث در مورد تاثیر بازگرداندن یک اشارهگر (pointer) به جای یک مقدار (value) از یک تابع در زبان برنامهنویسی Go پرداخته است. در زبان Go، اجرای عملکردها با بازگرداندن مقادیر عموماً توصیه میشود مگر آنکه دلایل مشخصی برای استفاده از اشارهگرها وجود داشته باشد. مقاله بیان میکند که بازگرداندن اشارهگرها میتواند در مواردی که با اندازه های بزرگ دادهساختاری سروکار داریم یا عملیاتهای پیچیدهای نیاز به انجام است، مفید باشد. این امر به دلیل کاهش تکرار کپی کردن دادهها در حافظه است. اما، استفاده نادرست از اشارهگرها میتواند به مشکلاتی مانند نشت حافظه و دسترسیهای ناامن منجر شود. مقاله تأکید میکند که تصمیم گیری برای بازگرداندن اشارهگر یا مقدار باید با توجه به الزامات کارایی و امنیت مشخص شود و نباید به صورت کلی بدون در نظر گرفتن جزئیات پیادهسازی صورت گیرد.
🟣لینک مقاله:
https://www.youtube.com/watch?v=ISOjCvpNiYA
➖➖➖➖➖➖➖➖
👑 @gopher_academy
YouTube
Go: Pointers for Performance?
Does returning a pointer from a function improve performance in go?
Forwarded from سید فرندز / برنامه نویسی / هک و امنیت / تکنولوژی (SeYeD.Dev)
میدونستید ایفون طول چیزش کوتاهه ؟ همین سیمکارت خورش
سیمکارت پشت و روش میخوره، ینی این جا واسه دوتا سیمکارته، یکی این ورش میخوره و با اون گیره پلاستیکیه نگرش میداره یکی هم اون ورش و میکنی توش
مسخرس، مگه نه ؟ 😂
@SEYED_BAX
سیمکارت پشت و روش میخوره، ینی این جا واسه دوتا سیمکارته، یکی این ورش میخوره و با اون گیره پلاستیکیه نگرش میداره یکی هم اون ورش و میکنی توش
مسخرس، مگه نه ؟ 😂
@SEYED_BAX
Forwarded from سید فرندز / برنامه نویسی / هک و امنیت / تکنولوژی (SeYeD.Dev)
جالبه ایفون محصول امریکاییه بعد این گوشی چینیا حتی sd کارت هم میزنن روی همین خشاب سیمکارت
مگه برعکس نبود ؟ چینی باید کوچیکتر میزد
@SEYED_BAX
مگه برعکس نبود ؟ چینی باید کوچیکتر میزد
@SEYED_BAX
Forwarded from سید فرندز / برنامه نویسی / هک و امنیت / تکنولوژی (SeYeD.Dev)
البته پیشرفت علم ثابت کرده که به سایز نیست، به جربزه هستش
همین ی چسه ، 1024 گیگ میتونه توی خودش نگه داره
تنها چیز کوچیکی که میتونه بیشتر از این چیز تو خودش نگه داره:
قلب کوچیک پر غصه ی منه 🥺
@SEYED_BAX
همین ی چسه ، 1024 گیگ میتونه توی خودش نگه داره
تنها چیز کوچیکی که میتونه بیشتر از این چیز تو خودش نگه داره:
قلب کوچیک پر غصه ی منه 🥺
@SEYED_BAX
Forwarded from محتوای آزاد سهراب
تغییرات این هفته کیدیای پلاسما
https://pointieststick.com/2024/08/30/this-week-in-plasma-inhibiting-inhibitions-and-more/
@SohrabContents
https://pointieststick.com/2024/08/30/this-week-in-plasma-inhibiting-inhibitions-and-more/
@SohrabContents
Adventures in Linux and KDE
This week in Plasma: inhibiting inhibitions and more!
This is a big one, folks. Plasma 6.2’s soft feature freeze is now in effect, which means the last few features have just been merged! Now we’ll have six weeks of heavy bug-fixing before…
Forwarded from DevTwitter | توییت برنامه نویسی
قبلا در مورد regex صحبت کردم
اهل حل کردن جدول هستید ؟
جدول کلمات متقاطع با عبارت باقاعد regular expression regex
فکر میکنید میتونید این جدول را حل کنید ؟
سایت برای کمک
regexr.com
@DevTwitter | <MehrdadLinux/>
اهل حل کردن جدول هستید ؟
جدول کلمات متقاطع با عبارت باقاعد regular expression regex
فکر میکنید میتونید این جدول را حل کنید ؟
سایت برای کمک
regexr.com
@DevTwitter | <MehrdadLinux/>
Forwarded from کداکسپلور | CodeExplore (Aqa Reza)
Django: فریمورک وب کامل و قوی با الگوی معماری MVT.
Flask: فریمورک سبک و ساده که برای پروژههای کوچک و سریع مناسب است.
FastAPI: فریمورکی سریع برای ساخت APIهای مدرن و قدرتمند با پشتیبانی از async.
Pyramid: فریمورکی انعطافپذیر که برای پروژههای بزرگ و پیچیده مناسب است.
TensorFlow: کتابخانهای برای یادگیری عمیق و یادگیری ماشینی.
PyTorch: فریمورکی قدرتمند و انعطافپذیر برای یادگیری عمیق.
scikit-learn: مجموعهای از الگوریتمهای یادگیری ماشینی و ابزارهای مرتبط.
Keras: رابط کاربری سطح بالا برای ساخت و آموزش مدلهای یادگیری عمیق.
Pandas: ابزار قدرتمند برای تحلیل دادههای ساختاریافته.
NumPy: ابزار برای محاسبات عددی با کارایی بالا.
Matplotlib: کتابخانهای برای ترسیم نمودارها و گرافهای دوبعدی.
Seaborn: کتابخانهای برای تجسم دادهها که بر پایه Matplotlib ساخته شده است.
SciPy: مجموعهای از الگوریتمها و ابزارهای علمی.
pytest: ابزار ساده و قدرتمند برای نوشتن و اجرای تستهای خودکار.
unittest: فریمورک استاندارد پایتون برای نوشتن تستهای واحد.
nose2: فریمورکی که به unittest قابلیتهای بیشتری اضافه میکند.
Hypothesis: فریمورکی برای تستهای مبتنی بر نمونههای تصادفی (property-based testing).
Tkinter: فریمورک استاندارد پایتون برای توسعه برنامههای دسکتاپ.
PyQt: مجموعهای از ابزارها برای توسعه برنامههای دسکتاپ با رابط کاربری گرافیکی.
Kivy: فریمورکی برای توسعه برنامههای چندپلتفرمی (موبایل، دسکتاپ و غیره).
wxPython: ابزار برای ساخت رابط کاربری گرافیکی با استفاده از کتابخانه wxWidgets.
#python
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from دستاوردهای یادگیری عمیق(InTec)
این روش برای اکثر مدلهای با پسوند
وقتی یک مدلی به تازگی منتشر میشه یا روی مدلهایی که برای تسک خاص؛ زبان خاص هستند ممکن هست اون مدل رو روی
برای همین توانایی تبدیل و سرو مدلهای مختلف به فرمت
من توی این پست سعی کردم به راحتترین روش اشاره کنم و در نهایت مسیر سخت رو هم بهش اشاره خواهم کرد برای دوستانی که علاقه دارند خودشون پیگیری کنند.
وقتی یک مدل جدید منتشر میشه اول از همه شما باید به معماری اون تگاه کنید؛ توی فایل
برای مثال آموزشی من با یک مدل حجم کم شروع خواهم کرد که همه بتونند تست و تمرین کنند؛ مدل
توی اولین قدم شما باید؛ مدل بالا یا هرمدلی که دلتون میخواد (مطمئن بشید معماری بیس مدل پشتیبانی میشه) رو روی هارد خودتون ذخیره کنید (با استفاده از هر تکنیکی که علاقه دارید.)
بعد از اون مثل آموزش افزایش طول
توی
که به
که به
اگر مدلی به پرامپت تمپلیت اشاره نکرد؛ به احتمال ۹۰٪ از فرمت بالا استفاده میکنه.
همین ۲ تا بخش برای ساخت مدل کفایت میکنه؛ اما امکان داره بعضی وقتها بخواید بصورت دیفالت یکسری از پارامترها رو ست کنید مثل
یا حتی بعضی وقتا بخشی از توکنهای تمپلیت توی خروجی به شما نشون داده بشه که با
بعد از اینکه فایل ساخته شد؛ ترمینال رو توی همون پوشه باز کنید؛ اگر خواستید مدل رو بدون
رو میزنید و بجای
برای
انواع
در نهایت هم میتونید از دستور
برای اجرای مدل استفاده کنید و در صورت که علاقه داشتید مدل رو روی سایت
.safetensor کار میکنهوقتی یک مدلی به تازگی منتشر میشه یا روی مدلهایی که برای تسک خاص؛ زبان خاص هستند ممکن هست اون مدل رو روی
Ollama نداشته باشید و بدون تعارف Ollama یکی از راحتترین گزینههای برای تجربه و تست مدلها هست.برای همین توانایی تبدیل و سرو مدلهای مختلف به فرمت
Ollama بسیار گزینه مهمی هست؛ بعنوان مثال اگر در خاطرتون باشه موقع انتشار llama3 به دلیل اشتباه در نحوه تبدیل این مدل خروجیهای اشتباهی هم از Ollama دریافت میشد و آپدیت این مورد حدودا ۳ روز زبان برد (روی توییتر بسیاری از اکانتها به تیم ollama توییت زدند.)من توی این پست سعی کردم به راحتترین روش اشاره کنم و در نهایت مسیر سخت رو هم بهش اشاره خواهم کرد برای دوستانی که علاقه دارند خودشون پیگیری کنند.
وقتی یک مدل جدید منتشر میشه اول از همه شما باید به معماری اون تگاه کنید؛ توی فایل
config.json یا توی توضیحات huggingface همیشه به این موضوع اشاره میشه که یک مدل بر پایه چه مدل یا مدلهایی توسعه داده شده؛ اگر پایه مدل llama, mistral, gemma, ... حتما توسط این تکنیک پشتیبانی میشه (از همون ساعت انتشار مدل) اما اگر معماری مدل بر پایه این مدلها نباشه؛ اول باید توسط تیم llama.cpp پشتیبانی بشه و بعد تیم ollama پشتیبانی رو اضافه خواهد کرد؛ پس یک تکنیک پیشرفته تر برای تبدیل مدلها استفاده از llama.cpp هست که توی این پست بهش نخواهم پرداخت.برای مثال آموزشی من با یک مدل حجم کم شروع خواهم کرد که همه بتونند تست و تمرین کنند؛ مدل
HuggingFaceTB/SmolLM-135M-Instruct
توی اولین قدم شما باید؛ مدل بالا یا هرمدلی که دلتون میخواد (مطمئن بشید معماری بیس مدل پشتیبانی میشه) رو روی هارد خودتون ذخیره کنید (با استفاده از هر تکنیکی که علاقه دارید.)
بعد از اون مثل آموزش افزایش طول
context برای llama3.1 روی ollama که قبلتر قرار گرفته؛ باید یک Modelfile ایجاد کنید. توی پوشهای که مدل دانلود شده یک فایل جدید به اسم Modelfile ایجاد کنید و متن زیر رو داخلش بنویسید:FROM .
PARAMETER stop <|im_start|>
PARAMETER stop <|im_end|>
PARAMETER temperature 0.1
PARAMETER top_p 0.95
TEMPLATE """{{ if .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}{{ if .Prompt }}<|im_start|>user
{{ .Prompt }}<|im_end|>
{{ end }}<|im_start|>assistant
{{ .Response }}<|im_end|>
"""
توی
Modelfile شما ۲ تا تنظیم رو واجب هست که داشته باشید؛ FROM
که به
ollama میگید مدل رو از کدوم مسیر روی سیستمعامل شما میتونه بخونه؛ توی مثال بالا از . استفاده شده که توی سیستم عامل Linux به معنای همین پوشه هست (ما modelfile رو داخل پوشه دانلود مدل hugging face قرار دادیم)TEMPLATE
که به
ollama میگه چطور باید پرامپت؛ سیستم پرامپت رو برای مدل ارسال کنه و البته چطور پاسخ مدل رو دریافت و تمیز کنه؛ jinja template فرمتی هست که استفاده میشه و همیشه توی ریپورتهای انتشار مدل بطور دقیق به template format اشاره میشه پس باید داکیومنت مدلی که میخواید تبدیل کنید رو برای این بخش بخونید برای مثال تمپلیت گزارش شده این مدل بصورت خام و بدون Jinja بصورت زیر بود (که من برای ollama اون رو بهبود دادم) :<|im_start|>system
YOUR SYSTEM PROMPT.<|im_end|>
<|im_start|>user
YOUR PROMPT.<|im_end|>
<|im_start|>assistant
RESPONSE.<|im_end|>
اگر مدلی به پرامپت تمپلیت اشاره نکرد؛ به احتمال ۹۰٪ از فرمت بالا استفاده میکنه.
همین ۲ تا بخش برای ساخت مدل کفایت میکنه؛ اما امکان داره بعضی وقتها بخواید بصورت دیفالت یکسری از پارامترها رو ست کنید مثل
temperature, top_p توی مثال بالا.یا حتی بعضی وقتا بخشی از توکنهای تمپلیت توی خروجی به شما نشون داده بشه که با
PARAMETER stop میتونید به ollama بفهمونید که توکن قبل از اون آخرین توکن تولید شده توسط مدل بوده و stop رو نباید توی خروجی نمایش بده.بعد از اینکه فایل ساخته شد؛ ترمینال رو توی همون پوشه باز کنید؛ اگر خواستید مدل رو بدون
quantization داشته باشید دستور:ollama create <NAME>:<TAG> -f Modelfile
رو میزنید و بجای
<NAME>:<TAG> اسم و تگ مدل رو بهش میدید؛ اسم واجب هست و چیزی میشه که توی ollama list نمایش داده میشه؛ اما تگ واجب نیست و مقدار دیفالت اون latest خواهد بود.برای
quantize کردن مدل؛ollama create <NAME>:q4_0 -f Modelfile --quantize q4_0
انواع
quantization های موجود رو میتونید توی document های ollama بخونید ولی q4_0 یکی از معروفترین موارد هست. (معروفترین؛ بهترین نیست لزوما).در نهایت هم میتونید از دستور
ollama run <NAME>:<TAG>
برای اجرای مدل استفاده کنید و در صورت که علاقه داشتید مدل رو روی سایت
ollama هم قرار بدید.Forwarded from Dev Dastan (Hossein Mousavi)
Advantages: Enhances SEO, improves initial page load performance.
Disadvantages: More complex to implement due to dual rendering paths.
Usage: Best for applications that benefit from both SEO and rich client-side interactivity.
Advantages: Flexibility to use the best rendering method for each application part, optimizing performance.
Disadvantages: Increased complexity in configuration and potential overhead in maintaining different rendering paths.
Usage: Ideal for large applications with diverse content needs (dynamic, static, interactive).
Advantages: Faster initial load time, better SEO, simplified debugging, and improved accessibility.
Disadvantages: Higher server resource requirements and potentially slower subsequent page loads.
Usage: Suitable for content-heavy sites where SEO and initial rendering speed are critical.
Advantages: Lower server load, simpler deployment, and dynamic interfaces.
Disadvantages: Slower initial load, poorer SEO, and reduced accessibility for some users.
Usage: Best for interactive single-page applications where SEO is not a priority.
Advantages: High performance, enhanced security, and reduced server load.
Disadvantages: Not suitable for sites requiring frequent updates.
Usage: Ideal for websites with static content, such as blogs and documentation.
Advantages: Combines the benefits of static generation with flexibility for content updates, maintaining high performance.
Disadvantages: More complex to set up and manage compared to traditional SSG.
Usage: Perfect for sites that need regular content updates but also want the performance benefits of static rendering.
➖➖➖➖➖➖
➖➖➖➖➖➖
#nuxt #vue
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from دستاوردهای یادگیری عمیق(InTec)
توی این آموزش چون مدل
اگر امکان آپدیت نداشتید؛ یا معماری مدل هنوز توسط
باید از
گوشیهای
SmolLM برپایه معماریهایی که قبلا پشتیبانی میشده نیست شما به ollama 3.7 نیاز دارید.اگر امکان آپدیت نداشتید؛ یا معماری مدل هنوز توسط
ollama پشتیبانی نمیشد. (هفته قبل)باید از
llama.cpp برای تبدیل استفاده میکردید.گوشیهای
android بخصوص نسل SnapDragon 8 Gen3 توانایی اجرای این مدل با تعداد توکن بسیار بالایی رو دارا هست.