import { CodeBlock } from '@/components/CodeBlock';
یکی از بزرگترین چالشها و در عین حال جذابترین جنبههای مدلهای زبان بزرگ (LLM)، نحوه مدیریت و استفاده از اطلاعات در طول یک مکالمه یا وظیفه است. درک سیستمهای حافظه در LLMها برای ساختن برنامههای هوشمند واقعی، حیاتی است. این راهنما به بررسی عمیق انواع حافظه و تکنیکهای پیادهسازی آنها میپردازد.
انواع حافظه در LLMها: یک طبقهبندی کامل

۱. حافظه کاری (Working Memory)
این نوع حافظه، معادل پنجره زمینه (Context Window) مدل است. این تمام اطلاعاتی است که مدل در یک لحظه خاص میتواند به آنها دسترسی مستقیم داشته باشد.
- ویژگیها: بسیار سریع، دسترسی فوری، اما به شدت محدود و فرار. با هر درخواست جدید، این حافظه کاملاً بازنویسی میشود.
- مثال: در یک درخواست API به یک LLM، تمام متن پرامپت شما در حافظه کاری مدل قرار میگیرد.
۲. حافظه کوتاهمدت (Short-term Memory)
این حافظه، اطلاعات را فراتر از یک تعامل واحد و معمولاً در طول یک جلسه کاری (Session) با کاربر حفظ میکند. این حافظه توسط برنامه کاربردی شما مدیریت میشود، نه خود مدل LLM.
- ویژگیها: پایداری در طول یک مکالمه، سرعت دسترسی بالا.
- تکنیک پیادهسازی: استفاده از یک پایگاه داده سریع درونحافظهای (In-memory) مانند Redis. تاریخچه مکالمه کاربر در هر نوبت خوانده، خلاصهسازی شده و به حافظه کاری مدل اضافه میشود.
<CodeBlock
language="python"
text={`
import redis
اتصال به Redis
r = redis.Redis(decode_responses=True)
def get_session_history(session_id):
# بازیابی تاریخچه مکالمه از Redis
return r.lrange(f"session:{session_id}", 0, -1)
def add_to_session_history(session_id, user_message, ai_message):
# اضافه کردن پیامهای جدید به تاریخچه
r.rpush(f"session:{session_id}", f"User: {user_message}")
r.rpush(f"session:{session_id}", f"AI: {ai_message}")
`}
/>
۳. حافظه بلندمدت (Long-term Memory)
این حافظه، اطلاعات کلیدی را برای مدت زمان طولانی (بین جلسات مختلف) حفظ میکند و به مدل اجازه میدهد تا یادگیری مستمر داشته باشد و تجربیات قبلی را به خاطر بسپارد.
- ویژگیها: پایدار، مقیاسپذیر, اما دسترسی به آن کندتر و پیچیدهتر است.
- تکنیک پیادهسازی: عمدتاً با استفاده از پایگاهدادههای برداری (Vector Databases) مانند Pinecone, ChromaDB یا Milvus پیادهسازی میشود. اطلاعات به صورت برداری (Embeddings) ذخیره شده و بازیابی آنها بر اساس شباهت معنایی (Semantic Similarity) انجام میشود. این تکنیک، هسته اصلی معماری RAG (Retrieval-Augmented Generation) است.
<CodeBlock
language="python"
text={`
from sentence_transformers import SentenceTransformer
import chromadb
مدل برای تبدیل متن به بردار
model = SentenceTransformer('paraphrase-MiniLM-L6-v2')
اتصال به پایگاه داده برداری
client = chromadb.Client()
collection = client.get_or_create_collection("long_term_memory")
def add_to_long_term_memory(user_id, text):
# تبدیل متن به بردار عددی
embedding = model.encode(text).tolist()
# ذخیره بردار در پایگاه داده
collection.add(
embeddings=[embedding],
documents=[text],
metadatas=[{"user_id": user_id}],
ids=[f"{user_id}_{hash(text)}"]
)
def retrieve_from_long_term_memory(query, user_id):
query_embedding = model.encode(query).tolist()
# جستجوی معنایی برای یافتن مرتبطترین اطلاعات
results = collection.query(
query_embeddings=[query_embedding],
n_results=5,
where={"user_id": user_id}
)
return results['documents'][0]
`}
/>
بازیابی و تحکیم حافظه: مکانیسمهای یادگیری
بازیابی حافظه (Memory Retrieval)
این فرآیند هوشمندانه پیدا کردن و استخراج مرتبطترین اطلاعات از حافظههای مختلف برای تزریق به Context فعلی مدل است. بازیابی میتواند بر اساس:
- شباهت معنایی: یافتن خاطراتی که از نظر مفهومی به سوال فعلی نزدیک هستند (رایج در RAG).
- زمان: به یاد آوردن آخرین تعاملات.
- اهمیت: استخراج مهمترین حقایق در مورد یک کاربر.
تحکیم حافظه (Memory Consolidation)
این فرآیند ادغام اطلاعات جدید و موقت از حافظه کوتاهمدت به دانش پایدار در حافظه بلندمدت است. این فرآیند میتواند به صورتهای زیر انجام شود:
- فوری: پس از هر تعامل.
- دورهای: در پایان هر روز یا هر هفته، سیستم به طور خودکار مکالمات را مرور و نکات کلیدی را به حافظه بلندمدت منتقل میکند.
- تطبیقی: زمانی که مدل تشخیص میدهد یک قطعه از اطلاعات به اندازه کافی تکرار شده یا مهم است.
کاربردهای عملی سیستمهای حافظه پیشرفته
- چتباتهای پشتیبانی مشتری: یک چتبات با حافظه بلندمدت، تمام تاریخچه تعاملات یک مشتری را به خاطر میآورد و یک تجربه کاملاً شخصیسازی شده و کارآمد ارائه میدهد.
- دستیارهای شخصی هوشمند: با یادآوری رویدادها، ترجیحات غذایی، عادتها و روابط شما، به یک همراه واقعی تبدیل میشوند.
- سیستمهای آموزشی تطبیقی: با رصد نقاط قوت و ضعف یک دانشآموز در طول زمان، محتوای آموزشی را به صورت کاملاً شخصیسازی شده برای او تنظیم میکنند.
درک و پیادهسازی صحیح این سیستمهای حافظه، مرز بین یک چتبات ساده و یک دستیار هوشمند واقعی را مشخص میکند و کلید ساخت نسل بعدی برنامههای مبتنی بر هوش مصنوعی است.