العودة إلى المدونة

الذكاء الاصطناعي للمبتدئيندليل

فلترة 40 ألف تعليق بنموذج لغوي: موجه احتفاظ/إسقاط والتكلفة

موجه احتفاظ/إسقاط، حلقة Python قصيرة وتقدير رموز لفلترة 40,000 تعليق بنموذج لغوي رخيص، قبل تشغيل أي شيء.

بواسطة CheapTokens Teamنُشر في 6 دقيقة قراءة

غلاف: محادثة يجيب فيها النموذج احتفظ أو أسقط على سؤال حول تعليق
في هذه الصفحة
  1. من أين جاءت الفكرة
  2. كيف يعمل مرشح نعم/لا
  3. اكتب موجه الاحتفاظ/الإسقاط
  4. الحلقة: طلب واحد لكل تعليق
  5. تكلفة 40,000 تعليق
  6. قبل أن تضغط تشغيل

أرشيفك يحتوي على 40,000 تعليق، ومعظمها ضوضاء: بريد مزعج، "+1"، نكات، ردود لا علاقة لها بما تبحث عنه. يمكن لنموذج لغوي رخيص أن يقرأ كل تعليق ويجيب بكلمة واحدة، keep أو drop. أرسل كل تعليق كطلب قصير مستقل، وستبلغ التكلفة الإجمالية للتمريرة حوالي 6 ملايين رمز إدخال و200 ألف رمز إخراج (بافتراض حوالي 150 رمزًا إدخالًا و5 إخراجًا لكل تعليق). على DeepSeek-V4-Flash تبلغ تكلفة هذا التشغيل $0.11 بالسعر الحالي.

أدناه: الموجه، حلقة Python قصيرة، والحسابات التي يمكنك إعادتها لأرشيفك الخاص. كل شيء يمر عبر نقطة النهاية المتوافقة مع OpenAI الموضحة في وثائق CheapTokens.

من أين جاءت الفكرة#

وصف Andrej Karpathy (باحث في الذكاء الاصطناعي، شريك مؤسس OpenAI، مدير الذكاء الاصطناعي السابق في Tesla) في منشوره بتاريخ 31 أكتوبر 2026 كيف بنى HackerTube، موقع للفيديوهات الموصى بها في تعليقات Hacker News. في ذلك البناء، شغّل Sonnet على التعليقات في سير عمل Claude Code لإزالة البريد المزعج وتضييقها إلى حوالي 40,000 تعليق توصي بفيديوهات YouTube. كانت النتيجة 6,454 فيديو عبر 150 موضوعًا، ويقول إن البناء بأكمله يستغرق الآن حوالي ساعتين.

أرقام من بناء HackerTube
أرقام من منشور Karpathy عن HackerTube، 31 أكتوبر 2026

لا يذكر المنشور أعداد الرموز أو التكلفة. لذا فإن الأرقام في هذه المقالة هي حسابات من افتراضات مذكورة بجانبها مباشرة، وليست إعادة بناء لتشغيله. ما يمكنك استعارته هو شكل المهمة: الكثير من النصوص القصيرة، سؤال واحد بنعم/لا حول كل منها.

كيف يعمل مرشح نعم/لا#

تخيل بوابًا بقاعدة من سطر واحد: "اسمح بالدخول لأي شخص يحمل تذكرة". ينظر إلى كل شخص لثانية، يقول نعم أو لا، ولا يتذكر أبدًا الضيف السابق. مرشح النموذج اللغوي يعمل بنفس الطريقة. كل طلب يحمل تعليماتك بالإضافة إلى تعليق واحد، ويعيد النموذج كلمة واحدة. التعليق رقم 17,000 لا يعرف شيئًا عن التعليق رقم 16,999.

أرشيف، موجه احتفاظ/إسقاط، قائمة مختصرة
طلب واحد لكل تعليق: تعليمات زائد نص، وكلمة واحدة خارجة

هذا التصميم هو سبب كون الفاتورة قابلة للتنبؤ. كل طلب له حجم متقارب، لذا التكلفة = الطلبات × الرموز لكل طلب. ولأن الإجابة كلمة واحدة، فإن كل المال تقريبًا يذهب إلى جانب الإدخال: التعليمات والتعليق الذي ترسله. إذا كان تسعير الإدخال والإخراج جديدًا عليك، فإن رموز الإدخال مقابل الإخراج يشرح التقسيم.

اكتب موجه الاحتفاظ/الإسقاط#

الموجه هو المنتج بأكمله هنا. قارن نسخة غامضة بأخرى دقيقة:

قارن

قاعدة غامضة مقابل قاعدة دقيقة

غامضة

text
Is this comment good? Answer yes or no.

جيد لمن؟ تعليق طويل ومهذب عن قواعد البيانات يمكن أن يعود بـ "نعم" بينما تعليق قصير "شاهد هذا: <link>" يعود بـ "لا". على النموذج أن يخمن ما قصدته، وتخمينه يتغير من تعليق لآخر.

دقيقة

text
Answer keep if the comment recommends a specific YouTube video or talk. Answer drop for spam, jokes, replies without a video, and everything else. Reply with one word.

الآن لدى النموذج قاعدة بدلًا من مزاج ليخمنه: ما يهم، وما لا يهم، وكيف تبدو الإجابة.

لنفترض وصول ثلاثة تعليقات. هذه هي الإجابات التي تستهدفها:

  • "هذه المحاضرة عن تاريخ Unix غيرت نظرتي إلى الأصداف: youtube.com/watch?v=... تستحق الساعة." → keep
  • "ساعات رخيصة هنا!!! اضغط على ملفي الشخصي" → drop
  • "أوافق، نقطة رائعة حول التخزين المؤقت." → drop

ثلاث عادات تجعل الموجه يصمد عبر 40,000 عنصر. قل ما يجب فعله مع الحالات المتبقية ("كل ما عدا ذلك هو إسقاط")؛ وإلا يخترع النموذج إجابة ثالثة. اطلب كلمة واحدة، حتى تكون الإجابة سهلة المقارنة مع keep في الكود. وضع التعليق بين وسوم، كما في الحلقة أدناه: التعليق الذي يقول "تجاهل التعليمات أعلاه" يصبح عندئذ بيانات واضحة، وليس أمرًا. وسم كل مستند في موجه يتعمق في ذلك.

الحلقة: طلب واحد لكل تعليق#

إليك كل شيء. يقرأ comments.jsonl (كائن JSON واحد بحقل text لكل سطر)، ويطلب حكمًا على كل تعليق، ويكتب الأسطر المحتفظ بها إلى kept.jsonl. معرف النموذج هو gateway_id الكامل؛ المفتاح يأتي من متغير بيئة.

python
import json
import os
from openai import OpenAI

client = OpenAI(
    base_url='https://api.cheaptokens.dev/v1',
    api_key=os.environ['CHEAPTOKENS_API_KEY'],
)

INSTRUCTION = '''You filter Hacker News comments.
Answer keep if the comment recommends a specific YouTube video or talk.
Answer drop for spam, jokes, replies without a video, and everything else.
Reply with one word: keep or drop. The comment is between <comment> tags.'''

def verdict(text):
    r = client.chat.completions.create(
        model='deepseek-ai/DeepSeek-V4-Flash-0731',
        messages=[
            {'role': 'system', 'content': INSTRUCTION},
            {'role': 'user', 'content': f'<comment>{text}</comment>'},
        ],
        temperature=0,
        max_tokens=10,
    )
    return r.choices[0].message.content.strip().lower(), r.usage

kept = tokens_in = tokens_out = 0
with open('comments.jsonl') as src, open('kept.jsonl', 'w') as out:
    for line in src:
        answer, usage = verdict(json.loads(line)['text'])
        tokens_in += usage.prompt_tokens
        tokens_out += usage.completion_tokens
        if answer.startswith('keep'):
            out.write(line)
            kept += 1

print(kept, 'kept;', tokens_in, 'tokens in,', tokens_out, 'tokens out')

temperature=0 يجعل الأحكام أكثر قابلية للتكرار بين التشغيلات، وmax_tokens=10 يترك مساحة لكلمة واحدة ولا شيء أكثر. السطر الأخير هو المفيد: يجمع أرقام usage التي تعيدها API، لذا تحصل على أعداد الرموز الحقيقية بدلًا من التخمين.

شغّله على أول عشرة تعليقات واقرأ كل حكم بنفسك. إذا بدت إجابة مقطوعة أو عادت فارغة، تحقق من finish_reason كما هو موضح في لماذا تتوقف إجابة الذكاء الاصطناعي في منتصف الجملة. طلب واحد في كل مرة جيد للاختبار؛ بالنسبة للـ 40,000 كاملة، AsyncOpenAI يرسل العديد بالتوازي.

تكلفة 40,000 تعليق#

إليك الافتراضات، حتى تستبدل بأرقامك. التعليق بالإضافة إلى التعليمات حوالي 150 رمزًا من الإدخال. الإجابة حوالي 5 رموز. تعليقات Hacker News غالبًا أطول، لذا اعتبر 150 حدًا أدنى واستبدلها بأرقام البروفة. لـ 40,000 تعليق:

  • الإدخال: 40,000 × 150 = 6,000,000 رمز
  • الإخراج: 40,000 × 5 = 200,000 رمز

التعليمات هي الجزء الذي ينساه الناس. إنها تسافر مع كل تعليق. جرب تخمينًا:

خمّن الرقم

لنفترض أن تعليماتك طولها 60 رمزًا. كم عدد رموز الإدخال التي تضيفها 40,000 نسخة منها؟

إظهار الإجابة

الإجابة: 2,400,000

40,000 × 60 = 2,400,000. هذا 40% من 6,000,000 رمز إدخال، تُنفق على نص لا يتغير أبدًا، لذا فإن تعليمات أكثر إحكامًا هي أول ما يجب تقليصه.

الآن الفاتورة للتمريرة الكاملة، بالأسعار الحية:

النموذج لكل طلب 40,000 طلبات OpenRouter، 40,000 طلبات
GLM-5.3-Flash $0.0000032 $0.128 $0.218
DeepSeek-V4-Flash $0.0000028 $0.11 $0.448
MiniMax-M2.7 $0.0000083 $0.33 $3.96

150 رمز إدخال و5 رمز إخراج لكل طلب. الأسعار لكل مليون رمز حالية وتتغير مع تعريفاتنا؛ يعرض عمود OpenRouter أسعارًا مرجعية لنفس حجم العمل.

في هذا الحمل، يخرج كل من DeepSeek-V4-Flash وGLM-5.3-Flash أرخص من OpenRouter في الإجمالي، مع احتساب الإدخال والإخراج معًا؛ عمود OpenRouter يظهرهما جنبًا إلى جنب. كلاهما مسعر لوظيفة عالية الحجم كهذه: DeepSeek-V4-Flash له سعر واحد في أي ساعة وحتى 32,768 رمز إخراج لكل إجابة، GLM-5.3-Flash خيار ثانٍ على نفس نقطة النهاية. جرب بروفة الـ 50 تعليقًا على كل منهما وقارن الأحكام بنفسك. للتبديل، غيّر سطر النموذج إلى zai-org/GLM-5.3-Flash. الأسعار الحالية لكل نموذج موجودة على صفحة التسعير، ونماذج DeepSeek في CheapTokens تسرد التفاصيل.

جرّب بنفسكجرب: أرشيفك يحتوي على 100,000 تعليق، وليس 40,000. ما الذي يتغير؟إظهار الإجابة

تنمو الفاتورة بخطوة مع العدد. 100,000 × 150 = 15,000,000 رمز إدخال و100,000 × 5 = 500,000 رمز إخراج، وهو $0.275 على DeepSeek-V4-Flash. نفس الموجه، 2.5 ضعف العناصر، 2.5 ضعف التكلفة.

قبل أن تضغط تشغيل#

أولًا، بروفة. خذ 50 تعليقًا، شغّل الحلقة، واقرأ كل الأحكام الخمسين. ثم استخدم إجماليات الرموز المطبوعة: 50 × 800 = 40,000، لذا التشغيل الكامل هو رموز البروفة مضروبة في 800. هذا يستبدل افتراض 150 و5 بأرقامك الخاصة.

ثانيًا، أصلح الموجه في البروفة، وليس في التشغيل الكامل. إذا كانت ثلاثة أحكام "إسقاط" خاطئة، أضف جملة واحدة عن تلك الحالة وأعد تشغيل الـ 50. يكلف جزءًا من سنت لتكون صعب الإرضاء هنا، وأكثر بكثير لإعادة تشغيل 40,000.

ثالثًا، تذكر ما يراه النموذج: تعليق واحد، لا سلسلة. إذا كان "أوافق، نقطة رائعة" منطقيًا فقط بجانب التعليق الأب، ضع الأب في الطلب أيضًا. هذا يجعل كل طلب أطول، لذا أعد حسابات الرموز بالحجم الجديد.

عندما تبدو البروفة صحيحة، أنشئ مفتاح API في حسابك، ووجّه CHEAPTOKENS_API_KEY إليه وابدأ التمريرة الكاملة. إذا كان المفتاح جديدًا عليك، فإن ما هو مفتاح API وكيف تخزنه يستغرق خمس دقائق.