初始化项目,由ModelHub XC社区提供模型

Model: nassimjp/Ghanam-7B-Base-Pashto-v0.1
Source: Original Platform
This commit is contained in:
ModelHub XC
2026-07-10 21:11:33 +08:00
commit e4689133bf
7 changed files with 268916 additions and 0 deletions

35
.gitattributes vendored Normal file
View File

@@ -0,0 +1,35 @@
*.7z filter=lfs diff=lfs merge=lfs -text
*.arrow filter=lfs diff=lfs merge=lfs -text
*.bin filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.ckpt filter=lfs diff=lfs merge=lfs -text
*.ftz filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.h5 filter=lfs diff=lfs merge=lfs -text
*.joblib filter=lfs diff=lfs merge=lfs -text
*.lfs.* filter=lfs diff=lfs merge=lfs -text
*.mlmodel filter=lfs diff=lfs merge=lfs -text
*.model filter=lfs diff=lfs merge=lfs -text
*.msgpack filter=lfs diff=lfs merge=lfs -text
*.npy filter=lfs diff=lfs merge=lfs -text
*.npz filter=lfs diff=lfs merge=lfs -text
*.onnx filter=lfs diff=lfs merge=lfs -text
*.ot filter=lfs diff=lfs merge=lfs -text
*.parquet filter=lfs diff=lfs merge=lfs -text
*.pb filter=lfs diff=lfs merge=lfs -text
*.pickle filter=lfs diff=lfs merge=lfs -text
*.pkl filter=lfs diff=lfs merge=lfs -text
*.pt filter=lfs diff=lfs merge=lfs -text
*.pth filter=lfs diff=lfs merge=lfs -text
*.rar filter=lfs diff=lfs merge=lfs -text
*.safetensors filter=lfs diff=lfs merge=lfs -text
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
*.tar.* filter=lfs diff=lfs merge=lfs -text
*.tar filter=lfs diff=lfs merge=lfs -text
*.tflite filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.wasm filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text
*tfevents* filter=lfs diff=lfs merge=lfs -text

349
README.md Normal file
View File

@@ -0,0 +1,349 @@
---
library_name: transformers
tags:
- pashto
- mistral
- 4bit
- nf4
- vocabulary-expansion
- afghanistan
- pashto-language
language:
- ps
- en
license: apache-2.0
pipeline_tag: text-generation
base_model: mistralai/Mistral-7B-v0.1
---
# Ghanam-7B-Base-Pashto-v0.1
## Model Description
**Ghanam-7B-Base-Pashto-v0.1** is an experimental base model that extends the [Mistral-7B-v0.1](https://huggingface.co/mistralai/Mistral-7B-v0.1) vocabulary to include 47 Pashto/Arabic characters. This is the **first stage** of creating a Pashto-capable language model, where the tokenizer has been modified and the embedding layer has been expanded to support Pashto script.
### Key Features
- **Vocabulary Size**: 32,010 tokens (original 32,000 + 47 Pashto characters)
- **Quantization**: 4-bit NF4 with double quantization for efficient inference
- **Memory Efficient**: ~4GB VRAM usage for inference
- **Pashto Script Support**: Now recognizes all Pashto-specific characters including ښ، ږ، څ، ډ، ړ، ځ، ګ، ۍ، ې
### Pashto Characters Added
```
ا ب پ ت ث ج چ ح خ د ذ ر ز ژ س ش ص ض ط ظ ع غ ف ق ک ګ گ ل م ن ڼ و ه ی ډ ړ ځ څ ښ ږ ۍ ې ء آ أ ؤ ئ
```
### ⚠️ Important Note
This model **does not yet understand Pashto language semantics**. It can:
- ✅ Tokenize Pashto text correctly
- ✅ Generate Pashto characters (if prompted in Pashto)
- ❌ Understand Pashto meaning or context
- ❌ Respond meaningfully in Pashto
The model still generates English text as it hasn't been fine-tuned on Pashto data.
## Model Details
### Model Description
This model is the first step in creating a Pashto language model based on Mistral-7B. The vocabulary was expanded using the **Stanford vocabulary expansion method** (mean resizing), where new embeddings were initialized using the mean of existing embeddings to minimize disruption to the model's performance.
- **Developed by:** Nassim JP (Community Project)
- **Model type:** Causal Language Model (Decoder-only Transformer)
- **Language(s):** English (original) + Pashto script support (tokenization only)
- **License:** Apache 2.0
- **Base Model:** [Mistral-7B-v0.1](https://huggingface.co/mistralai/Mistral-7B-v0.1)
- **Quantization:** 4-bit NF4 (BitsAndBytes)
- **Vocabulary Expansion Method:** Stanford mean resizing
### Model Sources
- **Repository:** [Coming Soon]
- **Base Model:** [mistralai/Mistral-7B-v0.1](https://huggingface.co/mistralai/Mistral-7B-v0.1)
## Uses
### Direct Use
You can use this model for:
- **Pashto tokenization** and text preprocessing
- **Inference experiments** with Pashto prompts (though responses will be in English)
- **As a starting point** for fine-tuning on Pashto datasets
- **Research** on vocabulary expansion for low-resource languages
### Downstream Use
This model is intended to be **fine-tuned** on Pashto text data for:
- Pashto language modeling
- Pashto text generation
- Pashto translation tasks
- Pashto question answering
### Out-of-Scope Use
- **Do not use** this model for production Pashto applications without fine-tuning
- **Do not expect** Pashto understanding or generation in Pashto
- **Not suitable** for tasks requiring Pashto semantic comprehension
- **Not tested** for bias, toxicity, or safety in Pashto context
## Bias, Risks, and Limitations
### Technical Limitations
1. **No Pashto Understanding**: The model has only expanded vocabulary but has not learned Pashto semantics
2. **English-Only Knowledge**: All pre-training knowledge remains in English
3. **Potential Performance Degradation**: Vocabulary expansion may slightly impact English performance
4. **Untested on Pashto Tasks**: No evaluation has been conducted on Pashto benchmarks
### Recommendations
- Use this model **only as a foundation** for Pashto fine-tuning
- **Validate carefully** before using in any production environment
- **Expect English responses** when prompting in Pashto (until fine-tuned)
- Consider this a **research checkpoint** rather than a production model
## How to Get Started with the Model
### Loading the Model (4-bit)
```python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
# Model path (local or from Hub)
model_path = "nassimjp/Ghanam-7B-Base-Pashto-v0.1"
# 4-bit quantization config
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_use_double_quant=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16
)
# Load model and tokenizer
model = AutoModelForCausalLM.from_pretrained(
model_path,
quantization_config=bnb_config,
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_path)
# Set padding token (optional)
tokenizer.pad_token = tokenizer.eos_token
# Test tokenization
pashto_text = "پښتونخوا کې ډېر ښکلي ښارونه او ځنګلونه شته"
tokens = tokenizer.encode(pashto_text)
print(f"Tokens: {tokens}")
print(f"Decoded: {tokenizer.decode(tokens)}")
```
### Generating Text
```python
# Prompt in Pashto (model will respond in English)
prompt = "سلام، څنګه یاست؟"
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=50,
temperature=0.7,
do_sample=True,
repetition_penalty=1.2
)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response)
```
### Inspecting New Tokens
```python
# Check if Pashto characters are recognized
pashto_chars = ["ښ", "ږ", "څ", "ډ", "ړ", "ځ", "ګ"]
for char in pashto_chars:
token_id = tokenizer.encode(char)[0]
token_str = tokenizer.decode([token_id])
print(f"Character: {char} -> Token ID: {token_id} -> Decoded: {token_str}")
```
## Training Details
### Training Data
**No training data was used** for this model. The vocabulary was expanded without any fine-tuning on Pashto text. The model retains only the original Mistral-7B pre-training knowledge.
### Training Procedure
#### Vocabulary Expansion Method
The model underwent a **two-stage process**:
**Stage 1: Tokenizer Modification**
- Added 47 Pashto/Arabic characters to the original tokenizer
- Preserved all original tokens (no replacements)
- New vocabulary size: 32,010
**Stage 2: Embedding Resizing**
- Used Stanford vocabulary expansion method (mean resizing)
- New embeddings initialized with the mean of existing embeddings
- Both `lm_head` and embedding layers were resized
- No gradient updates or training performed
#### Training Hyperparameters
- **Quantization**: 4-bit NF4 with double quantization
- **Compute dtype**: bfloat16
- **Method**: Vocabulary expansion only (no fine-tuning)
- **Embedding Initialization**: Mean resizing
## Evaluation
### Testing Data, Factors & Metrics
#### Testing Data
Initial testing was performed using:
- **Pashto sample texts** to verify tokenization
- **English prompts** to ensure base functionality
- **Character-level inspection** to confirm tokenizer additions
#### Metrics
- **Vocabulary Size**: Successfully expanded from 32,000 to 32,010
- **Tokenization Accuracy**: All 47 characters are properly tokenized
- **Generation Quality**: English generation preserved
- **Memory Usage**: ~4GB VRAM for inference
### Results
| Test | Result | Status |
|------|--------|--------|
| Pashto Tokenization | ✅ All 47 characters recognized | PASS |
| English Generation | ✅ Original performance preserved | PASS |
| Pashto Understanding | ❌ No semantic understanding | EXPECTED |
| Pashto Response | ❌ Generates English | EXPECTED |
| Model Loading (4-bit) | ✅ Successfully loads | PASS |
| Memory Efficiency | ✅ ~4GB VRAM | PASS |
## Environmental Impact
Carbon emissions were minimal as this model:
- Did not require any training
- Only performed vocabulary expansion and quantization
- Used a single GPU for a few minutes
- **Hardware Type:** NVIDIA A100 (or similar)
- **Hours used:** < 1 hour
- **Cloud Provider:** N/A (local)
- **Compute Region:** N/A
- **Carbon Emitted:** Negligible
## Technical Specifications
### Model Architecture and Objective
- **Architecture:** Transformer decoder (Mistral-7B)
- **Number of Layers:** 32
- **Hidden Size:** 4096
- **Attention Heads:** 32
- **Intermediate Size:** 14336
- **Vocabulary Size:** 32,010 (expanded from 32,000)
- **Positional Encoding:** Rotary Position Embeddings (RoPE)
### Compute Infrastructure
#### Hardware
- CPU for embedding expansion
- GPU for quantization and inference testing
#### Software
- **Transformers**: v4.31.0+
- **BitsAndBytes**: v0.41.0+
- **PyTorch**: v2.0.0+
- **Accelerate**: v0.20.0+
## Model Card Authors
- **Nassim JP** - Vocabulary expansion and quantization implementation
- Original model: Mistral AI team
## Model Card Contact
For questions or collaboration:
- Hugging Face: [nassimjp](https://huggingface.co/nassimjp)
## Acknowledgments
- Mistral AI for the base model
- Stanford NLP for the vocabulary expansion method
- Hugging Face for the transformers library
- BitsAndBytes team for 4-bit quantization
## Glossary
- **Vocabulary Expansion**: Adding new tokens to a model's tokenizer
- **Mean Resizing**: Initializing new embeddings with the mean of existing embeddings
- **4-bit NF4**: 4-bit Normal Float quantization method
- **Fine-tuning**: Training a pre-trained model on domain-specific data
## Next Steps
To make this model truly Pashto-capable, the next steps include:
1. **Collect Pashto corpus** (books, articles, web text)
2. **Pre-train on Pashto** data (continued pre-training)
3. **Fine-tune** for specific tasks (translation, QA, generation)
4. **Evaluate** on Pashto benchmarks
5. **Deploy** in production environments
## Citation
If you use this model or the vocabulary expansion method, please cite:
```bibtex
@misc{ghanam2024pashto,
author = {Nassim JP},
title = {Ghanam-7B-Base-Pashto: Vocabulary Expansion for Pashto Language},
year = {2024},
publisher = {Hugging Face},
howpublished = {\url{https://huggingface.co/nassimjp/Ghanam-7B-Base-Pashto-v0.1}}
}
```
### Original Mistral-7B Citation
```bibtex
@article{jiang2023mistral,
title={Mistral 7B},
author={Jiang, Albert Q and others},
journal={arXiv preprint arXiv:2310.06825},
year={2023}
}
```
---
## Additional Information
### Usage Tips
1. **Tokenization**: The tokenizer now correctly handles all Pashto characters
2. **Memory**: 4-bit quantization allows running on consumer GPUs with 6-8GB VRAM
3. **Generation**: Use `do_sample=True` and `temperature=0.7` for diverse outputs
4. **Pad Token**: If using batch generation, set `pad_token=tokenizer.eos_token`
### Common Issues
| Issue | Solution |
|-------|----------|
| Tokenizer missing characters | Ensure you're using the correct tokenizer from this repo |
| Memory errors | Reduce `max_new_tokens` or use CPU offloading |
| Poor generation quality | This is expected - the model needs fine-tuning |
| Pashto text displayed as `[UNK]` | Tokenizer hasn't loaded properly - reload from the repo |
---
**Model Status:** 🔬 Research Phase - Pre-fine-tuning checkpoint
**Last Updated:** June 2026
```

30
config.json Normal file
View File

@@ -0,0 +1,30 @@
{
"architectures": [
"MistralForCausalLM"
],
"attention_dropout": 0.0,
"bos_token_id": 1,
"dtype": "bfloat16",
"eos_token_id": 2,
"head_dim": 128,
"hidden_act": "silu",
"hidden_size": 4096,
"initializer_range": 0.02,
"intermediate_size": 14336,
"max_position_embeddings": 32768,
"model_type": "mistral",
"num_attention_heads": 32,
"num_hidden_layers": 32,
"num_key_value_heads": 8,
"pad_token_id": null,
"rms_norm_eps": 1e-05,
"rope_parameters": {
"rope_theta": 10000.0,
"rope_type": "default"
},
"sliding_window": 4096,
"tie_word_embeddings": false,
"transformers_version": "5.5.0",
"use_cache": true,
"vocab_size": 32010
}

6
generation_config.json Normal file
View File

@@ -0,0 +1,6 @@
{
"_from_model_config": true,
"bos_token_id": 1,
"eos_token_id": 2,
"transformers_version": "5.5.0"
}

3
model.safetensors Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8e87f36f81724f01054c7281eac32acff1163ecd3cb7dedcf84bc47032618032
size 14483662064

268476
tokenizer.json Normal file

File diff suppressed because it is too large Load Diff

17
tokenizer_config.json Normal file
View File

@@ -0,0 +1,17 @@
{
"add_prefix_space": null,
"backend": "tokenizers",
"bos_token": "<s>",
"clean_up_tokenization_spaces": false,
"eos_token": "</s>",
"extra_special_tokens": [],
"is_local": true,
"legacy": false,
"model_max_length": 1000000000000000019884624838656,
"pad_token": null,
"sp_model_kwargs": {},
"spaces_between_special_tokens": false,
"tokenizer_class": "TokenizersBackend",
"unk_token": "<unk>",
"use_default_system_prompt": false
}