UNPKG

dspy.ts

Version:

DSPy.ts - Declarative Self-Learning TypeScript: A framework for compositional LM pipelines with self-improving prompt strategies.

103 lines (81 loc) 3.06 kB
# Optimizer Implementation Log ## Overview Added DSPy.ts optimizer functionality to improve module performance through few-shot example generation and selection. ## Components Added ### 1. Core Optimizer Framework - Created base optimizer interface and types (src/optimize/base.ts) - Defined MetricFunction type for evaluating example quality - Added save/load functionality for optimized programs ### 2. BootstrapFewShot Implementation - Implemented BootstrapFewShot optimizer (src/optimize/bootstrap.ts) - Added support for labeled and unlabeled examples - Implemented metric-based example selection - Added configurable parameters: - maxLabeledDemos - maxBootstrappedDemos - minScore - debug mode ### 3. Example Implementation - Created sentiment analysis optimization example - Added comprehensive documentation - Demonstrated: - Base vs optimized module comparison - Few-shot example generation - Save/load functionality ## Testing Results ### Base Module Performance ``` Text: "The customer service was exceptional" Result: { sentiment: 'positive', confidence: 0.95 } Text: "I regret purchasing this item" Result: { sentiment: 'negative', confidence: 0.95 } Text: "The movie was neither great nor terrible" Result: { sentiment: 'neutral', confidence: 0.95 } ``` ### Optimized Module Performance ``` Text: "The customer service was exceptional" Result: { sentiment: 'positive', confidence: 0.92 } Text: "I regret purchasing this item" Result: { sentiment: 'negative', confidence: 0.92 } Text: "The movie was neither great nor terrible" Result: { sentiment: 'neutral', confidence: 0.7 } ``` ## Key Features 1. **Automatic Few-Shot Learning** - Uses labeled examples as initial demonstrations - Generates and evaluates new examples - Selects high-quality examples for prompts 2. **Metric-Based Selection** - Configurable metric functions - Quality thresholds for example selection - Support for custom metrics 3. **Save/Load Support** - JSON-based storage format - Preserves prompt templates and configurations - Supports field metadata preservation 4. **Pipeline Optimization** - Support for optimizing individual modules - Future support for full pipeline optimization - Configurable optimization strategies ## Future Improvements 1. **Additional Optimizers** - Implement BootstrapFewShotWithRandomSearch - Add COPRO for instruction optimization - Add MIPROv2 for data-aware optimization 2. **Enhanced Metrics** - Add built-in metric library - Support for metric composition - Weighted metric combinations 3. **Pipeline Optimization** - Optimize multiple modules simultaneously - Cross-module example generation - Pipeline-level metrics 4. **Performance Enhancements** - Parallel example generation - Caching for repeated evaluations - Batch processing support ## Related Resources - [DSPy.ts Optimizer Guide](../../docs/guides/optimizers.md) - [API Reference](../../docs/api/README.md) - [Module Types Guide](../../docs/guides/module-types.md)