kerdosai / examples.py
bhaskarvilles's picture
Added Locally
3df89a1 verified
"""
Example usage of KerdosAgent for training and inference.
"""
from kerdosai.agent import KerdosAgent
import logging
# Set up logging
logging.basicConfig(level=logging.INFO)
def example_basic_usage():
"""Basic usage example."""
print("=" * 50)
print("Example 1: Basic Initialization and Generation")
print("=" * 50)
# Initialize agent with a small model for testing
agent = KerdosAgent(
base_model="gpt2",
training_data=None # No training data for inference only
)
# Get model information
info = agent.get_model_info()
print(f"\nModel Info:")
print(f" Total parameters: {info['total_parameters']:,}")
print(f" Trainable parameters: {info['trainable_parameters']:,}")
print(f" Device: {info['device']}")
# Generate text
prompt = "The future of artificial intelligence is"
print(f"\nPrompt: {prompt}")
generated = agent.generate(
prompt=prompt,
max_length=50,
temperature=0.7
)
print(f"Generated: {generated}")
def example_with_quantization():
"""Example with 4-bit quantization."""
print("\n" + "=" * 50)
print("Example 2: Initialization with Quantization")
print("=" * 50)
# Initialize with 4-bit quantization for memory efficiency
agent = KerdosAgent(
base_model="gpt2",
training_data=None,
use_4bit=True
)
info = agent.get_model_info()
print(f"\nModel loaded with quantization")
print(f" Model dtype: {info['model_dtype']}")
print(f" Device: {info['device']}")
def example_batch_inference():
"""Example of batch inference."""
print("\n" + "=" * 50)
print("Example 3: Batch Inference")
print("=" * 50)
agent = KerdosAgent(
base_model="gpt2",
training_data=None
)
# Multiple prompts
prompts = [
"Once upon a time",
"In the year 2050",
"The secret to happiness is"
]
print("\nRunning batch inference...")
results = agent.inference(
texts=prompts,
batch_size=2,
max_length=30
)
print("\nResults:")
for prompt, result in zip(prompts, results):
print(f" Prompt: {prompt}")
print(f" Result: {result}\n")
def example_training_preparation():
"""Example of preparing model for training with LoRA."""
print("\n" + "=" * 50)
print("Example 4: Prepare Model for Training with LoRA")
print("=" * 50)
agent = KerdosAgent(
base_model="gpt2",
training_data="data/sample_data.csv" # You would need actual data
)
print("\nBefore LoRA:")
info_before = agent.get_model_info()
print(f" Trainable parameters: {info_before['trainable_parameters']:,}")
print(f" Trainable %: {info_before['trainable_percentage']:.2f}%")
# Prepare for training with LoRA
print("\nApplying LoRA...")
agent.prepare_for_training(
use_lora=True,
lora_r=8,
lora_alpha=32,
lora_dropout=0.1
)
print("\nAfter LoRA:")
info_after = agent.get_model_info()
print(f" Trainable parameters: {info_after['trainable_parameters']:,}")
print(f" Trainable %: {info_after['trainable_percentage']:.2f}%")
def example_save_and_load():
"""Example of saving and loading a model."""
print("\n" + "=" * 50)
print("Example 5: Save and Load Model")
print("=" * 50)
# Initialize and save
print("\nInitializing model...")
agent = KerdosAgent(
base_model="gpt2",
training_data=None
)
# Save model
output_dir = "models/example_model"
print(f"\nSaving model to {output_dir}...")
agent.save(output_dir)
print("Model saved successfully!")
# Load model
print(f"\nLoading model from {output_dir}...")
loaded_agent = KerdosAgent.load(output_dir)
print("Model loaded successfully!")
# Test loaded model
result = loaded_agent.generate("Hello", max_length=20)
print(f"\nGeneration test: {result}")
if __name__ == "__main__":
print("\n" + "=" * 50)
print("KerdosAgent Usage Examples")
print("=" * 50)
try:
# Run examples
example_basic_usage()
# Uncomment to run other examples
# example_with_quantization()
# example_batch_inference()
# example_training_preparation()
# example_save_and_load()
print("\n" + "=" * 50)
print("Examples completed successfully!")
print("=" * 50)
except Exception as e:
print(f"\nError running examples: {str(e)}")
import traceback
traceback.print_exc()