
LLM Legislativo Brasileiro nima?
LLM Legislativo Brasileiro — Braziliya qonunchilik hujjatlariga ixtisoslashgan sababiy til modelini yaratish uchun mo‘ljallangan, tadqiqot va muhandislikni to‘liq qamrab oluvchi loyiha. U Deputatlar palatasi va Federal Senatning rasmiy materiallarini tekshirilishi mumkin bo‘lgan ochiq ma’lumotlar to‘plamlariga jamlaydi, so‘ngra PyTorch yordamida Transformer dekoderini butunlay noldan o‘qitadi.
Loyiha oldindan o‘qitilgan og‘irliklar, yopiq API’lar yoki Hugging Face Trainer kabi yuqori darajadagi o‘qitish abstraksiyalaridan foydalanmaydi. Uning dizayni ochiq fan, qayta ishlab chiqarish imkoniyati, SHA-256 yaxlitlik tekshiruvlari hamda o‘qitish, validatsiya va test ma’lumotlari o‘rtasidagi qat’iy sababiy ajratishga urg‘u beradi.
Bu model tadqiqot va ta’lim maqsadidagi artefaktdir. Uni huquqiy faktlar bo‘yicha maslahatchi yoki normativ qarorlar vositasi sifatida qabul qilmaslik kerak, chunki sababiy til modellari qonunlar, tuzatishlar, xulosalar va huquqiy qoidalarni to‘qib chiqarishi mumkin.
Asosiy xususiyatlar
- Deputatlar palatasi va Senat to‘plamlarini o‘z ichiga olgan 360 GiB dan ortiq rasmiy xom ma’lumot.
- 930 000 dan ortiq hujjat va mazmunli versiyalar, jumladan qonun loyihalari, konstitutsiyaviy tuzatishlar, hisobotlar, xulosalar, muqobil matnlar, yakuniy matnlar va majlis bayonnomalari.
- Hugging Face Hub platformasida xom arxivlar, ajratib olingan matn va saralangan Apache Parquet ma’lumotlarini qamrab oluvchi beshta ochiq ma’lumotlar to‘plami nashri.
- Faqat o‘qitish qismida o‘qitilgan 8 192 tokenli bayt darajasidagi BPE tokenizatori.
- PyTorch’da amalga oshirilgan aniq sababiy Transformer dekoderi: olti qatlam, oltita diqqat boshi, 384 o‘lchamli yashirin tasvir va 512 tokenli kontekst oynasi.
- Token embedding va chiqish proyeksiyasi qatlamlari o‘rtasida og‘irliklarni bog‘lash.
- Yaroqli targetlarning umumiy soniga asoslangan aniq gradient akkumulyatsiyasi; bu turli uzunlikdagi ketma-ketliklarda padding sababli yuzaga keladigan vaznlash xatolarini oldini oladi.
- Qonunchilik oilasi identifikatorlari asosidagi deterministik 80/10/10 ma’lumotlar bo‘linishi, bog‘liq hujjatlarning o‘qitish va test chegaralaridan kesib o‘tishiga yo‘l qo‘ymaydi.
safetensorsformatidagi ochiq model og‘irliklari, shuningdek tokenizer, konfiguratsiya, ko‘rsatkichlar va mustaqil inferens kodi.
Ma’lumotlar va o‘qitish jarayonini tushunish
Repozitoriy loyihani ixtisoslashgan bosqichlarga ajratadi. Deputatlar palatasi va Senatning rasmiy inventarlari barqaror, idempotent jarayonlar orqali yig‘iladi va yuklab olinadi. Xom fayllar Git’dan tashqarida saqlanadi, yengil metadata, sxemalar va konfiguratsiya fayllari esa versiyalanadi.
macOS’da mahalliy Swift ajratib olish adapteri ichki matnga ega hujjatlar uchun PDFKit’dan foydalanadi. Skanerlangan sahifalar yoki matn zichligi yetarli bo‘lmagan sahifalar Apple Vision OCR’ga yo‘naltiriladi. Hosil bo‘lgan matn keyin R’da aniq SHA-256 deduplikatsiyasi, parcha qamrovini aniqlash va igraph yordamida qurilgan global qonunchilik oilalari grafigi orqali saralanadi.
Bir xil qonunchilik jarayoniga bog‘langan har bir taklif, tuzatish, hisobot, xulosa va muqobil matnga bir xil family_id beriladi. Ushbu identifikatorning deterministik xeshi butun oilani o‘qitish, validatsiya yoki test qismiga tayinlaydi. Bu bog‘liq versiyalarning baholash qismlari o‘rtasida sizib chiqishining oldini oladi.
Bo‘linishdan so‘ng Python tokenizatsiya bosqichi faqat o‘qitish ma’lumotlaridan foydalanib, 8 192 tokenli bayt darajasidagi BPE lug‘atini o‘qitadi. U portugal tilidagi diakritik belgilarni, §, º, ª va Art. kabi qonunchilik belgilarini, shuningdek raqamlar va boshqa maxsus belgilarni qo‘llab-quvvatlaydi. Tokenizatsiya qilingan ma’lumotlar 512 tokenli oynalar uchun indekslar bilan ikkilik shardlarga yoziladi.
Repozitoriyni sozlash
1. Loyihani klonlash
Repozitoriy Python 3.9 yoki undan yangi versiyasini talab qiladi. Uni klonlang va loyiha katalogiga kiring:
git clone https://github.com/BaruqueRodrigues/llm-legislativo.git
cd llm-legislativo2. Virtual muhit yaratish
Virtual muhitdan foydalanish loyiha bog‘liqliklarini tizimingizning qolgan qismidan ajratib turadi:
python3 -m venv .venv
source .venv/bin/activate3. Paketni o‘rnatish
Mahalliy manba o‘zgarishlari darhol mavjud bo‘lishi uchun repozitoriyni tahrirlanadigan rejimda o‘rnating:
pip install -e .Repozitoriyda src/legislm/ ichidagi Python paketi, asosiy va CPU muhitlari uchun lock-fayllar, R qayta ishlab chiqarish metama’lumotlari, deklarativ konfiguratsiyalar, notebooklar, buyruq satri skriptlari va testlar to‘plami mavjud.
O‘rnatishni tekshirish
Model inferensi yoki katta hajmdagi o‘qitishni boshlashdan oldin avtomatlashtirilgan testlarni mahalliy CPU’da ishga tushiring:
pytest tests/ -qREADME’da model xatti-harakati, saqlash, tokenizatsiya va baholashni qamrab oluvchi 135 dan ortiq birlik va kontrakt testi qayd etilgan. Muvaffaqiyatli ishga tushirish to‘liq, yuzlab gigabaytlik korpus yoki A100 GPU talab qilmasdan asosiy interfeyslar ishlayotganini tekshiradi.
Nashr qilingan modelni yuklash
O‘qitilgan model BaruqRodrigues/llm-legislativo repozitoriysida mavjud. Quyidagi misol og‘irliklar va tokenizatorni yuklab oladi, arxitekturani qayta tiklaydi hamda safetensors holat lug‘atini yuklaydi.
import torch
from huggingface_hub import hf_hub_download
from safetensors.torch import load_file
from legislm.model.gpt import GPTModel
from legislm.model.config import ModelConfig
from tokenizers import Tokenizer
# Model artefaktlarini yuklab olish
weights_path = hf_hub_download(
repo_id="BaruqRodrigues/llm-legislativo",
filename="model.safetensors"
)
tokenizer_path = hf_hub_download(
repo_id="BaruqRodrigues/llm-legislativo",
filename="tokenizer.json"
)
# Tokenizator va model konfiguratsiyasini qayta yaratish
tokenizer = Tokenizer.from_file(tokenizer_path)
config = ModelConfig(
vocab_size=8192,
context_length=512,
d_model=384,
n_layers=6,
n_heads=6,
tie_embeddings=True
)
model = GPTModel(config)
# O‘qitilgan parametrlarni yuklash
state_dict = load_file(weights_path)
model.load_state_dict(state_dict)
model.eval()Qonunchilik matnini yaratish
Model yuklangach, portugal tilidagi qonunchilik promptini kodlang va modelning yaratish usulini chaqiring. Misolda qisqa qonun loyihasi boshlanishidan foydalaniladi va 64 tagacha yangi token so‘raladi.
prompt = "PROJETO DE LEI Nº , DE 2026\n\nDispõe sobre"
input_ids = torch.tensor(
[tokenizer.encode(prompt).ids],
dtype=torch.long
)
with torch.no_grad():
output_ids = model.generate(
input_ids,
max_new_tokens=64,
temperature=0.7,
top_k=40,
eos_token_id=2
)
print(tokenizer.decode(output_ids[0].tolist()))Model maksimal 512 tokenlik kontekst uzunligidan foydalanadi. Ushbu misolda temperature=0.7 tanlashdagi o‘zgaruvchanlikni boshqaradi, top_k=40 esa tanlashni ehtimoli eng yuqori bo‘lgan 40 ta nomzod bilan cheklaydi. Tajriba o‘tkazishda bu qiymatlarni sozlang, biroq yaratilgan matn tasdiqlangan huquqiy mazmun emas, balki statistik natija ekanini unutmang.
Ommaviy ma’lumotlar to‘plamlarini o‘rganish
Loyiha korpusning bir nechta bosqichlarini Hugging Face Hub platformasida e’lon qiladi:
- corpus-legislativo-pretraining: oilalar bo‘yicha tashkil etilgan train, validation va test qismlariga ega, Parquet formatidagi yagona saralangan nashr.
- camara-corpus-raw: Deputatlar palatasining xom TAR arxivlari va SHA-256 manifestlari.
- camara-corpus-text: sifat tekshiruvidan o‘tkazilgan Deputatlar palatasining tuzilmali matn ajratmalari.
- senado-corpus-raw: Federal Senat inventarlari va birlamchi ma’lumotlari.
- senado-corpus-text: ustunli Parquet formatidagi saralangan Senat hujjatlari va sahifalari.
Ushbu nashrlar loyiha jarayonining turli bosqichlarini, manba arxivlari va ajratib olingan matnlardan tortib yakuniy o‘qitish matritsalarigacha, tekshirish imkonini beradi.
O‘qitishni takrorlash yoki kengaytirish
O‘qitish dasturi src/legislm/training/ katalogida, tokenizatsiya va shard yaratish esa src/legislm/tokenization/ katalogida joylashgan. Konfiguratsiyalar configs/ katalogida saqlanadi, Google Colab ish jarayonlari esa notebooks/ va src/legislm/colab/ kataloglarida taqdim etilgan.
E’lon qilingan o‘qitish jarayoni NVIDIA A100-SXM4-40GB muhitida bajarilgan va taxminan 20 soat davomida 173,209 ta optimallashtirish yangilanishini amalga oshirgan. Jarayonda AdamW, 2,000 bosqichli chiziqli warmup’ga ega kosinus rejalashtirgichi, aralash FP16 aniqligi va Google Drive orqali chekpointlarni saqlashdan foydalanib, taxminan 1.25 milliard token qayta ishlangan.
Takrorlanadigan tajribalar uchun tokenizatorni o‘qitish qismi bilan cheklang, oilalarga asoslangan deterministik bo‘lish tartibini saqlang hamda repozitoriyning SHA-256 manifestlari va chekpoint metama’lumotlarini saqlab qoling. Bu tafsilotlar ma’lumotlar sizib chiqishining oldini olish va natijalarni adolatli taqqoslash uchun muhim.
Natijalarni to‘g‘ri baholash
Loyiha 71,069 ta hujjat va taxminan 482 million baytni o‘z ichiga olgan mustaqil test qismida standartlashtirilgan byte_nll_v1 baholash protokolini belgilaydi. E’lon qilingan natijalarga har bir yaroqli maqsad uchun 2.1065 o‘rtacha yo‘qotish, 8.2197 token perplexity va 65.6509 so‘z perplexity kiradi.
Normallashtirilgan bayt darajasidagi natija har bir bayt uchun 0.7297 nat yoki 1.0528 bitni tashkil etadi. E’lon qilingan qiymatlar Deputatlar palatasi to‘plami uchun har bir baytga 0.7049 nat, Senat to‘plami uchun esa 0.8817 natdir. Kelgusidagi tajribalarni taqqoslashda faqat token perplexity’ga tayanmasdan, ayni bo‘lish mantig‘i va baholash ta’rifidan foydalaning.
Repozitoriy tuzilishi
Asosiy kataloglar tizimni o‘zgartirish yoki o‘rganishda qayerga murojaat qilish kerakligini ko‘rsatadi:
R/: rasmiy ma’lumotlar inventari, yuklab olish, ajratib olish integratsiyasi va saralash.src/legislm/: tokenizator, model, o‘qitish, Colab’da saqlash va baholash kodi.schemas/: Arrow va JSON Schema ma’lumotlar kontraktlari.configs/: ma’lumotlar, saralash, o‘qitish va Colab konfiguratsiyalari.notebooks/: sinov va to‘liq Google Colab ish jarayonlari.scripts/: bajariladigan buyruq qatori kirish nuqtalari.tests/: birlik va kontrakt testlari.docs/: me’yoriy hujjatlar, kontraktlar va hisobotlar.
Ilg‘or amaliy maslahatlar
- Testlardan boshlang: CPU validatsiyasi katta maʼlumotlar toʻplamlarini yuklab olish yoki GPU resurslarini soʻrashdan oldin oʻrnatishni tekshirishning kam xarajatli usulidir.
- Oilalar chegaralarini saqlang: natijalar loyiha bilan taqqoslanadigan boʻlishini istasangiz, hujjat darajasida tasodifiy boʻlinishlar yaratmang, chunki bitta qonunchilik jarayonining versiyalari oʻzaro chambarchas bogʻliq boʻlishi mumkin.
- Tokenizatorni boʻlgandan keyin oʻrgating: lugʻat statistikasini validatsiya yoki test maʼlumotlarida hisoblash loyiha maʼlumot sizib chiqishini nazorat qilish choralarini buzadi.
- Yaroqli maqsadlarni hisobga oling: toʻldirilgan ketma-ketliklardan foydalanganda, mikro-paketlar boʻyicha kross-entropiyani jami yaroqli maqsadlar soniga nisbatan hisoblang.
- Artefaktlarni Git tashqarisida saqlang: repozitoriy xom ikkilik fayllar, model vaznlari va keshlar oʻrniga metadata hamda sxemalarni ataylab versiyalaydi.
- Tekshirish uchun ochiq relizlardan foydalaning: xom, ajratib olingan va saralangan Hub maʼlumotlar toʻplamlari butun yigʻish jarayonini qayta yaratmasdan, konveyerning alohida bosqichlarini oʻrganish imkonini beradi.
- Generatsiyalarni ehtiyotkorlik bilan talqin qiling: generatsiya qilingan qonunchilik tili ishonarli koʻrinishi mumkin, biroq unda uydirma havolalar yoki qoidalar boʻlishi ehtimol.
Xulosa
LLM Legislativo Brasileiro rasmiy qonunchilik arxivlaridan ixtisoslashgan sababiy til modeligacha boʻlgan toʻliq va tekshiriladigan yoʻlni namoyish etadi. Paketni oʻrnatib, testlarini ishga tushirgach, chiqarilgan tokenizator va PyTorch modelini yuklashingiz, matn generatsiya qilishingiz, ochiq maʼlumotlar toʻplamlarini koʻrib chiqishingiz hamda repozitoriyning maʼlumot sizib chiqishiga chidamli saralash va oʻqitish usullarini oʻrganishingiz mumkin. Uning MIT litsenziyasidagi kodi va ochiq eʼlon qilingan artefaktlari portugal tilidagi qonunchilikni modellashtirish boʻyicha tadqiqotlar uchun foydali asos yaratadi.
