Asosiy kontentga o‘tish
AI qo‘llanmalari

AnyJev yordamida ishonchli, tiplashtirilgan LLM qarorlarini yarating

AnyJev’ni o‘rnatish, tanlov, Boolean va ball berish savollarini aniqlash hamda ochiq LLM’dan generatsiya yoki nozik sozlashsiz tuzilgan qarorlarni olishni o‘rganing. Ushbu qo‘llanmada, shuningdek, yorliqsiz L0 inferens, L1 kalibrlash, L2 yopiq shakldagi boshlar, paketli xizmat ko‘rsatish, artefaktlarni boshqarish va joriy etish cheklovlari yoritiladi.

AnyJev yordamida ishonchli, tiplashtirilgan LLM qarorlari

AnyJev nima qiladi

AnyJev ochiq til modelini Jev uslubidagi qaror modeliga aylantiradi. Modeldan javob yaratishni va keyin uning matnini tahlil qilishni so‘rash o‘rniga, AnyJev prefill jarayonidagi modelning keyingi tokenlar taqsimotini o‘qiydi va ehtimollarga ega tiplangan qarorni qaytaradi.

Bu so‘rovni yo‘naltirish, amal xavfli yoki xavfsizligini baholash yoki vazifa bajarilishini ballash kabi ish jarayonlari uchun foydalidir. Har bir natija foydalanilgan qaror darajasini qayd etadi, shuning uchun keyingi kod kalibrlanmagan yoki nol yorliqli natijani moslashtirilgan head orqali olingan natijadan ajrata oladi.

AnyJev xom logits bilan bog‘liq ikkita amaliy muammoni hal qiladi: variantlar tartibi o‘zgarganda bashoratlar o‘zgarishi mumkin va xom ishonch qiymatlari chegaraga asoslangan avtomatlashtirish uchun yetarlicha yaxshi kalibrlanmagan bo‘lishi mumkin. README’dagi Qwen3-8B BANKING77 tajribasida L0 yorliqlarsiz variantlar tartibi almashish ko‘rsatkichini 0.230 dan 0.073 gacha kamaytirdi. L1 esa yorliqli misollar bilan kutilgan kalibrlash xatosini 0.240 dan 0.095 gacha kamaytirdi.

Tartib barqarorligi, kalibrlash, aniqlik va qamrov bo‘yicha AnyJev natijalari

Qaror darajalari

AnyJev turli ma’lumotlar va xizmat ko‘rsatish talablariga ega bo‘lgan bir nechta darajalarni taqdim etadi:

  • raw: Yorliq tokenlari ustida cheklangan softmaxni qo‘llaydi. U pozitsiya og‘ishini tuzatmaydi va ishonchni kalibrlamaydi.
  • L0: Yorliqlarni talab qilmaydi. U variantlarning siklik aylantirishlarini baholaydi, pozitsiya og‘ishini o‘rtachalashtiradi va taxminiy yorliq priorini chiqarib tashlaydi.
  • L1: L0 ustida temperaturani masshtablashni moslashtirish uchun har bir savolga taxminan 100–500 ta yorliqdan foydalanadi. Kalibrlashni yaxshilaydi, ammo reytingni o‘zgartirmaydi.
  • L2: Oraliq yashirin holatdan qisqartirilgan LDA yoki ridge headni yechish uchun har bir savolga taxminan 100–300 ta yorliqdan foydalanadi. Unga lokal model kerak bo‘ladi va u model hamda savolning ikkalasiga xosdir.

L0 ko‘p variantli tanlov uchun bir nechta prefillni talab qiladi, chunki u aylantirishlarni baholaydi. L2 esa bitta promptdan foydalanadi va belgilangan oraliq blokda to‘xtaydi, shu sababli qayd etilgan Qwen3 tajribalarida u to‘liq forward passdan arzonroq.

Asosiy imkoniyatlar

  • Tiplangan choice, noul va score savollari.
  • Matn yaratish yoki javobni tahlil qilish talab qilinmaydi.
  • Variant pozitsiyasi va yorliq priorining ta’sirlarini tuzatadigan, nol yorliqli L0.
  • Bir necha yuzta yorliq bilan L1 temperaturani kalibrlash.
  • Gradientlarsiz yoki modelni qayta o‘qitishsiz soniyalarda moslashtiriladigan L2 yopiq shaklli headlar.
  • level="auto" orqali L2, L1 yoki L0 ni avtomatik tanlash.
  • observe orqali yorliqlarni bosqichma-bosqich yig‘ish.
  • Ko‘plab holatlar va bitta savol uchun paketli qarorlar.
  • Keyingi xizmat ko‘rsatish uchun saqlash va yuklash mumkin bo‘lgan kichik JSON artefaktlari.

O‘rnatish va sozlash

Hugging Face backendini o‘rnating

AnyJev’ni Hugging Face integratsiyasi bilan o‘rnating:

pip install "anyjev[hf]"

Joriy versiya barcha qaror darajalariga Transformers asosidagi anyjev.backends.hf backendi orqali xizmat ko‘rsatadi. vLLM va SGLang qo‘llab-quvvatlashi yo‘l xaritasida mavjud, ammo ushbu versiyada taqdim etilmagan.

Decider yarating

Asosiy API’ni import qiling va ochiq model bilan HFBackendni ishga tushiring:

from anyjev import Decider, Question
from anyjev.backends.hf import HFBackend

decider = Decider(HFBackend("Qwen/Qwen3-8B"))

Yetkazib berilgan L2 headlar beshta Qwen3 modelini qamrab oladi: 1.7B, 4B, 8B, 30B-A3B va 32B. L2 headlar asosiy model va savolga xos bo‘lib qoladi, shuning uchun bir model yoki savol uchun moslashtirilgan headni boshqasida avtomatik qayta ishlatib bo‘lmaydi.

Tiplangan savollarni belgilang

Savol chiqish turini, yaroqli javoblarni va barqaror nomni tavsiflaydi. Bir xil dastur holatiga nisbatan bir nechta savol turini baholashingiz mumkin.

route = Question.choice(
    "Which team should handle this?",
    ["billing", "technical", "sales", "other"],
    name="route",
)

risky = Question.noul(
    "Is this tool call destructive or irreversible?",
    name="risky",
)

done = Question.score(
    "How complete is the task?",
    bins=5,
    name="done",
)

Kategoriyali qaror uchun choice, rost-yolg‘on qaror uchun noul, bo‘lingan sonli ball uchun esa scoredan foydalaning. Harf-token orqali o‘qish hozircha ko‘pi bilan 26 ta variantni qo‘llab-quvvatlaydi.

Oddiy L0 qarorini qabul qiling

L0 standart daraja bo‘lib, yorliqli misollarni talab qilmaydi. Savollarga kerakli ma’lumotlarni o‘z ichiga olgan holatni yarating, so‘ng decideni chaqiring:

state = {
    "conversation": [
        {"role": "user", "content": "I was charged twice."}
    ],
    "tool_call": {
        "name": "refund_payment",
        "arguments": {"payment_id": "pay_123"},
    },
}

result = decider.decide(state, [route, risky, done])

print(result["route"].distribution)
print(result["risky"].p_true)
print(result["done"].value)
print(result.level)

Namunaviy route taqsimoti berilgan har bir variantni ehtimolga bog‘lashi mumkin. Mantiqiy qarorlar p_trueni, ball qarorlari esa valueni taqdim etadi. Yuqoriroq darajadagi artefakt mavjud bo‘lmaganda, umumiy natija L0ni bildiradi.

Ehtimollar ularning darajasiga muvofiq talqin qilinishi kerak. L0 barqarorlikni yaxshilaydi va taxminiy yorliq og‘ishini tuzatadi, ammo noaniqlikni to‘liq kalibrlamaydi.

L1 kalibrlashni qo‘shing

Agar savol uchun taxminan 100–500 ta yorliqli holat mavjud bo‘lsa, L1 temperaturasini moslashtirish uchun calibrateni chaqiring:

decider.calibrate(risky, states, labels)

L1 L0 ustida olingan ehtimollarni kalibrlaydi. Qaysi javob birinchi o‘rinda turishini o‘zgartirmaydi, ammo ishonch chegaralarini mazmunliroq qilishi mumkin.

L2 yopiq shaklli headni moslashtiring

Yuqoriroq aniqlik uchun savolga xos L2 bosh qismini taxminan 100–300 ta belgilangan misol yordamida moslang:

decider.fit_head(route, states, labels)

decider.save_artifacts("qwen3-8b.json")

Moslashtirish misollar ustidan modelning bir marta ishlashini amalga oshiradi, so‘ngra bosh qismini yopiq shaklda yechadi. Unda gradientlardan foydalanilmaydi va til modelining vaznlari o‘zgartirilmaydi. Loyihaga ko‘ra, bosh qismi odatda taxminan 100 KB hajmda bo‘ladi va qo‘llab-quvvatlanadigan kichikroq Qwen3 modellarida soniyalar ichida yechilishi mumkin.

Saqlangan artefaktlarni keyingi jarayonda yuklang, so‘ngra darajani avtomatik tanlashni so‘rang:

decider.load_artifacts("qwen3-8b.json")

result = decider.decide(state, [route], level="auto")
print(result["route"].level)

level="auto" bilan AnyJev savolni mos bosh qismi yo‘naltira olsa, L2 dan foydalanadi. Aks holda kalibrlash mavjud bo‘lsa, L1 ga, undan keyin L0 ga qaytadi.

Belgilarni bosqichma-bosqich to‘plang

AnyJev belgilarni ko‘rib chiqish navbati, kuzatilgan natijalar yoki boshqa fikr-mulohaza manbasidan kelishi bilan qabul qilishi mumkin:

decider.observe(route, state, correct_label)

Loyihaning avtomatik sikli 30 ta kuzatuvdan so‘ng bosh qismini yechadi, keyin uni 60, 120 va undan keyingi bosqichlarda qayta yechadi. Bu yangi savol L0 darajasidan boshlanib, yetarli fikr-mulohaza to‘plangach L2 ga o‘tadigan joriy etish siklini qo‘llab-quvvatlaydi.

Paketli xulosa chiqarish

Bitta savolni ko‘plab holatlarga qo‘llaganda, decide ni takroran chaqirish o‘rniga paketli API dan foydalaning:

results = decider.decide_batch(states, route)

Bu bitta tiplashtirilgan savol bo‘yicha ko‘plab kiritmalarni qayta ishlash uchun mo‘ljallangan interfeysdir.

Paketlangan demoni sinab ko‘ring

Repository nusxasidan sintetik demoni modelni yuklab olmasdan ishga tushiring:

python -m demo.jev_mode --backend fake

Joriy etish siklini taqlid qilish uchun lifecycle parametrini qo‘shing:

python -m demo.jev_mode --backend fake --lifecycle

Haqiqiy Qwen3 demosini taqdim etilgan bosh qismlar bilan ishga tushirish uchun --backend fake ni olib tashlang.

Ilg‘or joriy etish bo‘yicha maslahatlar

Savol identifikatorini barqaror saqlang

L2 har bir savol va model uchun alohida moslanadi. Yangi variantlar to‘plami yangi belgilar va yangi bosh qismini talab qiladi. Xuddi shu savolni qayta ifodalash yoki bir xil variantlar tartibini o‘zgartirish mavjud bosh qismga yo‘naltirilishi mumkin.

So‘zlashuvga moslashish uchun belgilanmagan trafikdan foydalaning

Qayta ifodalangan savollar uchun AnyJev taxminan 30 ta belgilanmagan so‘rov yordamida bosh qismining xususiyatlar o‘rtachasini va masshtabini qayta markazlashtirishi mumkin. Bu moslashuv savol ifodasi va variantlar tartibiga taalluqli; u ilova holatlarining o‘zidagi siljishni aniqlamaydi.

Haqiqiy ma’lumotlar siljishini kuzating

Holatlar taqsimotidagi siljishlar qayta markazlashtirish mexanizmiga ko‘rinmagani sababli, vaqti-vaqti bilan belgilanadigan baholash qismini saqlang va unumdorlikni tanlab tekshiring. So‘zlashuvga moslashishni ishlab chiqarish monitoringining o‘rnini bosuvchi vosita deb hisoblamang.

Amallarni qaror darajasi bo‘yicha cheklang

Har bir qaror o‘z darajasiga ega. Quyi tizimlar sezgir amalni bajarishdan oldin uni tekshirishi mumkin, loyiha esa darajalarni require= yordamida majburiy qo‘llashni ham qo‘llab-quvvatlaydi. Bu kalibrlangan yoki L2 qarorlar uchun mo‘ljallangan ish jarayonining qayta tiklash natijasiga bilvosita amal qilishining oldini oladi.

Chegaralarni faqat tekshiruvdan keyin tanlang

Kalibrlashning asosiy foydasi yuqori ishonchli holatlarni avtomatlashtirishga yuborish, noaniq holatlarni esa eskalatsiya qilish imkoniyatidir. Chegaralarni vakil bo‘ladigan belgilangan ma’lumotlarda tanlang va ko‘rsatilgan ehtimollikni avtomatik ravishda ishonchli deb hisoblash o‘rniga, hosil bo‘ladigan xato hamda qamrovni o‘lchang.

Muhim cheklovlar

  • L2 bosh qismlari boshqa savol yoki bazaviy modelga ko‘chirilmaydi.
  • Joriy loyiha relizi bilan faqat Qwen3 bosh qismlari taqdim etiladi.
  • L2 yashirin holatlarga kirishni talab qiladi; hozirda bu imkoniyat Transformers backendi orqali taqdim etiladi.
  • Kalibrlash modelni mohiyatan javob bera olmaydigan vazifani hal qila oladigan qilmaydi.
  • Bitta belgi paket oldingi ehtimolida keskin ustun bo‘lsa, L0 aniqlikni pasaytirishi mumkin.
  • Joriy harfli ko‘rsatish 26 tadan ortiq variantni qo‘llab-quvvatlamaydi.
  • Hisobotdagi 5% xavf qamrovi bahosi 300 ta misolga asoslangan va shu sababli dispersiyasi yuqori.
  • E’lon qilingan tiplashtirilgan qarorlar aniqligi mustaqil o‘rnatilgan haqiqiy haqiqatni emas, o‘qituvchi LLM bilan moslikni o‘lchaydi.
  • Hisobotdagi qarorlar to‘liq agent sikli ichida emas, alohida holda baholangan.

Xulosa

AnyJev nol belgili tiplashtirilgan qarorlardan kalibrlangan ehtimolliklar va samarali yashirin holat bosh qismlarigacha bo‘lgan amaliy rivojlanish yo‘lini taqdim etadi. L0 dan boshlang, haqiqiy belgilarni to‘plang, kalibrlash ustuvor bo‘lsa L1 ni qo‘shing, savolga xos aniqroq qaror yo‘li kerak bo‘lganda esa L2 ni moslang. Hisobotdagi darajani saqlang, chegaralarni tekshiring va ishlab chiqarish ma’lumotlari o‘zgarganda belgilangan namunalarni kuzating.

Joriy etish tafsilotlari va amaldagi rejalar uchun AnyJev repository, uning darajalar shartnomasi, benchmark hujjatlari va yo‘l xaritasiga qarang.