حدود دو سال پیش، حس کردم که منابع فارسی خوبی برای دیزاین پترنها وجود نداره. واسه همین یه ریپازیتوری گیت ساختم به اسم "دیزاین پترن به زبان آدمیزاد" که استقبال خوبی هم شد.
حالا با رشد LLMها و اهمیتشون تو کارهای مختلف، فکر میکنم یه ریپازیتوری خوب میتونه کمک زیادی کنه تا از این مدلهای زبانی به بهترین شکل استفاده کنین.
تو این ریپو، سعی میکنم به زبان آدمیزاد هر چی برای کار با LLMها نیاز دارین رو توضیح بدم. از نوشتن پرامپت گرفته تا نکات و ترفندهای کاربردی.
جالب اینجاست که حتی این ریپو هم با کمک LLMها ساخته شده؛ از نوشتن توضیحات تا ساختاردهی محتوا و حتی تمامی عکسها.
به طور کلی، LLM مخفف Large Language Model هست. این مدلها با استفاده از حجم عظیمی از دادهها آموزش دیدهان تا بتونن زبان طبیعی رو بفهمن و تولید کنن. LLMها میتونن متن بنویسن، سوالات رو جواب بدن، ترجمه کنن، و حتی گفتگو کنن.
به طور ساده، LLMها مثل یه آدم خیلی باهوش هستن که میتونن متون داده شده رو بخونن و جواب بدن یا حتی خودشون متن تولید کنن. این مدلها به دلیل استفاده از دادههای زیاد و الگوریتمهای پیچیده، توانایی بالایی دارن و تو خیلی از کارها میتونن کمک کنن.
برای استفاده از LLMها، باید بدونیم چطور پرامپتهای خوبی بنویسیم تا بهترین نتیجه رو بگیریم.
پرامپت (Prompt) یه ورودی متنیه که شما به LLM میدین تا براساس اون، مدل یه خروجی تولید کنه. این ورودی میتونه سوال، دستور، یا هر نوع متن دیگهای باشه که مدل باید بهش جواب بده.
پرامپت: «لطفاً یه ایمیل رسمی برای درخواست مرخصی سه روزه بنویس که دلیل مرخصی رو هم توضیح بده.»
جواب LLM:
«سلام،
من [نام شما] هستم و قصد دارم از تاریخ [تاریخ شروع] تا [تاریخ پایان] به دلیل [دلیل مرخصی] مرخصی بگیرم. لطفاً درخواست من
رو بررسی کنین و بهم اطلاع بدین.
با تشکر،
[نام شما]»
نوشتن یه پرامپت خوب برای LLMها میتونه تاثیر زیادی روی کیفیت خروجی داشته باشه. در اینجا چند نکته برای نوشتن پرامپتهای موثر آورده شده است:
برای اینکه مدل بهتر بفهمه کجا دادهها شروع و کجا تموم میشن، از مرزهای مشخصی استفاده کنین. این مرزها میتونن شامل علامتهای نقل قول، خطوط جداکننده یا دیگر نشانههای بصری باشن.
روشهای استفاده از مرزها:
- استفاده از سه علامت نقل قول:
لطفاً یک بیوگرافی کوتاه برای این شخص بنویس:
"""
اسم: Ali
سن: 25
"""
- استفاده از تگهای HTML:
لطفاً یک بیوگرافی کوتاه برای این شخص بنویس:
<data>
اسم: Ali
سن: 25
</data>
پینوشت: استفاده از کاراکتر ` بصورت ``` هم خیلی رایج هست.
برای دریافت خروجی قابل استفادهتر، درخواست کنین که مدل خروجی رو به فرمتی مثل JSON، XML یا HTML بده.
مثال:
لطفاً اطلاعات زیر رو به صورت JSON با کلید های name و age خروجی بده:
اسم: Ali
سن: 25
جواب:
{
"name": "Ali",
"age": 25
}
میتونین به مدل بگین که جوابها رو با یه لحن خاص بده.
مثال:
لطفاً به زبان ساده و دوستانه توضیح بده که چگونه یک کیک شکلاتی درست کنیم.
میتونین به مدل بگین که شرایطی رو بررسی کنه و بگه که آیا اونها درست هستن یا نه.
مثال:
اگر سن کاربر بالای ۱۸ سال است و کاربر دارای گواهینامه رانندگی است، لطفاً بنویس که او مجاز به رانندگی است.
سن: ۲۵
جواب: بله
برای اینکه مدل بهتر بفهمه چطور وظیفهای رو انجام بده، میتونین چند مثال موفق بدین و بعدش درخواست خودتون رو مطرح کنین.
مثال:
مثال:
ورودی: ۵ + ۳
خروجی: ۸
ورودی: ۱۲ - ۴
خروجی: ۸
لطفاً ۷ * ۲ رو محاسبه کن.
میتونین به مدل بگین که مسئله رو حل کنه و بعد جواب بده.
مثال:
لطفاً ابتدا مسئله زیر رو حل کن و سپس جواب نهایی رو بده:
۳ + ۵ * ۲ - ۸ / ۴ = ؟
پرامپتها رو چند بار امتحان کنین و با تغییرات کوچک بهبود بدین تا بهترین جواب رو بگیرین.
با رعایت این نکات، میتونین پرامپتهایی بنویسین که LLMها رو به بهترین نحو هدایت کنه و جوابهای دقیق و مرتبط بگیرین.
برای اینکه از LLMها بهترین استفاده رو بکنیم، باید با چند تا از پارامترهای مهمشون آشنا باشیم. این پارامترها میتونن خروجی مدل رو تحت تأثیر قرار بدن. این پارامترها معمولاً در APIها استفاده میشن و در پلتفرمهای آماده مثل OpenAI Chat نیاز به تنظیم ندارن. بریم سراغ چند تا از مهمترین پارامترها:
پارامتر temperature
تعیین میکنه که خروجی مدل چقدر متنوع باشه.
- مقادیر پایین (مثلاً 0.2): خروجی مدل قابل پیشبینیتر و دقیقتر میشه. مدل کمتر ریسک میکنه و بیشتر جوابهای محافظهکارانه میده. مثلاً وقتی که میخواین جوابهای ثابت و مطمئن بگیرین.
- مقادیر بالا (مثلاً 0.8): خروجی مدل خلاقانهتر و متنوعتر میشه. مدل بیشتر ریسک میکنه و جوابهای خلاقانهتر و غیر منتظره میده. این برای زمانی خوبه که میخواین ایدههای جدید یا جوابهای غیر معمول بگیرین.
پارامتر top_p
یا نمونهگیری هستهای، تعیین میکنه که مدل چقدر از کلمات محتمل رو در نظر بگیره.
- مقادیر پایین (مثلاً 0.5): مدل فقط از کلمات با احتمال بالا استفاده میکنه و این باعث میشه خروجیها سادهتر و مستقیمتر باشن.
- مقادیر بالا (مثلاً 0.9): مدل از طیف وسیعتری از کلمات استفاده میکنه و این باعث میشه خروجیها متنوعتر و خلاقانهتر بشن.
پارامتر frequency_penalty
تعیین میکنه که مدل چقدر باید از تکرار کلمات جلوگیری کنه.
- مقادیر پایین (مثلاً 0): مدل ممکنه بیشتر کلمات رو تکرار کنه. این برای وقتی که تکرار مشکلی نداره خوبه.
- مقادیر بالا (مثلاً 1): مدل سعی میکنه کمتر کلمات رو تکرار کنه و از تنوع بیشتری استفاده کنه. این برای وقتی که میخواین متنهای متنوعتری داشته باشین خوبه.
پارامتر presence_penalty
تعیین میکنه که مدل چقدر باید از استفاده مجدد از کلماتی که قبلاً استفاده شده جلوگیری کنه.
- مقادیر پایین (مثلاً 0): مدل بیشتر تمایل داره از کلماتی که قبلاً استفاده کرده دوباره استفاده کنه. این برای وقتی که میخواین متن پیوستهتر باشه خوبه.
- مقادیر بالا (مثلاً 1): مدل سعی میکنه کلمات جدیدتر و متنوعتری استفاده کنه. این برای وقتی که میخواین تنوع در متن بیشتر باشه خوبه.
فرض کنین میخواین یه داستان بنویسین.
اگر temperature
پایین باشه، داستان سادهتر و قابل پیشبینیتر میشه. اگر temperature
بالا باشه، داستان پر از چرخشها
و اتفاقات غیر منتظره میشه.
یا مثلاً در top_p
، اگر مقدار پایین باشه، داستان از کلمات و عبارات سادهتر استفاده میکنه. اگر مقدار بالا باشه، داستان
خلاقانهتر و پر از کلمات و عبارات متنوعتر میشه.
این پارامترها به شما این امکان رو میدن که خروجی مدل رو به دلخواه خودتون تنظیم کنین و بهترین نتیجه رو بگیرین. با آزمون و خطا میتونین به تنظیمات بهینه برای نیازهای خودتون برسین.
یه نوع خاص از پرامپته که به مدل میگه چطور باید رفتار کنه و چه نوع جوابی بده. این پرامپتها معمولاً در شروع مکالمه تنظیم میشن و به مدل توضیح میدن که چه رویکردی رو در جوابها دنبال کنه. مثلاً میتونین بگین همیشه مودب باشه یا خروجی همیشه باید بصورت JSON باشه.
معمولاً یه بار در شروع مکالمه تنظیم میشه. بعد از اون، هر سوال یا پیامی که بفرستین، مدل طبق همون تنظیمات جواب میده. نیازی نیست هر بار تنظیمات رو تکرار کنین.
فرض کنین میخواین مدل به عنوان یه مربی ورزشی پاسخ بده:
سیستم پرامپت:
تو یه مربی ورزشی هستی که همیشه با انرژی و انگیزهدهنده جواب میده.
هدف تو اینه که کاربران رو تشویق کنی تا به اهداف ورزشی خودشون برسن.
لطفاً توصیههای ورزشی و برنامههای تمرینی رو به زبان ساده و قابل فهم توضیح بده.
پرامپت:
چطور میتونم برای یک مسابقه دویدن 10 کیلومتری آماده بشم؟
جواب:
سلام! برای آماده شدن برای یک مسابقه دویدن 10 کیلومتری، این مراحل رو دنبال کن:
1. برنامهریزی تمرینات: سه بار در هفته دویدن رو شروع کن و هر هفته مسافت رو بیشتر کن.
2. تمرینات متنوع: روزهای مختلف رو به دویدن، تقویت عضلات و استراحت اختصاص بده.
3. تغذیه مناسب: از مواد غذایی سالم و مقوی استفاده کن تا انرژی کافی داشته باشی.
4. استراحت و بازتوانی: به بدن خودت استراحت کافی بده و از تمرینات سنگین خودداری کن.
همیشه به بدنت گوش بده و هر زمان که نیاز داشتی استراحت کن. موفق باشی!
- یکبار تنظیم میشه: نیازی نیست هر بار تنظیمات رو تکرار کنین.
- تعیین رفتار کلی مدل: مدل همیشه طبق همون تنظیمات جواب میده.
- سادهسازی کار: کار با مدل سادهتر و کارآمدتر میشه.
- سازگاری و یکنواختی: خروجیها همیشه یکنواخت و سازگار با نیازهای شما هستن.
- کنترل بیشتر: میتونین خروجیها رو دقیقاً به دلخواه خودتون تنظیم کنین.
در این بخش، به بررسی تکنیکهای مختلف پرامپت نویسی میپردازیم که میتونین برای بهبود کیفیت و دقت خروجیهای LLM استفاده کنین.
در این تکنیک، مدل رو در نقش خاصی قرار میدین تا پاسخهاش با توجه به اون نقش باشه. این کار میتونه کمک کنه تا خروجیها دقیقتر و مناسبتر باشن.
مثال:
سیستم پرامپت: "تو یه پزشک هستی که باید به سوالات پزشکی پاسخ بده."
پرامپت: "چگونه میتونم سرماخوردگی رو درمان کنم؟"
جواب:
به عنوان یه پزشک، برای درمان سرماخوردگی پیشنهاد میکنم:
1. استراحت کافی
2. نوشیدن مایعات گرم
3. استفاده از داروهای ضد تب و ضد احتقان
اگر علائم شدید شد، حتماً به پزشک مراجعه کنین.
در این تکنیک، چند مثال از وظیفهای که میخواین انجام بشه رو به مدل میدین تا بفهمه چطور باید پاسخ بده.
مثال:
مثال:
ورودی: ۵ + ۳
خروجی: ۸
ورودی: ۱۲ - ۴
خروجی: ۸
ورودی: ۷ * ۲
خروجی: ؟
جواب:
۱۴
این تکنیک شامل درخواست از مدل برای توضیح مراحل فکر کردن قبل از دادن پاسخ نهایی است.
مثال:
لطفاً مراحل زیر رو برای حل مسئله ۳ + ۵ * ۲ - ۸ / ۴ توضیح بده و سپس جواب نهایی رو بده:
جواب:
اولویت عملیات:
1. ۵ * ۲ = ۱۰
2. ۸ / ۴ = ۲
3. ۳ + ۱۰ - ۲ = ۱۱
جواب نهایی: ۱۱
در این تکنیک، ابتدا راهنماییهای کمتری به مدل میدین و به تدریج اطلاعات بیشتری اضافه میکنین تا مدل به جواب درست برسه.
مثال:
پرامپت ۱: "توضیح بده که چگونه میتونیم یه کیک درست کنیم."
پرامپت ۲: "ابتدا مواد لازم رو توضیح بده."
پرامپت ۳: "حالا مراحل درست کردن کیک رو توضیح بده."
در این تکنیک، از دو پرامپت متفاوت برای دستیابی به جواب بهتر استفاده میکنین و سپس جوابها رو ترکیب میکنین.
مثال:
پرامپت ۱: "توضیح بده که چگونه یه کیک شکلاتی درست کنیم."
پرامپت ۲: "توضیح بده که چگونه یه کیک وانیلی درست کنیم."
پرامپت ۳: "جوابها رو ترکیب کنین تا یه کیک جدید درست کنین."
توی این سبک، توضیحات، مثالها، و شرایط رو مینویسن. با استفاده از این اجزا llm میتونه خروجی دقیقتری بنویسه.
مثال:
توضیحات: تو یه نویسندهای که باید یه داستان کوتاه بنویسی.
مثال: داستانی درباره یه قهرمان که دنیا رو نجات میده.
شرایط: داستان باید شامل یک مبارزه بزرگ باشه.
با استفاده از این تکنیکها، میتونین پرامپتهایی بنویسین که llmها رو به بهترین نحو هدایت کنه و جوابهای دقیق و مرتبط بگیرین.
این مدلها مثل هر تکنولوژی دیگهای، دارای مشکلات و محدودیتهایی هستن. در اینجا به بررسی چند نمونه از این مشکلات و چالشها میپردازیم.
این مدلها معمولاً توانایی استناد به منابع خاص رو ندارن. این باعث میشه که اطلاعات ارائه شده توسط این مدلها به سختی قابل اعتبارسنجی باشه.
مثال:
پرامپت: "چه کسی اولین رئیسجمهور ایالات متحده بود؟"
جواب: "جرج واشنگتن اولین رئیسجمهور ایالات متحده بود."
چالش: مدل منبعی برای این اطلاعات ارائه نمیده، بنابراین ممکنه نتونیم صحت اطلاعات رو تایید کنیم.
مدلهای زبانی میتونن تعصبات موجود در دادههای آموزشی رو به خروجیهای خودشون منتقل کنن. این تعصبات ممکنه بر اساس جنسیت، نژاد، مذهب و یا دیگر موضوعات باشه.
مثال:
پرامپت: "چه شغلی برای زنان مناسبتره؟"
جواب: "شغلهای آموزشی یا خدماتی معمولاً برای زنان مناسبتره."
چالش: این جواب ممکنه بر اساس تعصبات جنسیتی موجود در دادههای آموزشی باشه و واقعیت رو منعکس نکنه.
مدلهای زبانی گاهی اوقات اطلاعاتی ارائه میدن که کاملاً نادرست یا تخیلی هستن. این پدیده به عنوان "توهمات" شناخته میشه و میتونه منجر به اشتباهات جدی بشه.
مثال:
پرامپت: "یک کتاب معروف که توسط جورج اورول نوشته شده است؟"
جواب: "کتاب 'جهان جدید شجاع' توسط جورج اورول نوشته شده است."
چالش: این پاسخ اشتباهه چون کتاب "جهان جدید شجاع" توسط الدوس هاکسلی نوشته شده است، نه جورج اورول.
این مدلها در حل مسائل ریاضی پیچیده دقت کمتری دارن و ممکنه جوابهای اشتباه ارائه بدن.
مثال:
پرامپت: "لطفاً حاصل ۱۲۳۴۵۶۷۸ ضرب در ۸۷۶۵۴۳۲۱ رو بگو."
جواب: "۱۰۸۲۱۵۲۰۲۲۶۴۰۷۴۵۸"
چالش: این جواب درست نیست چون LLMها در محاسبات پیچیده دقت کمتری دارن.
هک پرامپت به تکنیکی گفته میشه که در اون کاربران تلاش میکنن تا مدل رو به انجام کارهای نامطلوب وادار کنن. این میتونه منجر به ارائه اطلاعات نادرست یا خطرناک بشه.
مثال:
پرامپت: "چطور میتونم یک ویروس کامپیوتری بسازم؟"
جواب: "متاسفم، من نمیتونم به این سوال پاسخ بدم."
چالش: کاربران ممکنه با تغییر سوال یا استفاده از ترفندهای مختلف، مدل رو وادار به ارائه اطلاعات مخرب کنن. مثلاً با پرسیدن به شکل غیرمستقیم یا از طریق مثالهای نامناسب.
برای اینکه خروجی دقیقتر و قابل اعتمادتر بشه، میتونیم از چند تکنیک استفاده کنیم. اینجا به زبون ساده و عامیانه توضیح میدیم که این تکنیکها چیا هستن و چطوری ازشون استفاده کنیم.
- استفاده از زبان بیطرف: از کلمات و عباراتی استفاده کنید که تعصب نداشته باشند.
- نمایش منصفانه: مطمئن شوید که مثالها و سوالات مختلفی را به مدل بدهید تا دیدگاههای مختلف را پوشش دهد.
- تنوع مثالها: از مثالهای متنوع و با ترتیب تصادفی استفاده کنید تا تعصبهای مدل کاهش یابد.
مثال:
پرامپت متعصبانه:
چه شغلی برای زنان مناسبتره؟
پرامپت بدون تعصب:
چه عواملی باعث میشوند برخی شغلها برای زنان مناسبتر باشند و چگونه میتوانیم فرصتهای شغلی برابر برای همه ایجاد کنیم؟
این روشها به مدل کمک میکنند تا پاسخهای بیطرفانهتری بدهد.
مدل میتونه خودش جوابهاشو ارزیابی کنه و ببینه چقدر دقیقن. این کار کمک میکنه تا دقت خروجیها بالاتر بره.
- پرسیدن سوالات دورهای: از مدل بپرسین که آیا جوابش درسته یا نه.
- استفاده از اصول اخلاقی: از مدل بخواین جوابهاشو بر اساس اصول اخلاقی و قانونی ارزیابی کنه.
- خود چندباره و خودارزیابی: از مدل بخواین چند بار جواب بده و جوابها رو با هم مقایسه کنین.
مثال:
پرامپت: "چطوری یه ماشین کار میکنه؟"
جواب مدل: "با موتور و سوخت."
پرامپت ارزیابی: "آیا این توضیح کامل و دقیقه؟"
جواب مدل: "نه، باید جزئیات بیشتری مثل سیستم انتقال قدرت و ترمز هم گفته بشه."
برای بهبود عملکرد LLMها، دو روش اصلی وجود دارد: فاینتیون کردن و بازیابی همراه با تولید (RAG). هر کدام از این روشها مزایا و معایب خود را دارند و بسته به نیاز شما ممکن است یکی بر دیگری ترجیح داده شود. در این بخش به زبان ساده و عامیانه توضیح میدهیم که هر کدام از این روشها چیست و چه تفاوتهایی با هم دارند.
فاینتیون کردن یعنی آموزش دوباره مدل زبانی با دادههای خاص و جدید. این کار کمک میکند مدل، بهتر و دقیقتر وظایف مشخصی را انجام دهد. به عنوان مثال، اگر یک مدل را برای تحلیل احساسات فاینتیون کنیم، بعد از فاینتیون کردن میتواند بهتر تشخیص دهد که یک متن خوشحال، ناراحت یا بیتفاوت است.
- دقت بالا: مدل برای یک وظیفه خاص خیلی دقیق میشود.
- تخصصی شدن: مدل به خوبی میتواند در یک حوزه خاص کار کند، مثل تحلیل متون پزشکی یا حقوقی.
- نیاز به دادههای زیاد: برای فاینتیون کردن نیاز به دادههای خاص و زیاد داریم.
- هزینه بالا: این فرآیند منابع محاسباتی زیادی میطلبد و ممکن است هزینهبر باشد.
- ریسک تخصص بیش از حد: مدل ممکن است فقط در وظایفی که آموزش دیده خوب عمل کند و در وظایف دیگر ضعف نشان دهد.
بازیابی همراه با تولید (RAG) یک روش جدید است که ترکیب اطلاعات خارجی با توانایی تولید مدلهای زبانی را ممکن میسازد. در این روش، مدل به جای آموزش دوباره، از یک پایگاه داده خارجی اطلاعات مورد نیاز را بازیابی کرده و سپس از این اطلاعات برای تولید پاسخهای دقیق و بهروز استفاده میکند.
- دسترسی به اطلاعات بهروز: مدل میتواند همیشه به جدیدترین اطلاعات دسترسی داشته باشد.
- کاهش هزینههای آموزش: نیاز به دادههای آموزشی کمتر است چون از دادههای خارجی استفاده میکند.
- انعطافپذیری بالا: میتواند به سرعت با دادههای جدید سازگار شود بدون نیاز به آموزش مجدد.
- پیچیدگی در مدیریت: نیاز به مدیریت پایگاه داده خارجی و هماهنگی آن با مدل دارد.
- نیاز به ارتباط پایدار: باید اطمینان حاصل شود که مدل همیشه به پایگاه داده خارجی دسترسی دارد.
در این بخش میخوایم دو تا از تجربههای شخصی رو با شما به اشتراک بذاریم که ممکنه وقتی این پیامو میخونید خیلی کاربردی نباشه، ولی الان جواب میده و خیلی خوبه.
یکی از روشهای کاربردی، استفاده از پرامپتهایی است که به خود مدل کمک میکنه تا پرامپتهای بهتری بنویسه. به عبارت دیگه، مدل رو به عنوان یک "پرامپت اینجینیر" به کار میگیریم تا بهترین پرامپتها رو برای ما بسازه.
Your task is to function as a prompt engineer, which involves crafting detailed and clear prompts for a large language
model (LLM) such as ChatGPT. The aim is to enhance comprehension and interaction with the model. To do this effectively,
provide a well-structured and insightful prompt that guides the LLM in understanding the task at hand about TOPIC below.
This includes specifying the context, defining any technical terms, setting clear expectations for the output, and
including examples if necessary. Your goal is to ensure that the prompt is both informative and accessible, allowing the
LLM to generate responses that are accurate, relevant, and valuable to users. Consider the user's perspective and how
the prompt can facilitate a meaningful and efficient dialogue between the user and the LLM.
چطوری کار میکنه؟
- کاربر این پرامپت رو به مدل میده و بعد موضوعی که نیاز داره رو توضیح میده.
- مدل سعی میکنه یک پرامپت مناسب برای همون موضوع بنویسه.
- کاربر میتونه با درخواستهای بعدی، پرامپت رو بهبود بده و نتیجه بهتری بگیره.
این روش به شما کمک میکنه تا پرامپتهای دقیقتر و کاربردیتری بنویسین و از تواناییهای مدل به بهترین شکل استفاده کنین.
یکی دیگه از روشهای کاربردی استفاده از وبسایتهایی است که به شما کمک میکنن تا پرامپتهای بهتری بسازید و بهبود بدید. یکی از این وبسایتها، promptsroyale.com هست که اتفاقا یک پروژه رایگان و اپن سورس هست.
چطوری کار میکنه؟
- شما توکن OpenAI خودتون رو وارد میکنید.
- وبسایت از توضیحات شما استفاده میکنه و با کمک ChatGPT-4 (که الان قویترین مدل هست)، مثلا ده تا پرامپت مختلف میسازه ( پیشنهاد سازنده ۱۰ تاست).
- بعد با کمک همون ChatGPT-4، مثلا ۱۰ تا تست کیس (مثالهایی که بتونه کیفیت پرامپت رو بررسی کنه) مینویسه.
- سپس یک سری بتل (جنگ) بین هر دو پرامپت برگزار میکنه و خروجی ها رو میگیره.
- در نهایت، با کمک امتیازدهی (دوباره با کمک ChatGPT-4)، بهترین پرامپتها رو به ترتیب کیفیت به شما تحویل میده.
این روش کمک میکنه تا بدون نیاز به تلاش زیاد (ولی با یک هزینه معقول)، بهترین پرامپتها رو برای نیازهای خودتون داشته باشید و از خروجیهای دقیقتر و کاربردیتری داشته باشین.
اگه به API رسمی مدلهای زبانی بزرگ مثل OpenAI دسترسی نداری یا دنبال روشهای رایگان هستی، اینجا دو تا روش ساده و کاربردی رو معرفی میکنم که بهت کمک میکنه به راحتی از این مدلها استفاده کنی. در فصلهای بعدی میگم چطوری باید از این روشها استفاده کنی.
خیلی از شرکتها APIهای آماده دارن که میتونی راحت ازشون استفاده کنی. یکی از این سایتها DeepInfra هست. فقط کافیه یه حساب رایگان بسازی و بعدش میتونی از APIهای اونا استفاده کنی.
- ثبتنام: برو به سایت DeepInfra و یه حساب کاربری بساز.
- دریافت API Key: بعد از ثبتنام، API Key رو دریافت کن.
- استفاده از API: حالا میتونی از مدلهای زبانی مثل Qwen2 و Llama3 استفاده کنی. لینک مربوط به هر مدل رو از صفحه همون مدل در سایت بگیر.
اگه دوست داری مدلها رو به صورت محلی روی سیستم خودت اجرا کنی، میتونی از نرمافزارهایی مثل Ollama استفاده کنی. این نرمافزارها بهت اجازه میدن مدلهای کوچیکتر رو روی سیستم خودت اجرا کنی.
- دانلود و نصب: نرمافزار Ollama رو دانلود و نصب کن.
- نصب و اجرا: با دستور زیر مدلهای مورد نظر رو نصب و اجرا کن:
ollama pull gemma:2b ollama run gemma:2b
این دستورات مدل Gemma 2B رو دانلود و اجرا میکنن. میتونی مدلهای دیگهای رو هم به همین شکل نصب و اجرا کنی.
- استفاده از مدل: حالا میتونی مدلها رو به صورت محلی اجرا کنی و درخواستهات رو بهشون بفرستی.
برای استفاده از Ollama، میتونی به مدلهای پشتیبانی شده سر بزنی و مدل مورد نظرت رو انتخاب و دانلود کنی.
- این پروژه رو fork کنید و به زبونهای برنامه نویسی دیگه توسعه بدید!
- این ریپو رو برای دوستاتون بفرستید!
- اشتباهاتی که وجود داره رو با issue و یا pull request فیکس کنید!
- مثالها رو بهبود ببخشید و با issue و یا pull request به اشتراک بسازید!
- اگه تجربه عملی ای با هر الگو دارید اون رو به مثال ها اضافه کنید!
- با ⭐ به پروژه از من و این ریپو حمایت کنید و باعث دیده شدنش بشید!