Forwarded from tech-afternoon (Amin Mesbahi)
یادگیری C4 Model با مثال واقعی - بخش اول
💡سناریو:
فرض کن یه نرمافزار داریم که هر چند ساعتیکبار میره وبسایتهایی که بهش معرفی کردیم رو بازدید میکنه، خبرهای تازهشون رو میخونه و بعد متنشون رو از طریق ollama با یک مدلزبانی خلاصه و چکیده میکنه؛ بعد به صورت روزانه یه خبرنامه مختصر و کاربردی میسازه و برای کاربرهایی که عضو شدن میفرسته. کاربرها هم میتونن مشخص کنن که از کدوم سایتها خبر بگیرن، ساعت ارسال خبرنامه کی باشه، و اینجور چیزها!
(توی این مثال سیستممون وابستگی خارجی مثل سایتها و سرور ایمیل هم داره)
همونطور که توی مقدمه عرض کردم، ما در چهار سطح سیستم رو با C4 مدلسازی میکنیم (چهار کلمه که با حرف C شروع میشن) این چهار سطح رو مثل نقشه گوگلمپ تصور کنید، ابتدا نقشه کلی رو به همسایگیهای کشور یا شهر مورد نظرمون میبینیم، و با زوم کردن جزئیات بیشتری برامون ظاهر میشه.
تعداد المانهای مورد استفاده در مدل C4 خیلی ساده و معدود است. در نتیجه خیلی سریع میشه یادگرفت.
در سطح context ما یه نگاه کلان به سیستم میاندازیم، اینکه نمای کلی و سیستمهایی که با سیستم ما در ارتباطن چجوری هستن.
- سیستم اصلی: News Summarizer
- کاربر: User (Subscriber)
- کاربر: User (Admin)
- سیستمهای بیرونی:
- وبسایتهای خبری
- سرویس Ollama
- سرویس SMTP Server
- سیستم خبرها رو از سایتهای خبری میگیره.
- خبرها رو برای خلاصهسازی به Ollama میفرسته و جواب خلاصهشده میگیره.
- خبرنامه رو از طریق SMTP برای کاربرها میفرسته.
سطح context رو به مثابه کشور فرض کنید و سطح container رو استانهای داخل مرزهای کشور اون داستان ارتباطات با سیستمهای بیرونی هم مثل استانهای مرزی که ارتباط فیزیکی با کشورهای همسایه دارن (سیستمهای بیرونی). حالا بیاین استانهای درون این کشور رو یعنی containerها رو نگاه کنیم:
- کانتینر Scheduler: مسئول زمانبندی و اجرا کردن وظایف بهصورت منظم
- کانتینر News Collector: جمعآوری اخبار از وبسایتها
-کانتینر Ollama Client: ارتباط با ollama برای خلاصهسازی اخبار
- کانتینر Newsletter Generator: تولید خبرنامه
- کانتینر SMTP Client: ارسال خبرنامهها
- کانتینر Database: نگهداری اطلاعات کاربرها، منابع خبری، تنظیمات، اخبار خلاصه شده
قسمت بعدی همین دو بخش رو با دیاگرام و کد مرور میکنیم. بخشهای بعدی هم همین مسیر و سناریو رو برای دو تا C بعدی یعنی component و code. بعدش هم احتمالا ویدیو مرور همین داستان.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Forwarded from refhub
فیچر بعدی رو شما انتخاب کنید
Anonymous Poll
34%
بستری برای انتشار مقالات که قابلیت درآمدزایی داشته باشد
66%
بستری برای ساخت Course های یادگیری با AI و گذراندن دوره و گرفتن Certificate
Forwarded from DotNet | دات نت
در ادامه یک راهنمای کامل و بهبود یافته برای استفاده رایگان از Cursor ارائه شده است. لطفاً مراحل زیر را به ترتیب با دقت دنبال کنید:
---
گام ۱: خروج از حساب کاربری Cursor
1. خروج از حساب (Logout):
ابتدا از حساب کاربری Cursor خود خارج شوید. این کار تضمین میکند که تنظیمات قبلی یا اطلاعات ورود مانع روند ثبتنام جدید نشوند.
2. راهاندازی مجدد برنامه:
پس از خروج، برنامه Cursor را دوباره اجرا کنید تا مطمئن شوید در وضعیت خارج از حساب هستید.
---
گام ۲: اجرای PowerShell
1. باز کردن PowerShell:
برنامه Windows PowerShell را اجرا کنید. این محیط به شما امکان میدهد تا دستورات خط فرمان را وارد کرده و اسکریپتهای لازم را اجرا کنید.
2. اجرای اسکریپت نصب:
در پنجره PowerShell، دستور زیر را وارد کنید:
irm https://raw.githubusercontent.com/yeongpin/cursor-free-vip/main/noscripts/install.ps1 | liex
توضیح:
دستور irm مخفف Invoke-RestMethod است که فایل اسکریپت نصب را از گیتهاب دانلود میکند.
عملگر | خروجی دستور اول را به دستور دوم (که در اینجا liex است) میدهد.
با اجرای این دستور، اسکریپت نصب اجرا شده و فرآیند تنظیمات اولیه آغاز میشود.
---
گام ۳: ثبتنام جدید در Cursor
1. انتخاب گزینه ثبتنام:
پس از اجرای موفق اسکریپت، در منوی ارائه شده گزینه "Cursor New Register" را انتخاب کنید.
2. شروع فرآیند ثبتنام توسط ربات:
به محض انتخاب گزینه، ربات به صورت خودکار فعال شده و تلاش میکند شما را در سیستم ثبت کند.
3. نکات مهم در این مرحله:
فعال بودن فیلترشکن:
مطمئن شوید فیلترشکن (VPN) شما فعال است. این امر به دلیل محدودیتهای جغرافیایی و دسترسی به سرورهای مورد نیاز ضروری است.
تأیید عدم ربات بودن:
قبل از کلیک روی دکمه مربوط به ربات، گزینه "من ربات نیستم" را فعال کنید. این اقدام از بروز خطاهای احتمالی در فرآیند ثبتنام جلوگیری میکند.
---
گام ۴: تکمیل ثبتنام و استفاده از Cursor
1. تغییر شناسه دستگاه:
پس از تکمیل فرآیند ثبتنام، شناسه (Machine ID) دستگاه شما تغییر میکند. این تغییر به معنای موفقیتآمیز بودن ثبتنام و فعال شدن خدمات رایگان Cursor است.
2. استفاده از نسخه جدید Cursor:
حالا میتوانید از امکانات و ویژگیهای جدید Cursor بهره ببرید.
3. پیشنهاد مهم:
توصیه میشود پس از تکمیل ثبتنام، از بهروزرسانی (Update) خودداری کنید تا تنظیمات و دسترسی رایگان شما حفظ شود.
---
با دنبال کردن دقیق مراحل فوق، میتوانید به راحتی از نسخه رایگان Cursor استفاده کرده و از امکانات آن لذت ببرید.
---
گام ۱: خروج از حساب کاربری Cursor
1. خروج از حساب (Logout):
ابتدا از حساب کاربری Cursor خود خارج شوید. این کار تضمین میکند که تنظیمات قبلی یا اطلاعات ورود مانع روند ثبتنام جدید نشوند.
2. راهاندازی مجدد برنامه:
پس از خروج، برنامه Cursor را دوباره اجرا کنید تا مطمئن شوید در وضعیت خارج از حساب هستید.
---
گام ۲: اجرای PowerShell
1. باز کردن PowerShell:
برنامه Windows PowerShell را اجرا کنید. این محیط به شما امکان میدهد تا دستورات خط فرمان را وارد کرده و اسکریپتهای لازم را اجرا کنید.
2. اجرای اسکریپت نصب:
در پنجره PowerShell، دستور زیر را وارد کنید:
irm https://raw.githubusercontent.com/yeongpin/cursor-free-vip/main/noscripts/install.ps1 | liex
توضیح:
دستور irm مخفف Invoke-RestMethod است که فایل اسکریپت نصب را از گیتهاب دانلود میکند.
عملگر | خروجی دستور اول را به دستور دوم (که در اینجا liex است) میدهد.
با اجرای این دستور، اسکریپت نصب اجرا شده و فرآیند تنظیمات اولیه آغاز میشود.
---
گام ۳: ثبتنام جدید در Cursor
1. انتخاب گزینه ثبتنام:
پس از اجرای موفق اسکریپت، در منوی ارائه شده گزینه "Cursor New Register" را انتخاب کنید.
2. شروع فرآیند ثبتنام توسط ربات:
به محض انتخاب گزینه، ربات به صورت خودکار فعال شده و تلاش میکند شما را در سیستم ثبت کند.
3. نکات مهم در این مرحله:
فعال بودن فیلترشکن:
مطمئن شوید فیلترشکن (VPN) شما فعال است. این امر به دلیل محدودیتهای جغرافیایی و دسترسی به سرورهای مورد نیاز ضروری است.
تأیید عدم ربات بودن:
قبل از کلیک روی دکمه مربوط به ربات، گزینه "من ربات نیستم" را فعال کنید. این اقدام از بروز خطاهای احتمالی در فرآیند ثبتنام جلوگیری میکند.
---
گام ۴: تکمیل ثبتنام و استفاده از Cursor
1. تغییر شناسه دستگاه:
پس از تکمیل فرآیند ثبتنام، شناسه (Machine ID) دستگاه شما تغییر میکند. این تغییر به معنای موفقیتآمیز بودن ثبتنام و فعال شدن خدمات رایگان Cursor است.
2. استفاده از نسخه جدید Cursor:
حالا میتوانید از امکانات و ویژگیهای جدید Cursor بهره ببرید.
3. پیشنهاد مهم:
توصیه میشود پس از تکمیل ثبتنام، از بهروزرسانی (Update) خودداری کنید تا تنظیمات و دسترسی رایگان شما حفظ شود.
---
با دنبال کردن دقیق مراحل فوق، میتوانید به راحتی از نسخه رایگان Cursor استفاده کرده و از امکانات آن لذت ببرید.
Forwarded from tech-afternoon (Amin Mesbahi)
این هم ویدیو مرور کلی C4 که یه مقدار کاملتر از پست قبلی است و امیدوارم برای دوستانی که جدی دوست دارن ازش استفاده کنن، مفید باشه 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
مستندسازی معماری نرمافزار با C4 Model
بخش اول آموزش مستندسازی معماری نرمافزار با C4 Model
مقدمه (0:00)
مفهوم کلی سی۴ (0:03:50)
مثال ۱ - کانتکست (0:06:57)
مثال ۱ - کانتینر (0:10:47)
مثال ۱ - کامپوننت (0:13:09)
مثال ۱ - کد (0:14:29)
اکوسیستم - مقدمه (0:15:43)
اکوسیستم - بصری (0:18:36)
اکوسیستم…
مقدمه (0:00)
مفهوم کلی سی۴ (0:03:50)
مثال ۱ - کانتکست (0:06:57)
مثال ۱ - کانتینر (0:10:47)
مثال ۱ - کامپوننت (0:13:09)
مثال ۱ - کد (0:14:29)
اکوسیستم - مقدمه (0:15:43)
اکوسیستم - بصری (0:18:36)
اکوسیستم…
👍2
مریم صادقی رو از یوتیوبش میشناسم، به نظرم بر اساس ویدیوهایی که ازش دیدیم، انسان با سواد و خفنیه، این ویدیوش رو صبح داشتم نگاه میکردم و گفتم یه تست بکنم، تقریبا توی 5 دقیقه Agent خودم رو ساختم و واقعا کیف داد. دوست داشتید شما هم بسازید😁
https://www.youtube.com/watch?v=KG7-rHsqdpU
https://www.youtube.com/watch?v=KG7-rHsqdpU
YouTube
ایجنت چند کاره بات تلگرام با قابلیت متن، وویس و تصویر
تو این ویدئو یاد میدم چطور بدون کدنویسی با ابزار n8n یک ایجنت هوش مصنوعی بصورت بات تلگرام بسازید. با وویس صحبت کنید بتونید عکس آنالیز کنید به دیتاشیت متصل بشید.
سرفصل ها:
00:00 شروع
05:23 ایجاد پروژه در n8n
07:24 ایجاد بات تلگرام
10:20 ایجاد ایجنت هوش مصنوعی…
سرفصل ها:
00:00 شروع
05:23 ایجاد پروژه در n8n
07:24 ایجاد بات تلگرام
10:20 ایجاد ایجنت هوش مصنوعی…
🔥7👍1
Forwarded from Learning With M
یکی از هنرهای مدیر هایی که شما کنارشون رشد می کنید، رها کردن به موقع شماست.
باید در زمان مناسب، ازتون بخواد که سازمان رو ترک کنید، این اخراج نیست، باز کردن مسیر رشدتونه. چون همه ما یک سقف رشدی در سازمانمون داریم که زمانی که پر شد، دیگه موندن، فقط عادته.
باید در زمان مناسب، ازتون بخواد که سازمان رو ترک کنید، این اخراج نیست، باز کردن مسیر رشدتونه. چون همه ما یک سقف رشدی در سازمانمون داریم که زمانی که پر شد، دیگه موندن، فقط عادته.
👍9🔥3
Forwarded from CodeLodge
در این قسمت از سری پادکستهای Code lodge، به بررسی عمیق نقش هوش مصنوعی در دنیای توسعه نرمافزار میپردازیم. در این گفتگو، همراه با دوست صمیمیمان، مسعود عزیز، به نقد جنبههای مختلف استفاده از AI در محیطهای دولوپمنت میپردازیم؛ از جمله مباحث پیرامون نگرانیهای مرتبط با اتوماسیون بیش از حد و جایگزینی نیروی انسانی و دست کم گیری نقش مهم مدل های زبانی در توسعه. هدف ما ارائه بینشی جامع از چالشها و فرصتهایی است که هوش مصنوعی برای توسعهدهندگان به ارمغان میآورد و راهکارهایی برای حفظ کیفیت و خلاقیت در کار ارائه میدهد.
میزبانان شما:
بهنیا آزاد
مسعود بیگی
این ایپزود را می توانید از طریق لینک های زیر هم بشنوید :
- 🔗Spotify
- 🔗Amazon
- 🔗Castbox
-🔗Apple podcast
-🔗 Shenoto
#Codelodge
#Software
#AI
#LLM
#softwareDeveloper
#SoftwareEngineer
@codeLodge
میزبانان شما:
بهنیا آزاد
مسعود بیگی
این ایپزود را می توانید از طریق لینک های زیر هم بشنوید :
- 🔗Spotify
- 🔗Amazon
- 🔗Castbox
-🔗Apple podcast
-🔗 Shenoto
#Codelodge
#Software
#AI
#LLM
#softwareDeveloper
#SoftwareEngineer
@codeLodge
🔥1
نوروز بمانید که ایّام شمایید!
آغاز شمایید و سرانجام شمایید!
آن صبح نخستین بهاری که ز شادی
می آورد از چلچله پیغام، شمایید!
آن دشت طراوت زده آن جنگل هشیار
آن گنبد گردننده ی آرام شمایید!
خورشید گر از بام فلک عشق فشاند،
خورشید شما، عشق شما، بام شمایید!
نوروز کهنسال کجا غیر شما بود؟
اسطوره ی جمشید و جم و جام شمایید!
عشق از نفس گرم شما تازه کند جان
افسانه ی بهرام و گل اندام شمایید!
هم آینه ی مهر و هم آتشکده ی عشق،
هم صاعقه ی خشم بهنگام شمایید!
امروز اگر می چمد ابلیس، غمی نیست
در فنّ کمین حوصله ی دام شمایید!
گیرم که سحر رفته و شب دور و دراز است،
در کوچه ی خاموش زمان، گام شمایید
ایّام ز دیدار شمایند مبارک
نوروز بمانید که ایّام شمایید!
عیدتون مبارک رفقا
باعشق
عمو
آغاز شمایید و سرانجام شمایید!
آن صبح نخستین بهاری که ز شادی
می آورد از چلچله پیغام، شمایید!
آن دشت طراوت زده آن جنگل هشیار
آن گنبد گردننده ی آرام شمایید!
خورشید گر از بام فلک عشق فشاند،
خورشید شما، عشق شما، بام شمایید!
نوروز کهنسال کجا غیر شما بود؟
اسطوره ی جمشید و جم و جام شمایید!
عشق از نفس گرم شما تازه کند جان
افسانه ی بهرام و گل اندام شمایید!
هم آینه ی مهر و هم آتشکده ی عشق،
هم صاعقه ی خشم بهنگام شمایید!
امروز اگر می چمد ابلیس، غمی نیست
در فنّ کمین حوصله ی دام شمایید!
گیرم که سحر رفته و شب دور و دراز است،
در کوچه ی خاموش زمان، گام شمایید
ایّام ز دیدار شمایند مبارک
نوروز بمانید که ایّام شمایید!
عیدتون مبارک رفقا
باعشق
عمو
❤9👍3
Forwarded from tech-afternoon (Amin Mesbahi)
💡 یک قدم به سمت کاربرد عینی مدل زبانی با RAG, CAG, KAG یا Fine Tuning
در حالت عادی، یه مدل زبانی از چند میلیارد تا چندصد میلیارد پارامتر آموزش میبینه، بلده به زبونهای مختلف حرف بزنه و جملاتی عاقلانه تا ابلهانه سرهم کنه. بلده دستور پخت سوشی تا قرمهسبزی بده و برای دلدردتون چایینبات تجویز کنه، ولی اینکه بالانس حساب آقای جمالی چقدره یا آییننامههای داخلی شرکتی که ما توش کار میکنیم یعنی کامپیوتراندیشان عصر نوین پاسارگاد با مدیریت آقای موکتپور رو که بلد نیست! پس باید راهی یاد بگیریم که مزخرفاتی که بلده رو با مزخرفات خودمون بیامیزیم و مزخرفات ترکیبی تولید کنیم. پس یه نگاه کلی به RAG، CAG, KAG و Fine Tuning بندازیم تا اگر مشتری داشت ادامهاش بدیم…
✅ مفهوم و کاربرد RAG یا Retrieval-Augmented Generation چیه؟
کار RAG اینه که دادههای مدل رو با دیتای ما تکمیل کنه؛ یعنی موقع جواب دادن به سؤال، میره از یه دیتابیس یا منبع خارجی (که عموما به صورت Vector database ذخیره میکنیم) اطلاعات جدید رو میگیره و بعد جواب میده. اینجوری دیگه همیشه اطلاعات سیستم خودمون رو در کنار قابلیتهای مدل اصلی داریم. این اطلاعات رو میتونیم نهایتا به شکل ساختارمند و مشخص (مثلا یه آبجکت یا یه ساختار JSON مشخص) برگردونیم، یا باهاش جمله بسازیم و مثل یه محاوره انسانی برگردونیمش.
چرا لازمه ازش استفاده کنیم؟
- اطلاعات بهروز و دقیقتر
- کاهش خطا و توهم در جوابهای مدل
- جوابهای دقیق و مبتنی بر داده واقعی
✅ مفهوم و کاربرد KAG یا Knowledge-Augmented Generation چیه؟
کاربرد و مفهموم KAG یه مرحله پیشرفتهتر از RAG هست که از گرافهای دانش ساختاریافته استفاده میکنه. یعنی علاوه بر دادههای معمولی، دادهها رو بهصورت ساختاریافته (مثل گراف دانش) به مدل میده و مدل میتونه از طریق این ساختارها منطق و استدلال چندمرحلهای انجام بده. (توی RAG کوئری داریم ولی اینجا گراف دانش)
چرا لازمه ازش استفاده کنیم؟
- افزایش دقت در حوزههای تخصصی
- استدلال چندمرحلهای و منطقی
- رعایت قوانین و مقررات مشخص (مثل حوزههای پزشکی و حقوقی)
✅ مفهوم و کاربرد CAG یا Cache-Augmented Generation چیه؟
مفهوم CAG یه جورایی نسخه سریعتر و سادهتر از RAG هست. توی CAG، دانش ثابت (مثل دفترچههای راهنما) از قبل تو حافظه (Cache) بارگذاری میشه و موقع جواب دادن لازم نیست هر بار اطلاعات رو از بیرون بگیره.
چرا لازمه ازش استفاده کنیم؟
- جوابهای سریعتر
- ساختار سادهتر و هزینه کمتر
- ثبات و یکپارچگی جوابها
✅ مفهوم و کاربر Fine Tuning (تنظیم دقیق) دیگه؟
یه سری دادههای محدود و مشخص رو به یه مدل زبانی که خیلی چیزا بلده، ولی دقیقاً کاری که میخوای رو درست انجام نمیده. اینجا میای از Fine Tuning استفاده میکنی؛ یعنی یه سری داده خاص خودمون رو میدیم بهش که یاد بگیره دقیقاً طبق اون چیزی که میخوایم جواب بده. از RAG خیلی سادهتر و ابتداییتره.
چرا لازمه ازش استفاده کنیم؟
- بهبود دقت مدل توی یه وظیفه خاص
- سفارشی کردن مدل برای کسبوکار یا حوزه خاص خودمون
- کاهش هزینهها (چون نیازی به آموزش یه مدل عظیم از صفر نداریم)
📎 طی ماههای پیش رو، SQL Server 2025 قابلیتهایی ارائه خواهد کرد که کارهای RAG و CAG و KAG رو بتونیم انجام بدیم. یعنی به جای استفاده از Vector Databaseها که الان ازشون برای RAG کمک میگیریم، میتونیم مستقیم از خود SQL Server کمک بگیریم. البته چون هنوز قابلیت vector اش رونمایی عمومی نشده، نمیشه قضاوت کرد که در مقایسه با نمونههای پرشمار VectorDBها چه جایگاهی داره.
مثل همیشه:💬 ⚙️ 😉
سال ۱۴۰۳ هم تموم شد و مثل ۲ سال قبلترش، روز و ساعتی نبود که هوشمصنوعی خصوصا از نوع مولدش از متن و تیتر اخبار بیوفته 😉 حالا اگر تا به امروز فقط باهاش چت کردین، یا همون چت رو با API انجام دادین، دیگه ۱۴۰۴ سالیه که خوبه از حاشیه به متن بیاریدش و «اگر و اگر ارزش افزودهای به محصولتون اضافه میکنه»، به شکل جدیتری ازش استفاده کنین. حالا این یعنی چی؟ مگه چت کردن چشه؟
در حالت عادی، یه مدل زبانی از چند میلیارد تا چندصد میلیارد پارامتر آموزش میبینه، بلده به زبونهای مختلف حرف بزنه و جملاتی عاقلانه تا ابلهانه سرهم کنه. بلده دستور پخت سوشی تا قرمهسبزی بده و برای دلدردتون چایینبات تجویز کنه، ولی اینکه بالانس حساب آقای جمالی چقدره یا آییننامههای داخلی شرکتی که ما توش کار میکنیم یعنی کامپیوتراندیشان عصر نوین پاسارگاد با مدیریت آقای موکتپور رو که بلد نیست! پس باید راهی یاد بگیریم که مزخرفاتی که بلده رو با مزخرفات خودمون بیامیزیم و مزخرفات ترکیبی تولید کنیم. پس یه نگاه کلی به RAG، CAG, KAG و Fine Tuning بندازیم تا اگر مشتری داشت ادامهاش بدیم…
کار RAG اینه که دادههای مدل رو با دیتای ما تکمیل کنه؛ یعنی موقع جواب دادن به سؤال، میره از یه دیتابیس یا منبع خارجی (که عموما به صورت Vector database ذخیره میکنیم) اطلاعات جدید رو میگیره و بعد جواب میده. اینجوری دیگه همیشه اطلاعات سیستم خودمون رو در کنار قابلیتهای مدل اصلی داریم. این اطلاعات رو میتونیم نهایتا به شکل ساختارمند و مشخص (مثلا یه آبجکت یا یه ساختار JSON مشخص) برگردونیم، یا باهاش جمله بسازیم و مثل یه محاوره انسانی برگردونیمش.
چرا لازمه ازش استفاده کنیم؟
- اطلاعات بهروز و دقیقتر
- کاهش خطا و توهم در جوابهای مدل
- جوابهای دقیق و مبتنی بر داده واقعی
کاربرد و مفهموم KAG یه مرحله پیشرفتهتر از RAG هست که از گرافهای دانش ساختاریافته استفاده میکنه. یعنی علاوه بر دادههای معمولی، دادهها رو بهصورت ساختاریافته (مثل گراف دانش) به مدل میده و مدل میتونه از طریق این ساختارها منطق و استدلال چندمرحلهای انجام بده. (توی RAG کوئری داریم ولی اینجا گراف دانش)
چرا لازمه ازش استفاده کنیم؟
- افزایش دقت در حوزههای تخصصی
- استدلال چندمرحلهای و منطقی
- رعایت قوانین و مقررات مشخص (مثل حوزههای پزشکی و حقوقی)
مفهوم CAG یه جورایی نسخه سریعتر و سادهتر از RAG هست. توی CAG، دانش ثابت (مثل دفترچههای راهنما) از قبل تو حافظه (Cache) بارگذاری میشه و موقع جواب دادن لازم نیست هر بار اطلاعات رو از بیرون بگیره.
چرا لازمه ازش استفاده کنیم؟
- جوابهای سریعتر
- ساختار سادهتر و هزینه کمتر
- ثبات و یکپارچگی جوابها
یه سری دادههای محدود و مشخص رو به یه مدل زبانی که خیلی چیزا بلده، ولی دقیقاً کاری که میخوای رو درست انجام نمیده. اینجا میای از Fine Tuning استفاده میکنی؛ یعنی یه سری داده خاص خودمون رو میدیم بهش که یاد بگیره دقیقاً طبق اون چیزی که میخوایم جواب بده. از RAG خیلی سادهتر و ابتداییتره.
چرا لازمه ازش استفاده کنیم؟
- بهبود دقت مدل توی یه وظیفه خاص
- سفارشی کردن مدل برای کسبوکار یا حوزه خاص خودمون
- کاهش هزینهها (چون نیازی به آموزش یه مدل عظیم از صفر نداریم)
مثل همیشه:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Forwarded from tech-afternoon (Amin Mesbahi)
پاسخ به پرسشهای ارزی! با دیتای لحظهای... 😎
گفتیم برای اینکه مدلهای زبانی دیتای بهروز یا دلخواه ما رو داشته باشن، باید با استفاده از روشهایی مثل RAG دادههای دلخواهمون رو بهشون ارائه کنیم. برای ارائه دیتا از وکتور دیتابیس یا ساختارهای دیگهی حافظهای استفاده میکنیم. حالا برای اینکه دستبهکد شیم، تصمیم گرفتم قبل از توضیح دقیقتر وکتور دیتابیس، یه مثال بنویسیم تا با ساختارهای ساده و فرایند کلی آشنا شیم. البته توی این مثال اول از memory store استفاده میکنم، و در ادامه میریم سراغ وکتور دیتابیس.
سناریو:
هر مدل هوشمصنوعی هر چقدر کامل یا باهوش باشه، ۲ چیز در جهان رو نمیتونه پیشبینی کنه: اولیش قیمت ارز در ایرانه. دومیش هم فعلا بماند 😉؛ حالا میخواهیم توی این مثال بریم از یکی از سایتهای اعلام نرخ ارز، قیمت ارزها رو بگیریم ولی با RAG به مدلمون دیتا بدیم. بعدش که از مدل سوال بپرسیم دیگه میدونه مثلا دلار چنده. دقت کنید که اینجا منظورم چپوندن «متن» در قالب پرامپت نیست. بلکه استفاده از ساختار RAG است.
روی کامپیوتر خودمون ollama نصب میکنیم و از مدل Phi استفاده میکنیم که کوچیک باشه و سختافزار خاصی نیاز نداشته باشه.
موافقید با این مثال پیش بریم؟
اگر موافقید
اول: ollama رو نصب کنید
دوم: بعد از نصب، دستور زیر رو برای دریافت مدل phi3 mini که حدود ۲.۲ گیگابایت است توی ترمینالتون اجرا کنید
ollama pull phi3:mini
بعدش برگردید به همین پست یک عدد
* دلیل انتخاب سیشارپ این بود که حس کردم اعضا کانال عموما به سمت سیشارپ گرایش دارن (اگر هر کدوم از پایتون یا گو به حدنصاب برسه، با اون هم مینویسم)
* ادامه مثال، و اینکه تا چه حدی عمیق شیم بسته به بازخوردها داره.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
Forwarded from tech-afternoon (Amin Mesbahi)
پاسخ به پرسشهای ارزی! با دیتای لحظهای... 😎
توجه!
قرار بود از مدل Phi-3 mini استفاده کنیم که ۲ گیگ باشه و روی لپتاپ راحت اجرا شه، اینقدر احمق بود که رفتم سراغ llama3.2 که اونم ۲ گیگ است، ولی بسی باشعورتر!
نکته: مدلها نیاز به سنجش و انتخاب دارن (چه در مثال ساده چه در کارهای بزرگ که خودش بخشی از فرایند AIOps است. Phi3 برای این کار مناسب نبود. گرچه صرفا بر اساس سایز کوچک برای مثال انتخاب کرده بودم ولی خیلی بیشعور بود!
کد آماده است و قابل دسترس رو گیتهاب، ولی باید توضیحات رو به فایل read me اضافه کنم و «شاید، اگر فرصت شه» ویدیو ضبط کنم براش.
🤓 میبینید که برعکس چیزی که انتظار میرفت، RAG اصلا خوب نیست!!! چرا؟ چون بدون RAG، یورو ۶۹۰۰ تومنه، ولی بعد از RAG میشه ۱۰۶هزار تومن. نتیجه میگیریم عامل گرونی ارز RAG است، و شایسته است که سریعتر به دار آویخته شود
HtmlAgilityPack
برای استخراج نرخ ارز از دل html دریافت شده از سایت اعلام نرخ.
(توی یک تگ table قرار دارد). تمام فرایند دریافت صفحه و استخراج مقادیر، در متد GetExchangeRatesAsync است.
Microsoft.SemanticKernel
Microsoft.SemanticKernel.Connectors.Ollama
برای استفاده از قابلیتهای Semantic Kernel و همچنین اتصال به ollama برای استفاده از مدلهایی که روی ollama داریم. کرنل در حقیقت قلب و رابط بین کد ما و مدلهای هوش مصنوعی است، کانکتورهای مختلف داره که به مدلهای لوکال یا ابری متصل شه و کار متن (مثل چت) یا کارهای تولید عکس، صدا، و... رو با مدلها انجام بده. استفاده ازش هم ساده است و اول کرنل رو تعریف، بعد هم پلاگینهای مورد نیازمون رو بهش متصل و شروع به کار میکنیم. مثلا اینجا با دو خط کد به راحتی به ollama متصل میشه و از مدل llama3.2 با ۳ میلیارد پارامتر استفاده میشه کرد (مثلا چت کرد باهاش).
همزمان با سیشارپ، semantic kernel برای پایتون و جاوا هم بهصورت رسمی توسعه و منتشر میشه.
var builder = Kernel.CreateBuilder();
builder.AddOllamaChatCompletion(
modelId: "llama3.2:3b",
endpoint: new Uri("http://127.0.0.1:11434"));
Microsoft.KernelMemory
Microsoft.SemanticKernel.Plugins.Memory
برای افزودن قابلیت «حافظه» به semantic kernel یعنی دیتای خودمون رو داخل حافظه قرار بدیم و کرنل از اون دیتا در کنار دیتای مدل استفاده کنه. اینجا memory رو استفاده کردیم. ولی میتونیم از وکتور دیتابیس هم استفاده کنیم. البته این ساختارها (مموری یا وکتور دیتابیس) اینقدر عادی شدند که نیازی ندارید تا جزئیات فنی داخلیشون رو الزاما یاد بگیرید و مهم نحوه استفاده ازشون است. به بیان خیلی ساده شده، دیتا توی یک ماتریس قرار میگیره که مشابهت/قرابت سطر و ستون که هر کدوم یک کلمه میتونیم در نظر بگیریم با یک عدد مشخص میشه.
ایجاد مموری:
var embeddingGenerator = kernel.Services.GetRequiredService<ITextEmbeddingGenerationService>();
var memory = new SemanticTextMemory(new VolatileMemoryStore(), embeddingGenerator);
حالا ذخیره دادهها داخل مموری:
const string MemoryCollectionName = "exchangeRates";
string url = "https://bonbast.org";
var exchangeRates = await GetExchangeRatesAsync(url);
foreach (var rate in exchangeRates)
{
string memoryKey = $"{rate.Key} to Iranian Rial";
await memory.SaveInformationAsync(MemoryCollectionName, id: memoryKey, text: $"1 {rate.Key} equals {rate.Value.AverageRate} Iranian Tomans...");
}
TextMemoryPlugin memoryPlugin = new(memory);
kernel.ImportPluginFromObject(memoryPlugin);
فایل راهنما و توضیحات بیشتر در پست بعدی... لطفا اجرا کنید و یه مقدار باهاش سر و کله بزنید که پستهای بعدی مفید باشن 😉 اگر مفید بود و کاربردی، بگید تا بریم سراغ وکتور یا دریافت ورودی خروجی ساختار یافته به جای متن...
البته Memory Store قابلیتهای کمتری نسبت به Vector Store داره و خیلی ابتداییتره. توی اولین مثال از مموری استفاده کردم فقط تا حداکثر سادگی رو داشته باشه.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Forwarded from Software Philosophy
درک انواع دادهها در سیشارپ
#csharp_for_beginners
در دنیای C#، درک تفاوتهای بین انواع دادهها برای برنامهنویسی مؤثر بسیار مهم است. این مقاله به بررسی تفاوتهای بین انواع دادههای decimal، double و float میپردازد و بر دقت، صحت و تأثیرات عملکردی آنها تمرکز میکند.
دقت (Precision): به نزدیکی اندازهگیریها اشاره دارد. به عنوان مثال، اگر یک مقدار را چندین بار اندازهگیری کنیم و نتیجه یکسانی بگیریم، نشاندهنده دقت بالا است.
صحت (Accuracy): نشاندهنده نزدیکی یک اندازهگیری به یک استاندارد شناخته شده است. یک اندازهگیری که از مقدار واقعی دور است، نادرست تلقی میشود.
دقت حسابی (Arithmetic Precision): به تعداد ارقام استفاده شده برای نمایش یک عدد اشاره دارد. ارقام بیشتر به معنای دقت بالاتر است.
تایپ decimal
دقت: دقت بالا (28-29 رقم معنادار).
موارد استفاده: ایدهآل برای محاسبات مالی که در آن دقت بسیار مهم است.
عملکرد: به دلیل نمایندگی پایه 10، کندتر از double و float است.
تایپ double
دقت: دقت متوسط (15-16 رقم معنادار).
موارد استفاده: مناسب برای محاسبات علمی که در آن عملکرد مهمتر از دقت است.
عملکرد: به دلیل نمایندگی پایه 2، سریعتر از decimal است.
تایپ float
دقت: دقت پایین (7 رقم معنادار).
موارد استفاده: در برنامههایی که صرفهجویی در حافظه مهمتر از دقت است، مانند گرافیک، استفاده میشود.
عملکرد: مشابه double است اما با دقت کمتر.
مقایسه عملکرد
هنگام مقایسه عملکرد این انواع داده، مشخص میشود که:
تایپ Double سریعترین است و برای برنامههایی که به محاسبات سریع نیاز دارند، مناسب است.
تایپ Decimal کندترین است اما بالاترین دقت را ارائه میدهد و برای برنامههای مالی ایدهآل است.
تایپ Float تعادلی بین سرعت و استفاده از حافظه ارائه میدهد اما دقت را فدای آن میکند.
🔗 ویدئو را از اینجا میتوانید ببیند.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______
#csharp_for_beginners
در دنیای C#، درک تفاوتهای بین انواع دادهها برای برنامهنویسی مؤثر بسیار مهم است. این مقاله به بررسی تفاوتهای بین انواع دادههای decimal، double و float میپردازد و بر دقت، صحت و تأثیرات عملکردی آنها تمرکز میکند.
دقت (Precision): به نزدیکی اندازهگیریها اشاره دارد. به عنوان مثال، اگر یک مقدار را چندین بار اندازهگیری کنیم و نتیجه یکسانی بگیریم، نشاندهنده دقت بالا است.
صحت (Accuracy): نشاندهنده نزدیکی یک اندازهگیری به یک استاندارد شناخته شده است. یک اندازهگیری که از مقدار واقعی دور است، نادرست تلقی میشود.
دقت حسابی (Arithmetic Precision): به تعداد ارقام استفاده شده برای نمایش یک عدد اشاره دارد. ارقام بیشتر به معنای دقت بالاتر است.
تایپ decimal
دقت: دقت بالا (28-29 رقم معنادار).
موارد استفاده: ایدهآل برای محاسبات مالی که در آن دقت بسیار مهم است.
عملکرد: به دلیل نمایندگی پایه 10، کندتر از double و float است.
تایپ double
دقت: دقت متوسط (15-16 رقم معنادار).
موارد استفاده: مناسب برای محاسبات علمی که در آن عملکرد مهمتر از دقت است.
عملکرد: به دلیل نمایندگی پایه 2، سریعتر از decimal است.
تایپ float
دقت: دقت پایین (7 رقم معنادار).
موارد استفاده: در برنامههایی که صرفهجویی در حافظه مهمتر از دقت است، مانند گرافیک، استفاده میشود.
عملکرد: مشابه double است اما با دقت کمتر.
مقایسه عملکرد
هنگام مقایسه عملکرد این انواع داده، مشخص میشود که:
تایپ Double سریعترین است و برای برنامههایی که به محاسبات سریع نیاز دارند، مناسب است.
تایپ Decimal کندترین است اما بالاترین دقت را ارائه میدهد و برای برنامههای مالی ایدهآل است.
تایپ Float تعادلی بین سرعت و استفاده از حافظه ارائه میدهد اما دقت را فدای آن میکند.
🔗 ویدئو را از اینجا میتوانید ببیند.
⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
کانال تلگرام:
@SoftwarePhilosophy
______
YouTube
Difference between double, float and decimal data types | C#
In this video, we analyze the difference between double, float and decimal data types in C#.
👍3❤1🔥1👏1
Forwarded from thisisnabi.dev [Farsi]
سلام دوستان
ما برای یک استارت آپ در حوزه فین تک در حال جذب نیروی Backend در 2 سطح Senior و Mid هستیم.
اگر دوست داشتید می تونید برام رزومه بفرستید که من معرفیتون کنم.
دارن کارشون رو from scratch بالا میارن.
1. Senior .NET Developer
2. .NET Developer
🪖 امکان ریموت ندارند
@thisisnabi
ما برای یک استارت آپ در حوزه فین تک در حال جذب نیروی Backend در 2 سطح Senior و Mid هستیم.
اگر دوست داشتید می تونید برام رزومه بفرستید که من معرفیتون کنم.
دارن کارشون رو from scratch بالا میارن.
1. Senior .NET Developer
2. .NET Developer
🪖 امکان ریموت ندارند
@thisisnabi
برای یکی از چند تا شرکت بزرگ اکوسیستم، دوستانم در حال تیم سازی هستند. اگر در حوزه دات نت مید (d3 به بالا) تا تک لید هستید و دوست دارید این فرصت رو بررسی کنید، رزومه تون رو برام بفرستین
برای سنجش خودتون نگاهی به این فریم ورک بندازید:
https://github.com/jorgef/engineeringladders
@Merkousha
برای سنجش خودتون نگاهی به این فریم ورک بندازید:
https://github.com/jorgef/engineeringladders
@Merkousha
👍2
Forwarded from Code With HSN
سلام عزیزان 👋🏻، عیدی داریم از جنس طلب دانوش 📚
رفهاب (refhub) اسپانسرمون شده و قراره برای پلی لیست Pro .NET Memory Management یه سری حرکت خیلی خفن بزنیم باهم
اولین حرکت زیبامون کد تخفیف 25 درصدی هست به مدت 10 عدد تا 16 فروردین (5 April) ساعت 11:20 دقیقه
میتونید از این کد تخفیف استفاده کنید و هر کتابی که دوست دارین رو بخرین همچنین میتونید نسخه فیزیکی کتاب Pro .NET Memory Management روهم تهیه کنید
کد تخفیف:
وبسایت: https://refhub.ir
کانال تلگرام: t.me/refhubOfficial
رفهاب (refhub) اسپانسرمون شده و قراره برای پلی لیست Pro .NET Memory Management یه سری حرکت خیلی خفن بزنیم باهم
اولین حرکت زیبامون کد تخفیف 25 درصدی هست به مدت 10 عدد تا 16 فروردین (5 April) ساعت 11:20 دقیقه
میتونید از این کد تخفیف استفاده کنید و هر کتابی که دوست دارین رو بخرین همچنین میتونید نسخه فیزیکی کتاب Pro .NET Memory Management روهم تهیه کنید
کد تخفیف:
HSNYoutube
وبسایت: https://refhub.ir
کانال تلگرام: t.me/refhubOfficial
YouTube
Pro .NET Memory Management summary book
این پلیلیست شامل مجموعهای از ویدیوهاست که شما رو قدمبهقدم با مفاهیم مدیریت حافظه در داتنت آشنا میکنه. اگر علاقهمندید تا بدونید حافظه در داتنت چطور مد...
👏3
Forwarded from DLeX: AI Python (NaviD DariYa)
This media is not supported in your browser
VIEW IN TELEGRAM
@ai_python
حالا که همه با ChatGPT انیمه خودتون رو ساختید، بدینش به Hydra که تبدیلش کنه به ویدیو😂
لینک گروه پرسش و پاسخ علوم کامپیوتر
حالا که همه با ChatGPT انیمه خودتون رو ساختید، بدینش به Hydra که تبدیلش کنه به ویدیو
لینک گروه پرسش و پاسخ علوم کامپیوتر
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
مرورگرر #Firefox در آخرین بروز رسانی خودش، هم تب ها رو برد به سمت چپ و هم AI Agent رو اضافه کرد به browser، حالا با انتخاب یه بخش از صفحه، میتونید با یه کلیک راست در مورد اون بخش از AI تون سوال بپرسید.
برای ما جامعه ی خودآزار طرفدار فایرفاکس این دو اقدام، یک پیشرفت روبه جلو بود واقعا.
برای ما جامعه ی خودآزار طرفدار فایرفاکس این دو اقدام، یک پیشرفت روبه جلو بود واقعا.
🔥6🤩2❤1
Forwarded from thisisnabi.dev [Farsi]
خب بریم که اولین کتاب امسال رو از من بگیرید.
برای شرکت در قرعه کشیش می تونید تا شنبه داخل این گروه جوین بشید.
بعد از قرعه کشی گروه حذف خواهد شد.
این سومین قرعه کشی هست و تا الان 7 جلد کتاب هدیه دادیم.
هر 21 روز یک کتاب.
AI Engineering: Building Applications with Foundation Models
لینک گروه: https://news.1rj.ru/str/+BqrUnBxS0qEyYTM0
برای شرکت در قرعه کشیش می تونید تا شنبه داخل این گروه جوین بشید.
بعد از قرعه کشی گروه حذف خواهد شد.
این سومین قرعه کشی هست و تا الان 7 جلد کتاب هدیه دادیم.
هر 21 روز یک کتاب.
AI Engineering: Building Applications with Foundation Models
لینک گروه: https://news.1rj.ru/str/+BqrUnBxS0qEyYTM0
Telegram
قرعه کتاب - thisisnabi.dev - شماره 3
Nabi Karampour invites you to join this group on Telegram.
❤3