https://www.boundaryml.com logo
🟔 Issues running GEPA and TUI functionality quest...
# questions
a
I am trying to use the GEPA using
uv run baml-cli optimize --beta
command. But it has been 10 mins past and it stil says it's running 1/20. Need helps with a couple of questions 1. How do I figure out if something got stuck or its still crunching something in the background? Like if it's crunching, would I be able to see the logs somewhere like with DSPy you would observe its log as it goes? 2. Given it's in Beta - Is the TUI supposed to work or it's still under dev? I tried these keys noted at the bottom "left right up down" arrows, "/", "*", and none of them does anything https://cdn.discordapp.com/attachments/1253172394345107466/1475705434349371452/image.png?ex=699e7548&is=699d23c8&hm=cb3294e19dc3d65d87243680c2dea1b401ed9e3b1efeec3f59d3a137f2467962&
g
Hi! Sorry for the delay here! You can run it without the tui using the
--no-tui
flag, and that often gives you more info for debugging. The TUI is very much a work in progress, yes. Looking at your screenshot, I think the "cursor" is focused on the left pane, the list of optimization results, of which there is only one, so up/down won't do anything. '*' is a marker of the Pareto frontier, not a key to press - I see how that's confusing in the info bar! We have a lot to polish here. If you'd like I'm happy to hop on a call and walk through using the optimizer. That's likely to be faster than waiting for us to polish it to the point where all the UI issues are fixed an no walk-throughs are needed. Or I'm also happy to prioritize specific UI fixes - such as cleaning up the info bar and and surfacing more of the underlying errors in the TUI!
a
Hey @greg (BAML) thanks for the response! I have sorted out the issue with --no-ui tag, thanks for that! Tho I also have a few other questions after using it. So yes, would like to take up your offer of hopping on a call. Let me know what time works for you! Any Melbourne time 9am - 9pm works for me unless i have meetings obviously
And forgot to mentioned, I really really appreciate that you incorporated this feature into DSPy. I used DSPy for my LLM pipeline, but it wasn't easy to setup, and BAML is really simple to get started with. Now having optimisation embedded, I don't need to bear with the complexity of DSPy anymore, so thanks for your work on this!
g
Thanks a lot for the feedback @alson! That's terrific to hear! We haven't put a lot of cycles into refining prompt opmitization with users, so both the positive reports and the requests for improvement are super valuable. It's great that you see this as an easier DSPy - that's largely what we were going for šŸ™‚
For a meeting, how about 9 or 10AM your time Friday or Tuesday? (if I've done the conversion right, that would be 2pm/3pm Thursday or Monday for me (I'm in Pacific time)
a
Sounds great @greg (BAML), let me know if next Tue 10 am work for you, otherwise we can do next Friday 10am. We can just jump in the workshops room here. Looking forward to it!
g
@alson Tuesday 10AM Melboune time works for me! Could you please send me a calendar invite at greg@boundaryml.com ?
a
Done! Chat soon!
g
Hi! I’m sorry, I had something come up at home, and had to leave the office early. I can still take our call, it would just need to be voice only since I’m in the road. Would you prefer that, or to reschedule for some time later today or tomorrow?
a
Allg @greg (BAML) , thanks for letting me know. I have pushed out the meeting by 3.5 hrs, let me know if that's not the right time for you, happy to reschedule it whenever.
Hey Greg, thanks for the call, it was really helpful! I think I confused myself a little bit with the FN and FP thing at the end, as that only applies to classification task, just want to clairfy so you are not confused by me. In general, the jsonl that constructs the test set should contain only the positive/correct examples. Below is the actual use case we use dspy for in prod, which aims to parse the customer product query into a schema: {"query": "organic bananas 1kg", "entity": "bananas", "attributes": ["organic"], "brand": "", "pack_count": "", "pack_size": "", "pack_type": "", "measure_value": "1", "measure_unit": "kg", "specials": "NONE"}
query
is the "input",
the rest
are the "expected output" that the LLM should produces. We probably should do a nested structured with input and output field, but this is what we have currently.
So what we do is to have a bigger LLM as a judge in production to evaluate if the output parse from the smaller LLM is correct with random sampled (cost concern). If any of the value is not correct, the bigger LLM will suggest the correct values and append to our curated test set. Then after a while (haven't happened), we as developer should retrain the smaller LLM using GEPA and the augmented test set. The hope is that the bigger LLM can make the smaller LLM better overtime purely by prompt optimisation. Like the student-teacher finetuning for LLM, but only for prompt not weight. In an ideal world the re-train could be automated with some MLOps, but not happening yet. Either case having the testset specified as jsonl or other data format would be benefitial. So with this setup, all the jsonl data point would be loaded automatically into baml test case with something like
@@check this.body==exoected_output
. I am not sure if having custom check/assert condition supported by jsonl could add much benefit, probably more of a could-have feature, at least in my use cases so far. Hope this helps!
g
Thanks so much for your time, Alson, it was extremely useful feedback! I'm working on surfacing errors in the TUI now. Vaibhav was so excited to hear that you found us via AI that Works! Would you be interested in coming on for an episode to chat about your workflow, or what you'd like from BAML, or anything like that? They record weekly - on Tuesdays 10AM Pacific I think.
a
Hi Greg, sorry for the late response - I have been down for a week of cold. Again, thanks for your work on this! I wish I could join the live episode as I really like watching them, but the time is really not easy for me as it's 5am on my end 😢 I am keen to share my experience with BAML as I really think people building LLM workflows would benefit a lot from it (at least in the dev phase). Do you think doing a post or like a video demo could work instead? To be honest, as much as I like it as a really handy developer tool, I am still an early user and haven't tested it with prod project yet. I would love to test it out for my next project that I am building for my company, and I am sure I would have a lot to share to the community by then! The prod project is aim to finish around Jun/Jul, and typically we would do a KT internally, which I would introduce BAML. Then I can do another one with you guys in whatever form suits best.
Also https://github.com/gepa-ai/gepa?tab=readme-ov-file#optimize_anything-beyond-prompts recently has evolved from prompt optimisation to optimise any text artifact (code, config, etc). This kind of tie to what I was asking about the possibility to expand into optimising the structured output signiture definition. Just FYI in case you are considering implementing that feature. They are framework agnostic as well, which means is possible to make it as an optional baml dependency and directly call it out of box for baml app.