chatgpt
روشون گزارش گرفتم؛ ۵-۶ مورد توسط متخصص تایید شد و باقی هم اشتباهاتش در اومد.llama3.2 90B
روی این تسک خیلی خوب نبود؛ وقتی بهش میگم جوابت رو توضیح بده شروع میکنه اشتباه کردن و یا حتی جواب اول رو تغییر دادن.allenai/Molmo
meta
ولی هنوز روی تصاویر مربوط به چارت و گراف و آنالیز تخصصی hallucination
بالایی داری شاید ورژنهای بعدی.1B
رو تست کردم). روی تسکی که توی ماه قبل برای تمیز کردن داده داشتم تست گرفتم و نتایجش از هر سه مورد Phi3, Gemma, Qwen2
بهتر بود. (یادم نبود این تسک رو روی Qwen2.5
هم تست کنم)Flux-Dev --> Image generation.
Molmo --> general vision tasks.
Llama3.2 1B and 3B --> Data cleaning (small model).
Qwen2.5 32B --> General use cases.
Qwen2.5-coder & yi-coder & deepseek-coder-v2 --> coding
Qwen2.5-coder 32B
قطعا با deepseek
خدافظی میکنم ولی تا اون موقع باشه شاید لازم شد.Rocky Linux
و ترکیبش با آخرین نسخه nvidia-driver
که منتشر شده مشکل sleep
حل شده طبق بحثهای فروم راکی (البته ۹۹٪ این مشکل رو نداشتند؛ روی تنظیمات و سختافزارهای خاصی این مشکل دیده میشده)etc/default/grub
اضافه کردم رو پاک کردم و فقط ۲ مورد مربوط به غیر فعال کردن nouveau
رو نگه داشتم:nouveau.modeset=0 rd.driver.blacklist=nouveau
sleep
میشد و همه چیز عالی بود.sleep
نمیشد؛ هیچ لاگ بدردبخوری هم نمیوفتاد.GPU Acceleration
) پس اومدم برنامههای اصلی رو تک تک باز کردم باهاشون یک مقدار کار کردم و sleep
زدم و همه چیز درست بود.Telegram Desktop
و رفتم:Setting > Advance > Performance
Hardware Acceleration, OpenGL
فعال بود که اصلا نمیدونم برای چی ؟ من با این فقط ۴ تا پست متنی مینویسم برای کانالها و هیچ چیز دیگری هم روش ندارم؛ خلاصه که بعد از غیرفعال کردن این ۲ مورد مشکلات حل شد.SS7
خیلیها متوجه نمیشوند، برای همین همیشه با پیدا کردن مکان دقیق، تا ۵۰ متر این مورد رو مثال میزدیم. (وقتی میگفتند توی اعتراضات گوشی با خودتون نبرید، یا سیمکارت نداشته باشید و ... دقیقاً برای همین بود) Veritasium
(که شخصاً خیلی سال هست دنبال میکنم، قبلاً توی @pytens هم صحبت شده راجبش) با جزئیات و تاریخچه درمورد این نوع حملات صحبت کرده و حتی دمو هم انجام میدهend2end encrypted
رد و بدل کنید Signal گزینه خوبی هست.encrypted
بفرستید.two factor authentication
از ابزارهای مخصوص اینکار استفاده کنید مثلاً: Microsoft Authenticator, ...
Rust
کار میکردم؛ البته بیشتر برای یادگیری داشتم میخوندم و این ۲ مدل رو با chatgpt
مقایسه کردم؛ به همه مدلها دسترسی به اینترنت دادم برای سرچ زدن و البته برای مدلهای لوکل از duckduckgo
استفاده میکردم.context-length
مدل رو روی همون 8K
نگه داشتم.Rust
هم آموزش دیده خیلی راحت جواب میداد؛ qwen2
جاهایی رو اشتباه میزد مخصوصا وقتی مثال نزدیک بهش توی داکیومنت یا سرچ پیدا نمیکرد. اما نسخه 2.5
موردی نبود که نشه جواب بده خیلی جالب بود که وقتی مثال خوبی هم پیدا نمیکرد بر اساس توضیحات میتونست خودش مثال هم بزنه (دسترسی به سرچ رو میبستم و ازش میخواستم مثال بزنه) مدل chatgpt
هم همینکار رو میکرد اما مثالهای سختتری میزد lifetime
ازش سوال پرسیدم اما مثالی که تحویل داد ترکیبی از lifetime, generic
بود و وقتی گفتم با مفهوم دوم آشنا نیستم و مثالی بزنه که فقط lifetime
توی حالت خاصی که پرسیدم رو توضیح بده؛ یک مثال ساده زد که دیگه اون قوانین lifetime
رو نداشت.chatgpt
کمتر میشد هم نتایج بهبود پیدا میکرد ولی بطور کلی من امتیاز این بخش رو به qwen2.5
میدم.chatgpt
کمی با احتیاط پاسخ میداد (یک سری سوالات جزئی دیگر هم پرسیدم که مجبورش کنم جواب دقیقتر و بیپرده بده ولی با اینکه با توجه به fact
ها باید یک طرف رو انتخاب میکرد اینکار رو نکرد)qwen2.5
نبود و راحت تر میشد ازش جواب بر اساس دیتا گرفت (البته این مدل هم سانسور شده هست ولی به سوالات عمومی بر اساس دیتا راحتتر جواب میده)qwen2.5
روی سوالات بالا داشتم کم بودن context-length
بود؛ چون گزارش شده بود که مدل 32
میلیارد پارامتری عملکرد بهتری از chatgpt 4o-mini
داره برای همین منم از 32b
استفاده کردم بجای 7b
و مجبور شدم روی 8K context
بمونم.chatgpt o1
خواهد بود بدون شک.qwen2.5-coder
فعلا فقط مدل 7b
منتشر شده؛ و منم مستقیم رفتم سر وقت باگهایی که توی کدهای Rust
داشتم میگرفتم؛ خیلی سوالاتم سخت و پیچیده نبود شاید (چون تازهکار هستم توی Rust
و نمیتونم ارزیابی کنم سطح کدها رو) و تمام موارد رو با روش ۵ مرحلهای که چندشب پیش گفتم ارزیابی کردم.qwen2.5, qwen2.5-coder
قدرتشون توی دنبال کردن دستورالعملها بود.qwen2.5-coder 32b
هستم برای استفاده روزمره.70b
آپگرید کنم 🧐chatGpt o1
رو پیادهسازی میکنه و شاید باعث سورپرایز شما هم بشه اما واقعا این روش باعث شده نتایج بسیار بهتری داده بشه توسط مدلها؛ llama3.1, gemini flash, qwen2, chatGpt-4omini
history
برای مرحله بعدی ارسال میکنی.chatGpt-o1
دارهllm
استفاده میکنی چون نسخههای local
به chatgpt, sonnet , ... نمیرسه api
در دسترس هست.instruction-following
ollama
جزو بهترین ابزارهایی بود که برای تست و mvp
و ... عالی بود.NeXAAI
هم وارد این رقابت شده و چه ورودی؛ با یک SDK
سادهollama
serve
کردن و customization
بخورید؛ برای من با سوال و جواب حل شد.403
هم نخواهید گرفتReflection Tuning
Llama3.1-405B, Gpt-4o, Claude-sonet 3.5
open source
در دسترس هست و میتونید تست کنید.api
ارائه شده داشته از sonnet
استفاده میکرده اون زیر.qwen2-vl
بالاتر از همه رقبای open source, close source
و با لایسنس Apache2
البته مدل ۷۲ میلیارد پارامتری فعلا فقط از طریق API
در دسترس هست.lama.cpp
آماده نشده.2nd try
) بعد از این روی ollama
هم خواهد آمد (آموزش بالا)SmolLM
برپایه معماریهایی که قبلا پشتیبانی میشده نیست شما به ollama 3.7
نیاز دارید.ollama
پشتیبانی نمیشد. (هفته قبل)llama.cpp
برای تبدیل استفاده میکردید.android
بخصوص نسل SnapDragon 8 Gen3
توانایی اجرای این مدل با تعداد توکن بسیار بالایی رو دارا هست..safetensor
کار میکنهOllama
نداشته باشید و بدون تعارف Ollama
یکی از راحتترین گزینههای برای تجربه و تست مدلها هست.Ollama
بسیار گزینه مهمی هست؛ بعنوان مثال اگر در خاطرتون باشه موقع انتشار llama3
به دلیل اشتباه در نحوه تبدیل این مدل خروجیهای اشتباهی هم از Ollama
دریافت میشد و آپدیت این مورد حدودا ۳ روز زبان برد (روی توییتر بسیاری از اکانتها به تیم ollama
توییت زدند.)config.json
یا توی توضیحات huggingface
همیشه به این موضوع اشاره میشه که یک مدل بر پایه چه مدل یا مدلهایی توسعه داده شده؛ اگر پایه مدل llama, mistral, gemma, ...
حتما توسط این تکنیک پشتیبانی میشه (از همون ساعت انتشار مدل) اما اگر معماری مدل بر پایه این مدلها نباشه؛ اول باید توسط تیم llama.cpp
پشتیبانی بشه و بعد تیم ollama
پشتیبانی رو اضافه خواهد کرد؛ پس یک تکنیک پیشرفته تر برای تبدیل مدلها استفاده از llama.cpp
هست که توی این پست بهش نخواهم پرداخت.HuggingFaceTB/SmolLM-135M-Instruct
context
برای llama3.1
روی ollama
که قبلتر قرار گرفته؛ باید یک Modelfile
ایجاد کنید. توی پوشهای که مدل دانلود شده یک فایل جدید به اسم Modelfile
ایجاد کنید و متن زیر رو داخلش بنویسید:FROM .
PARAMETER stop <|im_start|>
PARAMETER stop <|im_end|>
PARAMETER temperature 0.1
PARAMETER top_p 0.95
TEMPLATE """{{ if .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}{{ if .Prompt }}<|im_start|>user
{{ .Prompt }}<|im_end|>
{{ end }}<|im_start|>assistant
{{ .Response }}<|im_end|>
"""
Modelfile
شما ۲ تا تنظیم رو واجب هست که داشته باشید؛ FROM
ollama
میگید مدل رو از کدوم مسیر روی سیستمعامل شما میتونه بخونه؛ توی مثال بالا از .
استفاده شده که توی سیستم عامل Linux به معنای همین پوشه هست (ما modelfile
رو داخل پوشه دانلود مدل hugging face
قرار دادیم)TEMPLATE
ollama
میگه چطور باید پرامپت؛ سیستم پرامپت رو برای مدل ارسال کنه و البته چطور پاسخ مدل رو دریافت و تمیز کنه؛ jinja template
فرمتی هست که استفاده میشه و همیشه توی ریپورتهای انتشار مدل بطور دقیق به template format
اشاره میشه پس باید داکیومنت مدلی که میخواید تبدیل کنید رو برای این بخش بخونید برای مثال تمپلیت گزارش شده این مدل بصورت خام و بدون Jinja
بصورت زیر بود (که من برای ollama
اون رو بهبود دادم) :<|im_start|>system
YOUR SYSTEM PROMPT.<|im_end|>
<|im_start|>user
YOUR PROMPT.<|im_end|>
<|im_start|>assistant
RESPONSE.<|im_end|>
temperature, top_p
توی مثال بالا.PARAMETER stop
میتونید به ollama
بفهمونید که توکن قبل از اون آخرین توکن تولید شده توسط مدل بوده و stop
رو نباید توی خروجی نمایش بده.quantization
داشته باشید دستور:ollama create <NAME>:<TAG> -f Modelfile
<NAME>:<TAG>
اسم و تگ مدل رو بهش میدید؛ اسم واجب هست و چیزی میشه که توی ollama list
نمایش داده میشه؛ اما تگ واجب نیست و مقدار دیفالت اون latest
خواهد بود.quantize
کردن مدل؛ollama create <NAME>:q4_0 -f Modelfile --quantize q4_0
quantization
های موجود رو میتونید توی document
های ollama
بخونید ولی q4_0
یکی از معروفترین موارد هست. (معروفترین؛ بهترین نیست لزوما).ollama run <NAME>:<TAG>
ollama
هم قرار بدید.android
رو هم توضیح بدم.