top | item 42346137

(no title)

aaronvg | 1 year ago

I found it interesting how DSPy created the Signatures concept: https://dspy.ai/learn/programming/signatures/

We took this kind of concept all the way to making a DSL called BAML, where prompts look like literal functions, with input and output types.

Playground link here https://www.promptfiddle.com/

https://github.com/BoundaryML/baml

(tried pasting code but the formatting is completely off here, sorry).

We think we could run some optimizers on this as well in the future! We'll definitely use DSPy as inspiration!

discuss

order

vergessenmir|1 year ago

Wouldn't try and convince the nay sayers. I have a few comments (or opinions rather) This coming from a recent dspy user hitting its pain points.

- The GitHub page is very busy

- A clear example should come up early on the page. It's only when I got to the fiddle I could see a motivating example i.e the extractions, functions and tests.

- Then a section for running tests/evaluations

-Then deployment or run with/without the baml cli

- I do wonder if all the functions have to be so tightly coupled with the model. In dspy my modules are model agnostic and I can evaluate behaviour across different models. It's not so clear how to do this

dcreater|1 year ago

Good dx? BAML looks even worse than the current API call based paradigm.

Even your toy examples look bad - wouldn't want to see what an actual program would look like.

Hopefully this, dspy and the like that have poor design, inelegant won't become common standards

aaronvg|1 year ago

How do you organize your prompts? Do you use a templating language like jinja? How complex are your prompts? Do you have any open source examples?

I’m genuinely curious since if we can convince someone like you that BAML is amazing we’re on a good track.

We’ve helped people remove really ugly concatenated strings or raw yaml files with json schemas just by using our prompt format (which uses jinja2!)

vergessenmir|1 year ago

Wouldn't try and convince the nay sayers. I have a few comments (or opinions rather) This coming from a recent dspy user hitting its pain points.

- The GitHub page is very busy

- A clear example should come up early on the page. It's only when I got to the fiddle I could see a motivating example i.e the extractions, functions and tests.

- Then a section for running tests/evaluations

-Then deployment or run with/without the baml cli

- I do wonder if all the functions have to be so tightly coupled with the model. In dspy my modules are model agnostic and I can evaluate behaviour across different models.

aaronvg|1 year ago

Thanks, we also do support swapping models at runtime!

Will incorporate this feedback.