Optimizing Multimodal Brokers
Multimodal AI brokers, these that may course of textual content and pictures (or different media), are quickly coming into real-world domains like autonomous driving, healthcare, and robotics. In these settings, we’ve historically used imaginative and prescient fashions like CNNs; within the post-GPT period, we are able to use imaginative and prescient and multimodal language fashions that leverage human directions within the type of prompts, slightly than task-oriented, extremely particular imaginative and prescient fashions.
Nevertheless, guaranteeing good outcomes from the fashions requires efficient directions, or, extra generally, immediate engineering. Current immediate engineering strategies rely closely on trial and error, and that is usually exacerbated by the complexity and better value of tokens when working throughout non-text modalities equivalent to photographs. Automated immediate optimization is a current development within the subject that systematically tunes prompts to supply extra correct, constant outputs.
For instance, a self-driving automobile notion system would possibly use a vision-language mannequin to reply questions on highway photographs. A poorly phrased immediate can result in misunderstandings or errors with critical penalties. As a substitute of fine-tuning and reinforcement studying, we are able to use one other multimodal mannequin with reasoning capabilities to be taught and adapt its prompts.

Though these computerized strategies could be utilized to text-based brokers, they’re usually not effectively documented for extra advanced, real-world functions past a primary toy dataset, equivalent to handwriting or picture classification. To finest reveal how these ideas work in a extra advanced, dynamic, and data-intensive setting, we’ll stroll by means of an instance utilizing a self-driving automobile agent.
What Is Agent Optimization?
Agent optimization is a part of computerized immediate engineering, nevertheless it includes working with numerous elements of the agent, equivalent to multi-prompts, software calling, RAG, agent structure, and numerous modalities. There are a selection of analysis tasks and libraries, equivalent to GEPA; nonetheless, many of those instruments don’t present end-to-end assist for tracing, evaluating, and managing datasets, equivalent to photographs.
For this walk-through, we shall be utilizing the Opik Agent Optimizer SDK (opik-optimizer), which is an open-sourced agent optimization toolkit that automates this course of utilizing LLMs internally, together with optimization algorithms like GEPA and quite a lot of their very own, equivalent to HRPO, for numerous use instances, so you may iteratively enhance prompts with out handbook trial-and-error.
How Can LLMs Optimize Prompts?
Basically, an LLM can “act as” a immediate engineer and rewrite a given immediate. We begin by taking the standard strategy, as a immediate engineer would with trial and error, and ask a small agent to evaluate its work throughout a couple of examples, repair its errors, and create a brand new immediate.
Meta Prompting is a basic instance of utilizing chain-of-thought reasoning (CoT), equivalent to “clarify the explanation why you gave me this immediate”, throughout its new immediate era course of, and we hold iterating on this throughout a number of rounds of immediate era. Under is an instance of an LLM-based meta-prompting optimizer adjusting the immediate and producing new candidates.

Within the toolkit, there’s a meta-prompt-based optimizer referred to as metaprompter, and we are able to reveal how the optimization works:
- It begins with an preliminary ChatPrompt, an OpenAI-style chat immediate object with system and person prompts,
- a dataset (of enter and reply examples),
- and a metric (reward sign) to optimize in opposition to, which could be an LLMaaJ (LLM-as-a-judge) and even easier heuristic metrics, equivalent to equal comparability of anticipated outputs within the dataset to outputs from the mannequin.
Opik then makes use of numerous algorithms, together with LLMs, to iteratively mutate the immediate and consider efficiency, robotically monitoring outcomes. Basically appearing as our personal very machine-driven immediate engineer!
Getting Began
On this walkthrough, we wish to use a small dataset of self-driving automobile dashcam photographs and tune the prompts utilizing computerized immediate optimization with a multi-modal agent that can detect hazards.
We have to arrange the environment and set up the toolkit to get going. First, you will want an open-source Opik occasion, both within the cloud or regionally, to log traces, handle datasets, and retailer optimization outcomes. You may go to the repository and run the Docker begin command to run the Opik platform or arrange a free account on their web site.
As soon as arrange, you’ll want Python (3.10 or larger) and some libraries. First, set up the opik-optimizer bundle; it should additionally set up the opik core bundle, which handles datasets and analysis.
Set up and configure utilizing uv (advisable):
# set up with venv and py model
uv venv .venv --python 3.11
# set up optimizer bundle
uv pip set up opik-optimizer
# post-install configure SDK
opik configure
Or alternatively, set up and configure utilizing pip:
# Setup venv
python -m venv .venv
# load venv
supply .venv/bin/activate
# set up optimizer bundle
pip set up opik-optimizer
# post-install configure SDK
opik configure
You’ll additionally want API keys for any LLM fashions you propose to make use of. The SDK makes use of LiteLLM, so you may combine suppliers, see right here for a full record of fashions, and skim their docs for different integrations like ollama and vLLM if you wish to run fashions regionally.
In our instance, we shall be utilizing OpenAI fashions, so it is advisable set your keys in your setting. You modify this step as wanted for loading the API keys in your mannequin:
export OPENAI_API_KEY="sk-…"
Now that we’ve our Opik setting arrange and our keys configured to entry LLM fashions for optimization and analysis, we are able to get to work on our datasets to tune our agent.
Working with Datasets To Tune the Agent
Earlier than we are able to begin with prompts and fashions, we’d like a dataset. To tune an AI agent (and even simply to optimize a easy immediate), we’d like examples that function our “preferences” for the outcomes we wish to obtain. You’ll usually have a “golden” dataset, which, in your AI agent, would come with instance inputs and output pairs that you simply preserve because the prime examples and consider your agent in opposition to.
For this instance challenge, we’ll use an off-the-shelf dataset for self-driving vehicles that’s already arrange as a demo dataset within the optimizer SDK. The dataset accommodates dashcam photographs and human-labeled hazards. Our objective is to make use of a really primary immediate and have the optimizer “uncover” the optimum immediate by reviewing the photographs and the take a look at outputs it should run.
The dataset, DHPR (Driving Hazard Prediction and Reasoning), is accessible on Hugging Face and is already mapped within the SDK because the driving_hazard dataset (this dataset is launched underneath BSD 3-Clause license). The inner mapping within the SDK handles Hugging Face conversions, picture resizing, and compression, together with PNG-to-JPEG conversions and conversions to an Opik-compatible dataset. The SDK contains helper utilities in case you want to use your personal multimodal dataset.

The DHPR dataset features a few fields that we’ll use to floor our agent’s habits in opposition to human preferences throughout our optimization course of. Here’s a breakdown of what’s within the dataset:
query, which they requested the human annotator, “Primarily based on my dashcam picture, what’s the potential hazard?”hazard, which is the response from the human labelingbounding_boxthat has the hazard marked and could be overlaid on the pictureplausible_speedis the annotator’s guestimate of the automobile’s pace from the predefined set [10, 30, 50+].image_sourcemetadata on the place the supply photographs had been recorded.
Now, let’s begin with a brand new Python file, optimize_multimodal.py, and begin with our dataset to coach and validate our optimization course of with:
from opik_optimizer.datasets import driving_hazard
dataset = driving_hazard(rely=20)
validation_dataset = driving_hazard(rely=5)
This code, when executed, will make sure the Hugging Face dataset is downloaded and added to your Opik platform UI as a dataset we are able to optimize or take a look at with. We’ll then cross the variables dataset and validation_dataset to the optimization steps within the code afterward. You’ll word we’re setting the rely values to low numbers, 20 and 5, to load a small pattern as wanted to keep away from processing your entire dataset for our walk-through, which might be resource-intensive.
If you run a full optimization course of in a reside setting, you must intention to make use of as a lot of the dataset as potential. It’s good observe to begin small and scale up, as diagnosing long-running optimizations could be problematic and resource-intensive.
We additionally configured the non-compulsory validation_dataset, which is used to check our optimization initially and finish on a hold-out set to make sure the recorded enchancment is validated on unseen information. Out of the field, the optimizers’ pre-configured datasets all include pre-set splits, which you’ll be able to entry from the break up argument. See examples as follows:
# instance a) driving_hazard pre-configured splits
from opik_optimizer.datasets import driving_hazard
trainset = driving_hazard(break up=practice)
valset = driving_hazard(break up=validation)
testset = driving_hazard(break up=take a look at)
# instance b) gsm84k math dataset pre-configured splits
from opik_optimizer.datasets import gsm8k
trainset = gsm8k(break up=practice)
valset = gsm8k(break up=validation)
testset = gsm8k(break up=take a look at)
The splits additionally guarantee there’s no overlapping information, because the dataset is shuffled within the right order and break up into 3 elements. We keep away from utilizing these splits to keep away from having to make use of very giant datasets and runs once we are getting began.
Let’s go forward and run our code optimize_multimodal.py with simply the driving hazard dataset. The dataset shall be loaded into Opik and could be seen in our dashboard (determine 4 beneath) underneath “driving_hazard_train_20”.

With our dataset loaded in Opik we are able to additionally load the dataset within the Opik playground, which is a pleasant and simple solution to see how numerous prompts would behave and take a look at them in opposition to a easy immediate equivalent to “Determine the hazards on this picture.”

As you may see from the instance (determine 4 above), we are able to use the playground to check prompts for our agent fairly rapidly. That is in all probability the standard course of we might use for handbook immediate engineering: adjusting the immediate in a playground-like setting and simulating how numerous modifications to the immediate would have an effect on the mannequin’s outputs.
For some eventualities, this might be adequate with some automated scoring and utilizing instinct to regulate prompts, and you’ll see how bringing the present immediate optimization course of right into a extra visible and systematic course of, how delicate modifications can simply be examined in opposition to our golden dataset (our pattern of 20 for now)
Defining Analysis Metrics To Optimize With
We’ll proceed to outline our analysis metrics designed to let the optimizer know what modifications are working and which aren’t. We’d like a solution to sign the optimizer about what’s working and what’s failing. For this, we’ll use an analysis metric because the “reward”; it will likely be a easy rating that the optimizer makes use of to determine which immediate modifications to make.
These analysis metrics could be easy (e.g., Equals) or extra advanced (e.g., LLM-as-a-judge). Since Opik is a totally open-source analysis suite, you should utilize plenty of numerous metrics, which you’ll be able to discover right here to search out out extra.
Logically, you’ll suppose that once we evaluate the dataset floor fact (a) to the mannequin output (b), we might do a easy equals comparability metric like is (a == b), which can return a boolean true or false. Utilizing a direct comparability metric could be dangerous to the optimizer, because it makes the method a lot more durable and should not yield the precise reply proper from the beginning (or all through the optimization course of).
One of many human-annotated examples from the dataset we are attempting to get the optimizer to match, you may see how getting the LLM to create precisely the identical output blindly might be difficult:
Entity #1 brakes his automobile in entrance of Entity #2. Seeing that Entity #2 additionally pulled his brakes. At a pace of 45 km/h, I am unable to cease my automobile in time and hit Entity #2.
To assist the hill-climbing wanted for the optimizer, we’ll use a comparability metric that gives an approximation rating as a share on a scale of 0.0 to 1.0. For this state of affairs, we’ll use the Levenshtein ratio, a easy math-based measure of how carefully the characters and phrases within the output match these within the floor fact dataset. With our closeness to instance metric, LR (Levenshtein ratio) a physique of textual content with a couple of characters off might yield a rating for instance of 98% (0.98), as they’re very comparable (determine 6 beneath).

In our Python script, we outline this tradition metric as a operate alongside the enter and output variables from our dataset. In observe we’ll outline the mapping between the dataset hazard and the output llm_output, in addition to the scoring operate to be handed to the optimizer. There are extra metric examples within the documentation, however for now, we’ll use the next setup in our code after the dataset creation:
from opik.analysis.metrics import LevenshteinRatio
from opik.analysis.metrics.score_result import ScoreResult
def levenshtein_ratio(
dataset_item: dict[str, Any],
llm_output: str
) -> ScoreResult:
metric = LevenshteinRatio()
metric_score = metric.rating(
reference=dataset_item["hazard"], output=llm_output
)
return ScoreResult(
worth=metric_score.worth,
title=metric_score.title,
purpose=f"Levenshtein ratio between `{dataset_item['hazard']}` and `{llm_output}` is `{metric_score.worth}`.",
)
Setting Up Our Base Agent & Immediate
Right here we’re configuring the agent’s place to begin. On this case, we assume we have already got an agent and a handwritten immediate. If you happen to had been optimizing your personal agent, you’ll change these placeholders. We begin by importing the ChatPrompt class, which permits us to configure the agent as a easy chat immediate. The optimizer SDK handles inputs by way of the ChatPrompt, and you’ll lengthen this with software/operate calling and extra multi-prompt/agent eventualities, additionally in your personal use instances.
from opik_optimizer import ChatPrompt
# Outline the immediate to optimize
system_prompt = """You might be an professional driving security assistant
specialised in hazard detection. Your activity is to research dashcam
photographs and establish potential hazards {that a} driver ought to pay attention to.
For every picture:
1. Rigorously look at the visible scene
2. Determine any potential hazards (pedestrians, autos,
highway circumstances, obstacles, and many others.)
3. Assess the urgency and severity of every hazard
4. Present a transparent, particular description of the hazard
Be exact and actionable in your hazard descriptions.
Concentrate on safety-critical data."""
# Map into an OpenAI-style chat immediate object
immediate = ChatPrompt(
messages=[
{"role": "system", "content": system_prompt},
{
"role": "user",
"content": [
{"type": "text", "text": "{question}"},
{
"type": "image_url",
"image_url": {
"url": "{image}",
},
},
],
},
],
)
In our instance, we’ve a system immediate and a person immediate, primarily based on the query {query}and the picture {picture} from the dataset we created earlier. We’re going to attempt to optimize the system immediate in order that the enter modifications primarily based on every picture (as we noticed within the playground earlier). The fields within the parentheses, like {data_field}, are columns in our dataset that the SDK will robotically map and likewise convert for issues like multi-modal photographs.
Loading and Wiring the Optimizers
The toolkit comes with a variety of optimizers, from easy meta-prompting, which makes use of chain-of-thought reasoning to replace prompts, to GEPA and extra superior reflective optimizers. On the time of this walk-through, the hierarchical reflective optimizer (HRPO) is the one we’ll use for instance functions, because it’s suited to advanced and ambiguous duties.
The HRPO optimization algorithm (determine 7 beneath) makes use of hierarchical root trigger evaluation to establish and deal with particular failure modes in your prompts. It analyzes analysis outcomes, identifies patterns in failures, and generates focused enhancements to systematically deal with every failure mode.

Up to now in our challenge, we’ve arrange the bottom dataset, analysis metric, and immediate for our agent, however haven’t wired this as much as any optimizers. Let’s go forward and wire in HRPO into our challenge. We have to load our mannequin and configure any parameters, such because the mannequin we wish to use to run the optimizer on:
from opik_optimizer import HRPO
# Setup optimizer and configuration parameters
optimizer = HRPO(
mannequin="openai/gpt-5.2."
model_parameters={"temperature": 1}
}
There are further parameters we are able to set, such because the variety of threads for multi-threading or the mannequin parameters handed on to the LLM calls, as we reveal by setting our temperatureworth.
It’s Time, Operating The Optimizer
Now we’ve all the pieces we’d like, together with our beginning agent, dataset, metric, and the optimizer. To execute the optimizer, we have to name the optimizer’s optimize_prompt operate and cross all elements, together with any further parameters. So actually, at this stage, the optimizer and the optimize_prompt() operate, which when executed, will run the optimizer we configured (optimizer).
# Execute optimizer
optimization_result = optimizer.optimize_prompt(
immediate=immediate, # our ChatPrompt
dataset=dataset, # our Opik dataset
validation_dataset=validation_dataset, # non-compulsory, hold-out take a look at
metric=levenshtein_ratio, # our customized metric
max_trials=10, # non-compulsory, variety of runs
)
# Output and show outcomes
optimization_result.show()
You’ll discover some further arguments we handed; the max_trials argument limits the variety of trials (optimization loops) the optimizer will run earlier than stopping. It is best to begin with a low quantity, as some datasets and optimizer loops could be token-heavy, particularly with image-based runs, which might result in very lengthy runs and be time and cost-intensive. As soon as we’re pleased with our setup, we are able to all the time come again and scale this up.
Let’s run our full script now and see the optimizer in motion. It’s finest to execute this in your terminal, however this must also work effective in a pocket book equivalent to Jupyter Notebooks:

The optimizer will run by means of 10 trials (optimization loops). On every loop, it should generate a quantity (ok) of failures to test, take a look at, and develop new prompts for. At every trial (loop), the brand new candidate prompts are examined and evaluated, and one other trial begins. After a short time, we should always attain the tip of our optimization loop; in our case, this occurs after 10 full trials, which mustn’t take greater than a minute to execute.
Congratulations, we optimized our multi-modal agent, and we are able to now take the brand new system immediate and apply it to the identical mannequin in manufacturing with improved accuracy. In a manufacturing state of affairs, you’ll copy this into our codebase. To investigate our optimization run, we are able to see that the terminal and dashboard ought to present the brand new outcomes:

Primarily based on the outcomes, we are able to see that we’ve gone from a baseline rating of 15% to 39% after 10 trials, a whoping 152% enchancment with a brand new immediate in underneath a minute. These outcomes are primarily based on our comparability metric, which the optimizer used as its sign: a comparability of the output vs. our anticipated output in our dataset.
Digging into our outcomes, a couple of key issues to notice:
- In the course of the trial runs the rating shoots up in a short time, then slowly normalizes. It is best to improve the variety of trials, and we should always see whether or not it wants extra to find out the following set of immediate enhancements.
- The rating may even be extra “risky” and overfit with low samples of 20 and 5 for validation, so we needed to hold our take a look at small; randomness will influence our scores massively. If you re-run, strive utilizing the total dataset or a bigger pattern (e.g., rely=50) and see how the scores are extra life like.
Total, as we scale this up, we have to give the optimizer extra information and extra time (sign) to “hill climb,” which might take a number of rounds.
On the finish of our optimization, our new and improved system immediate has now acknowledged that it must label numerous interactions and that the output fashion must match. Right here is our closing improved immediate after 10 trials:
You might be an professional driving incident analyst specialised in collision-causal description.
Your activity is to research dashcam photographs and write the most definitely collision-oriented causal narrative that matches reference-style solutions.
For every picture:
1. Determine the first interacting members and label them explicitly as "Entity #1", "Entity #2", and many others. (e.g., automobile, pedestrian, bicycle owner, impediment).
2. Describe the only most salient accident interplay as an express causal chain utilizing entity labels: "Entity #X [action/failure] → [immediate consequence/path conflict] → [impact]".
3. Finish with a transparent influence consequence that MUST (a) use express collision language AND (b) title the entities concerned (e.g., "Entity #2 rear-ends Entity #1", "Entity #1 side-impacts Entity #2",
"Entity #1 strikes Entity #2").
Output necessities (essential):
- Produce ONE brief, direct causal assertion (1–2 sentences).
- The assertion MUST embrace: (i) at the very least two entities by label, (ii) a concrete motion/failure-to-yield/encroachment, and (iii) an express collision consequence naming the entities. If any of those
are lacking, the reply is invalid.
- Do NOT output a guidelines, a number of hazards, severity/urgency rankings, or basic driving recommendation.
- Keep away from basic danger dialogue (visibility, congestion, pedestrians) until it instantly helps the only causal chain culminating within the collision/influence.
- Concentrate on the particular causal development culminating within the influence (even when partially inferred from context); don't describe a number of potential crashes-commit to the only most definitely one.
You may seize the total closing code for the instance finish to finish as follows:
from typing import Any
from opik_optimizer.datasets import driving_hazard
from opik_optimizer import ChatPrompt, HRPO
from opik.analysis.metrics import LevenshteinRatio
from opik.analysis.metrics.score_result import ScoreResult
# Import the dataset
dataset = driving_hazard(rely=20)
validation_dataset = driving_hazard(break up="take a look at", rely=5)
# Outline the metric to optimize on
def levenshtein_ratio(dataset_item: dict[str, Any], llm_output: str) -> ScoreResult:
metric = LevenshteinRatio()
metric_score = metric.rating(reference=dataset_item["hazard"], output=llm_output)
return ScoreResult(
worth=metric_score.worth,
title=metric_score.title,
purpose=f"Levenshtein ratio between `{dataset_item['hazard']}` and `{llm_output}` is `{metric_score.worth}`.",
)
# Outline the immediate to optimize
system_prompt = """You might be an professional driving security assistant specialised in hazard detection.
Your activity is to research dashcam photographs and establish potential hazards {that a} driver ought to pay attention to.
For every picture:
1. Rigorously look at the visible scene
2. Determine any potential hazards (pedestrians, autos, highway circumstances, obstacles, and many others.)
3. Assess the urgency and severity of every hazard
4. Present a transparent, particular description of the hazard
Be exact and actionable in your hazard descriptions. Concentrate on safety-critical data."""
immediate = ChatPrompt(
messages=[
{"role": "system", "content": system_prompt},
{
"role": "user",
"content": [
{"type": "text", "text": "{question}"},
{
"type": "image_url",
"image_url": {
"url": "{image}",
},
},
],
},
],
)
# Initialize HRPO (Hierarchical Reflective Immediate Optimizer)
optimizer = HRPO(mannequin="openai/gpt-5.2", model_parameters={"temperature": 1})
# Run optimization
optimization_result = optimizer.optimize_prompt(
immediate=immediate,
dataset=dataset,
validation_dataset=validation_dataset,
metric=levenshtein_ratio,
max_trials=10,
)
# Present outcomes
optimization_result.show()
Going Additional and Frequent Pitfalls
Now you’re carried out along with your first optimization run. There are some further ideas when working with optimizers, and particularly when working with multi-modal brokers, to enter extra superior eventualities, in addition to avoiding some frequent anti-patterns:
- Mannequin Prices and Selection: Multimodal prompts ship bigger payloads. Monitor token utilization within the Opik dashboard. If value is a matter, use a smaller imaginative and prescient mannequin. Operating these optimizers by means of a number of loops can get fairly costly. On the time of publication on GPT 5.2, this instance value us about $0.15 USD. Monitor this as you run examples to see how the optimizer is behaving and catch any points earlier than you scale out.
- Mannequin Choice and Imaginative and prescient Help: Double-check that your chosen mannequin helps photographs. Some very current mannequin releases will not be mapped but, so that you may need points. Hold your Python packages up to date.
- Dataset Picture Measurement and Format: Think about using JPEGs and lower-resolution photographs, that are extra environment friendly over large-resolution PNGs, which could be extra token-hungry as a result of their measurement. Check how the mannequin behaves by way of direct API calls, the playground, and small trial runs earlier than scaling out. Within the demo we ran, the dataset photographs had been robotically transformed by the SDK to JPEG (60% high quality) and a max top/width of 512 pixels, sample you might be welcomed to observe.
- Dataset Break up: When you have many examples, break up into coaching/validation. Use a subset (
n_samples) throughout optimization to discover a higher immediate, and reserve unseen information to verify the advance generalizes. This prevents overfitting the immediate to a couple objects. - Analysis Metric Design: For Hierarchical Reflective optimizer, return a ScoreResult with a purpose for every instance. These causes drive its root-cause evaluation. Poor or lacking causes could make the optimizer much less efficient. Different optimizers behave in another way, so understanding that evaluations are essential to success is vital, you may as well see if LLM-as-a-judge is a viable analysis metric for extra advanced senarios.
- Iteration and Logging: The instance script robotically logs every trial’s prompts and scores. Examine these to know how the immediate modified. If outcomes stagnate, strive rising
max_trialsor utilizing a distinct optimizer algorithm. You may as well chain optimizers: take the output immediate from one optimizer and feed it into one other. This can be a good solution to mix a number of approaches and ensemble optimizers to attain larger mixed effectivity. - Mix with Different Strategies: We will additionally mix steps and information into the optimizer utilizing bounding containers, including further information by means of purpose-built visible processing fashions like Meta’s SAM 3 to annotate our information and supply further metadata. In observe, our enter dataset might have picture and image_annotated, which can be utilized as enter to the optimizer.
Takeaways and Future Outlook of Optimizers
Thanks for following together with this. As a part of this walk-through, we explored:
- Getting began with open-source agent & immediate optimization
- Making a course of to optimize a multi-modal vision-based agent
- Evaluating with image-based datasets within the context of LLMs
Transferring ahead, automating immediate design is changing into more and more vital as vision-capable LLMs advance. Thoughtfully optimized prompts can considerably enhance mannequin efficiency on advanced multimodal duties. Optimizers present how we are able to harness LLMs themselves to refine directions, turning an extended, tedious, and really handbook course of into a scientific search.
Trying forward, we are able to begin to see new methods of working during which computerized prompts and agent-optimization instruments change outdated prompt-engineering strategies and absolutely leverage every mannequin’s personal understanding.
Loved This Article?
Vincent Koc is a extremely completed AI analysis engineer, author, and lecturer with a wealth of expertise throughout plenty of world firms and works primarily in open-source growth in synthetic intelligence with a eager curiosity in optimization approaches. Be at liberty to attach with him on LinkedIn and X if you wish to keep related or have any questions concerning the hands-on instance.
References
[1] Y Choi, et. al. Multimodal Immediate Optimization: Why Not Leverage A number of Modalities for MLLMs https://arxiv.org/abs/2510.09201
[2] M Suzgun, A T Kalai. Meta-Prompting: Enhancing Language Fashions with Process-Agnostic Scaffolding https://arxiv.org/abs/2401.12954
[3] Okay Charoenpitaks, et. al. Exploring the Potential of Multi-Modal AI for Driving Hazard Prediction https://ieeexplore.ieee.org/doc/10568360 & https://github.com/DHPR-dataset/DHPR-dataset
[4] F. Yu, et. al. BDD100K: A Various Driving Dataset for Heterogeneous Multitask Studying https://arxiv.org/abs/1805.04687 & https://bair.berkeley.edu/weblog/2018/05/30/bdd/
[5] Chen et. al. MLLM-as-a-Choose: Assessing Multimodal LLM-as-a-Choose with Imaginative and prescient-Language Benchmark https://dl.acm.org/doi/10.5555/3692070.3692324 & https://mllm-judge.github.io/
[6] Opik. HRPO (Hierarchical Reflective Immediate Optimizer) https://www.comet.com/docs/opik/agent_optimization/algorithms/hierarchical_adaptive_optimizer & https://www.comet.com/web site/merchandise/opik/options/automatic-prompt-optimization/
[7] Meta. Introducing Meta Phase Something Mannequin 3 and Phase Something Playground https://ai.meta.com/weblog/segment-anything-model-3/


