School of AI
ورژن ۹ مدل YOLO در چهار سایز ۷/۲ میلیون، ۲۰/۱ میلیون و ۲۵/۵ میلیون و ۵۸/۱ میلیون پارامتر منتشر شد!!! مقاله: https://arxiv.org/abs/2402.13616 کد: https://github.com/WongKinYiu/yolov9 نوتبوک برای فاینتیون کردن مدل: https://colab.research.google.com/github/roboflow…
آموزش finetune کردن مدل جدید YOLOv9 برروی دیتاست شخصی و سفارشیشده
https://blog.roboflow.com/train-yolov9-model/
https://blog.roboflow.com/train-yolov9-model/
Roboflow Blog
How to Train YOLOv9 on a Custom Dataset
Learn how to train a YOLOv9 model on a custom dataset.
❤12
School of AI
گوگل نسخهی اوپن-سورس از خانوادهی مدلهای زبانی Gemini را تحت نام Gemma معرفی و منتشر کرد. بلاگپست معرفی: https://huggingface.co/blog/gemma این مدل که رقیبی جدی برای Llama2 متا محسوب میشود، در دو نسخهی Base و Instruction-tuned و در دو سایز ۲ و ۷ میلیارد…
آموزش finetune کردن مدل جدید Gemma برروی دیتاست شخصی و سفارشیشده
https://huggingface.co/blog/gemma-peft
https://huggingface.co/blog/gemma-peft
huggingface.co
Fine-Tuning Gemma Models in Hugging Face
We’re on a journey to advance and democratize artificial intelligence through open source and open science.
👍8❤4
Forwarded from رویدادهای هوش مصنوعی
Media is too big
VIEW IN TELEGRAM
🎬فیلم جلسه سخنرانی آقای مهندس علیرضا اخوان پور- Graph Neural Networks
🧷مربوط به رویداد : https://t.me/eventai/820
🔖اسلایدها:
https://t.me/eventai/828
📓منبع:
https://t.me/CS_Sharif_University_2023
#gnn #gcn #graph #deeplearning #AI
#گراف #شبکه_عصبی_گراف
〰️〰️〰️〰️〰️
این کانال با هدف آگاه سازی از رویدادهای مرتبط با هوش مصنوعی نظیر همایش، کنفرانس، ورکشاپ و کلاس تشکیل شده است.
@eventai
🧷مربوط به رویداد : https://t.me/eventai/820
🔖اسلایدها:
https://t.me/eventai/828
📓منبع:
https://t.me/CS_Sharif_University_2023
#gnn #gcn #graph #deeplearning #AI
#گراف #شبکه_عصبی_گراف
〰️〰️〰️〰️〰️
این کانال با هدف آگاه سازی از رویدادهای مرتبط با هوش مصنوعی نظیر همایش، کنفرانس، ورکشاپ و کلاس تشکیل شده است.
@eventai
👍12
همونطور که احتمالا بیشتر علاقهمندان به هوش مصنوعی و یادگیری ماشین درجریاناند، در سالهای اخیر، بهویژه پس از معرفی Transformerها، یک تغییر نگرش و پارادایمشیفت در این حوزه اتفاق افتاده و اون هم حرکت به سمت مدلهای بنیادین (Foundation Models) ساختهشده توسط آزمایشگاههای بزرگ، بهعنوان بلوکهای سازندهی سامانههای هوشمندست.
مدلهای بنیادین، شبکههای عصبی ژرف و بزرگیاند که برروی حجم وسیعی از دادههای گوناگون آموزش دیدهاند و برای انجام تسکهای گوناگون (نه فقط یک تسک) بهسادگی و بهصورت few-shot و حتی zero-shot فاینتیون شده و آموزش میبینند.
به عنوان مثال، مدلهای زبانی بزرگ همچون GPTها (اوپناِیآی) یا Llama (متا) یا Gemma (گوگل) یا Phi (مایکروسافت)، که با مشاهدهی حجم وسیعی از دادههای متنی در زمینههای مختلف و استخراج رابطهی آماری بین واژهها، الگوهای زبانی را یادگرفته و برای تسکهای مختلف از جمله پرسشوپاسخ، خلاصهسازی، استنتاج و … مورد استفاده قرار میگیرند. و یا مدلهای بنیادین مرتبط با بینایی ماشین مانند CLIP (اوپناِیآی) یا GLIP (مایکروسافت) یا SAM (متا) یا YOLO-World که با آموزش برروی حجم وسیعی از تصاویر، مفاهیم بصری موجود در تصاویر را یاد گرفته و بهصورت zero-shot برای تسکهای مختلف قابل استفادهاند.
بااینکه، مدلهای بنیادین در زمینههای پردازش زبان طبیعی و بینایی ماشین پیشرفتهای قابل توجهی داشتهاند، اما در زمینهی پیشبینی سریهای زمانی که یکی از مهمترین کاربردهای هوش مصنوعی بهویژه در کسبوکارهاست، هنوز جای کار بسیار است.
در زیر، لینک چند نمونه از مدلهای بنیادین که اخیرا برای پیشبینی سریهای زمانی معرفی شدهاند را مشاهده میکنید:
https://arxiv.org/pdf/2402.02592.pdf
https://arxiv.org/pdf/2310.08278.pdf
https://arxiv.org/pdf/2402.03885.pdf
https://arxiv.org/pdf/2310.10688.pdf
مدلهای بنیادین، شبکههای عصبی ژرف و بزرگیاند که برروی حجم وسیعی از دادههای گوناگون آموزش دیدهاند و برای انجام تسکهای گوناگون (نه فقط یک تسک) بهسادگی و بهصورت few-shot و حتی zero-shot فاینتیون شده و آموزش میبینند.
به عنوان مثال، مدلهای زبانی بزرگ همچون GPTها (اوپناِیآی) یا Llama (متا) یا Gemma (گوگل) یا Phi (مایکروسافت)، که با مشاهدهی حجم وسیعی از دادههای متنی در زمینههای مختلف و استخراج رابطهی آماری بین واژهها، الگوهای زبانی را یادگرفته و برای تسکهای مختلف از جمله پرسشوپاسخ، خلاصهسازی، استنتاج و … مورد استفاده قرار میگیرند. و یا مدلهای بنیادین مرتبط با بینایی ماشین مانند CLIP (اوپناِیآی) یا GLIP (مایکروسافت) یا SAM (متا) یا YOLO-World که با آموزش برروی حجم وسیعی از تصاویر، مفاهیم بصری موجود در تصاویر را یاد گرفته و بهصورت zero-shot برای تسکهای مختلف قابل استفادهاند.
بااینکه، مدلهای بنیادین در زمینههای پردازش زبان طبیعی و بینایی ماشین پیشرفتهای قابل توجهی داشتهاند، اما در زمینهی پیشبینی سریهای زمانی که یکی از مهمترین کاربردهای هوش مصنوعی بهویژه در کسبوکارهاست، هنوز جای کار بسیار است.
در زیر، لینک چند نمونه از مدلهای بنیادین که اخیرا برای پیشبینی سریهای زمانی معرفی شدهاند را مشاهده میکنید:
https://arxiv.org/pdf/2402.02592.pdf
https://arxiv.org/pdf/2310.08278.pdf
https://arxiv.org/pdf/2402.03885.pdf
https://arxiv.org/pdf/2310.10688.pdf
👍26❤8
This media is not supported in your browser
VIEW IN TELEGRAM
مدل بنیادین گوگل برای درک ویدئو منتشر شد!!!
مدل VideoPrism یک ViFM یا مدل بنیادین ویدئوست که برخلاف مدلهای قبلی مثل VideoCLIP برای دامنهی وسیعی از تسکها از جمله classification و localization و retrieval و captioning و question answering قابل استفادهست.
https://blog.research.google/2024/02/videoprism-foundational-visual-encoder.html
مدل VideoPrism یک ViFM یا مدل بنیادین ویدئوست که برخلاف مدلهای قبلی مثل VideoCLIP برای دامنهی وسیعی از تسکها از جمله classification و localization و retrieval و captioning و question answering قابل استفادهست.
https://blog.research.google/2024/02/videoprism-foundational-visual-encoder.html
🔥7👍4😍3
This media is not supported in your browser
VIEW IN TELEGRAM
نسخهی جدید از مدل زبانی شرکت فرانسوی Mistral به نام Mistral Large که در روزهای اخیر معرفی شده توانسته (بهویژه در تسکهای استدلال-محور) از سایر رقبا بهتر عمل کنه.
امروز شرکت مایکروسافت (که اتفاقا سهامدار اصلی OpenAI هم است) اعلام کرد طی قراردی همکاریای جدید، این مدل روی Microsoft Azure AI Studio و Microsoft Azure Machine Learning Studio در دسترس است.
https://azure.microsoft.com/en-us/blog/microsoft-and-mistral-ai-announce-new-partnership-to-accelerate-ai-innovation-and-introduce-mistral-large-first-on-azure/
امروز شرکت مایکروسافت (که اتفاقا سهامدار اصلی OpenAI هم است) اعلام کرد طی قراردی همکاریای جدید، این مدل روی Microsoft Azure AI Studio و Microsoft Azure Machine Learning Studio در دسترس است.
https://azure.microsoft.com/en-us/blog/microsoft-and-mistral-ai-announce-new-partnership-to-accelerate-ai-innovation-and-introduce-mistral-large-first-on-azure/
👍14❤1
چگونه از Tensorboard در Google Colab استفاده کنیم؟!
همونطور که میدونید، Tensorboard ابزاریست که برای بهتصویرکشیدن متریکهایی مثل loss و accuracy در حین آموزش مدل در TensorFlow (و البته PyTorch) و چند مورد دیگه استفاده میشه.
برای این کار، هنگام آموزش مدل در تنسورفلو، یک callback به نام tf.keras.callbacks.TensorBoard را به متد train پاس میدیم و در پایتورچ، از torch.utils.tensorboard.SummaryWriter استفاده میکنیم. اطلاعات لازم در یک پوشه (مثلا /runs/. در پایتورچ) لاگ میشن. سپس سرویس TensorBoard که یک نرمافزار تحت وب جداست رو با اجرای دستور tensorboard در ترمینال اجرا کرده و از طریق مرورگر وب (http://localhost:6006) به آن متصل میشیم.
اما زمانی که از Google Colab استفاده میکنیم، مرورگر ما به ماشین مجازیای که کد روی اون در حال اجراست، دسترسی نداره و چون اون ماشین مجازی، IP معتبر و اختصاصی روی اینترنت نداره، در حالت عادی نمیتونیم به سرویس TensorBoard روی اون متصل شیم.
پس راهحل چیست؟
پاسخ: باز کردن یک تونل از یک آدرس معتبر اینترنتی به داخل ماشین مجازی و سرویس تنسوربورد
اگه یه دامنهی اختصاصی برای خودتون دارید میتونید روی سایت Cloudflare یه اکانت بسازید و اونجا از یک آدرس معتبر یه تونل به ماشینی که میخواید باز کنید.
ولی اگه دامین خودتون رو ندارید میتونید از Ngrok استفاده کنید.
برای استفاده از Ngrok داخل نوتبوک خود در گوگل کولب، اول دو دستور زیر رو اجرا کنید تا Ngrok دانلود و extract شه:
بعد سرویس تنسوربورد رو با دستور زیر روی پورت ۶۰۰۶ اجرا کنید:
بعد Ngrok رو اجرا کرده و سر تونل رو به پورت ۶۰۰۶ ماشین مجازی وصل کنید
تونل شما آمادهست. با اجرای دستور زیر آدرس عمومی دسترسی به تونل رو پیدا کنید و ازون طریق تنسوربورد رو باز کنید:
همونطور که میدونید، Tensorboard ابزاریست که برای بهتصویرکشیدن متریکهایی مثل loss و accuracy در حین آموزش مدل در TensorFlow (و البته PyTorch) و چند مورد دیگه استفاده میشه.
برای این کار، هنگام آموزش مدل در تنسورفلو، یک callback به نام tf.keras.callbacks.TensorBoard را به متد train پاس میدیم و در پایتورچ، از torch.utils.tensorboard.SummaryWriter استفاده میکنیم. اطلاعات لازم در یک پوشه (مثلا /runs/. در پایتورچ) لاگ میشن. سپس سرویس TensorBoard که یک نرمافزار تحت وب جداست رو با اجرای دستور tensorboard در ترمینال اجرا کرده و از طریق مرورگر وب (http://localhost:6006) به آن متصل میشیم.
اما زمانی که از Google Colab استفاده میکنیم، مرورگر ما به ماشین مجازیای که کد روی اون در حال اجراست، دسترسی نداره و چون اون ماشین مجازی، IP معتبر و اختصاصی روی اینترنت نداره، در حالت عادی نمیتونیم به سرویس TensorBoard روی اون متصل شیم.
پس راهحل چیست؟
پاسخ: باز کردن یک تونل از یک آدرس معتبر اینترنتی به داخل ماشین مجازی و سرویس تنسوربورد
اگه یه دامنهی اختصاصی برای خودتون دارید میتونید روی سایت Cloudflare یه اکانت بسازید و اونجا از یک آدرس معتبر یه تونل به ماشینی که میخواید باز کنید.
ولی اگه دامین خودتون رو ندارید میتونید از Ngrok استفاده کنید.
برای استفاده از Ngrok داخل نوتبوک خود در گوگل کولب، اول دو دستور زیر رو اجرا کنید تا Ngrok دانلود و extract شه:
!wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip
!unzip -o ngrok-stable-linux-amd64.zip
بعد سرویس تنسوربورد رو با دستور زیر روی پورت ۶۰۰۶ اجرا کنید:
LOGDIR = '/tmp/log'
get_ipython().system_raw(
'tensorboard --logdir {} --host 0.0.0.0 --port 6006 &'
.format(LOG_DIR)
)
بعد Ngrok رو اجرا کرده و سر تونل رو به پورت ۶۰۰۶ ماشین مجازی وصل کنید
get_ipython().system_raw('./ngrok http 6006 &')
تونل شما آمادهست. با اجرای دستور زیر آدرس عمومی دسترسی به تونل رو پیدا کنید و ازون طریق تنسوربورد رو باز کنید:
!curl -s http://localhost:4040/api/tunnels | python3 -c \
"import sys, json; print(json.load(sys.stdin)['tunnels'][0]['public_url'])"
👍19❤6😍4🔥3
محاسبهی فاصله به کمک Ultralytics YOLOv8
https://docs.ultralytics.com/guides/distance-calculation/#advantages-of-distance-calculation
پینوشت: توی عکس چهجوری فاصله اون دو نفر ۴ متره؟! 😂
https://docs.ultralytics.com/guides/distance-calculation/#advantages-of-distance-calculation
پینوشت: توی عکس چهجوری فاصله اون دو نفر ۴ متره؟! 😂
👍14❤3🔥1
شرکت مایکروسافت یک شبکهی عصبی گرافی به نام ViSNet برای مدلسازی و بازنمایی ساختارهای هندسی سهبعدی مانند مولکولها ارائه دادهست که قادرست ارتباطات پیچیده بین ساختار مولکولی و فعالیت بیولوژیکی (structure-activity relationships) را درک کرده و رفتار و ویژگیهای مولکولها را پیشبینی کند.
https://www.microsoft.com/en-us/research/blog/visnet-a-general-molecular-geometry-modeling-framework-for-predicting-molecular-properties-and-simulating-molecular-dynamics/
لینک مقاله در Nature:
https://www.nature.com/articles/s41467-023-43720-2
https://www.microsoft.com/en-us/research/blog/visnet-a-general-molecular-geometry-modeling-framework-for-predicting-molecular-properties-and-simulating-molecular-dynamics/
لینک مقاله در Nature:
https://www.nature.com/articles/s41467-023-43720-2
❤15👍7
اکثر دوستان با سه فریمورک اصلی یادگیری عمیق یعنی TensorFlow و PyTorch و JAX آشنااند، اما voodoo یک فریمورک نسبتا جدیدست که به زبان Mojo (زبان برنامهنویسی جدید برای AI که مزایای C و Python را ترکیب کردهست) نوشته شدهست.
حال اینکه اخیرا آقای شوله، نویسندهی Keras اعلام کردهاند که در حال بررسی این فریمورک برای افزودن به لیست بکاندهای قابل پشتیبانی در Keras 3 هستند.
https://github.com/Benny-Nottonson/voodoo
حال اینکه اخیرا آقای شوله، نویسندهی Keras اعلام کردهاند که در حال بررسی این فریمورک برای افزودن به لیست بکاندهای قابل پشتیبانی در Keras 3 هستند.
https://github.com/Benny-Nottonson/voodoo
🔥22👍8
با گسترش استفاده از LLM ها در اپلیکیشنهای تحت وب، و باتوجه به ماهیت غیرقطعی عملکرد آنها، آسیبپذیریهای امنیتی جدیدی پدید آمدهاند؛ مانند:
- Prompt Injection
- Data Leakage
- Inadequate Sandboxing
- Unauthorized Code Execution
- Model DoS
- Information Disclosure
و …
بنابراین، نیاز به یک دیوارهی آتش مناسب برای قرار گرفتن در جلوی مدلها و بررسی درخواستها برای تشخیص سواستفاده بیشتر از پیش حس میشود.
۱۰ آسیبپذیری در اپلیکیشنهای مبتنی بر LLM ها بهگفتهی OWASP
https://owasp.org/www-project-top-10-for-large-language-model-applications/
شرکت Cloudflare که جزو بزرگترین شرکتهای ارائهدهندهی خدمات ابری، CDN و امنیت سایبری و … است، از محصول جدید خود که یک دیوارهی آتش (Firewall) برای قرار گرفتن در جلوی LLM هاست، رونمایی کرد. محصول Firewall for AI در واقع یک WAF است که علاوه بر قابلیتهای مرسوم مانند کنترل rate limit و جلوگیری از injection، قابلیت تحلیل پرامپتها برای تشخیص سوءنیت را نیز دارد.
https://blog.cloudflare.com/firewall-for-ai/
- Prompt Injection
- Data Leakage
- Inadequate Sandboxing
- Unauthorized Code Execution
- Model DoS
- Information Disclosure
و …
بنابراین، نیاز به یک دیوارهی آتش مناسب برای قرار گرفتن در جلوی مدلها و بررسی درخواستها برای تشخیص سواستفاده بیشتر از پیش حس میشود.
۱۰ آسیبپذیری در اپلیکیشنهای مبتنی بر LLM ها بهگفتهی OWASP
https://owasp.org/www-project-top-10-for-large-language-model-applications/
شرکت Cloudflare که جزو بزرگترین شرکتهای ارائهدهندهی خدمات ابری، CDN و امنیت سایبری و … است، از محصول جدید خود که یک دیوارهی آتش (Firewall) برای قرار گرفتن در جلوی LLM هاست، رونمایی کرد. محصول Firewall for AI در واقع یک WAF است که علاوه بر قابلیتهای مرسوم مانند کنترل rate limit و جلوگیری از injection، قابلیت تحلیل پرامپتها برای تشخیص سوءنیت را نیز دارد.
https://blog.cloudflare.com/firewall-for-ai/
👍11🔥2
کورس دیپلرنینگ دکتر سهیل فیضی - دانشگاه مریلند
https://youtube.com/playlist?list=PLHgjs9ncvHi80UCSlSvQe-TK_uOyDv_Jf&si=fl3n4tW-WJ3th8f2
آخرین لکچر در مورد تولید تصاویر توسط diffusion model ها است:
https://youtu.be/rLepfNziDPM?si=9vMQYCOAhzL5u4Cn
https://youtube.com/playlist?list=PLHgjs9ncvHi80UCSlSvQe-TK_uOyDv_Jf&si=fl3n4tW-WJ3th8f2
آخرین لکچر در مورد تولید تصاویر توسط diffusion model ها است:
https://youtu.be/rLepfNziDPM?si=9vMQYCOAhzL5u4Cn
👍10❤2
روشهای مختلف فاینتیون کردن مدلهای زبانی بزرگ (LLM ها)
همونطور که میدونید، مدلهای زبانی بزرگ معمولا از میلیاردها پارامتر قابل آموزش تشکیل شدهاند که بهینهسازی و آموزش کامل همهی آنها نیازمند استفاده از حجم وسیعی دادهی متنی و توان پردازشیست که حداقل فعلا از توان عامهی پژوهشگرها خارج است و معمولا آزمایشگاههای تحقیقاتی بزرگ مانند OpenAI و Google با صرف زمان و هزینه زیاد مدلهایی را آموزش میدهند که ممکن است برای کاربردهای عمومی مناسب باشند. با این حال برای سفارشیسازی این مدلها برای تسکهای خاص، لازم است که این مدلها روی مجموعهدادهی مربوط به آن تسک که عموما بسیار کوچکترست، با صرف توان پردازشی به مراتب کمتر، فاینتیون (Finetune) شوند. برای فایننیون کردن شبکههای عصبی عمیق معمولی، پارامترهای مربوط به لایههای ابتدایی شبکه که ویژگیهای پایه را یادگرفتهاند، freeze شده و پارامترهای لایههای آخر که بیشتر با تسک مرتبطاند، اصلاح میشوند. اما فاینتیون کردن مدلهای زبانی، به این سادگی نیست و حتی با یک اشتباه ممکن است مدل، الگوهای زبانی عمومی را نیز فراموش کند (Catastrophic Forgetting).
در اینجا به معرفی روشهای مرسوم برای فاینتیون کردن مدلهای زبانی میپردازیم.
روش اول) فاینتیون کردن کل مدل
یک مدل Pretrained انتخاب شده و همهی پارامترهای آن بر روی دیتاست مربوط به تسک مورد نظر اصلاح میشوند. واضحست که این روش از نظر زمان اجرا و حافظهی مصرفی، در عمل، کارا نیست.
روش دوم) روش LoRA
این روش (Low-Rank Adaptation) توسط تیم مایکروسافت معرفی شده که در آن به جای اصلاح پارامترهای مدل زبانی، تعداد کمی پارامتر جدید موسوم به LoRA adapter به مدل اضافه میشوند و فقط این پارامترهای جدید بر روی دیتاست مربوط به تسک آموزش میبینند و پارامترهای خود مدل زبانی بدون تغییر باقی میمانند. واضحست که این روش علاوه بر کارایی و مصرف کمتر حافظه، جلوی catastrophic forgetting را هم میگیرد.
روشهای بهینهتری مانند QLoRA و +LoRA هم معرفی شدهاند که میتوانید در موردشان تحقیق کنید.
روش سوم) روش Prompt Engineering
در این روش، پارامترهای LLM اصلاح نمیشوند. در واقع از LLM فقط برای فهم زبان استفاده میشود و دادههای مربوط به تسک جدید، در قالب یک پرامپت مهندسی شده، قبل از کوئری، به LLM داده میشوند. واضحست که تعداد توکنهای ورودی LLM ها محدود است و این روش فقط برای زمانی کارایی دارد که تعداد نمونههای آموزشی، بسیار اندکاند (few-shot learning). همچنین، این روش در معرض خطر توهم (hallucinations) قرار دارد و ممکنست با وجود دریافت چند شات دیتای آموزشی باز هم اطلاعات نادرست خروجی دهد.
روش چهارم) روش RAG
روش Retrieval-Augmented Generation تا حدی شبیه به روش Prompt Engineering است، با این تفاوت که در آن، تولید متن (Text Generation) توسط LLM، به کمک اطلاعاتِ مرتبطِ بازیابیشده از یک پایگاه دانش (Knowledge base) انجام میگیرد.
به عبارت دیگر، در مرحلهی اول، یک مدل Embedding موسوم به مدل Retriever (برای انکودکردن مستندات و کوئریها در یک فضای امبدینگ)، آموزش میبیند.
سپس در مرحلهي دوم، همهی مستندات متنی مربوط به تسک مورد نظر، یک بار برای همیشه از این مدل امبدینگ عبور کرده و به بردار امبدینگ تبدیل میشوند.
در مرحلهی سوم، این بردارهای امبدینگ در یک Vector Database مانند Pinecone یا FAISS ذخیره (index) میشوند.
از اینجا به بعد، قبل از ارسال هر کوئری متنی به LLM، ابتدا آن کوئری را از مدل Retriever رد کرده و بردار امبدینگ آن را پیدا میکنیم. سپس با بررسی میزان مشابهت آن با بردارهای امبدینگ مربوط به مستندات ذخیرهشده در Vector Database تعدادی از مستندات مرتبط را بازیابی کرده و قبل از کوئری اصلی، به شکل یک پرامپت مهندسیشده به LLM میدهیم.
این روش در شرایطی که تعداد زیادی سند متنی مرتبط با تسک موجود است، کارایی داشته و میتواند اطلاعات دقیقتری در رابطه با تسک ارائه دهد.
روش پنجم) روش RLHF
مدلهای زبانی بزرگ معمولا بر روی حجم زیادی از دادههای موجود در وب آموزش میبینند. این دادهها ممکنست جهتدار و بیکیفیت باشند. برای رفع این مشکل، مدل زبانی آموزشدادهشده، در دسترس چند نیروی انسانی قرار گرفته و عملکرد آن در قالب بازخوردهایی ارزیابی میشود. سپس به کمک الگوریتمهای یادگیری تقویتی مانند REINFORCE یا PPO یک مدل پاداش (Reward Model) آموزش داده میشود. از این مدل برای انتخاب خروجی بهتر در انتهای کار استفاده میشود. این روش که نوعی Fine-tuning بهحساب میآید، بهنام Reinforcement Learning from Human Feedback) شناخته میشود.
تصویر زیر برخی از این روشها را بهشکل بصری نمایش میدهد 👇👇👇
@schoolofai
همونطور که میدونید، مدلهای زبانی بزرگ معمولا از میلیاردها پارامتر قابل آموزش تشکیل شدهاند که بهینهسازی و آموزش کامل همهی آنها نیازمند استفاده از حجم وسیعی دادهی متنی و توان پردازشیست که حداقل فعلا از توان عامهی پژوهشگرها خارج است و معمولا آزمایشگاههای تحقیقاتی بزرگ مانند OpenAI و Google با صرف زمان و هزینه زیاد مدلهایی را آموزش میدهند که ممکن است برای کاربردهای عمومی مناسب باشند. با این حال برای سفارشیسازی این مدلها برای تسکهای خاص، لازم است که این مدلها روی مجموعهدادهی مربوط به آن تسک که عموما بسیار کوچکترست، با صرف توان پردازشی به مراتب کمتر، فاینتیون (Finetune) شوند. برای فایننیون کردن شبکههای عصبی عمیق معمولی، پارامترهای مربوط به لایههای ابتدایی شبکه که ویژگیهای پایه را یادگرفتهاند، freeze شده و پارامترهای لایههای آخر که بیشتر با تسک مرتبطاند، اصلاح میشوند. اما فاینتیون کردن مدلهای زبانی، به این سادگی نیست و حتی با یک اشتباه ممکن است مدل، الگوهای زبانی عمومی را نیز فراموش کند (Catastrophic Forgetting).
در اینجا به معرفی روشهای مرسوم برای فاینتیون کردن مدلهای زبانی میپردازیم.
روش اول) فاینتیون کردن کل مدل
یک مدل Pretrained انتخاب شده و همهی پارامترهای آن بر روی دیتاست مربوط به تسک مورد نظر اصلاح میشوند. واضحست که این روش از نظر زمان اجرا و حافظهی مصرفی، در عمل، کارا نیست.
روش دوم) روش LoRA
این روش (Low-Rank Adaptation) توسط تیم مایکروسافت معرفی شده که در آن به جای اصلاح پارامترهای مدل زبانی، تعداد کمی پارامتر جدید موسوم به LoRA adapter به مدل اضافه میشوند و فقط این پارامترهای جدید بر روی دیتاست مربوط به تسک آموزش میبینند و پارامترهای خود مدل زبانی بدون تغییر باقی میمانند. واضحست که این روش علاوه بر کارایی و مصرف کمتر حافظه، جلوی catastrophic forgetting را هم میگیرد.
روشهای بهینهتری مانند QLoRA و +LoRA هم معرفی شدهاند که میتوانید در موردشان تحقیق کنید.
روش سوم) روش Prompt Engineering
در این روش، پارامترهای LLM اصلاح نمیشوند. در واقع از LLM فقط برای فهم زبان استفاده میشود و دادههای مربوط به تسک جدید، در قالب یک پرامپت مهندسی شده، قبل از کوئری، به LLM داده میشوند. واضحست که تعداد توکنهای ورودی LLM ها محدود است و این روش فقط برای زمانی کارایی دارد که تعداد نمونههای آموزشی، بسیار اندکاند (few-shot learning). همچنین، این روش در معرض خطر توهم (hallucinations) قرار دارد و ممکنست با وجود دریافت چند شات دیتای آموزشی باز هم اطلاعات نادرست خروجی دهد.
روش چهارم) روش RAG
روش Retrieval-Augmented Generation تا حدی شبیه به روش Prompt Engineering است، با این تفاوت که در آن، تولید متن (Text Generation) توسط LLM، به کمک اطلاعاتِ مرتبطِ بازیابیشده از یک پایگاه دانش (Knowledge base) انجام میگیرد.
به عبارت دیگر، در مرحلهی اول، یک مدل Embedding موسوم به مدل Retriever (برای انکودکردن مستندات و کوئریها در یک فضای امبدینگ)، آموزش میبیند.
سپس در مرحلهي دوم، همهی مستندات متنی مربوط به تسک مورد نظر، یک بار برای همیشه از این مدل امبدینگ عبور کرده و به بردار امبدینگ تبدیل میشوند.
در مرحلهی سوم، این بردارهای امبدینگ در یک Vector Database مانند Pinecone یا FAISS ذخیره (index) میشوند.
از اینجا به بعد، قبل از ارسال هر کوئری متنی به LLM، ابتدا آن کوئری را از مدل Retriever رد کرده و بردار امبدینگ آن را پیدا میکنیم. سپس با بررسی میزان مشابهت آن با بردارهای امبدینگ مربوط به مستندات ذخیرهشده در Vector Database تعدادی از مستندات مرتبط را بازیابی کرده و قبل از کوئری اصلی، به شکل یک پرامپت مهندسیشده به LLM میدهیم.
این روش در شرایطی که تعداد زیادی سند متنی مرتبط با تسک موجود است، کارایی داشته و میتواند اطلاعات دقیقتری در رابطه با تسک ارائه دهد.
روش پنجم) روش RLHF
مدلهای زبانی بزرگ معمولا بر روی حجم زیادی از دادههای موجود در وب آموزش میبینند. این دادهها ممکنست جهتدار و بیکیفیت باشند. برای رفع این مشکل، مدل زبانی آموزشدادهشده، در دسترس چند نیروی انسانی قرار گرفته و عملکرد آن در قالب بازخوردهایی ارزیابی میشود. سپس به کمک الگوریتمهای یادگیری تقویتی مانند REINFORCE یا PPO یک مدل پاداش (Reward Model) آموزش داده میشود. از این مدل برای انتخاب خروجی بهتر در انتهای کار استفاده میشود. این روش که نوعی Fine-tuning بهحساب میآید، بهنام Reinforcement Learning from Human Feedback) شناخته میشود.
تصویر زیر برخی از این روشها را بهشکل بصری نمایش میدهد 👇👇👇
@schoolofai
❤12👍10👏2
مایکروسافت روش جدیدی برای RAG به کمک Knowledge Graph معرفی کرد.
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Microsoft Research
GraphRAG: A new approach for discovery using complex information
Microsoft is transforming retrieval-augmented generation with GraphRAG, using LLM-generated knowledge graphs to significantly improve Q&A when analyzing complex information and consistently outperforming baseline RAG. Get the details.
👍13
اخیرا دو کتابخانه به نامهای KerasCV و KerasNLP برپایهی Keras3 توسعه داده شدهاند که پیادهسازی تسکهای بینایی رایانه و پردازش زبان طبیعی را به سادهترین و مقیاسپذیرترین شکل، ممکن میکنند.
حال تیم TensorFlow تعدادی ویدئوی آموزشی برای استفاده از این دو کتابخانه برای مهندسهای یادگیری ماشین منتشر کردهست:
https://youtube.com/playlist?list=PLQY2H8rRoyvzor4yH2nFktNo-ug6RiNZ_&si=fjlXm-OK70NS_imy
حال تیم TensorFlow تعدادی ویدئوی آموزشی برای استفاده از این دو کتابخانه برای مهندسهای یادگیری ماشین منتشر کردهست:
https://youtube.com/playlist?list=PLQY2H8rRoyvzor4yH2nFktNo-ug6RiNZ_&si=fjlXm-OK70NS_imy
👍17❤3
نسخهی جدید TensorFlow (نسخهی ۲.۱۶) منتشر شد.
این نسخه از Keras3 بهجای Keras2 استفاده میکند. بنابراین اگر کد قدیمیای دارید که با Keras جدید سازگار نیست، باید در آن به جای keras از tf-keras (کراس قدیمی ورژن ۲) استفاده کنید.
نصب:
pip install tf-keras~=2.16
فعالسازی:
این نسخه از Keras3 بهجای Keras2 استفاده میکند. بنابراین اگر کد قدیمیای دارید که با Keras جدید سازگار نیست، باید در آن به جای keras از tf-keras (کراس قدیمی ورژن ۲) استفاده کنید.
نصب:
pip install tf-keras~=2.16
فعالسازی:
import os
os.environ["TF_USE_LEGACY_KERAS"]=”1”
👍9❤1🙏1
اگر میخواهید بهسادگی مدلهای یادگیری ماشین رو به صورت realtime روی موبایل (اندروید یا آیاواس) و یا رزبریپای اجرا کنید، از Google MediaPipe استفاده کنید:
https://developers.google.com/mediapipe
مثال: آموزش اعمال فیلترهایی شبیه به SnapChat و Instagram روی دوربین موبایل:
https://www.youtube.com/watch?v=QERl1-ckFr8
https://developers.google.com/mediapipe
مثال: آموزش اعمال فیلترهایی شبیه به SnapChat و Instagram روی دوربین موبایل:
https://www.youtube.com/watch?v=QERl1-ckFr8
👍14❤1
This media is not supported in your browser
VIEW IN TELEGRAM
در این ویدئو که اخیرا وایرال شده، همکاری شرکت Figure (تولیدکنندهی روباتهای انساننما) با شرکت OpenAI در زمینهی استفاده از LLM ها در
روباتها را میبینید.
شرکت Figure AI اخیرا از مایکروسافت، NVIDIA، جف بزوس، OpenAI و … جذب سرمایه کردهست.
https://www.figure.ai/
روباتها را میبینید.
شرکت Figure AI اخیرا از مایکروسافت، NVIDIA، جف بزوس، OpenAI و … جذب سرمایه کردهست.
https://www.figure.ai/
❤11🔥2