
LLM Legislativo Brasileiro کیا ہے؟
LLM Legislativo Brasileiro برازیل کی قانون ساز دستاویزات کے لیے مخصوص علّی زبان کے ماڈل کی تعمیر کا ایک مکمل تحقیقی اور انجینئرنگ منصوبہ ہے۔ یہ ایوانِ نمائندگان اور وفاقی سینیٹ کے سرکاری مواد کو قابلِ جانچ کھلے ڈیٹاسیٹس میں منظم کرتا ہے، پھر PyTorch میں شروع سے مکمل طور پر ایک Transformer decoder کو تربیت دیتا ہے۔
یہ منصوبہ پہلے سے تربیت یافتہ weights، بند APIs، یا Hugging Face Trainer جیسی اعلیٰ سطحی training abstractions استعمال نہیں کرتا۔ اس کا ڈیزائن اوپن سائنس، دوبارہ قابلِ تولید نتائج، SHA-256 سالمیت کی جانچ، اور training، validation، اور test ڈیٹا کے درمیان سخت causal isolation پر زور دیتا ہے۔
یہ ماڈل ایک تحقیقی اور تعلیمی نمونہ ہے۔ اسے مستند قانونی مشیر یا معیاری فیصلوں کے آلے کے طور پر استعمال نہیں کرنا چاہیے، کیونکہ causal language models قوانین، ترامیم، خلاصوں، اور قانونی دفعات کے بارے میں فرضی معلومات پیدا کر سکتے ہیں۔
اہم خصوصیات
- 360 GiB سے زیادہ سرکاری خام ڈیٹا، جس میں ایوانِ نمائندگان اور سینیٹ کے مجموعے شامل ہیں۔
- 930,000 سے زیادہ دستاویزات اور ان کے اہم نسخے، جیسے بل، آئینی ترامیم، رپورٹس، آرا، متبادل مسودے، حتمی متون، اور اجلاس کے ریکارڈ۔
- Hugging Face Hub پر پانچ عوامی dataset releases، جن میں خام archives، اخذ شدہ متن، اور منظم Apache Parquet ڈیٹا شامل ہے۔
- 8,192 ٹوکن کا byte-level BPE tokenizer، جسے صرف training split پر تربیت دی گئی ہے۔
- PyTorch میں نافذ کردہ واضح causal Transformer decoder، جس میں چھ layers، چھ attention heads، 384 dimensional hidden representation، اور 512 ٹوکن کی context window ہے۔
- ٹوکن embedding اور output projection layers کے درمیان weight tying۔
- درست gradient accumulation، جو valid targets کی مجموعی تعداد پر مبنی ہے اور مختلف sequences میں padding سے متعلق weighting errors سے بچاتا ہے۔
- قانون ساز family identifiers کی بنیاد پر deterministic 80/10/10 data splits، جو متعلقہ دستاویزات کو training اور test boundaries کے پار جانے سے روکتے ہیں۔
safetensorsformat میں عوامی model weights، جن کے ساتھ tokenizer، configuration، metrics، اور standalone inference code بھی شامل ہے۔
ڈیٹا اور training pipeline کو سمجھیں
repository منصوبے کو مخصوص مراحل میں تقسیم کرتا ہے۔ ایوانِ نمائندگان اور سینیٹ کی سرکاری inventories کو مضبوط اور idempotent processes کے ذریعے جمع اور download کیا جاتا ہے۔ خام files کو Git سے باہر رکھا جاتا ہے، جبکہ ہلکے metadata، schemas، اور configuration files کو version کیا جاتا ہے۔
macOS پر native Swift extraction adapter، embedded text والی دستاویزات کے لیے PDFKit استعمال کرتا ہے۔ scanned pages یا ناکافی text density والے صفحات کو Apple Vision OCR کی طرف بھیج دیا جاتا ہے۔ اس کے بعد حاصل شدہ متن کو R میں exact SHA-256 deduplication، passage-containment detection، اور igraph کے ذریعے بنائے گئے global legislative-family graph کے ساتھ منظم کیا جاتا ہے۔
ایک ہی legislative process سے منسلک ہر proposition، amendment، report، opinion، اور substitute کو یکساں family_id دیا جاتا ہے۔ اس identifier کا deterministic hash مکمل family کو training، validation، یا test میں شامل کرتا ہے۔ اس طرح متعلقہ versions evaluation splits کے درمیان leak نہیں ہوتیں۔
partitioning کے بعد Python tokenization stage، صرف training data استعمال کرتے ہوئے 8,192 tokens کی byte-level BPE vocabulary train کرتی ہے۔ یہ Portuguese accents، قانون ساز symbols جیسے §، º، ª، اور Art.، نیز numerals اور دیگر special characters کو support کرتی ہے۔ tokenized data کو 512-token windows کے indexes کے ساتھ binary shards میں لکھا جاتا ہے۔
repository ترتیب دیں
1. project clone کریں
repository کے لیے Python 3.9 یا اس سے نیا ورژن درکار ہے۔ اسے clone کریں اور project directory میں داخل ہوں:
git clone https://github.com/BaruqueRodrigues/llm-legislativo.git
cd llm-legislativo2. virtual environment بنائیں
virtual environment استعمال کرنے سے project dependencies آپ کے باقی system سے الگ رہتی ہیں:
python3 -m venv .venv
source .venv/bin/activate3. package install کریں
repository کو editable mode میں install کریں تاکہ local source میں کی گئی تبدیلیاں فوراً دستیاب ہوں:
pip install -e .repository میں src/legislm/ کے تحت Python package، base اور CPU environments کے لیے lockfiles، R reproducibility metadata، declarative configurations، notebooks، command-line scripts، اور test suite شامل ہیں۔
installation کی توثیق کریں
model inference یا بڑے پیمانے کی training شروع کرنے سے پہلے CPU پر مقامی طور پر automated tests چلائیں:
pytest tests/ -qREADME میں 135 سے زیادہ unit اور contract tests کی اطلاع دی گئی ہے، جو model behavior، persistence، tokenization، اور evaluation کا احاطہ کرتے ہیں۔ کامیاب run اس بات کی جانچ کرتا ہے کہ بنیادی interfaces کام کر رہے ہیں، اور اس کے لیے کئی سو گیگا بائٹ کے مکمل corpus یا A100 GPU کی ضرورت نہیں ہوتی۔
جاری کردہ model لوڈ کریں
تربیت یافتہ model BaruqRodrigues/llm-legislativo repository سے دستیاب ہے۔ درج ذیل مثال weights اور tokenizer download کرتی ہے، architecture کو دوبارہ بناتی ہے، اور safetensors state dictionary لوڈ کرتی ہے۔
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
# Download the model artifacts
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"
)
# Recreate the tokenizer and model configuration
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)
# Load the trained parameters
state_dict = load_file(weights_path)
model.load_state_dict(state_dict)
model.eval()قانون سازی کا متن تیار کریں
ماڈل لوڈ ہونے کے بعد، پرتگالی زبان میں قانون سازی کے ایک پرامپٹ کو انکوڈ کریں اور ماڈل کے متن تیار کرنے والے طریقے کو کال کریں۔ اس مثال میں بل کے مختصر ابتدائی متن کا استعمال کیا گیا ہے اور زیادہ سے زیادہ 64 نئے ٹوکنز کی درخواست کی گئی ہے۔
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()))ماڈل کی زیادہ سے زیادہ سیاقی لمبائی 512 ٹوکنز ہے۔ اس مثال میں temperature=0.7 نمونہ سازی کے تغیر کو کنٹرول کرتا ہے، جبکہ top_k=40 نمونہ سازی کو سب سے زیادہ احتمال رکھنے والے 40 امیدواروں تک محدود کرتا ہے۔ تجربہ کرتے وقت ان اقدار کو تبدیل کریں، لیکن یاد رکھیں کہ تیار کیا گیا متن تصدیق شدہ قانونی مواد کے بجائے شماریاتی نتیجہ ہوتا ہے۔
عوامی ڈیٹاسیٹس کا جائزہ لیں
یہ منصوبہ Hugging Face Hub پر کارپس کے کئی مراحل شائع کرتا ہے:
- corpus-legislativo-pretraining: Parquet فارمیٹ میں ایک متحد اور منتخب ریلیز، جس میں خاندان کے لحاظ سے منظم تربیتی، توثیقی اور آزمائشی حصے شامل ہیں۔
- camara-corpus-raw: ایوانِ نمائندگان کے خام TAR آرکائیوز اور SHA-256 مینی فیسٹس۔
- camara-corpus-text: معیار کی تصدیق کے ساتھ ایوانِ نمائندگان کے ساختہ متنی اقتباسات۔
- senado-corpus-raw: وفاقی سینیٹ کے ذخیرے اور بنیادی ڈیٹا۔
- senado-corpus-text: کالمی Parquet فارمیٹ میں منتخب سینیٹ دستاویزات اور صفحات۔
یہ ریلیزز پائپ لائن کے مختلف مراحل پر منصوبے کا معائنہ ممکن بناتی ہیں، ماخذ آرکائیوز اور اخذ شدہ متن سے لے کر حتمی تربیتی میٹرکس تک۔
تربیت کو دوبارہ تیار یا وسیع کریں
تربیت کا نفاذ src/legislm/training/ میں موجود ہے، جبکہ ٹوکنائزیشن اور شارڈ تیار کرنا src/legislm/tokenization/ کے تحت ہے۔ کنفیگریشنز configs/ میں محفوظ ہیں، اور Google Colab کے ورک فلو notebooks/ اور src/legislm/colab/ میں فراہم کیے گئے ہیں۔
شائع شدہ تربیتی رن نے NVIDIA A100-SXM4-40GB ماحول استعمال کیا اور تقریباً 20 گھنٹوں میں 173,209 آپٹیمائزیشن اپ ڈیٹس مکمل کیں۔ اس نے AdamW، 2,000 مراحل کی لکیری وارم اپ کے ساتھ کاسائن شیڈیولر، مخلوط FP16 پریسیژن، اور Google Drive کے ذریعے چیک پوائنٹ برقرار رکھنے کا استعمال کرتے ہوئے تقریباً 1.25 بلین ٹوکنز پر کارروائی کی۔
قابلِ تکرار تجربات کے لیے ٹوکنائزر کو تربیتی حصے تک محدود رکھیں، خاندان کی بنیاد پر تقسیم کے متعین طریقۂ کار کو برقرار رکھیں، اور ریپوزٹری کے SHA-256 مینی فیسٹس اور چیک پوائنٹ میٹا ڈیٹا کو محفوظ رکھیں۔ ڈیٹا لیکیج سے بچنے اور نتائج کا منصفانہ موازنہ کرنے کے لیے یہ تفصیلات ضروری ہیں۔
نتائج کا درست جائزہ لیں
یہ منصوبہ ایک آزاد آزمائشی حصے پر معیاری byte_nll_v1 تشخیصی پروٹوکول متعین کرتا ہے، جس میں 71,069 دستاویزات اور تقریباً 482 ملین بائٹس شامل ہیں۔ رپورٹ کردہ نتائج میں ہر درست ہدف کے لیے 2.1065 اوسط لاس، 8.2197 ٹوکن پرپلیکسیٹی، اور 65.6509 لفظی پرپلیکسیٹی شامل ہیں۔
معیاری بائٹ سطح کا نتیجہ 0.7297 نیٹس فی بائٹ، یا 1.0528 بِٹس فی بائٹ ہے۔ رپورٹ کردہ اقدار ایوانِ نمائندگان کے مجموعے کے لیے 0.7049 نیٹس فی بائٹ اور سینیٹ کے مجموعے کے لیے 0.8817 نیٹس فی بائٹ ہیں۔ مستقبل کے تجربات کا موازنہ کرتے وقت صرف ٹوکن پرپلیکسیٹی پر انحصار کرنے کے بجائے اسی تقسیم کے منطق اور تشخیصی تعریف کا استعمال کریں۔
ریپوزٹری کی ساخت
اہم ڈائریکٹریز یہ واضح کرتی ہیں کہ نظام میں ترمیم یا اس کا مطالعہ کرتے وقت کہاں دیکھنا چاہیے:
R/: سرکاری ڈیٹا انوینٹری، ڈاؤن لوڈز، اخراج کا انضمام، اور انتخاب۔src/legislm/: ٹوکنائزر، ماڈل، تربیت، Colab استقامت، اور تشخیصی کوڈ۔schemas/: Arrow اور JSON Schema ڈیٹا معاہدے۔configs/: ڈیٹا، انتخاب، تربیت، اور Colab کنفیگریشنز۔notebooks/: ابتدائی اور مکمل Google Colab ورک فلو۔scripts/: قابلِ اجرا کمانڈ لائن انٹری پوائنٹس۔tests/: یونٹ اور معاہداتی ٹیسٹس۔docs/: معیاری دستاویزات، معاہدے، اور رپورٹس۔
اعلیٰ عملی تجاویز
- ٹیسٹ سے آغاز کریں: بڑے ڈیٹاسیٹس ڈاؤن لوڈ کرنے یا GPU وسائل کی درخواست دینے سے پہلے CPU کی توثیق انسٹالیشن کی تصدیق کا کم لاگت طریقہ ہے۔
- خاندانی حدود برقرار رکھیں: اگر آپ ایسے نتائج چاہتے ہیں جو پروجیکٹ سے قابلِ موازنہ ہوں تو دستاویز کی سطح پر کبھی بھی بے ترتیب تقسیم نہ بنائیں، کیونکہ ایک ہی قانون سازی کے عمل کے ورژنز باہم قریبی تعلق رکھ سکتے ہیں۔
- تقسیم کے بعد ٹوکنائزر کو تربیت دیں: توثیقی یا ٹیسٹ ڈیٹا پر ذخیرۂ الفاظ کے اعدادوشمار فِٹ کرنے سے پروجیکٹ کے ڈیٹا لیکیج کنٹرولز متاثر ہوں گے۔
- درست اہداف کا حساب رکھیں: پیڈ شدہ سلسلوں کے استعمال کے وقت مائیکرو بیچز میں کراس اینٹروپی کو تمام درست اہداف کی مجموعی تعداد کے حساب سے جمع کریں۔
- آرٹی فیکٹس کو Git سے باہر رکھیں: ریپوزٹری دانستہ طور پر خام بائنری فائلوں، ماڈل ویٹس اور کیشز کے بجائے میٹا ڈیٹا اور اسکیماؤں کے ورژن رکھتی ہے۔
- معائنے کے لیے عوامی ریلیزز استعمال کریں: Hub پر موجود خام، اخذ شدہ اور مرتب کردہ ڈیٹاسیٹس آپ کو پورا کلیکشن عمل دوبارہ بنائے بغیر پائپ لائن کے انفرادی مراحل کی جانچ کرنے دیتے ہیں۔
- تخلیقات کی محتاط تشریح کریں: تیار کردہ قانون سازی کی زبان بظاہر قابلِ یقین ہو سکتی ہے، جبکہ اس میں من گھڑت حوالہ جات یا دفعات شامل ہوں۔
نتیجہ
LLM Legislativo Brasileiro سرکاری قانون سازی کے آرکائیوز سے ایک مخصوص causal language model تک پہنچنے کا مکمل اور قابلِ آڈٹ طریقہ پیش کرتا ہے۔ پیکیج انسٹال کرنے اور اس کے ٹیسٹ چلانے کے بعد، آپ جاری کردہ ٹوکنائزر اور PyTorch ماڈل لوڈ کر سکتے ہیں، متن تیار کر سکتے ہیں، عوامی ڈیٹاسیٹس کا معائنہ کر سکتے ہیں، اور ریپوزٹری کے ڈیٹا لیکیج سے محفوظ کیوریٹنگ اور تربیتی طریقوں کا مطالعہ کر سکتے ہیں۔ اس کا MIT لائسنس یافتہ کوڈ اور کھلے عام شائع کردہ آرٹی فیکٹس پرتگالی قانون سازی کی زبان کی ماڈلنگ پر تحقیق کے لیے ایک مفید بنیاد فراہم کرتے ہیں۔
