|
|
---
|
|
|
license: mit
|
|
|
base_model: microsoft/Phi-3-mini-4k-instruct
|
|
|
tags:
|
|
|
- phi-3
|
|
|
- lora
|
|
|
- payments
|
|
|
- finance
|
|
|
- natural-language-generation
|
|
|
- finetuned
|
|
|
datasets:
|
|
|
- custom
|
|
|
language:
|
|
|
- en
|
|
|
pipeline_tag: text-generation
|
|
|
library_name: transformers
|
|
|
---
|
|
|
|
|
|
# Phi-3 Mini Fine-tuned for Payments Domain
|
|
|
|
|
|
This is a fine-tuned version of [Microsoft's Phi-3-Mini-4k-Instruct](microsoft/Phi-3-mini-4k-instruct) model, adapted for generating natural language descriptions of payment transactions using LoRA (Low-Rank Adaptation).
|
|
|
|
|
|
## Model Description
|
|
|
|
|
|
This model converts structured payment transaction data into clear, customer-friendly language. It was fine-tuned using LoRA on a synthetic payments dataset covering various transaction types.
|
|
|
|
|
|
### Training Data
|
|
|
|
|
|
The model was trained on a dataset of 500+ synthetic payment transactions including:
|
|
|
- Standard payments (ACH, wire transfer, credit/debit card)
|
|
|
- Refunds (full and partial)
|
|
|
- Chargebacks
|
|
|
- Failed/declined transactions
|
|
|
- International transfers with currency conversion
|
|
|
- Transaction fees
|
|
|
- Recurring payments/subscriptions
|
|
|
|
|
|
### Example Usage
|
|
|
|
|
|
```python
|
|
|
from transformers import AutoModelForCausalLM, AutoTokenizer
|
|
|
from peft import PeftModel
|
|
|
|
|
|
# Load base model
|
|
|
base_model = "microsoft/Phi-3-mini-4k-instruct"
|
|
|
model = AutoModelForCausalLM.from_pretrained(
|
|
|
base_model,
|
|
|
torch_dtype="auto",
|
|
|
device_map="auto"
|
|
|
)
|
|
|
|
|
|
# Load LoRA adapters
|
|
|
model = PeftModel.from_pretrained(model, "aamanlamba/phi3-payments-finetune")
|
|
|
tokenizer = AutoTokenizer.from_pretrained(base_model)
|
|
|
|
|
|
# Generate description
|
|
|
prompt = """<|system|>
|
|
|
You are a financial services assistant that explains payment transactions in clear, customer-friendly language.<|end|>
|
|
|
<|user|>
|
|
|
Convert the following structured payment information into a natural explanation:
|
|
|
|
|
|
inform(transaction_type[payment], amount[1500.00], currency[USD], sender[Acme Corp], receiver[Global Supplies Inc], status[completed], method[ACH], date[2024-10-27])<|end|>
|
|
|
<|assistant|>
|
|
|
"""
|
|
|
|
|
|
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
|
|
|
outputs = model.generate(**inputs, max_new_tokens=150, temperature=0.7)
|
|
|
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
|
|
|
print(response)
|
|
|
```
|
|
|
|
|
|
Expected output:
|
|
|
```
|
|
|
Your ACH payment of $1,500.00 to Global Supplies Inc was successfully completed on October 27, 2024.
|
|
|
```
|
|
|
|
|
|
## Training Details
|
|
|
|
|
|
### Training Configuration
|
|
|
|
|
|
- **Base Model**: microsoft/Phi-3-mini-4k-instruct
|
|
|
- **Fine-tuning Method**: LoRA (Low-Rank Adaptation)
|
|
|
- **LoRA Rank**: 16
|
|
|
- **LoRA Alpha**: 32
|
|
|
- **Target Modules**: q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj
|
|
|
- **Quantization**: 8-bit (training), float16 (inference)
|
|
|
- **Training Epochs**: 3
|
|
|
- **Learning Rate**: 2e-4
|
|
|
- **Batch Size**: 1 (with 8 gradient accumulation steps)
|
|
|
- **Hardware**: NVIDIA RTX 3060 (12GB VRAM)
|
|
|
- **Training Time**: ~35-45 minutes
|
|
|
|
|
|
### Training Loss
|
|
|
|
|
|
- Initial Loss: ~3.5-4.0
|
|
|
- Final Loss: ~0.9-1.2
|
|
|
- Validation Loss: ~1.0-1.3
|
|
|
|
|
|
## Model Size
|
|
|
|
|
|
- **LoRA Adapter Size**: ~15MB (only the adapter weights, not the full model)
|
|
|
- **Full Model Size**: ~7GB (when combined with base model)
|
|
|
|
|
|
## Supported Transaction Types
|
|
|
|
|
|
1. **Payments**: Standard payment transactions
|
|
|
2. **Refunds**: Full and partial refunds
|
|
|
3. **Chargebacks**: Dispute and chargeback processing
|
|
|
4. **Failed Payments**: Declined or failed transactions with reasons
|
|
|
5. **International Transfers**: Cross-border payments with currency conversion
|
|
|
6. **Fees**: Transaction and processing fees
|
|
|
7. **Recurring Payments**: Subscriptions and scheduled payments
|
|
|
8. **Reversals**: Payment reversals and adjustments
|
|
|
|
|
|
## Limitations
|
|
|
|
|
|
- Trained on synthetic data - may require additional fine-tuning for production use
|
|
|
- Optimized for English language only
|
|
|
- Best performance on transaction patterns similar to training data
|
|
|
- Not suitable for handling real financial transactions without human oversight
|
|
|
- Should not be used as the sole system for financial communication
|
|
|
|
|
|
## Ethical Considerations
|
|
|
|
|
|
- This model was trained on synthetic, anonymized data only
|
|
|
- Does not contain any real customer PII or transaction data
|
|
|
- Should be validated for accuracy before production deployment
|
|
|
- Implement human review for customer-facing financial communications
|
|
|
- Consider regulatory compliance (PCI-DSS, GDPR, etc.) in your jurisdiction
|
|
|
|
|
|
## Intended Use
|
|
|
|
|
|
**Primary Use Cases:**
|
|
|
- Generating transaction descriptions for internal systems
|
|
|
- Creating customer-friendly payment notifications
|
|
|
- Automating payment communication drafts (with human review)
|
|
|
- Training and demonstration purposes
|
|
|
- Research in financial NLP
|
|
|
|
|
|
**Out of Scope:**
|
|
|
- Direct customer communication without review
|
|
|
- Real-time transaction processing without validation
|
|
|
- Compliance-critical communications
|
|
|
- Medical or legal payment descriptions
|
|
|
|
|
|
## How to Cite
|
|
|
|
|
|
If you use this model in your research or application, please cite:
|
|
|
|
|
|
```bibtex
|
|
|
@misc{phi3-payments-finetuned,
|
|
|
author = {aamanlamba},
|
|
|
title = {Phi-3 Mini Fine-tuned for Payments Domain},
|
|
|
year = {2024},
|
|
|
publisher = {HuggingFace},
|
|
|
howpublished = {\url{https://huggingface.co/aamanlamba/phi3-payments-finetune}}
|
|
|
}
|
|
|
```
|
|
|
|
|
|
## Training Code
|
|
|
|
|
|
The complete training code and dataset generation scripts are available on GitHub:
|
|
|
- **Repository**: [github.com/aamanlamba/phi3-tune-payments](https://github.com/aamanlamba/phi3-tune-payments)
|
|
|
- **Includes**: Dataset generator, training scripts, testing utilities, and deployment guides
|
|
|
|
|
|
## Acknowledgements
|
|
|
|
|
|
- Base model: [Microsoft Phi-3-Mini-4k-Instruct](microsoft/Phi-3-mini-4k-instruct)
|
|
|
- Fine-tuning method: [LoRA: Low-Rank Adaptation of Large Language Models](https://arxiv.org/abs/2106.09685)
|
|
|
- Training framework: HuggingFace Transformers + PEFT
|
|
|
- Inspired by: [NVIDIA AI Workbench Phi-3 Fine-tuning Example](https://github.com/NVIDIA/workbench-example-phi3-finetune)
|
|
|
|
|
|
## License
|
|
|
|
|
|
This model is released under the MIT license, compatible with the base Phi-3 model license.
|
|
|
|
|
|
## Contact
|
|
|
|
|
|
For questions or issues, please open an issue on the model repository or contact the author.
|
|
|
|
|
|
---
|
|
|
|
|
|
**Note**: This is a demonstration model. Always validate outputs for accuracy before use in production financial systems.
|
|
|
|