Chain-of-thought: LLM’ni bosqichma-bosqich fikrlashga undash
Amaliyot3 daqInnovialabs tahririyati
Qisqacha
Chain-of-thought — modeldan avval bosqichma-bosqich fikrlab, keyin javob berishni so‘rash; bu hisob-kitob, mantiq va bir necha shartli vazifalarda yordam beradi. Prodakshnda mulohaza teglar yoki JSON maydonlari bilan ajratiladi va foydalanuvchiga faqat yakuniy javob ko‘rsatiladi.
Chain-of-thought nima va qachon yordam beradi
Chain-of-thought (CoT) — model javob berishdan oldin yechimning oraliq bosqichlarini yozib chiqadigan usul. Model matnni ketma-ket yaratadi, shuning uchun yozilgan bosqichlar keyingilari uchun tayanch bo‘ladi — «xayolan» qilinadigan xatolar kamayadi.
CoT odatda javobni darhol berib bo‘lmaydigan vazifalarda yordam beradi:
- hisob-kitoblar: summalar, chegirmalar, muddatlar, birliklarni o‘tkazish;
- bir necha shartli mantiq: «agar… bo‘lsa, mijoz tarifga mos keladimi»;
- hujjat tahlili: qarama-qarshiliklarni topish, turli joylardagi ma’lumotlarni solishtirish;
- murakkab qoidali tasniflash, bunda istisnolarni hisobga olish muhim.
CoT deyarli foydasiz bo‘lgan joylar: oddiy faktni ajratib olish, tarjima, shablon bo‘yicha qisqa javob. U yerda u faqat javob uzunligi, kechikish va narxni oshiradi.
Ko‘plab zamonaviy modellar o‘zi fikrlay oladi (reasoning-modellar yoki «kengaytirilgan fikrlash» rejimi). Ular uchun «bosqichma-bosqich o‘yla» degan aniq so‘rov ko‘pincha kerak emas — API orqali tegishli rejimni yoqish kifoya.
Fikrlashni qanday so‘rash kerak
Oddiy variant
Promptga ko‘rsatma qo‘shing: «Avval bosqichma-bosqich fikrla, keyin javob ber». Shuning o‘zi model xatti-harakatini o‘zgartiradi.
Tuzilmali variant
Aniq bosqichlarni belgilab, mulohazani javobdan ajratgan ma’qul:
Mijozga bepul yetkazib berish tegishlimi, aniqla.
Qoidalar: {qoidalar}
Buyurtma: {buyurtma ma’lumotlari}
Avval <thinking> tegi ichida bosqichma-bosqich:
1. Buyurtma summasi va shaharni yoz.
2. Har bir qoidani tekshir.
3. Istisnolarni hisobga ol.
Keyin <answer> tegi ichida faqat "ha" yoki "yo‘q" va bitta sabab jumlasini yoz.
Misollar bilan
Buni few-shot bilan birlashtirish mumkin: misollarda qisqa mulohaza va javobni ko‘rsating. Model shu mulohaza uslubini takrorlaydi.
Prodakshnda mulohazani qanday yashirish
Chat-bot foydalanuvchisiga modelning qoralamasini ko‘rish shart emas. Variantlar:
| Usul | Qanday ishlaydi | Qachon mos |
|---|---|---|
| Teglar | Mulohaza <thinking> ichida, javob <answer> ichida; kod faqat <answer>ni ko‘rsatadi | Oddiy matnli chiqish |
| JSON maydonlari | {"reasoning": "...", "answer": "..."}; interfeysga faqat answer boradi | Integratsiyalar, API |
| Ikki so‘rov | Birinchi so‘rov fikrlaydi, ikkinchisi foydalanuvchi uchun javob yozadi | Sayqallangan matn kerak bo‘lsa |
| O‘rnatilgan fikrlash rejimi | Model API javobining alohida blokida fikrlaydi | Model buni qo‘llab-quvvatlasa |
Javobni ajratib olish misoli:
import re
def extract_answer(text: str) -> str:
match = re.search(r"<answer>(.*?)</answer>", text, re.DOTALL)
return match.group(1).strip() if match else ""
Teg topilmasa, foydalanuvchiga butun xom matnni ko‘rsatmang. So‘rovni takrorlang yoki neytral xato xabarini qaytaring.
Keng tarqalgan xatolar
- Hamma joyda CoT. Oddiy vazifalarda bosqichma-bosqich fikrlash faqat tokenlarni sarflaydi.
- Javobdan keyin mulohaza. Agar model avval javob yozib, keyin uni «asoslasa», aniqlik oshmaydi. Mulohaza javobdan oldin bo‘lishi kerak.
- Mulohaza foydalanuvchiga ko‘rinadi. Qoralamada shubhalar, ichki qoidalar va ortiqcha tafsilotlar bo‘lishi mumkin.
- Mulohazaga isbot sifatida ishonish. Bosqichlar mantiqiy ko‘rinadi, lekin xato bo‘lishi mumkin. Muhim hisob-kitoblarda natijani kod bilan tekshiring.
- Cheklov yo‘q. Cheklovsiz mulohaza juda uzun bo‘lib ketishi mumkin. Aniq bosqichlarni belgilang yoki hajmni cheklang.
CoT haqiqatan yordam berayotganini qanday bilish
- Javoblari ma’lum bo‘lgan test vazifalari to‘plamini yig‘ing.
- CoT bilan va usiz aniqlikni solishtiring.
- Narxni hisobga oling: javob uzunligi va javob vaqti.
- CoT’ni faqat sifat yutug‘i shu xarajatlarga arziydigan joyda qoldiring.