Torchino
166 subscribers
10 photos
4 videos
4 files
26 links
شما میتوانید از اخبار روز دنیا در رابطه با هوش مصنوعی در اینجا خبر دار شوید 😉

میتونید سوالاتتون را از اینجا بپرسید
https://t.me/gap_torchino
Download Telegram
مرحله ی اول این کار را امشب بهتون میگم که چطور باید دیتاست خودتون را درست کنید اونم با 3,000 یا حتی 10,000 هزار تا عکس!!!!

خب شاید بگید که بیکارم و نشستم تقریبا ۴ هزار تا عکس از یک اسکناس گرفتم ؟!
خب معلومه که نه!!!
من با چندیدن استاد پرتجربه(که ازشون بابت راهنمایی هایی که کردن واقعا ازشون ممنونم🙏) در یکی از گروه های هوش مصنوعی، بهم این راهی که بهتون میگم را گفتن !!!

راه کار:
لازم‌نیست بشینی تک تک توی گوشیت عکس بگیری !!
فقط فیلم بگیر !! همین !
آره درسته، تو با فیلم‌گرفتن تقریبا ۱ دقیقه ای میتونی کلی عکس درست کنی که برای دیتاست ازشون استفاده کنی !!
خب میگی چطوری مگه میشه؟
آره!
شما وقتی که وارد دوربین گوشیتون میشید و وارد قسمت فیلم برداری میشید به احتمال زیاد اون بالا تعداد فریم ها را میزنه !
برای مثال برای گوشی من ۳۰ فریم بر ثانیه هست .
پس اگه من یک دقیقه فیلم بگیرم یعنی ۶۰ ثانیه ! با یک معادله ی ساده تعداد عکس های دیتاست مشخص میشه
شما باید تعداد فریم را × ثانیه هایی که فیلم گرفتید کنید .
برای مثال :
۳۰ × ۶۰ = ۱۸۰۰
خب پس برای یک دقیقه ۱۸۰۰ عکس به وجود میاد !!!
بسیار هم عالی دیگه چی میخوای؟


خب عکس هات را گرفتی فکر کردی دیگه کار تموم شد؟
نه داداش، تازه شروع شده وایستا تند نرو ⭕️
کلی موارد دیگه وجود داره که باید در نظر بگیری!!!

ادامه دارد ...
🔥106
موارد کلی که باید در نظر بگیری :
۱.کیفیت دوربینی که با اون فیلم را میگیرید باید برابر باشه با کیفیت عکس ورودی به مدل!!
راه کار:
میتونی یک کد بنویسی که موقعی که کاربر عکسی را وارد میکنه اون عکس را بگیره و قبل اینکه وارد مدل بشه بکشه کنار و سایزش را تغییر بده به سایز(کیفیتی) که برای عکس های آموزشی استفاده کردید !

--------------------------------------------
۲.شما باید موقع فیلم برداری از تمام جهات فیلم بگیرید و نور را باید کم و زیاد کنید و فاصله ی دوربین تا اسکناس (شی مورد نظر خودتون) را کم و زیاد کنید
چون اگه کاربر یک عکس از اسکناس خودش بده که زیر نور آفتاب هست بدجوری به دردسر میوفتید!! چرا؟ چون که اصلا مدل همچین چیزی ندیده !!
--------------------------------------------
۳.پشت صحنه ی اون آبجکت خودتون برای مثال اسکناس ما باید سفید باشه !!!
حالا میگی چرا سفید ؟
چون رنگ اسکناس با پشت صحنه ی سفید خیلی بهتر تشخیص داده میشه
خب یکی میگه شاید کاربر اسکناس را روی دستش گذاشت و عکس گرفت برای ما فرستاد !!
راه کار:
بجای اینکه همون اول سراغ خود آبجکت برید اول اونو دیتکت کنید و پشت صحنه ی اونو حذف کنید !!! حالا فقط توی عکس کاربرت یک اسکناس هست و پشت صحنه سفیده !
--------------------------------------------

خب اگه شما هم‌موارد دیگه ای را میدونید بگید شاید بدرد خورد .

خب تبریک شما اولین قدمتون را برداشتید
الان‌میدونید که برای جمع آوری دیتاست خودتون باید چیکار‌ کنید و چه مواردی را در نظر بگیرید !!!
حالا مرحله ی بعدی چیه؟
مرحله ی بعد (البته بعد از تبدیل فیلم به عکس) باید بریم و داده ها را پیش پردازش کنیم و تا حد ممکن تمیز کنیم !!
🔥9👍8
ادامه ی پست قبلی ...

خب الان که دیتاست خودمون را جمع کردیم و بیشتر از هزار تا عکس وجود داره
بهتره برای پیش پردازش داده ها چیکارا کنیم؟
خب بنظر بهتره این کار ها را انجام بدیم:

۱.سایز عکس ها را به سایز های مشخص تبدیل کنیم.

دلیل: امکان داره اون وسط که دارید فیلم میگیرید به صورت اتوماتیک کیفیت فیلم عوض بشه(بعضی گوشی ها این قابلیت را داره) و اینکه شاید موقع فیلم برداری کادر فیلم برداری خارج از محوطه ی سفید باشه! یعنی رنگ دیگه ای به‌جز سفید در پشت صحنه هست!!
--------------------------------------------
۲.تا حد امکان داده های پرت را باید حذف کنیم !!

دلیل: شما فکر کنید که از ۲۶۵۰ تا عکسی که دارید فقط و فقط ۵۰ تا از اون عکس ها پرت باشن !! خب این به این‌ معنی هست که اون ۵۰ تا عکس ویژگی هاشون نسبت به عکس های دیگه خیلی متفاوت است خب میگید اینجوری که خوبه مدل میاد و ویژگی های بیشتری را یاد میگیره
ولی خب بهتره بگیم با ۵۰ تا عکس مدل نمیتونه یاد بگیره و حتی به جاده خاکی کشیده میشه(underfitting or overfitting)!! حالا باز اگه ۲۰۰ تا بود می‌تونستیم یک‌کاری کنیم ولی ۵۰ تا خیلی کمه !!
--------------------------------------------
۳.باید از شر داده های پرت خلاص بشیم!
شما وقتی که میانگین انحراف داده هاتون را گرفتین با std اگه دیدید خیلی عدد خروجی خیلی زیاد هست باید داده ها را نرمال سازی کنیم، تا از شر اینا خلاص بشیم
اگه میخواید با چشم هاتون ببینید پراکندگی داده هاتون چه‌قدر همون داده ها را پلاتش را می‌کشید و با چشمتون می‌بینید که مثلا نقاط (هر داده) نزدیک به هم هست یا یکی اون طرف یکی این‌ طرف هست

ادامه دارد ...
15
خب پست بالا گفتم که باید نرمال کنیم داده ها!
اول بریم ببینیم منظور از نرمال کردن چیه؟
نرمال کردن یعنی اینکه بیایم کل داده ها را بین 0, 1 یا -1, 1 تنظیم کنیم
که این کار باعث میشه پراکندگی داده ها خیلی کمتر بشه.
چرا؟ چون معلومه دیگه همشون بین ۰ و ۱ هستن
شما با این فرمول میتونید داده های خودتون را نرمال کنید :
norm_data = (data - np.min(data) / np.max(data) - np.min(data)

تفاوت انحراف بعد از نرمال کردن داده ها و قبل:
قبل از نرمال کردن داده ها: 21.18
بعد از نرمال کردن داده ها: 0.088


کاربرد نرمال کردن داده ها هم که گفتیم که از overfitting جلوگیری میکنه و داده های پرت را بشدت کاهش میده بخاطر اینکه همه را بین یک مقیاس کوچیک تر تنظیم میکنه مثل ۰ و ۱ و دیگه داده های خیلی پراکنده وجود نداره!!

ادامه دارد ...
🔥9👍7
دوستان من هم زمان که کد را می‌نویسم یک پست مرتبط براتون میزارم
حالا بنظرتون:
Anonymous Poll
60%
کد را هر قسمتش را که مینویسم در کانال بفرستم.
40%
کد را آخر پروژه بفرستم که کامل تره.
ادامه ی پست قبلی ...
خب آقا اومدیم و داده ها را نرمال سازی کردیم .
حالا باید بیاین و داده ها را به دو دسته ی train, test تقسیم کنید.
خب درصد بندی عاقلانه ۸۰ به ۲۰ هست
یعنی ۸۰ درصد داده برای آموزش مدل و ۲۰ درصد داده ها برای تست مدل.

خب آقا الان تقسیم بندی هم کردیم، وقتش رسید که بریم یک مدل خیلی ساده را ترین کنیم.
خب حالا بنظرتون کدوم مدل بدرد ما میخوره؟🧐
ادامه دارد ...
👍9🔥5
پیرو پیام قبلی باید مدلمون را انتخواب کنیم !
من مدل logistic regression انتخواب میکنم
دلیل:
1.داده هامون طوری هست که این مدل خیلی خیلی بهتره. چونکه کلا قراره دو دسته را کلاسیفیکشن انجام بده قراره بگه که بله یا خیر !!! اسکناس صد تومانی هست یا نه؟! همین
--------------------------------------------
2.سادگی مدل، این مدل خیلی ساده هست و نوشتنش هم راحت هست
--------------------------------------------
3.سومیش را شما بگید :

ادامه دارد ...
8🔥3
خب برای آخرین پست امروز
دوستان این پروژه قراره در ۳ ورژن متفاوت اجرا بشه !!
این ورژن‌ اولیه هست که داریم جلو می‌بریم و اصلا کار خاصی نمی‌کنیم و مقاله ی نهایی که قراره نوشته بشه روی ورژن سومی هست
ورژن دوم پیشرفته ی همین پروژه هست.
ولی ورژن سوم جدا از اینا هست و واقعا پروژه ی بزرگی هست و این ورژن سومی قراره سوپرایز باشه !!!

زمان تقریبی ورژن‌اول چند روز دیگه ...

زمان تقریبی ورژن دوم چند هفته ی بعد

زمان تقریبی ورژن سوم چند ..........

و ازتون خواهش میکنم که حمایت کنید و ری اکشن بزنید
ورژن سوم چون قراره داخل یک پروژه ی دیگه و جداگانه که تا چند هفته ی دیگه قراره رو نمایی کنیم اونجا استفاده بشه پس سورس کد را در اختیار نمیزارم !!!
ولی اگه هر وقتی که خودتون حمایت کنید و تعداد ممبر های کانال به بالای ۱۰۰۰ (هزار) نفر برسه اونوقت سورس کد و دیتاست کاملا کاستوم خودم (وقتی میگم کاملا کاستوم یعنی زیر سنگ را بگردی هم داده هایی که من استفاده میکنم را نمیتونی پیدا کنی) را به صورت رایگان در اختیار شما دوستان میزارم

فعلا بدرود 🫡
11👍4
صبح زیباتون بخیر 🌱
در حیرتم که توی این ۲۱۷ ممبر عزیز ۱۹ نفر کانال را خفه (بی صدا) کردن
ولی مشکل اینه چرا ویو های پست کمه؟🥴

ما داریم زحمت میکشیم 🙌
پلیز حمایت کنید .
👍3😱3💔2
خب من داشتم کد مدل را می‌نوشتم که به یک نکته ای بر خوردم و گفتم که به شما هم !
ما در واقعیت باید تعداد پارامتر های w برابر باشه با تعداد ویژگی ها .
خب دلیل اینکه باید برابر باشه با تعداد ویژگی ها اینه که باید هر پارامتر بتونه یک ویژگی را به نحوی درک کنه و الگو های درونش را پیدا کنه
حالا من اینجا اومدم و عکس ها را تبدیل با یک ماتریس کردم
خب من الان‌دوتا راه جلوم هست

1.اینکه بیام برای هر ویژگی یک‌پارامتر بزارم که میشه ۵۰۰ تا پارامتر برای اینکه عکس را پردازش کنه (سایز عکس ۵۰۰ در ۵۰۰ هست)

2.اینکه بیام‌کلا یک پارامتر انتخواب‌ کنم برای کل ۵۰۰ ویژگی

خب تفاوت این دوتا را الان راحت برسی میکنم
حالت اول مثل اینه که توی یک‌مهمونی هر آدم یک بشقاب داره که توش غذای خودش هست
ولی حالت دوم مثل این هست کل ۵۰۰ مهمون توی یک بشقاب بشینن غذا بخورن!!!

خب اگه حالت اول را انتخواب کنید خیلی به نفعتون هست ! چون که مدل خیلی راحت تر یاد میگیره و دقتش بالا میره
ولی بایک پارامتر دست و پا شکسته کار میکنه !

البته یک چیزی را باید در نظر بگیریم که در یادگیری عمیق همیشه تعداد پارامتر ها برابر با تعداد ویژگی ها نیست ! چون لایه های بیشتری داره.

پس همیشه به تعداد ویژگی ها پارامتر بزار!
👍52
خب سلام به دوستان عزیز ظهرتون بخیر
امروز ورژن پروژه تکمیل میشه و تا چند روز دیگه ورژن دوم شروع میشه!
ولی قبل تموم کردن این پروژه یک نظر سنجی بریم.
دوستان شما بین پردازش متن و پردازش تصویر کدوم را انتخواب میکنید ؟
صرفا توی این نظر سنجی علاقه را کنار بزاید !!
Anonymous Poll
49%
پردازش تصویر (camputer vision)
51%
پردازش متن (nlp, llm)
🤣7
speech_and_language_processing_third_edition_@techbookology.pdf
22.1 MB
#کتاب
#nlp
یکی از برترین کتاب های آموزش پردازش متن هست
در این‌کتاب، کد های عملی به کار رفته و مطالب را به خوبی بیان‌کرده
و در هر فصل یک‌تمرینوجود داره که اگه تا آخر فصل ها بتونید کل تمرین هارا بخوبی انجام بدید میتونید یک هوش مصنوعی ساده ی پردازش متن بنویسید
و در متن در این‌ کتاب‌ برای آموزش چندیدن پروژه را آورده و جلو برده
4👍3
Torchino
خب من داشتم کد مدل را می‌نوشتم که به یک نکته ای بر خوردم و گفتم که به شما هم ! ما در واقعیت باید تعداد پارامتر های w برابر باشه با تعداد ویژگی ها . خب دلیل اینکه باید برابر باشه با تعداد ویژگی ها اینه که باید هر پارامتر بتونه یک ویژگی را به نحوی درک کنه و…
خب خب خب
بعد از چند روز یکم دیگه ادامه بدیم‌تا دیگه تموم بشه
خب ما وقتی مدل را پیاده سازی کردیم میایم و اون را آموزش میدیم
اپتیمایز مناسب sgd هست که خیلی هم عالی هست .
تعداد ایپاک هم ۱۰۰ تا عالی هست.
خب بعد از آموزش مدل بهتره loss (تابع ضرر) اون داده های عزیز را بگیریم ببینم چند مرده حلاجه
اگه تابع هزینه درحد 0.5 یا پایین از این بود بدونید عالی هست

حالا در آخر کار نوبت میرسه به :
تست بر روی داده های تست !
اگه مدل به خوبی از پسش بر اومد بدونید دیگه همه‌چیز عالیه و نه overfit و نه underfit رخ نداده !
تبریک میگم تموم شد🥳

کمی‌ ادامه دارد ...
👍4🔥1
دوستانی که خلاقیت زیادی دارن پیام را بخونید!!
بنظرتون چه هوش مصنوعی در حد ساده ولی با استفاده از پردازش متن را انجام بدم؟
توی کامنت ها بگید ! بهترین ایده ها جمع آوری میشه و در کانال قراره داده میشه و بیشتری رای انتخاب میشه و در همین کانال قراره پروژه را جلو ببریم و در نهایت کد را در گیت هاب قرار بدم!
کامنت کن:
👍1
میدونستی که ChatGPT چطوری کار میکنه؟ 🤨
توی این پست می‌خوام توضیح بدم که GPT چطور متن تولید می‌کنه!

GPT چیه؟
GPT یک مدل هوش مصنوعی از نوع LLM (Large Language Model) هست که برای تولید و پردازش زبان طبیعی استفاده میشه.

LLM چطور متن تولید می‌کنه؟
برای ساختن یک دستیار شخصی با LLM، می‌تونید از چند روش مختلف استفاده کنید. قبل از اینکه به این راهکارها بپردازم، باید بدونید که تقریباً ۸۰ درصد کار، بستگی به داده‌هایی داره که به مدل می‌دین.

1. روش Q&A:
داده‌ها به‌صورت سوال و جواب ساده باشن، مثل:

"سلام" : "سلام، چطور می‌تونم کمک کنم؟"
"چند سالته؟" : "من سنی ندارم!"

این روش مشابه به آموزش کودکان هست که با تقلید از اطرافیان، یاد می‌گیرن چطور جواب بدن.

2. روش لیستی:
داده‌ها به‌صورت لیست‌های مجزا از جمله‌های کامل باشن، مثل:

["سلام، من یک ربات هستم که می‌تونم به شما کمک کنم"]
["من می‌تونم براتون کد بنویسم"]

این روش به مدل کمک می‌کنه تا الگوهای عمومی‌تر رو یاد بگیره و پاسخ‌ها متنوع‌تر باشن.

3. روش کتابی:
داده‌ها مثل یک کتاب یا راهنما باشن، مثل:

"سلام، من رباتی هستم که می‌تونم برای شما کد بنویسم. برای نوشتن تابعی که دو عدد را جمع کند، باید این کد را بنویسید:..."

در این روش، مدل دانش جامع‌تری یاد می‌گیره و می‌تونه با متن‌های پیچیده‌تر هم کار کنه.

انتخاب الگوریتم
برای ساخت یک مدل GPT، الگوریتم‌ها هم نقش مهمی دارن. در ادامه چند روش معروف رو معرفی می‌کنم:

1. LSTM و RNN:
این الگوریتم‌ها روابط بین کلمات رو بررسی می‌کنن و الگوهای جملات رو به‌خوبی درک می‌کنن. برخلاف N-gram ها که محدودتر هستن، این روش‌ها می‌تونن بهتر کلمات بعدی رو پیش‌بینی کنن.

2. N-gram ها:
در این روش، کلمه‌ی بعدی بر اساس تعداد تکرار کلمات قبلی انتخاب می‌شه. برای مثال، در یک مدل ۴-gram، فقط چهار کلمه قبلی بررسی می‌شن.

3. Embedding (بردارسازی):
کلمات به بردارهای عددی تبدیل می‌شن و مدل بر اساس نزدیکی این بردارها به همدیگه، کلمه‌ی بعدی رو پیش‌بینی می‌کنه. این روش شبیه به الگوریتم KNN عمل می‌کنه.

چطور متن تولید می‌شه؟
مدل‌های LLM برای تولید متن، کلمه بعدی رو پیش‌بینی می‌کنن. برای مثال، وقتی شما به مدل می‌گید "سلام"، مدل بر اساس داده‌های قبلی خودش پیش‌بینی می‌کنه که کلمه‌ی بعدی مثلاً "خوبی؟" باشه.

اما فرآیند پیش‌بینی خیلی ساده نیست. مدل ابتدا چندین کلمه‌ی مختلف رو بررسی می‌کنه و بر اساس احتمالات، کلمه‌ای که بیشترین احتمال رو داره انتخاب می‌کنه.

نکته آخر
ساختن یک مدل قدرتمند مثل GPT ساده نیست. شما نیاز به سخت‌افزار قوی و بهینه‌سازی‌های مناسب دارین. خیلی‌ها دستیارهای هوشمند قدرتمندی ساختن، ولی به‌خاطر نبود سخت‌افزار مناسب، پروژه‌هاشون متوقف شده.

بهترین کد رو با بدترین سخت‌افزار هم بنویس! 🫡
🔥52👍2🆒1
درود 🫡
دوستان یک سوالی ازتون دارم!
چرا openai و شرکت های دیگه، میان chatbot هایی میسازن که همه چیز را یاد داشته باشن؟!
یعنی چرا نمیان چند تا هوش مصنوعی متفاوت برای کار های متفاوت بسازن؟🙄
اگه نظر منو بخواین میگم خب اگه بیان برای هر حوزه ی فناوری یک هوش مصنوعی بسازن خیلی بهتر هست!
تا اینکه بیان میلیارد ها میلیارد پارامتر برای مدل هاشون بسازن بیان میلیونی برای کار های متفاوت مدل بسازن!
تاره اینجوری بجای اینکه کلی GPU, tpu و کلی سخت افزار دیگه را برای یک هوش مصنوعی که هنوز کلی خطا داره خرج کنن!

طبق این پستی که خوندم:
https://t.me/cvision/3690
آقای Ray Kurzweil میگه که قسمتی که به ما اجازه ی فکر کردن و درک مطالب را میده تقریبا ۶ میلیون نورون داره !‌ و همین ۶ میلیون نورون میتونه کل کار ها را انجام بده!
خب منم نمیگم که بیایم مدل هایی با سایز خیلی کوچیک بسازیم! ولی باید اینو در نظر بگیریم که اگه من یک برنامه نویس هستم پس از پزشکی هیچی سرم نمیشه!
یا یک نجار نمیتونه مهارت هایی که نداره را انجام بده!
پس باید مدل ها را طوری بسازیم که مثل انسان باشه و کار های مربوطه ی خودش را انجام بده ! نه اینکه همه‌چیز دان باشه!


مثلا توی این پست دیگه یک سوالی برام ایجاد شد!
https://t.me/cvision/3691
چرا باید بیان مدلی که الان خیلی خفن تر از بقیه هست را از سایز 70B به 405 میلیاردی تبدیل کنن؟! چرا سعی نمیکنن که همین قدرت 70B را حفظ کنن و سایز را خیلی کوچیک تر کنن؟! آیا غیر ممکنه؟
آیا اینکه سایز کوچیک مدل باعث شده خیلی از هوش مصنوعی های روز دنیا را کنار بزنه می‌تونه دلیلی باشه که مدلی با سایز بزرگتر کلا هوش مصنوعی ها را نابود کنه یا اینکه چیز دیگه ای جای این هوش مصنوعی را میگیره؟🫥

لطفا توی کامنت ها جواب بدید و نظراتتون را بگید:
👍3🔥1
Torchino
دوستان ما چه رباتی بسازیم از ما حمایت میکنید ؟!
در ضمن تمامی مدل ها اوپن سورس هست!
ورژن اولیه ربات که فقط می‌تونه حرف بزنه(مثل یک آدم!) تا روز های آینده درست میشه و الان در مرحله ی آموزش مدل و تست هستیم
برای ورژن دوم چی کار کنیم؟
انتخواب کنید
درضمن‌ نگران دیتاست نباشید 😁
چیزی که زیاده داده هست (توی گوگل البته)
با اسکرپت کردن میتونیم کلی داده بدست بیاریم
مثلا از پذیرش ۲۴ و ... داده ی پزشکی
گیتهاب و ... داده ی برنامه نویسی
برای آشپزی نمیشناسم ولی راه حل دیگه ای دارم برای گرفتن داده