Nothing Else Matters (Remastered 2021)
Metallica
❤13👍3⚡2👎1🔥1
~> MQTT
یه پروتکل پیامرسانی سبک و قدرتمند برای اینترنت چیزها (IoT) که موضوع این پستِ ما هستش ⬇️
#علوم_کامپیوتر #شبکه #برنامه_نویسی #نوشته
~> @PinkOrca | آزاد بیندیشیم 🫧
یه پروتکل پیامرسانی سبک و قدرتمند برای اینترنت چیزها (IoT) که موضوع این پستِ ما هستش ⬇️
#علوم_کامپیوتر #شبکه #برنامه_نویسی #نوشته
~> @PinkOrca | آزاد بیندیشیم 🫧
❤5🔥2
Pink Orca | پینک اورکا
~> MQTT یه پروتکل پیامرسانی سبک و قدرتمند برای اینترنت چیزها (IoT) که موضوع این پستِ ما هستش ⬇️ #علوم_کامپیوتر #شبکه #برنامه_نویسی #نوشته ~> @PinkOrca | آزاد بیندیشیم 🫧
MQTT یا Message Queuing Telemetry Transport یک پروتکل پیامرسانی سبک و کارآمد هستش که برای ارتباط بین دستگاههای IoT طراحی شده. این پروتکل در سال ۱۹۹۹ توسط Andy Stanford-Clark و Arlen Nipper در شرکت Cirrus Link Solutions برای نظارت بر خطوط لوله نفت ساخته شد. بعدها IBM نقش مهمی در توسعه و استانداردسازی اون داشت.
معماری MQTT بر اساس الگوی Publish/Subscribe کار میکنه. توی این معماری، کلاینتها میتونن Publisher (ارسال کننده پیام) یا Subscriber (دریافت کننده پیام) باشن. یک سرور مرکزی به نام Broker وظیفه مدیریت پیامها و توزیع اونها رو به عهده داره.
MQTT از مفهومی به نام Topic برای مدیریت پیامها استفاده میکنه. تاپیکها شبیه آدرسهای سلسله مراتبی هستن که با / از هم جدا میشن. مثلاً:
"home/livingroom/temperature"
یکی از ویژگیهای مهم MQTT، سطوح مختلف QoS (Quality of Service) هستش:
- QoS 0: پیام فقط یک بار ارسال میشه و تضمینی برای دریافت نیست
- QoS 1: پیام حداقل یک بار دریافت میشه
- QoS 2: پیام دقیقاً یک بار دریافت میشه
MQTT از پورت 1883 برای ارتباط غیررمزنگاری شده و پورت 8883 برای ارتباط SSL/TLS استفاده میکنه. هدر ثابت MQTT حداقل ۲ بایت هستش و بسته به نوع پیام و محتوا میتونه بزرگتر باشه. این ویژگی باعث میشه برای شبکههای با پهنای باند محدود مناسب باشه.
برای کانفیگ MQTT میشه از بروکرهای مختلفی استفاده کرد. محبوبترینهاشون Mosquitto، HiveMQ و EMQ X هستن. این بروکرها قابلیتهای مختلفی مثل احراز هویت، SSL/TLS، و پشتیبانی از WebSocket رو ارائه میدن.
MQTT از ویژگی Last Will and Testament (LWT) پشتیبانی میکنه که به بروکر اجازه میده در صورت قطع شدن ناگهانی ارتباط کلاینت، یک پیام از پیش تعیین شده رو به بقیه کلاینتها ارسال کنه.
نسخه فعلی MQTT که در سال ۲۰۱۹ به عنوان استاندارد OASIS منتشر شد، نسخه 5.0 هستش که قابلیتهای جدیدی مثل پیامهای منقضی شونده، شناسههای سشن، و فیلترهای اشتراک رو اضافه کرده.
~> @PinkOrca | آزاد بیندیشیم 🫧
معماری MQTT بر اساس الگوی Publish/Subscribe کار میکنه. توی این معماری، کلاینتها میتونن Publisher (ارسال کننده پیام) یا Subscriber (دریافت کننده پیام) باشن. یک سرور مرکزی به نام Broker وظیفه مدیریت پیامها و توزیع اونها رو به عهده داره.
MQTT از مفهومی به نام Topic برای مدیریت پیامها استفاده میکنه. تاپیکها شبیه آدرسهای سلسله مراتبی هستن که با / از هم جدا میشن. مثلاً:
"home/livingroom/temperature"
یکی از ویژگیهای مهم MQTT، سطوح مختلف QoS (Quality of Service) هستش:
- QoS 0: پیام فقط یک بار ارسال میشه و تضمینی برای دریافت نیست
- QoS 1: پیام حداقل یک بار دریافت میشه
- QoS 2: پیام دقیقاً یک بار دریافت میشه
MQTT از پورت 1883 برای ارتباط غیررمزنگاری شده و پورت 8883 برای ارتباط SSL/TLS استفاده میکنه. هدر ثابت MQTT حداقل ۲ بایت هستش و بسته به نوع پیام و محتوا میتونه بزرگتر باشه. این ویژگی باعث میشه برای شبکههای با پهنای باند محدود مناسب باشه.
برای کانفیگ MQTT میشه از بروکرهای مختلفی استفاده کرد. محبوبترینهاشون Mosquitto، HiveMQ و EMQ X هستن. این بروکرها قابلیتهای مختلفی مثل احراز هویت، SSL/TLS، و پشتیبانی از WebSocket رو ارائه میدن.
MQTT از ویژگی Last Will and Testament (LWT) پشتیبانی میکنه که به بروکر اجازه میده در صورت قطع شدن ناگهانی ارتباط کلاینت، یک پیام از پیش تعیین شده رو به بقیه کلاینتها ارسال کنه.
نسخه فعلی MQTT که در سال ۲۰۱۹ به عنوان استاندارد OASIS منتشر شد، نسخه 5.0 هستش که قابلیتهای جدیدی مثل پیامهای منقضی شونده، شناسههای سشن، و فیلترهای اشتراک رو اضافه کرده.
~> @PinkOrca | آزاد بیندیشیم 🫧
🔥10👍5❤1
This media is not supported in your browser
VIEW IN TELEGRAM
🔴 جان سینا در آخرین حضورش و برای هفدهمین بار، قهرمان کمربند WrestleMania شد و من تونستم احمقانهترین ویدیوی سال جدید رو ببینم:
https://youtu.be/KOpA1gLKPs8
⚫️ پ.ن:
پاپ فرانسیس هم درگذشت،
تسلیت به کاتولیکها.
#فان #متفرقه #WWE #پیشنهاد_نمیشود
~> @PinkOrca | آزاد بیندیشیم 🫧
https://youtu.be/KOpA1gLKPs8
⚫️ پ.ن:
پاپ فرانسیس هم درگذشت،
تسلیت به کاتولیکها.
#فان #متفرقه #WWE #پیشنهاد_نمیشود
~> @PinkOrca | آزاد بیندیشیم 🫧
🤣19😁3👍1
Media is too big
VIEW IN TELEGRAM
~> #فیلم کوتاه شکلات
چیز خاصی در موردش نمیدونم،
اگه دوست داشتین تماشا کنین.
~> @PinkOrca | آزاد بیندیشیم 🍫
چیز خاصی در موردش نمیدونم،
اگه دوست داشتین تماشا کنین.
~> @PinkOrca | آزاد بیندیشیم 🍫
❤6🔥1
🔴 یوتیوبر معروف، پیودیپای (PewDiePie) #لینوکس نصب کرده و تو این ویدیوی جدیدش ازش میگه:
https://youtu.be/pVI_smLgTY0
پ.ن:
به نظرم با توجه به شهرتی که داره، میتونه اتفاق مفیدی محسوب بشه از نظر جذب افراد جدید به گنو/لینوکس :)
~> @PinkOrca | آزاد بیندیشیم 🏴☠️
https://youtu.be/pVI_smLgTY0
پ.ن:
به نظرم با توجه به شهرتی که داره، میتونه اتفاق مفیدی محسوب بشه از نظر جذب افراد جدید به گنو/لینوکس :)
~> @PinkOrca | آزاد بیندیشیم 🏴☠️
🔥18🤣5👍4❤1
😑 دیدین بهطور پیشفرض فونت فارسی همچین وضعیت مسخرهای داره تو برخی از توزیعهای لینوکس؟ یا مثلا نستعلیق هستن و... که قابل تحمل نیست.
😵 با تنظیم استایل تو برنامههای مربوط به ظاهر هم این مشکل به شکل سراسری حل نمیشه...
از اونجایی که بعد از (تقریبا) ۱ سال دوباره مسیرم به همچین مشکلی خورد بهواسطهٔ نصب مجدد لینوکسم، گفتم بهتون بگم چطور بهسادگی قابل حله... (ادامه تو پست بعدی⬇️
😵 با تنظیم استایل تو برنامههای مربوط به ظاهر هم این مشکل به شکل سراسری حل نمیشه...
از اونجایی که بعد از (تقریبا) ۱ سال دوباره مسیرم به همچین مشکلی خورد بهواسطهٔ نصب مجدد لینوکسم، گفتم بهتون بگم چطور بهسادگی قابل حله... (ادامه تو پست بعدی⬇️
❤9👍5👎1🔥1
Pink Orca | پینک اورکا
😑 دیدین بهطور پیشفرض فونت فارسی همچین وضعیت مسخرهای داره تو برخی از توزیعهای لینوکس؟ یا مثلا نستعلیق هستن و... که قابل تحمل نیست. 😵 با تنظیم استایل تو برنامههای مربوط به ظاهر هم این مشکل به شکل سراسری حل نمیشه... از اونجایی که بعد از (تقریبا) ۱ سال…
✅ برای حل مشکل فونت فارسی/عربی کافیه که این چند خط رو به شکلی که تو تصویر هم مشاهده میکنید به فایل
❗️حواستون باشه که توی تگ
بعدش هم این کامندا رو بزنید که کانفیگ جدید اعمال بشه:
☑️ به همین سادگی!
🔹 دوستان دیگه هم روشهایی پیشنهاد کردن که برای مرورگر بد نیستن، ولی هدف تنظیمات سراسریه، حتی تو یه برنامه غیر معمول با یه یوزر دیگه مثل root یا هرچیزی...
🔸 میتونید جزییات بیشتری هم تغییر بدین تو همین فایل یا جاهای دیگه...
#ترفند #لینوکس #فونت_فارسی
~> @PinkOrca | آزاد بیندیشیم 🖇
/etc/fonts/fonts.conf اضافه کنید:<match>
<edit mode="prepend" name="family">
<string>Vazirmatn</string>
</edit>
</match>
❗️حواستون باشه که توی تگ
<fontconfig> بذاریدش. font-family هم هرچی که دوست داشتید، من با Vazirmatn راحتم چون فونت فارسی استاندارد خوبیه!بعدش هم این کامندا رو بزنید که کانفیگ جدید اعمال بشه:
fc-cache -f -vfc-cache -r☑️ به همین سادگی!
🔹 دوستان دیگه هم روشهایی پیشنهاد کردن که برای مرورگر بد نیستن، ولی هدف تنظیمات سراسریه، حتی تو یه برنامه غیر معمول با یه یوزر دیگه مثل root یا هرچیزی...
🔸 میتونید جزییات بیشتری هم تغییر بدین تو همین فایل یا جاهای دیگه...
#ترفند #لینوکس #فونت_فارسی
~> @PinkOrca | آزاد بیندیشیم 🖇
1❤20👍8🔥3⚡1🍾1
یه ویدیوی خوب در مورد استفاده از ابزار هوش مصنوعی Aider برای کدنویسی، بدون نیاز به تعویض IDE و ادیتور... به شکل رایگان.
https://youtu.be/uGJKwUYrPYo
- کاری از @MhrCode 🍓
#معرفی #هوش_مصنوعی
~> @PinkOrca | آزاد بیندیشیم 🪑
https://youtu.be/uGJKwUYrPYo
- کاری از @MhrCode 🍓
#معرفی #هوش_مصنوعی
~> @PinkOrca | آزاد بیندیشیم 🪑
1❤13👍2
~> نگاهی به معماری و عملکرد RAG
تولید تقویت شده با بازیابی (Retrieval Augmented Generation - RAG) یک رویکرد پیشرفته در حوزه مدلهای زبانی بزرگ (LLMs) هستش که هدفش افزایش دقت، بهروز بودن اطلاعات و کاهش تولید پاسخهای بیاساس یا اصطلاحاً "هذیانگویی" (Hallucination) در این مدلهاست. اساس کار RAG بر ترکیب تواناییهای ذاتی LLMها در تولید متن با قابلیت دسترسی به یک پایگاه دانش خارجی و بازیابی اطلاعات مرتبط از اون بنا شده.
برخلاف LLMهای استاندارد که دانششون به دادههایی که باهاشون آموزش دیدن محدود میشه و بعد از تاریخ آموزش، اطلاعات جدیدی ندارن، RAG این امکان رو فراهم میکنه که مدل در زمان پاسخدهی به اطلاعات روزآمد و خاص یک دامنه دسترسی پیدا کنه. این کار بدون نیاز به بازآموزی (Retraining) کامل مدل انجام میشه که فرآیندی بسیار هزینهبر و زمانبر هستش.
#هوش_مصنوعی #علوم_کامپیوتر #نوشته
1/3
~> @PinkOrca | آزاد بیندیشیم 🎲
تولید تقویت شده با بازیابی (Retrieval Augmented Generation - RAG) یک رویکرد پیشرفته در حوزه مدلهای زبانی بزرگ (LLMs) هستش که هدفش افزایش دقت، بهروز بودن اطلاعات و کاهش تولید پاسخهای بیاساس یا اصطلاحاً "هذیانگویی" (Hallucination) در این مدلهاست. اساس کار RAG بر ترکیب تواناییهای ذاتی LLMها در تولید متن با قابلیت دسترسی به یک پایگاه دانش خارجی و بازیابی اطلاعات مرتبط از اون بنا شده.
برخلاف LLMهای استاندارد که دانششون به دادههایی که باهاشون آموزش دیدن محدود میشه و بعد از تاریخ آموزش، اطلاعات جدیدی ندارن، RAG این امکان رو فراهم میکنه که مدل در زمان پاسخدهی به اطلاعات روزآمد و خاص یک دامنه دسترسی پیدا کنه. این کار بدون نیاز به بازآموزی (Retraining) کامل مدل انجام میشه که فرآیندی بسیار هزینهبر و زمانبر هستش.
#هوش_مصنوعی #علوم_کامپیوتر #نوشته
1/3
~> @PinkOrca | آزاد بیندیشیم 🎲
❤10👍4🔥1
🟣 معماری و فرآیند کار RAG
سیستم RAG معمولاً از دو جزء اصلی تشکیل شده: یک سیستم بازیابی (Retriever) و یک مدل تولیدکننده (Generator) که همون LLM هستش.
0️⃣ فاز نمایه سازی (Indexing Phase):
آمادهسازی پایگاه دانش: اولین قدم، آمادهسازی مجموعهای از اسناد و دادههاست که قراره به عنوان منبع دانش خارجی استفاده بشه. این اسناد میتونن شامل متون تخصصی، مقالات، مستندات داخلی یک سازمان، یا هر نوع داده متنی دیگهای باشن.
قطعهبندی (Chunking): اسناد بزرگ به قطعات (Chunks) کوچکتر تقسیم میشن. این کار به چند دلیل مهمه: اول اینکه مدلهای زبانی محدودیت در طول ورودی (Context Window) دارن و نمیتونن حجم زیادی از متن رو یکجا پردازش کنن. دوم اینکه بازیابی قطعات کوچکتر و متمرکزتر میتونه دقت بالاتری داشته باشه. استراتژیهای مختلفی برای چانکینگ وجود داره، مثل تقسیم بر اساس اندازه ثابت، پاراگراف، یا حتی روشهای هوشمندتر مبتنی بر محتوا.
تولید Embedding: هر چانک متنی با استفاده از یک مدل Embedding (مثل Sentence-BERT، OpenAI Ada، یا مدلهای مشابه) به یک بردار عددی (Vector Embedding) تبدیل میشه. این بردارها نمایش فشردهای از معنای معنایی (Semantic Meaning) متن هستن.
ذخیرهسازی در پایگاه داده برداری (Vector Database): بردارهای تولید شده به همراه خود چانکها یا ارجاعی به اونها، در یک پایگاه داده برداری مثل FAISS، Pinecone، Weaviate یا Chroma ذخیره میشن. این دیتابیسها برای جستجوی سریع و کارآمد بر اساس شباهت برداری کاستومایز شدن.
1️⃣ فاز بازیابی و تولید (Retrieval and Generation Phase):
دریافت کوئری کاربر: وقتی کاربر یک سوال یا دستور (کوئری) مطرح میکنه، این کوئری ابتدا با استفاده از همون مدل Embedding که برای نمایه سازی اسناد استفاده شده بود، به یک بردار عددی تبدیل میشه.
جستجوی شباهت (Similarity Search): بردار کوئری با بردارهای ذخیره شده در پایگاه داده برداری مقایسه میشه. متداولترین روش برای این مقایسه، استفاده از معیارهای شباهتی مثل "شباهت کسینوسی" (Cosine Similarity) هستش. سیستم، تعدادی از چانکهایی که بیشترین شباهت معنایی رو با کوئری کاربر دارن (Top-K most relevant chunks) بازیابی میکنه.
غنیسازی پرامپت (Prompt Augmentation): چانکهای متنی بازیابی شده به همراه کوئری اصلی کاربر ترکیب میشن تا یک پرامپت "غنیشده" یا "افزوده" (Augmented Prompt) برای LLM ساخته بشه. نحوه ترکیب این اطلاعات میتونه متفاوت باشه، اما معمولاً متنهای بازیابی شده به عنوان زمینه (Context) به LLM ارائه میشن.
تولید پاسخ توسط LLM: پرامپت غنیشده به LLM داده میشه. حالا LLM با استفاده از دانش داخلی خودش و همچنین اطلاعات زمینهای که از طریق چانکهای بازیابی شده دریافت کرده، یک پاسخ تولید میکنه. این پاسخ به احتمال زیاد دقیقتر، مرتبطتر و مبتنی بر شواهد موجود در پایگاه دانش خواهد بود.
2/3
~> @PinkOrca
سیستم RAG معمولاً از دو جزء اصلی تشکیل شده: یک سیستم بازیابی (Retriever) و یک مدل تولیدکننده (Generator) که همون LLM هستش.
0️⃣ فاز نمایه سازی (Indexing Phase):
آمادهسازی پایگاه دانش: اولین قدم، آمادهسازی مجموعهای از اسناد و دادههاست که قراره به عنوان منبع دانش خارجی استفاده بشه. این اسناد میتونن شامل متون تخصصی، مقالات، مستندات داخلی یک سازمان، یا هر نوع داده متنی دیگهای باشن.
قطعهبندی (Chunking): اسناد بزرگ به قطعات (Chunks) کوچکتر تقسیم میشن. این کار به چند دلیل مهمه: اول اینکه مدلهای زبانی محدودیت در طول ورودی (Context Window) دارن و نمیتونن حجم زیادی از متن رو یکجا پردازش کنن. دوم اینکه بازیابی قطعات کوچکتر و متمرکزتر میتونه دقت بالاتری داشته باشه. استراتژیهای مختلفی برای چانکینگ وجود داره، مثل تقسیم بر اساس اندازه ثابت، پاراگراف، یا حتی روشهای هوشمندتر مبتنی بر محتوا.
تولید Embedding: هر چانک متنی با استفاده از یک مدل Embedding (مثل Sentence-BERT، OpenAI Ada، یا مدلهای مشابه) به یک بردار عددی (Vector Embedding) تبدیل میشه. این بردارها نمایش فشردهای از معنای معنایی (Semantic Meaning) متن هستن.
ذخیرهسازی در پایگاه داده برداری (Vector Database): بردارهای تولید شده به همراه خود چانکها یا ارجاعی به اونها، در یک پایگاه داده برداری مثل FAISS، Pinecone، Weaviate یا Chroma ذخیره میشن. این دیتابیسها برای جستجوی سریع و کارآمد بر اساس شباهت برداری کاستومایز شدن.
1️⃣ فاز بازیابی و تولید (Retrieval and Generation Phase):
دریافت کوئری کاربر: وقتی کاربر یک سوال یا دستور (کوئری) مطرح میکنه، این کوئری ابتدا با استفاده از همون مدل Embedding که برای نمایه سازی اسناد استفاده شده بود، به یک بردار عددی تبدیل میشه.
جستجوی شباهت (Similarity Search): بردار کوئری با بردارهای ذخیره شده در پایگاه داده برداری مقایسه میشه. متداولترین روش برای این مقایسه، استفاده از معیارهای شباهتی مثل "شباهت کسینوسی" (Cosine Similarity) هستش. سیستم، تعدادی از چانکهایی که بیشترین شباهت معنایی رو با کوئری کاربر دارن (Top-K most relevant chunks) بازیابی میکنه.
غنیسازی پرامپت (Prompt Augmentation): چانکهای متنی بازیابی شده به همراه کوئری اصلی کاربر ترکیب میشن تا یک پرامپت "غنیشده" یا "افزوده" (Augmented Prompt) برای LLM ساخته بشه. نحوه ترکیب این اطلاعات میتونه متفاوت باشه، اما معمولاً متنهای بازیابی شده به عنوان زمینه (Context) به LLM ارائه میشن.
تولید پاسخ توسط LLM: پرامپت غنیشده به LLM داده میشه. حالا LLM با استفاده از دانش داخلی خودش و همچنین اطلاعات زمینهای که از طریق چانکهای بازیابی شده دریافت کرده، یک پاسخ تولید میکنه. این پاسخ به احتمال زیاد دقیقتر، مرتبطتر و مبتنی بر شواهد موجود در پایگاه دانش خواهد بود.
2/3
~> @PinkOrca
❤10👍2
🟢 مزایای کلیدی RAG
دسترسی به اطلاعات بهروز: با آپدیت کردن پایگاه دانش خارجی، بدون نیاز به ترین مجدد LLM، میشه اطلاعات مدل رو بهروز نگه داشت.
کاهش هذیانگویی: چون پاسخها بر اساس اطلاعات بازیابی شده تولید میشن، احتمال اینکه LLM اطلاعات نادرست یا بیاساس تولید کنه، به شدت کاهش پیدا میکنه.
شفافیت و قابلیت استناد (Explainability): سیستم RAG میتونه به منابعی (چانکهای بازیابی شده) که برای تولید پاسخ استفاده کرده، ارجاع بده. این ویژگی برای کاربردهایی که نیاز به شفافیت دارن، بسیار مهمه.
کاستومایز کردن برای دامنههای خاص: میشه RAG رو با استفاده از پایگاههای دانش تخصصی برای پاسخگویی در دامنههای خاص (مثل پزشکی، حقوقی، یا فنی) کانفیگ کرد.
بهینگی هزینه: در مقایسه با فاینتیون کردن (Fine-tuning) کامل یک LLM با دادههای جدید، که به منابع محاسباتی زیادی نیاز داره، آپدیت کردن پایگاه دانش در RAG معمولاً بسیار کمهزینهتر هستش.
🔴 با وجود مزایای زیاد، پیادهسازی سیستمهای RAG با چالشهایی هم روبرو هستش:
کیفیت بازیابی: عملکرد کل سیستم به شدت به کیفیت مرحله بازیابی بستگی داره. اگر رتریور نتونه اسناد مرتبط رو به درستی پیدا کنه (اصطلاحاً "garbage in, garbage out")، حتی بهترین LLM هم نمیتونه پاسخ خوبی تولید کنه.
بهینهسازی چانکینگ: انتخاب استراتژی مناسب برای چانکینگ و اندازه بهینه چانکها میتونه چالشبرانگیز باشه. چانکهای خیلی کوچک ممکنه زمینه کافی رو فراهم نکنن و چانکهای خیلی بزرگ ممکنه حاوی اطلاعات اضافی و نویز باشن.
تاخیر (Latency): فرآیند بازیابی اطلاعات از پایگاه دانش، یک مرحله اضافی به فرآیند پاسخدهی اضافه میکنه که میتونه منجر به افزایش تاخیر بشه. بهینهسازی سرعت رتریور و پایگاه داده برداری مهمه.
ارزیابی: ارزیابی یک سیستم RAG پیچیدهتر از ارزیابی یک LLM استاندارد هستش. باید هم کیفیت بازیابی (مثلاً با متریکهایی مثل Precision و Recall) و هم کیفیت پاسخ نهایی تولید شده (مثلاً با متریکهایی مثل Faithfulness و Relevance) سنجیده بشه.
ادغام و مدیریت زمینه: نحوه ارائه موثر زمینه بازیابی شده به LLM و مدیریت محدودیت پنجره زمینه (Context Window) همچنان یک حوزه فعال تحقیقاتی هستش.
🟡 در حال حاضر تکنیکهای پیشرفتهتری هم برای RAG در حال توسعه هستن، مثل جستجوی ترکیبی (Hybrid Search) که از ترکیب روشهای مبتنی بر کلمات کلیدی (مثل BM25) و جستجوی معنایی استفاده میکنه، یا استفاده از مدلهای بازرتبهبندی (Re-ranker) برای بهبود دقت اسناد بازیابی شده قبل از ارسال به LLM. این پیشرفتها به طور مداوم در حال بهبود کارایی و قابلیتهای سیستمهای RAG هستن.
3/3
~> @PinkOrca
دسترسی به اطلاعات بهروز: با آپدیت کردن پایگاه دانش خارجی، بدون نیاز به ترین مجدد LLM، میشه اطلاعات مدل رو بهروز نگه داشت.
کاهش هذیانگویی: چون پاسخها بر اساس اطلاعات بازیابی شده تولید میشن، احتمال اینکه LLM اطلاعات نادرست یا بیاساس تولید کنه، به شدت کاهش پیدا میکنه.
شفافیت و قابلیت استناد (Explainability): سیستم RAG میتونه به منابعی (چانکهای بازیابی شده) که برای تولید پاسخ استفاده کرده، ارجاع بده. این ویژگی برای کاربردهایی که نیاز به شفافیت دارن، بسیار مهمه.
کاستومایز کردن برای دامنههای خاص: میشه RAG رو با استفاده از پایگاههای دانش تخصصی برای پاسخگویی در دامنههای خاص (مثل پزشکی، حقوقی، یا فنی) کانفیگ کرد.
بهینگی هزینه: در مقایسه با فاینتیون کردن (Fine-tuning) کامل یک LLM با دادههای جدید، که به منابع محاسباتی زیادی نیاز داره، آپدیت کردن پایگاه دانش در RAG معمولاً بسیار کمهزینهتر هستش.
🔴 با وجود مزایای زیاد، پیادهسازی سیستمهای RAG با چالشهایی هم روبرو هستش:
کیفیت بازیابی: عملکرد کل سیستم به شدت به کیفیت مرحله بازیابی بستگی داره. اگر رتریور نتونه اسناد مرتبط رو به درستی پیدا کنه (اصطلاحاً "garbage in, garbage out")، حتی بهترین LLM هم نمیتونه پاسخ خوبی تولید کنه.
بهینهسازی چانکینگ: انتخاب استراتژی مناسب برای چانکینگ و اندازه بهینه چانکها میتونه چالشبرانگیز باشه. چانکهای خیلی کوچک ممکنه زمینه کافی رو فراهم نکنن و چانکهای خیلی بزرگ ممکنه حاوی اطلاعات اضافی و نویز باشن.
تاخیر (Latency): فرآیند بازیابی اطلاعات از پایگاه دانش، یک مرحله اضافی به فرآیند پاسخدهی اضافه میکنه که میتونه منجر به افزایش تاخیر بشه. بهینهسازی سرعت رتریور و پایگاه داده برداری مهمه.
ارزیابی: ارزیابی یک سیستم RAG پیچیدهتر از ارزیابی یک LLM استاندارد هستش. باید هم کیفیت بازیابی (مثلاً با متریکهایی مثل Precision و Recall) و هم کیفیت پاسخ نهایی تولید شده (مثلاً با متریکهایی مثل Faithfulness و Relevance) سنجیده بشه.
ادغام و مدیریت زمینه: نحوه ارائه موثر زمینه بازیابی شده به LLM و مدیریت محدودیت پنجره زمینه (Context Window) همچنان یک حوزه فعال تحقیقاتی هستش.
🟡 در حال حاضر تکنیکهای پیشرفتهتری هم برای RAG در حال توسعه هستن، مثل جستجوی ترکیبی (Hybrid Search) که از ترکیب روشهای مبتنی بر کلمات کلیدی (مثل BM25) و جستجوی معنایی استفاده میکنه، یا استفاده از مدلهای بازرتبهبندی (Re-ranker) برای بهبود دقت اسناد بازیابی شده قبل از ارسال به LLM. این پیشرفتها به طور مداوم در حال بهبود کارایی و قابلیتهای سیستمهای RAG هستن.
3/3
~> @PinkOrca
❤10👍1
🌀برای پیادهسازی راحت و سریع سیستمهای RAG که در موردش صحبت کردیم، پیشنهاد میکنم حتماً نگاهی به کتابخونهٔ LangChain بندازید.
☑️ LangChain یک فریمورک قدرتمند پایتون هستش که توسعه اپلیکیشنهای مبتنی بر LLM، به خصوص RAG رو خیلی سادهتر و منظمتر میکنه و کلی ابزار مفید برای این کار در اختیارتون میذاره.
https://python.langchain.com/docs/introduction/
#معرفی #هوش_مصنوعی
~> @PinkOrca | آزاد بیندیشیم 🎲
☑️ LangChain یک فریمورک قدرتمند پایتون هستش که توسعه اپلیکیشنهای مبتنی بر LLM، به خصوص RAG رو خیلی سادهتر و منظمتر میکنه و کلی ابزار مفید برای این کار در اختیارتون میذاره.
https://python.langchain.com/docs/introduction/
#معرفی #هوش_مصنوعی
~> @PinkOrca | آزاد بیندیشیم 🎲
🔥11❤3👍1
🌱 بیومیمتیک: رد پای طبیعت در تکنولوژیهای انسانی
✨ تو این پست دو قسمتی، اول با چند نمونه الهامبخش از طبیعت در تکنولوژی آشنا میشیم و بعد به سراغ الگوریتمهایی میریم که با همین نگاه طبیعتمحور طراحی شدن. امیدوارم لذت ببرید! ⬇️
#نوشته #فکت #معرفی #علوم_کامپیوتر #بیومیمتیک #الگوریتم #طبیعت #نوآوری
~> @PinkOrca | آزاد بیندیشیم 🌵
✨ تو این پست دو قسمتی، اول با چند نمونه الهامبخش از طبیعت در تکنولوژی آشنا میشیم و بعد به سراغ الگوریتمهایی میریم که با همین نگاه طبیعتمحور طراحی شدن. امیدوارم لذت ببرید! ⬇️
#نوشته #فکت #معرفی #علوم_کامپیوتر #بیومیمتیک #الگوریتم #طبیعت #نوآوری
~> @PinkOrca | آزاد بیندیشیم 🌵
❤8👍2⚡1
🌱 طبیعت طی میلیاردها سال تکامل، راهحلهای بهینهای برای چالشهای مختلف پیدا کرده. بیومیمتیک (Biomimetics) یا تقلید از طبیعت، علمی هستش که این راهحلها رو مطالعه میکنه و در طراحی تکنولوژیهای جدید به کار میگیره.
🪶 یکی از معروفترین نمونهها، طراحی قطارهای شینکانسن ژاپنی هستش. مهندسان متوجه شدن وقتی قطار با سرعت بالا از تونل خارج میشه، صدای بلندی تولید میکنه. Eiji Nakatsu، مهندس ارشد پروژه که پرندهنگار هم بود، از شکل منقار پرنده kingfisher الهام گرفت. این پرنده میتونه بدون ایجاد موج زیادی از هوا وارد آب بشه. نوک قطار رو شبیه منقار این پرنده طراحی کردن و نه تنها مشکل صدا حل شد، بلکه مصرف انرژی ۱۰ درصد کاهش پیدا کرد.
🐶 در حوزه مواد، جورج دو مستراس در سال ۱۹۴۱ از خارهای گیاه burdock که به لباس سگش چسبیده بود، ایده velcro رو گرفت. زیر میکروسکوپ دید که این خارها قلابهای کوچکی دارن که به الیاف پارچه گیر میکنن. این کشف منجر به تولید چسبپارچهای (احتمالا همچین چیزی میگن بهش؟) شد که امروز در صنایع مختلف از پزشکی تا هوافضا کاربرد داره.
🪷 برگ لوتوس یکی دیگه از الهامبخشهای مهم در نانوتکنولوژی هستش. سطح این برگها ساختار میکروسکوپی خاصی داره که باعث میشه آب به شکل قطرههای کروی روش بغلته و آلودگیها رو با خودش ببره. این پدیده که "اثر لوتوس" نامیده میشه، در تولید رنگهای خودتمیزشونده و پوششهای ضدآب استفاده میشه. شرکت Lotusan اولین رنگ تجاری با این تکنولوژی رو در سال ۱۹۹۹ عرضه کرد.
🛒 در معماری، ترمیتها الهامبخش سیستمهای تهویه طبیعی شدن. لانههای ترمیت در آفریقا با وجود دمای بیرونی که بین ۳ تا ۴۲ درجه سانتیگراد تغییر میکنه، دمای داخلی ثابت ۳۱ درجه رو حفظ میکنن. مرکز خرید Eastgate در زیمبابوه با الهام از این سیستم طراحی شده و ۹۰ درصد انرژی کمتری نسبت به ساختمانهای مشابه مصرف میکنه.
🏊 صنایع مختلف دیگهای هم از طبیعت درسهای زیادی گرفتن. مثلا بالهای جغد دارای ساختار خاصی هستن که صدای پرواز رو کاهش میدن. این ویژگی در طراحی پرههای توربین بادی استفاده شده تا آلودگی صوتی کمتری تولید کنن. همچنین پوست کوسه که دارای دندونههای ریز هستش، الهامبخش طراحی سطوحی شده که مقاومت هیدرودینامیکی رو کاهش میدن. Speedo در سال ۲۰۰۸ لباس شنای Fastskin رو با این تکنولوژی تولید کرد که رکوردهای زیادی رو در المپیک پکن شکست.
1/2
~> @PinkOrca
🪶 یکی از معروفترین نمونهها، طراحی قطارهای شینکانسن ژاپنی هستش. مهندسان متوجه شدن وقتی قطار با سرعت بالا از تونل خارج میشه، صدای بلندی تولید میکنه. Eiji Nakatsu، مهندس ارشد پروژه که پرندهنگار هم بود، از شکل منقار پرنده kingfisher الهام گرفت. این پرنده میتونه بدون ایجاد موج زیادی از هوا وارد آب بشه. نوک قطار رو شبیه منقار این پرنده طراحی کردن و نه تنها مشکل صدا حل شد، بلکه مصرف انرژی ۱۰ درصد کاهش پیدا کرد.
🐶 در حوزه مواد، جورج دو مستراس در سال ۱۹۴۱ از خارهای گیاه burdock که به لباس سگش چسبیده بود، ایده velcro رو گرفت. زیر میکروسکوپ دید که این خارها قلابهای کوچکی دارن که به الیاف پارچه گیر میکنن. این کشف منجر به تولید چسبپارچهای (احتمالا همچین چیزی میگن بهش؟) شد که امروز در صنایع مختلف از پزشکی تا هوافضا کاربرد داره.
🪷 برگ لوتوس یکی دیگه از الهامبخشهای مهم در نانوتکنولوژی هستش. سطح این برگها ساختار میکروسکوپی خاصی داره که باعث میشه آب به شکل قطرههای کروی روش بغلته و آلودگیها رو با خودش ببره. این پدیده که "اثر لوتوس" نامیده میشه، در تولید رنگهای خودتمیزشونده و پوششهای ضدآب استفاده میشه. شرکت Lotusan اولین رنگ تجاری با این تکنولوژی رو در سال ۱۹۹۹ عرضه کرد.
🛒 در معماری، ترمیتها الهامبخش سیستمهای تهویه طبیعی شدن. لانههای ترمیت در آفریقا با وجود دمای بیرونی که بین ۳ تا ۴۲ درجه سانتیگراد تغییر میکنه، دمای داخلی ثابت ۳۱ درجه رو حفظ میکنن. مرکز خرید Eastgate در زیمبابوه با الهام از این سیستم طراحی شده و ۹۰ درصد انرژی کمتری نسبت به ساختمانهای مشابه مصرف میکنه.
🏊 صنایع مختلف دیگهای هم از طبیعت درسهای زیادی گرفتن. مثلا بالهای جغد دارای ساختار خاصی هستن که صدای پرواز رو کاهش میدن. این ویژگی در طراحی پرههای توربین بادی استفاده شده تا آلودگی صوتی کمتری تولید کنن. همچنین پوست کوسه که دارای دندونههای ریز هستش، الهامبخش طراحی سطوحی شده که مقاومت هیدرودینامیکی رو کاهش میدن. Speedo در سال ۲۰۰۸ لباس شنای Fastskin رو با این تکنولوژی تولید کرد که رکوردهای زیادی رو در المپیک پکن شکست.
1/2
~> @PinkOrca
❤10⚡1
🐿 الگوریتمهای الهامگرفته از طبیعت هم دستهای از روشهای محاسباتی هستن که از رفتار موجودات زنده و فرآیندهای طبیعی برای حل مسائل پیچیده استفاده میکنن. این الگوریتمها بخشی از حوزه هوش محاسباتی محسوب میشن و در دهههای اخیر توجه زیادی رو به خودشون جلب کردن.
🧬 یکی از معروفترین این الگوریتمها، الگوریتم ژنتیک هستش که John Holland در سال 1975 معرفی کرد. این الگوریتم از فرآیند فرگشت داروینی الهام میگیره و با استفاده از عملگرهایی مثل جهش (mutation)، ترکیب (crossover) و انتخاب (selection) به دنبال بهینهسازی جوابها میگرده. در هر نسل، کروموزومهایی که fitness بهتری دارن شانس بیشتری برای بقا و تولیدمثل پیدا میکنن.
🐦⬛️ الگوریتم بهینهسازی ازدحام ذرات (PSO) که Kennedy و Eberhart در 1995 ارائه دادن، از رفتار دستهجمعی پرندگان الهام گرفته. هر ذره در فضای جستجو حرکت میکنه و سرعتش بر اساس بهترین موقعیتی که خودش پیدا کرده (pbest) و بهترین موقعیتی که کل گروه پیدا کرده (gbest) آپدیت میشه. فرمول آپدیت سرعت به این شکله:
v(t+1) = w×v(t) + c1×r1×(pbest - x(t)) + c2×r2×(gbest - x(t))
که w ضریب اینرسی، c1 و c2 ضرایب یادگیری و r1 و r2 اعداد رندوم بین 0 و 1 هستن.
🐜 الگوریتم کلونی مورچهها (ACO) که Marco Dorigo در 1992 معرفی کرد، از نحوه پیدا کردن کوتاهترین مسیر توسط مورچهها استفاده میکنه. مورچهها با ترشح فرومون و دنبال کردن مسیرهایی که فرومون بیشتری دارن، به مرور زمان بهترین مسیر رو پیدا میکنن. این الگوریتم بهخصوص برای مسائل مسیریابی مثل TSP (مسئله فروشنده دورهگرد) کاربرد داره.
🐝 الگوریتمهای دیگهای هم وجود دارن مثل الگوریتم زنبور عسل (ABC) که Karaboga در 2005 معرفی کرد و از رفتار جستجوی غذای زنبورها الهام میگیره، یا الگوریتم خفاش که Xin-She Yang در 2010 ارائه داد و از سیستم اکولوکیشن خفاشها استفاده میکنه.
💥 نکته جالب اینه که این الگوریتمها معمولاً برای مسائل NP-hard که روشهای دقیق برای حلشون زمان نمایی نیاز دارن، کارایی خوبی نشون میدن. البته این الگوریتمها تضمینی برای پیدا کردن جواب بهینه سراسری ندارن ولی در عمل جوابهای قابل قبولی در زمان معقول ارائه میدن.
2/2
~> @PinkOrca
🧬 یکی از معروفترین این الگوریتمها، الگوریتم ژنتیک هستش که John Holland در سال 1975 معرفی کرد. این الگوریتم از فرآیند فرگشت داروینی الهام میگیره و با استفاده از عملگرهایی مثل جهش (mutation)، ترکیب (crossover) و انتخاب (selection) به دنبال بهینهسازی جوابها میگرده. در هر نسل، کروموزومهایی که fitness بهتری دارن شانس بیشتری برای بقا و تولیدمثل پیدا میکنن.
🐦⬛️ الگوریتم بهینهسازی ازدحام ذرات (PSO) که Kennedy و Eberhart در 1995 ارائه دادن، از رفتار دستهجمعی پرندگان الهام گرفته. هر ذره در فضای جستجو حرکت میکنه و سرعتش بر اساس بهترین موقعیتی که خودش پیدا کرده (pbest) و بهترین موقعیتی که کل گروه پیدا کرده (gbest) آپدیت میشه. فرمول آپدیت سرعت به این شکله:
v(t+1) = w×v(t) + c1×r1×(pbest - x(t)) + c2×r2×(gbest - x(t))
که w ضریب اینرسی، c1 و c2 ضرایب یادگیری و r1 و r2 اعداد رندوم بین 0 و 1 هستن.
🐜 الگوریتم کلونی مورچهها (ACO) که Marco Dorigo در 1992 معرفی کرد، از نحوه پیدا کردن کوتاهترین مسیر توسط مورچهها استفاده میکنه. مورچهها با ترشح فرومون و دنبال کردن مسیرهایی که فرومون بیشتری دارن، به مرور زمان بهترین مسیر رو پیدا میکنن. این الگوریتم بهخصوص برای مسائل مسیریابی مثل TSP (مسئله فروشنده دورهگرد) کاربرد داره.
🐝 الگوریتمهای دیگهای هم وجود دارن مثل الگوریتم زنبور عسل (ABC) که Karaboga در 2005 معرفی کرد و از رفتار جستجوی غذای زنبورها الهام میگیره، یا الگوریتم خفاش که Xin-She Yang در 2010 ارائه داد و از سیستم اکولوکیشن خفاشها استفاده میکنه.
💥 نکته جالب اینه که این الگوریتمها معمولاً برای مسائل NP-hard که روشهای دقیق برای حلشون زمان نمایی نیاز دارن، کارایی خوبی نشون میدن. البته این الگوریتمها تضمینی برای پیدا کردن جواب بهینه سراسری ندارن ولی در عمل جوابهای قابل قبولی در زمان معقول ارائه میدن.
2/2
~> @PinkOrca
❤15
Media is too big
VIEW IN TELEGRAM
گپی درمورد اینکه چطور با یه VM ویندوزی مشکل به شکل خیلی تمیزی حل میشه در مورد خیلی از نرمافزارها و اینکه برای کار با گنو/لینوکس نیازی به دوره دیدن نیست.
تماشای این ویدیو و شنیدنش به هرکسی توصیه نمیشه، چون یهویی تهیه شد و به بهترین شکل ممکن و مختصر و مفید نیست حرفا توش. همچنین بار علمی خاصی هم نداره. اما اگه مایل بودین گوش کنین.
#حرف_با_شما #ترفند
~> @PinkOrca | آزاد بیندیشیم 🕸
تماشای این ویدیو و شنیدنش به هرکسی توصیه نمیشه، چون یهویی تهیه شد و به بهترین شکل ممکن و مختصر و مفید نیست حرفا توش. همچنین بار علمی خاصی هم نداره. اما اگه مایل بودین گوش کنین.
#حرف_با_شما #ترفند
~> @PinkOrca | آزاد بیندیشیم 🕸
❤5👍2
~> Radix Sort
یکی از مهمترین الگوریتمهای مرتبسازی که تو چند تا پست بعدی در موردش بیشتر یاد میگیریم ⬇️
#نوشته #علوم_کامپیوتر #الگوریتم #برنامه_نویسی
~> @PinkOrca | آزاد بیندیشیم 🎈
یکی از مهمترین الگوریتمهای مرتبسازی که تو چند تا پست بعدی در موردش بیشتر یاد میگیریم ⬇️
#نوشته #علوم_کامپیوتر #الگوریتم #برنامه_نویسی
~> @PinkOrca | آزاد بیندیشیم 🎈
❤4👍2