Loading
Loading
Large Language Models (LLMs) are the beating heart of the current AI revolution. ChatGPT, Claude, Gemini — they're all LLMs. But how do they actually work?
An LLM is a probabilistic model that predicts the next word in a text sequence, based on training on massive amounts of text.
Google's "Attention is All You Need" paper transformed AI forever. The key innovation: Self-Attention — a mechanism allowing each token to "attend" to every other token and compute its relevance.
Input Text → Tokenization → Embedding → [Self-Attention + Feed Forward] × N → Output
LLMs don't read characters or words directly — they read tokens (text chunks):
import anthropic
import tiktoken # pip install tiktoken
client = anthropic.Anthropic()
# ─────────────────────────────────────────
# 1. فهم Tokenization
# ─────────────────────────────────────────
print("=" * 55)
print("1. Tokenization — كيف تُقسَّم النصوص")
print("=" * 55)
# tiktoken مكتبة OpenAI لحساب الـ tokens
# Claude يستخدم نظام مشابه
enc = tiktoken.encoding_for_model("gpt-4")
texts = [
"Artificial Intelligence",
"الذكاء الاصطناعي",
"Hello World",
"مرحبا بالعالم",
"Python is great for AI development",
]
for text in texts:
tokens = enc.encode(text)
print(f"\n'{text}'")
print(f" Tokens ({len(tokens)}): {tokens[:8]}{'...' if len(tokens) > 8 else ''}")
ratio = len(tokens) / len(text.split())
print(f" نسبة tokens/كلمة: {ratio:.1f}")
# ─────────────────────────────────────────
# 2. استكشاف قدرات LLM
# ─────────────────────────────────────────
print("\n" + "=" * 55)
print("2. استكشاف قدرات Claude")
print("=" * 55)
# اختبار الفهم السياقي
context_test = """
في هذه الجملة، كلمة "عين" لها معانٍ مختلفة:
1. ذهبت إلى عين الماء للشرب
2. العين البشرية تستطيع رؤية ألوان كثيرة
3. عيّنت المديرةَ الموظفَ الجديد
ما معنى كلمة "عين" في كل جملة؟ اشرح في نقطتين فقط.
"""
message = client.messages.create(
model="claude-haiku-4-5-20251001", # Haiku = سريع ورخيص للاستكشاف
max_tokens=300,
messages=[{"role": "user", "content": context_test}]
)
print("\nفهم السياق (الغموض):")
print(message.content[0].text[:400])
# ─────────────────────────────────────────
# 3. Temperature — التحكم في الإبداع
# ─────────────────────────────────────────
print("\n" + "=" * 55)
print("3. Temperature: التحكم في الإبداع vs الدقة")
print("=" * 55)
prompt = "أكمل الجملة: الذكاء الاصطناعي في المستقبل سيكون..."
for temp_label, temp_val in [("دقيق (0.0)", 0.0), ("متوازن (0.7)", 0.7), ("إبداعي (1.0)", 1.0)]:
msg = client.messages.create(
model="claude-haiku-4-5-20251001",
max_tokens=80,
temperature=temp_val,
messages=[{"role": "user", "content": prompt}]
)
print(f"\n {temp_label}:")
print(f" {msg.content[0].text[:150].strip()}")
# ─────────────────────────────────────────
# 4. حساب تكلفة الـ tokens
# ─────────────────────────────────────────
print("\n" + "=" * 55)
print("4. حساب تكلفة API")
print("=" * 55)
# أسعار Claude Haiku ($/M token)
HAIKU_INPUT = 0.80 / 1_000_000
HAIKU_OUTPUT = 4.00 / 1_000_000
test_message = client.messages.create(
model="claude-haiku-4-5-20251001",
max_tokens=200,
messages=[{"role": "user", "content": "اشرح ما هو التعلم العميق في 3 جمل"}]
)
in_tokens = test_message.usage.input_tokens
out_tokens = test_message.usage.output_tokens
cost = in_tokens * HAIKU_INPUT + out_tokens * HAIKU_OUTPUT
print(f" Input tokens: {in_tokens}")
print(f" Output tokens: {out_tokens}")
print(f" تكلفة هذا الطلب: ${cost:.6f} (~{cost*3.75:.4f} ريال)")
print(f"\n لو أرسلت 1000 رسالة مثلها:")
print(f" التكلفة الكلية: ${cost*1000:.4f} (~{cost*1000*3.75:.2f} ريال)")