لایه Feed Forward در ترنسفورمرها، که گاهی اوقات به عنوان شبکه پیشخور عمیق (Feed Forward Neural Network - FFNN) هم شناخته میشه، وظیفه داره که تبدیلات غیرخطی رو روی دادهها اعمال کنه. این لایه به صورت مستقل روی هر موقعیت از دادههای ورودی عمل میکنه و هیچ توجهی به موقعیت مکانی نداره. ساختار داخلی این لایه شامل دو تبدیل خطیه که توسط یک تابع فعالساز غیرخطی، مثل ReLU یا GELU، از هم جدا میشن.
ساختار داخلی لایه پیشخور به این صورتکه که اول دادههای ورودی توسط یک تبدیل خطی (معمولاً یک ماتریس وزن W1) به فضای با ابعاد بیشتر مپ میشن. بعد، تابع فعالساز غیرخطی به کار برده میشه. در مرحله بعد، یک تبدیل خطی دیگه (ماتریس وزن W2) دادهها رو به فضای اولیه برمیگردونه. این فرایند کمک میکنه تا شبکه بتونه ترکیبات پیچیدهتری از ویژگیها رو یاد بگیره.
در حالی که لایههای Multi-Head Attention برای مدلسازی وابستگیهای پیچیده بین واحدهای مختلف دادهها طراحی شدن، لایههای پیشخور تمرکزشون رو روی اعمال تبدیلات غیرخطی روی دادهها میگذارن.
در نتیجه به ترنسفورمر اجازه داده میشه تا قابلیتهای تعمیمدهیاش رو بهبود ببخشه و وابستگیهایی که توسط مکانیزم توجه شناسایی نشدن رو مدل کنه.
لایههای پیشخور از اجزای مهم در معماری ترنسفورمر هستن و به مدل امکان میدن که رفتارهای پیچیدهتر و غنیتری رو نسبت به ساختارهای سنتیتر شبکههای عصبی یاد بگیره. به ویژه در مدلهایی که برای ترجمه ماشینی، خلاصهسازی متن، تولید متن و دیگر وظایف پردازش زبان استفاده میشن.
#Deep_Learning
#Transformers
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👌2❤1👨💻1
این ویدئو، که با مثال توضیح داده چه استراتژیهایی میشه برای زندگی داشت، ظاهرا به مبحث آموزش این هفته بیربطه اما بنظرم دیدنش برای هر کسی لازمه. پس به عنوان آخرین نکته این هفته، شما رو به تماشا دعوت میکنم 😊
#Deep_Learning
#Transformers
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
توسعه مهارتهای فردی | شبیه سازی زندگی و شغل با بازی و سریال
این ویدیو بخشی از وبینار توسعه مهارتهای فردی برای علم داده و ماشین لرنینگ هست.
01:05 افسردگی در اثر تمرکز بیش از حد روی هدف
03:00 اهمیت رشد پایدار
04:38 بازی شخصی
06:32 اهمیت استراتژی داشتن برای مدیریت زمان
11:18 اهمیت ساختن پشتوانه قوی
14:40 نقش تصمیمات…
01:05 افسردگی در اثر تمرکز بیش از حد روی هدف
03:00 اهمیت رشد پایدار
04:38 بازی شخصی
06:32 اهمیت استراتژی داشتن برای مدیریت زمان
11:18 اهمیت ساختن پشتوانه قوی
14:40 نقش تصمیمات…
❤6👍2🔥1👏1
#Weekend
#Deep_Learning
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👏4👍3❤1👌1
#Deep_Learning
#GPT
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤3👌1
مدل GPT یا Generative Pre-trained Transformer، اولین بار در سال 2018 توسط شرکت OpenAI معرفی شد. این مدل بر پایه معماری ترنسفورمر که در سال 2017 توسط Vaswani و همکارانش طراحی شد، هست.
بخش سمت راست تصویر، جزئیات دقیقتر و کاملتری از بلوک ترنسفورمر در معماری مدلهای GPT رو نشون میده. این بخش شامل مؤلفههایی هست (در ادامه بررسیشون میکنیم) که وظایف محاسباتی مرکزی رو در پردازش اطلاعات به عهده دارن.
در سمت چپ تصویر، معماری کلی ورودی به سیستم و چگونگی عبور دادهها از مراحل مختلف تا رسیدن به خروجی نهایی رسم شده. این شامل Input Embedding و Positional Encoding و استفاده از بلوکهای ترانسفورمره که به خروجی نهایی منتهی میشه.
- خطی (Linear): هر Head در مکانیزم توجه دارای لایههای خطی هست که وظیفه تبدیل ورودی به فضای دیگهای رو داره.
- ماسک (Mask): برای جلوگیری از تقلب یا دیدن اطلاعات آینده، ماسکها به کار برده میشن.
- سافتمکس (Softmax): این لایه احتمالات مربوط به هر Head رو تنظیم میکنه تا مدل بتونه تمرکزش رو روی بخشهای مهم ورودی قرار بده.
- اعمال Dropout: این لایه برای جلوگیری از بیشبرازش و آموزش مستقلتر مدل به کار میره.
#Deep_Learning
#GPT
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👌6👍4❤1👨💻1
شاید بشه گفت ایده transformerها که تو مقاله Attention is all you need اومده، از جذابترین و پرکاربردترین معماریهای شبکه عصبی بودن تا جایی که اکثر مدلهای زبانی بزرگی که امروز میشناسیم، از جمله ChatGPT، از این معماری استفاده میکنن. توی این ویدیو با ساختار و جزییات این مدل آشنا میشیم.
👈
#Deep_Learning
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
ترانسفورمر و مکانیزم توجه | Transformer and Attention
شاید بشه گفت ایده transformer ها که تو مقاله Attention is all you need اومده، از جذابترین و پرکاربردترین معماریهای شبکه عصبی بودن تا جایی که اکثر مدلهای زبانی بزرگی که امروز میشناسیم از جمله ChatGPT و حتی بخش عمده ای از کاربردهای پردازش تصویر و ویدیو از…
❤5🔥3👍2👨💻1
در سال 2019، OpenAI نسخه دوم مدل GPT به نام GPT-2 رو منتشر کرد که دارای یک معماری بزرگتر و پیچیدهتر بود. GPT-2 با استفاده از 1.5 میلیارد پارامتر، توانایی تولید متنهای بسیار دقیق و طبیعیتر رو داشت و تواناییهای فهم زبانیاش به شکل چشمگیری افزایش پیدا کرده بود.
در تصویر، چهار نسخه مختلف منتشر شده مدل زبانی GPT-2 نشون داده شده. این نسخهها شامل Small, Medium, Large و Extra Large هستن که با تعداد پارامترهای متفاوتی طراحی شدن:
با وجود پتانسیل بالای GPT-2 در تولید متن، این تکنولوژی با چالشهای اخلاقی هم روبرو بود. تولید خودکار محتوا میتونه منجر به سوء استفادههایی مثل تولید اخبار جعلی یا سوء استفاده از اطلاعات شخصی شه. OpenAI در ابتدا تصمیم گرفت که نسخه کامل GPT-2 رو منتشر نکنه تا خطرات احتمالیاش بررسی و کاهش داده شه.
#Deep_Learning
#GPT
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤3👌2👨💻1
بله، مدلهای Transformer که در اصل برای پردازش زبان طبیعی طراحی شدن، میتونن برای کارهای مربوط به تصویر، مثل برچسبگذاری تصویر (image tagging) هم به کار برن.
یکی از رویکردهای مهم در این زمینه استفاده از مدلهای Vision Transformer (ViT) هست که ورودیهایی به شکل تصویر میگیرن و با استفاده از مکانیزمهای مشابه Transformer برای پردازش متن، تصاویر رو تحلیل میکنن.
در کاربرد برچسبگذاری تصویر، یک ViT میتونه تصویر رو به چند پچ (قطعه کوچک تصویر) تقسیم کنه و هر پچ رو به عنوان یک توکن در نظر بگیره. بعد این توکنهای تصویری در مدل Transformer پردازش میشن تا ویژگیهای مهم تصویر استخراج شن. نتیجه نهایی میتونه شامل کلمات مهم یا برچسبهای مرتبط با محتوای تصویر باشه.
همچنین، مدلهای مبتنی بر Transformer در ترکیب با بقیه مدلهای شناختی، مثل مدلهایی که بر پایه یادگیری عمیق برای تشخیص تصاویر هستن، میتونن به خوبی برای این نوع از تسکها استفاده شن.
برای مثال، میشه از یک مدل CNN برای استخراج ویژگیهای تصویر و بعد از یک Transformer برای تولید برچسبها بر اساس این ویژگیها استفاده کرد.
#Deep_Learning
#Transformers
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1👨💻1
مدل GPT-3 سومین نسخه از سری مدلهای زبانی مولد (Generative Language Models) هست که توسط OpenAI ساخته شد و یکی از بزرگترین مدلهای زبانیه.
مدل GPT-3 میتونه طیف وسیعی از وظایف زبانی رو، مثل مثل تولید متن، ترجمه، پاسخ به سوالات، تکمیل متن، خلاصهسازی و مکالمه، انجام بده و این تواناییها بدون نیاز به تنظیم دقیق (Fine-Tuning) اضافی فراهم میشه.
این قابلیت به مدل امکان میده که با ارائه تنها چند نمونه یا حتی یک نمونه، وظیفه جدیدی رو به درستی انجام بده. سه حالت اصلی در این زمینه عبارتاند از:
- بدون نمونه (Zero-Shot Learning): مدل بدون هیچ نمونهای و تنها با دریافت توضیحات متنی، تسکی رو انجام میده.
- تکنمونهای (One-Shot Learning): مدل با ارائه تنها یک نمونه، تسک رو یادمیگیره.
- چندنمونهای (Few-Shot Learning): مدل با ارائه چند نمونه، عملکرد بهتری در انجام تسک داره.
#Deep_Learning
#GPT
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍5👏2👨💻1
بعد از معرفی فروشگاه GPT، کاربران GPTهای سفارشی خودشون رو در اون عرضه کردن. در این بلاگ با بهترین جیپیتیهایی که تابهحال در GPT Store منتشر شدن، از ابزارهای علم داده تا دستیاران سئو و تولید تصویر، آشنا میشیم.
#Deep_Learning
#GPT
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👌3👨💻1
مدل GPT-4 یک مدل زبانی چندوجهی بزرگه که میتونه نثر، هنر، ویدئو یا صدا تولید شده توسط انسان رو تقلید کنه یا مشکلات نوشتاری رو حل کنه. GPT-4 چهارمین نسل از مدل پایه OpenAI هست و GPT-4 Turbo نسخه جدیدتر و سریعتری از این مدله که در نوامبر 2023 منتشر شد.
#Deep_Learning
#GPT
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤2👌1👨💻1
#Deep_Learning
#GPT
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6👌3👨💻2❤1
مکانیسم توجه (Attention Mechanism) برای محاسبه توجه (attention scores) بین عناصر یک دنباله استفاده میشه. ویژگیهای مهم این کلاس:
- سازنده (Constructor): تعداد سرها (heads) و اندازه بردار تعبیهسازی (embedding size) رو به عنوان ورودی دریافت میکنه.
- تابع forward: بردارهای ورودی queries ، keys و values رو پردازش کرده و توجه (attention) رو اعمال میکنه.
یک بلاک کامل ترانسفورمر شامل مکانیسم توجه و یک شبکه پیشخور (Feedforward Network) هست.
- Self-Attention: یک نمونه از کلاس SelfAttention.
- شبکه پیشخور (Feedforward Network): شامل دو لایه خطی به همراه تابع فعالساز ReLU.
- نرمالسازی لایه (Layer Normalization): برای بهبود همگرایی و پایداری در یادگیری استفاده میشه.
- تابع forward: محاسبات توجه و شبکه پیشخور رو انجام میده.
مدل اصلی GPT شامل چند بلاک ترانسفورمر، بردارهای تعبیهساز و لایه خروجیه.
- بردار تعبیهسازی (Embedding Vectors): یک بردار تعبیهساز کلمه و یک بردار تعبیهساز موقعیت.
- بلاکهای ترانسفورمر: شامل یک لیست از چند بلاک ترانسفورمر.
- لایه خروجی (Output Layer): یک لایه خطی برای پیشبینی توزیع احتمال واژگان.
- تابع forward: پردازش ورودی با توجه به موقعیت و بعد ارسال به بلاکهای ترانسفورمر و در نهایت پیشبینی خروجی.
برای جلوگیری از مشاهده کلمات آینده، از ماسک مثلثی پایینمثلث (Lower-Triangular Mask) استفاده میشه.
- تابع ایجاد ماسک: یک ماتریس مربعی با مقادیر
1
در مثلث پایین و 0
در بقیه قسمتها برمیگردونه.بهینهساز و تابع loss برای بهروزرسانی وزنهای مدل و محاسبه خطا ضروری هستن.
- بهینهساز: از Adam Optimizer برای بهبود همگرایی استفاده میشه.
- تابع Loss: از CrossEntropyLoss برای محاسبه خطا در پیشبینیهای واژگان استفاده میکنیم.
فرآیند آموزش مدل باید شامل مراحل زیر باشه:
- ماسک کردن دادهها: ایجاد ماسک توجه.
- محاسبه خروجی مدل: اعمال ورودی به مدل GPT.
- محاسبه Loss و بهینهسازی: بهروزرسانی وزنها.
برای تولید متن جدید، مراحل زیر طی میشه:
- پردازش دنباله ورودی: تعبیهسازی کلمات اولیه.
- پیشبینی کلمه بعدی: با توجه به دنباله موجود، پیشبینی کلمه بعدی.
- تکرار پیشبینیها: اضافه کردن کلمه جدید به دنباله و تکرار مرحله پیشبینی تا رسیدن به طول مورد نظر.
## ساختار کلی کد
import torch
import torch.nn as nn
# ۱. کلاس Self-Attention
class SelfAttention(nn.Module):
...
# ۲. کلاس Transformer Block
class TransformerBlock(nn.Module):
...
# ۳. کلاس GPT
class GPT(nn.Module):
...
# ۴. تابع ایجاد ماسک توجه
def create_mask(size):
...
# ۵. بهینهساز و تابع Loss
def get_optimizer_and_loss(model, learning_rate):
...
# ۶. تابع آموزش
def train_model(model, data_loader, optimizer, loss_fn, device, epochs):
...
# ۷. تابع تولید متن
def generate_text(model, start_sequence, max_length, vocab, device):
...
این ساختار کلی کلاسها و توابع مورد نیاز برای پیادهسازی GPT در PyTorch هست. برای یک پیادهسازی کامل، کافیه این کلاسها و توابع رو پیادهسازی و تنظیمات مورد نیاز انجام شه.
#Deep_Learning
#GPT
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7👌2❤1👨💻1
مدل ترنسفورمر جرقهی اولیه پیشرفت حوزه ی پردازش متن و خلق هوشمصنوعیهایی، مثل ChatGPT، رو زد. این مدل یه مدل یادگیری عمیقه که از مکانیزم توجه استفاده میکنه و بهطور معمول در تحقیقات پردازش زبان های طبیعی استفاده میشه، اما اخیراً ترنسفورمورهای مختص پردازش تصویر هم معرفی شدن.
#Deep_Learning
#GPT
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤4👏2👌1
در دنیای توسعه نرمافزار، استفاده از APIها (Application Programming Interfaces) یک راه حیاتی برای ادغام تکنولوژیهای پیچیده مثل مدلهای زبان بزرگ در برنامههای کاربردی حساب میشه.
شرکت OpenAI برای دسترسی توسعهدهندگان به تواناییهای مدل معروفش، APIهایی فراهم کرده. با استفاده از این APIها، میشه به راحتی مدلهای GPT رو در برنامههای کاربردی مختلف ادغام کرد. این APIها به شما امکان میدن تا از تواناییهای مختلف مدل مثل تولید متن، دستهبندی متن، پاسخ به سؤالات و... استفاده کنین.
- تولید متن (Text Generation): تولید متنی که به عنوان ورودی داده میشه یا با دستورالعملهای خاصی مطابقت داشته باشه.
- ترجمه (Translation): ترجمه متن از یک زبان به زبان دیگه.
- خلاصهسازی (Summarization): خلاصهسازی متن طولانی به شکلی خلاصهتر.
- پاسخ به سؤالات (Question Answering): پاسخ به سؤالات بر اساس متنی که به عنوان ورودی داده میشه.
- دستهبندی متن (Text Classification): دستهبندی متن به گروههای مشخص.
برای استفاده از APIهای GPT، اول باید در وبسایت OpenAI یک حساب کاربری ایجاد و کلید API دریافت کرد. بعد از طریق HTTP درخواستهایی به API ارسال و پاسخها دریافت میشن.
کلید API که دریافت میکنین باید در همه درخواستهای شما به عنوان بخش Authorization (مجوز) در هدرهای HTTP وجود داشته باشه. برای مثال:
import openai
openai.api_key = "YOUR_API_KEY"
response = openai.Completion.create(
engine="davinci",
prompt="Explain the benefits of using GPT in applications.",
max_tokens=150
)
print(response.choices[0].text)
یکی از مهمترین استفادههای APIهای GPT، ادغام آنها در برنامههای کاربردی مختلف است. در ادامه، به نحوه استفاده از APIهای GPT در برنامههای کاربردی مختلف میپردازیم.
response = openai.Completion.create(
engine="text-davinci-003",
prompt="Generate a creative story about a robot who learns to love.",
max_tokens=200
)
story = response.choices[0].text
print(story)
در مثال بالا، از مدل "text-davinci-003" برای تولید داستانی در مورد یک ربات استفاده شده.
تقسیم متن به دستههای مثبت، منفی و خنثی:
prompt = "Classify the following review as positive, neutral, or negative: 'The movie was fantastic!'"
response = openai.Completion.create(
engine="text-davinci-003",
prompt=prompt,
max_tokens=10
)
classification = response.choices[0].text.strip()
print(classification)
prompt = "When was the first computer invented?"
response = openai.Completion.create(
engine="text-davinci-003",
prompt=prompt,
max_tokens=50
)
answer = response.choices[0].text.strip()
print(answer)
برای مثال، ترجمه جملهای از انگلیسی به فارسی:
prompt = "Translate the following English sentence to Persian: 'OpenAI is at the forefront of artificial intelligence research.'"
response = openai.Completion.create(
engine="text-davinci-003",
prompt=prompt,
max_tokens=60
)
translation = response.choices[0].text.strip()
print(translation)
برای بهینهسازی استفاده از APIهای GPT و بهبود کیفیت نتایج، به چند نکته مهم باید توجه داشت:
max_tokens
(حداکثر تعداد کلمات تولیدی)، temperature
(درجه تنوع)، و top_p
(نرخ انتخاب بر اساس توزیع احتمالات) رو متناسب با کاربرد خود تنظیم کرد.#Deep_Learning
#GPT
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8👌3❤2👨💻1
* کاربرد: تعیین حداکثر تعداد توکنهای قابل تولید در پاسخ.
* مثال کاربردی: تولید پاسخهای طولانی یا کوتاه.
* کاربرد: کنترل میزان تصادفی بودن پاسخها.
* مثال کاربردی: پاسخهای قطعیتر (temperature=0.0) یا متنوعتر (temperature=1.0).
* کاربرد: نمونهگیری از پاسخهایی که احتمال تجمعیشون به میزان مشخصی (0.0 تا 1.0) باشه.
* مثال کاربردی: جلوگیری از تولید پاسخهای تکراری یا با احتمال پایین.
* کاربرد: کاهش تکرار کلمات یا عبارات در پاسخ.
* مثال کاربردی: جلوگیری از تولید پاسخهای تکراری یا خنثی.
* کاربرد: تشویق مدل به تولید پاسخهای متنوع با استفاده از عبارات جدیدتر.
* مثال کاربردی: تولید پاسخهای غیرتکراری و متنوع.
* کاربرد: تعیین توکنهایی که با ظاهر شدن در پاسخ، تولید متن متوقف شه.
* مثال کاربردی: پایان دادن پاسخها بعد از رسیدن به یک نقطه یا عبارت مشخص.
* کاربرد: تولید چند پاسخ و برگردوندن بهترینشون.
* مثال کاربردی: افزایش کیفیت پاسخها به بهای هزینه محاسباتی بیشتر.
* کاربرد: نمایش احتمالهای مربوط به توکنهای تولیدشده در پاسخ.
* مثال کاربردی: مشاهده میزان قطعیت مدل در تولید توکنهای خاص.
#Deep_Learning
#GPT
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👌6❤3👍3👨💻1
#Weekend
#Deep_Learning
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👌3👏2
#Weekend
#Deep_Learning
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3👨💻2
#Weekend
#Deep_Learning
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3👏1
در دنیای پیچیدهی #یادگیری_عمیق و پردازش تصویر، مدلهای مختلفی برای تشخیص و شناسایی اشیا در تصاویر توسعه پیدا کردن که اولینشون الگوریتم R-CNN هست. بعد از این مدل که دقت قابل قبولی هم داشت، مدلهای Fast R-CNN و Faster R-CNN طراحی شدن تا نواقص R-CNN رو رفع کنن.
#Deep_Learning
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2🔥1👏1