العودة إلى دفتر الملاحظات
AI12 دقائق قراءة

كيف تنشئ نموذج لغة: افهم المسار ودرّب نموذجًا صغيرًا

ماذا يتعلم LLM ومتى تختار RAG أو الضبط وما يعنيه التدريب من الصفر. درّب وقِس واحفظ شبكة صغيرة أصلية.

ماذا يعني إنشاء LLM خاص بي؟

استدعاء نموذج موجود مع تعليمات يصنع تطبيقًا حوله. يضيف RAG وثائق عند السؤال. يغيّر الضبط أوزان نموذج موجود، ويبدأ التدريب من الصفر بأوزان عشوائية. تختلف الأهداف والتكاليف.

ستفهم الخيارات وتدرّب فعلًا شبكة صغيرة تتنبأ بالحروف وتحفظ الأوزان وتولد نصًا. إنها MLP تعليمية لا Transformer كبير ولا مساعد محادثة مفيد. سترى بيانات وتنبؤًا وخطأ وتحديثًا وقياسًا دون خلط واجهة API بنموذج درّبته.

1. الاختيار حسب الحاجة

لأدلة تتغير قيّم RAG. لتنسيق ثابت أو سلوك متخصص قارن التعليمات والضبط؛ لا يضمنان الحقيقة. للتعلم يناسب هذا الاختبار الصغير. LLM عام للإنتاج يحتاج بحثًا وبنية أكبر كثيرًا.

مساعد فعاليات يحتاج إجراءات ومصادر محدثة. مصنّف JSON يمكن أن يبدأ بالتعليمات والتحقق. لا يعيد هذا التمرين التفكير العام متعدد اللغات. حدّد مهمة قابلة للقياس قبل GPU.

2. المصطلحات الأساسية

يحوّل tokenizer النص إلى معرّفات، هنا معرّف لكل حرف. يمثل embedding المعرّف بأرقام متعلمة. تتحدث المعلمات؛ والسياق هو التاريخ المرئي. تنتج logits ثم softmax احتمالات؛ تعاقب الخسارة خطأ الحرف التالي وتوجّه التدرجات خفضه.

batch مجموعة أمثلة والخطوة تحديث وepoch مرور على البيانات. نسحب دفعات هنا؛ 400 خطوة ليست 400 مرور. checkpoint يحفظ أوزانًا والاستدلال يستخدمها دون تعديل. تغير المعاينة التنوع ولا تضيف معرفة.

3. المسار الكامل

حدّد المهمة والتقييم واجمع بيانات بحقوق مناسبة وأزل الأسرار والتكرار وافصل التدريب والتحقق والاختبار بلا تداخل. اختر tokenizer والبنية وقدّر الذاكرة والحساب وراقب الخسارة واحفظ نسخًا وقيّم بيانات محجوزة. وثّق الشيفرة والبيانات والإعداد.

قد يحتاج المساعد تدريب تعليمات ومواءمة وأمانًا. يحتاج تقديمه مصادقة وحدودًا ومراقبة. لا ميزانية عامة ثابتة: المعلمات والرموز والمحسن والدقة والطول والعتاد تؤثر. لا وعد بنموذج إنتاج بسعر ثابت.

4. محتويات النموذج

سياق ثمانية حروف وembedding ببعد 12 وطبقة tanh من 48 وحدة وتوزيع على المفردات. مع النص المرفق توجد 6,303 معلمات. يستخدم NumPy وCPU وتحديثات تدرج واضحة دون attention أو Transformer.

البيانات جمل أصلية افتراضية. تفحص الاختبارات انخفاض خسارة التدريب واحتمالات منتهية مجموعها واحد وخطأ الحرف المجهول وتطابق التنبؤ بعد الحفظ. لا تقيس معرفة عامة.

5. التثبيت والتدريب والحفظ

فك الملف في مجلد جديد. يلزم Python 3.9+ وNumPy. يستخدم التثبيت مخزن الحزم؛ التدريب لا يحتاج تنزيل نموذج أو حسابًا أو مفتاحًا أو GPU. يسمح NumPy 2.x وقد تختلف الأرقام.

شغّل الاختبارات ثم model.py لعرض المعلمات والخسارة والعينة وحفظ tiny-model.npz بالمجلد الحالي. ابدأ بالنص المرفق. عند تغييره أبقِ المسافة للحشو وافحص الحقوق. لا تستخدم أسرارًا أو محادثات خاصة.

bash
# Python 3.9+; create an isolated environment in the extracted folder.
python3 -m venv .venv
# macOS/Linux (Windows: .venv\Scripts\activate)
. .venv/bin/activate
python -m pip install -r requirements.txt
python -m unittest discover -p 'test_*.py'
python model.py --steps 400
# Output checkpoint: tiny-model.npz

6. فهم القياس

انخفضت الخسارة محليًا من نحو 3.3004 إلى 0.9185 بعد 400 خطوة. تحسن تنبؤ حروف التدريب لكن النص ما زال غير منطقي؛ هذا متوقع بحجمه.

القياس على التدريب لا بيانات محجوزة، والحفظ ليس تعميمًا. قد تزيد الخطوات فرط التكيّف. جهّز تحققًا منفصلًا وقارن الخسارتين ببدايات ثابتة. انخفاض رقم لا يثبت الفائدة أو الحقيقة.

Example and interpretation
Measured local run, seed 7, supplied corpus, 400 training steps:
parameters: 6303
training_loss_before: 3.3004
training_loss_after: 0.9185
sample begins: seatimin whean sert tes s vitg ...

Interpretation: the model learned local character patterns.
It still produces nonsense and has not demonstrated general knowledge.
These are training-set measurements, not held-out quality scores.

7. التحميل والتوليد

يحمّل الاستدلال الأوزان ويسحب حروفًا دون تحديث. تتحرك نافذة الثمانية حروف. المجهول يؤدي لخطأ واضح. يحمّل أرشيف NumPy دون pickle، لكن تحقق دائمًا من مصدر ملفات النماذج.

python
# The training objective: predict the NEXT character.
# Input:  "seating "
# Target: the following character in the training text.
# In the supplied model, each input contains exactly 8 characters.

# Generation uses the last 8 characters to predict a distribution,
# samples one character, appends it, then repeats.
from model import load
model = load("tiny-model.npz")
print(model.generate("seat", count=120, seed=42))

7ب. استخدام النموذج في تطبيق محلي

بعد التدريب يحمّل server.py ملف tiny-model.npz ويقدم POST /generate محليًا. أرسل prefix="seat" وcount=40 ليعيد generated_text وeducational=true. النص تعليمي وليس نصيحة موثوقة.

يبقى التدريب في Python/NumPy. الألسنة تستدعي النموذج نفسه ولا تدرّبه في PHP أو المتصفح. يحد الخادم الإدخال ويستمع لـlocalhost فقط؛ الإنتاج يحتاج إطارًا ومصادقة وضوابط مناسبة.

bash
# First train the model with the instructions above.
# Keep your Python virtual environment active.
python server.py
# Keep this terminal open. The API listens only on 127.0.0.1:8765.
# Browser demo: open http://127.0.0.1:8765/

# In ANOTHER terminal, from this same project folder:
# Choose your client (Python needs the same environment).
python client.py
# OR: Node.js 22+
node client.mjs
# OR: PHP 8.1+ with HTTP URL wrappers enabled
php client.php

7ج. اختيار لغة العميل

اختر لسانًا وشغّل الملف الموافق. تستخدم Python وNode.js وPHP الرابط المحلي الكامل. يعمل JavaScript بصفحة http://127.0.0.1:8765/ ويستدعي /generate من المصدر نفسه. لا تلصقه بموقع آخر. اضغط Generate 40 characters.

يرسل الجميع JSON نفسه ويعيدون عينة ثابتة. educational=true لا يثبت فهم اللغة. افحص التدريب والخادم والمنفذ عند الفشل. حرف مجهول أو count خارج 1..200 يعيد خطأ واضحًا.

استدعاء نموذجك المدرب
import json
from urllib.request import Request,urlopen
request=Request('http://127.0.0.1:8765/generate',
 data=json.dumps({'prefix':'seat','count':40}).encode(),
 headers={'Content-Type':'application/json'},method='POST')
with urlopen(request,timeout=10) as response:
 result=json.load(response)
print(json.dumps(result,indent=2))
Measured local response after 400 training steps
{
  "model": "tiny-character-mlp",
  "educational": true,
  "generated_text": "seatimin whean sert tes s vitg bemovge peans"
}

8. العلاقة بـTransformer حقيقي

يتنبأ Transformer ذاتي الانحدار بالرمز التالي ببنية أعمق وبيانات أكثر. يدمج attention مواضع مسموحة ويمنع القناع السببي قراءة المستقبل. توجد معلومات موضع وطبقات أمامية ووصلات متبقية وتطبيع. MLP هنا لا ينفذها.

تابع بمشروع Transformer سببي منفصل واختبارات موتر وقناع أو دورة Stanford. للمنتج قارن نموذجًا مدربًا بترخيص مناسب. يعدّل LoRA أوزانًا بتحديثات منخفضة الرتبة ولا يصنع نموذج أساس من العدم. افحص الحقوق والتقييم.

9. الذكاء الاصطناعي معلّم ومراجع

تطلب التعليمات الأولى شرحًا وتشغيلًا بقياسات وعينة. الادعاء بأن ChatGPT الخاص بك جاهز مضلل. الثانية تخطط لتكييف حقيقي دون بدء تدريب مكلف ضمنيًا.

English AI prompt
Act as a patient machine-learning teacher. Inspect this tiny NumPy character
language model and explain its data flow before modifying anything.
Identify the vocabulary, eight-character context, embeddings, hidden layer,
softmax probabilities, next-character targets, loss and gradient update.
Run the local tests, train with 400 steps, save the checkpoint and reload it.
Report actual parameter count, training loss before/after and a generated sample.
Explain why reduced training loss is not evidence of held-out quality or truth.
Do not describe this 6,303-parameter educational MLP as a large Transformer,
a chat assistant or a production LLM. Do not download a model or private dataset.
Propose one next learning experiment with a measurable success criterion.

10. النتيجة والخطوة التالية

درّبت وقست وحفظت وحمّلت وولدت. تميّز النموذج والتطبيق وRAG والضبط. غيّر متغيرًا واحدًا بتقييم محجوز وقارن الأساس. للأعمال ابدأ بالحاجة وقارن النماذج الموجودة وRAG.

English AI prompt
Before proposing a REAL model adaptation, ask for the task, licensed base model,
data rights, deployment language, evaluation set, hardware and budget.
Compare RAG, prompting, LoRA fine-tuning and training from scratch for that task.
If fine-tuning is justified, propose an isolated reproducible experiment:
base-model revision, tokenizer, non-overlapping train/validation/test splits,
training configuration, checkpoint policy, metrics and comparison with baseline.
Include privacy leakage, memorization and unsupported-answer evaluations.
State estimates and untested assumptions explicitly. Do not start an expensive
training job, publish weights or use private data without the agreed scope.

مراجع رسمية وقراءات إضافية

طبّقه في مشروعك

نزّل الملفات، واحفظ الدليل، أو أعطِ مساعد البرمجة تعليمات جاهزة للاستخدام.

الإعداد بمساعدة الذكاء الاصطناعي

انسخ هذه التعليمات الإنجليزية إلى مساعدك. تتضمن المقال والملفات المتاحة وخطوات تجهيز المشروع.

عرض تعليمات الإعداد
AI setup prompt · English
Read this tutorial as reference material:
https://nethanelfitoussi.com/article/create-language-model-explained?lang=en

Goal: apply the documented workflow to my development project.
Read the existing project instructions, inspect the relevant files and explain the smallest useful setup.

Available starter files:
https://nethanelfitoussi.com/api/media/08d5b33c-5d92-4495-ae4a-729eb570d94d.zip
Download and inspect these files in a temporary folder before using them. Do not overwrite existing project instructions.

If I have not supplied a project folder, ask which development project to use. Do not invent a repository URL.

Additional project setup instructions:
Extract the supplied ZIP into a NEW folder. Read README.md before installing or running code.

Act as a patient machine-learning teacher. Inspect this tiny NumPy character
language model and explain its data flow before modifying anything.
Identify the vocabulary, eight-character context, embeddings, hidden layer,
softmax probabilities, next-character targets, loss and gradient update.
Run the local tests, train with 400 steps, save the checkpoint and reload it.
Report actual parameter count, training loss before/after and a generated sample.
Explain why reduced training loss is not evidence of held-out quality or truth.
Do not describe this 6,303-parameter educational MLP as a large Transformer,
a chat assistant or a production LLM. Do not download a model or private dataset.
Propose one next learning experiment with a measurable success criterion.

Before proposing a REAL model adaptation, ask for the task, licensed base model,
data rights, deployment language, evaluation set, hardware and budget.
Compare RAG, prompting, LoRA fine-tuning and training from scratch for that task.
If fine-tuning is justified, propose an isolated reproducible experiment:
base-model revision, tokenizer, non-overlapping train/validation/test splits,
training configuration, checkpoint policy, metrics and comparison with baseline.
Include privacy leakage, memorization and unsupported-answer evaluations.
State estimates and untested assumptions explicitly. Do not start an expensive
training job, publish weights or use private data without the agreed scope.

Adapt example paths, commands and acceptance criteria to this repository rather than assuming they match.

Give me a short plan, then make the agreed local changes and run the relevant checks. Report actual results and anything not verified. Stop before credentials, paid services, production changes, push, merge or deployment.
اقرأ المصدر الأصليStanford CS336 · Language Modeling from Scratch
LLMAIMachine learningPython