Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
okhat authored Jan 22, 2024
1 parent d0cd9cd commit a02f3e3
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

**DSPy** is a framework for developing and optimizing LM pipelines for complex tasks. To use LMs to build a complex system without DSPy, you generally have to: (1) break the problem down into steps, (2) prompt your LM well for each step, (3) generate synthetic data to tune each step, and (4) use that data to finetune smaller LMs to cut costs.

Composing these into the right multi-step pipelines is a hard, messy process. **DSPy** creates a systematic space of modular and trainable pieces, instead of hacky 'prompt engineering' or one-off pipeline tuning things you may do. To do that, **DSPy** separates the flow of your program (`modules`) from the parameters (LM prompts and weights) of each step, which DSPy `optimizers` can craft and tune if you give them an objective.
Composing these into the right multi-step pipelines is a hard, messy process. **DSPy** creates a systematic space of modular and trainable pieces, instead of hacky 'prompt engineering' or one-off pipeline tuning. To do that, **DSPy** separates the flow of your program (`modules`) from the parameters (LM prompts and weights) of each step. DSPy introduces new `optimizers`, which are algorithms that can craft and tune the parameters of your pipeline, given a `metric` you want to maximize.

Using **DSPy** is an iterative process. You first define your task and the metrics you want to maximize, and prepare a few example inputs — typically without labels (or only with labels for the final outputs, if your metric requires them). Then, you build your pipeline by selecting built-in layers (`modules`) to use, giving each layer a `signature` (input/output spec), and then calling your modules freely in your Python code. Lastly, you use a DSPy `optimizer` to compile your code into high-quality instructions, automatic few-shot examples, or updated LM weights for your LM.

Expand Down

0 comments on commit a02f3e3

Please sign in to comment.