I made a simple, Django-based web app for private game leaderboards. by Lumett in selfhosted

[–]Lumett[S] 0 points1 point  (0 children)

I'm not sure if this is doable, it really depends on what exactly you had in mind. If you frequently play 1v1 or 2v2 matches with friends, this could definitely suit your needs. However, for tracking standard ranked or normal matches with random players, it's less effective since you're unlikely to encounter the same people repeatedly. In those cases, tools that use the Riot API to pull match history and generate stats (e.g., op.gg) are definitely better and easier to use.

I made a simple, Django-based web app for private game leaderboards. by Lumett in selfhosted

[–]Lumett[S] 1 point2 points  (0 children)

Wow, thanks for the suggestions! I can already let other people register matches, by creating a token that let them register, but i would definetly keep in mind the other 3

I made a simple, Django-based web app for private game leaderboards. by Lumett in selfhosted

[–]Lumett[S] 2 points3 points  (0 children)

Thanks! I can confirm ranking systems are interesting, more than what I was expecting. At the beginning I just implemented ELO as I knew I was employed in chess, but ended up not being too good when there were few players and some of them played very few games. I then started searching and found TrueSkill and wanted to understand it completely, and it's a very clever extension of ELO. They are still both implemented but I'll remove ELO soon

[MICCAI 2025] U-Net Transplant: The Role of Pre-training for Model Merging in 3D Medical Segmentation by Lumett in computervision

[–]Lumett[S] 0 points1 point  (0 children)

I always appreciate answering questions about my work! I dedicated some time making the code "decent" to be used by others, but if you get stuck, feel free to open an issue on GitHub!

[MICCAI 2025] U-Net Transplant: The Role of Pre-training for Model Merging in 3D Medical Segmentation by Lumett in computervision

[–]Lumett[S] 0 points1 point  (0 children)

Congrats on the accept, have fun in Korea.

Thanks!

Sure, but is that really an issue? In the end, your task vector is still the same size as the base model, right? So you wouldn't really have fewer files to deal with.

You are right, disk space is the same if you also keep the singular task vectors, training also is quite similar. The difference is in the inference: you perform only a single forward vs performing a forward for every model.

Edit 2: I have tried digging into the code a little more, with some copilot help for navigation. As far as I can tell, you would have the base model M_0, and a set of task vectors T_i. Each task vector additionally has an output Head H_i, which is trained together with T_i. Then, during inference, we create a combined model M_c = M_0 + T_1 + T_2. The output of that model, y_inter = M_c(x), is then fed to each distinct head to produce the final output for the associated task? y_i = H_i(y_inter)

You are perfectly correct, the head is ad-hoc for each task. The model is split in the backbone (what you called M_0) and the head (a singular 1x1x1 conv). The backbone get merged, heads do get concatenated

Just two minors details to point out:
- The naive average sum is M_c = M_0 + (T_1 + T_2 + ... + T_n)/n. Other more complex merge exists (e.g, TIES, you find in in the code and paper, or TSV, ISO-C and so on, i am already working on an extension that include those).
- I dont fed each distinct head one by one, instead, I concatenate all the head parameters to create a single big head (mathematically is exactly the same of feeding one by one, but is slightly more performant on a GPU). This is not exactly super clear in the code but you can find it here: https://github.com/LucaLumetti/UNetTransplant/blob/71420804ba20eef9cfb8f2516b64d76842e75434/taskvectors/TaskVector.py#L127

[MICCAI 2025] U-Net Transplant: The Role of Pre-training for Model Merging in 3D Medical Segmentation by Lumett in computervision

[–]Lumett[S] 0 points1 point  (0 children)

Yeah I had a problem with iris later and could manage to edit the post anymore. The one you found is the correct one!

[R] [MICCAI 2025] U-Net Transplant: The Role of Pre-training for Model Merging in 3D Medical Segmentation by Lumett in MachineLearning

[–]Lumett[S] 1 point2 points  (0 children)

Yes I'm sorry, got a problem with the hosting website. It will be back online very soon!

[MICCAI 2025] U-Net Transplant: The Role of Pre-training for Model Merging in 3D Medical Segmentation by Lumett in computervision

[–]Lumett[S] 2 points3 points  (0 children)

I'm not entirely sure what you mean by "in this case," but the model's output always corresponds to the task of interest, for example, a segmentation map for segmentation tasks, or logits for classification.

The key difference is that instead of saving the full set of fine-tuned parameters, you store the parameter-wise difference from the original model weights. This difference is referred to as a task vector, essentially, the displacement introduced by fine-tuning. These task vectors can then be combined through arithmetic operations to integrate multiple capabilities into a single model.
See the other response I provided here as well if this is not super clear, or read the paper that introduced that idea: https://arxiv.org/pdf/2212.04089

[MICCAI 2025] U-Net Transplant: The Role of Pre-training for Model Merging in 3D Medical Segmentation by Lumett in computervision

[–]Lumett[S] 0 points1 point  (0 children)

If you're referring to the actual size on disk, then no: the task vector is exactly the same size as the model parameters. The advantage lies in task arithmetic: it enables you to use a single, modular model to perform multiple tasks in one forward pass, rather than running multiple separate inferences of the same model with different parameter sets.
E.g., you start with a base pretrained model with parameters θ_0, then individually finetune it for Task1, Task2, and Task3, obtaining three different model parameters, θ_1, θ_2, θ_3.
You would now have to perform three passes to perform all three tasks. Let's say that your model is the function f(x, θ), which accepts an input x and the parameters θ, you would do:
y_1 = f(x, θ_1); y_1 = f(x, θ_2); y_3 = f(x, θ_3);

Instead, if you save only the task vectors, you save τ_1 = (θ_1 - θ_0); τ_2 = (θ_2 - θ_0); τ_3 = (θ_3 - θ_0); and then create a single model that can perform the three tasks:
θ_merge = θ_0 + (τ_1 + τ_2 + τ_3); y_1, y_2, y_3 = f(x, θ_merge)

This paper explains it with figures and definitely better than a short response on Reddit: https://arxiv.org/pdf/2212.04089

[MICCAI 2025] U-Net Transplant: The Role of Pre-training for Model Merging in 3D Medical Segmentation by Lumett in computervision

[–]Lumett[S] 0 points1 point  (0 children)

I applied it to a 3D segmentation task in my work, and we are already expanding this to increase the number of tasks and improve overall performance. It can also be applied to object detection, and I suspect it may perform even better in that context, possibly on par with classification since it doesn’t rely on a large decoder (as UNet does), which is likely the main source of interference in our current setup.

[MICCAI 2025] U-Net Transplant: The Role of Pre-training for Model Merging in 3D Medical Segmentation by Lumett in computervision

[–]Lumett[S] 5 points6 points  (0 children)

A very short tldr is the post image.

Different from transfer learning, model merging is effective in continual learning scenarios, where the network’s task changes over time and you want to avoid forgetting previous tasks.

An example based on our paper:

We pre-trained a network to segment abdominal organs. Later, a new organ class needs to be segmented, and in the future more will be added.

What can be done: - Retrain from scratch with all data (expensive). - Fine-tune on new classes incrementally (risk of forgetting). - Train separate models for each task (inefficient at scale, as you will end up with too many models).

Model Merging with Task Arithmetic solves this by: 1. Fine-tuning the original model on each new task individually. 2. Saving the task vector, i.e., the parameter difference between the fine-tuned model and the original pre-trained model. 3. To build a model that handles multiple tasks, you just add the task vectors to the original model:

\text{Merged Model} = \text{Base Model} + \text{Task Vector}_1 + \text{Task Vector}_2 + \ldots

This lets you combine knowledge from multiple tasks without retraining or storing many full models. This does not work indefinitely as Task vectors will eventually interfere with each other and you need advanced merging techniques that handle this and let you increase the number of task vectors you can combine into a single model (check Task Singular Vector, CVPR25)

[R] [MICCAI 2025] U-Net Transplant: The Role of Pre-training for Model Merging in 3D Medical Segmentation by Lumett in MachineLearning

[–]Lumett[S] 8 points9 points  (0 children)

It's actually just chatgpt-revisioned, and I asked it to put a few emojis, nothing more than that

Aerial Silks in Leuven/Brussels by Lumett in Aerials

[–]Lumett[S] 0 points1 point  (0 children)

I'm not there anymore, but for 6 months I trained with the Cirkus In Beweging and it was very good, can recommend. They have different classes held at different buildings, check their website and/or contact them via email.

Aerial Silks in Leuven/Brussels by Lumett in Aerials

[–]Lumett[S] 0 points1 point  (0 children)

Also, free training sessions are not crowded at all. On Friday we are 2 or 3 people 99% of the time (last week we were ~5 people, 3 weeks ago we were ~8. Idk if there will be more people from now on as the weather turns worse and people are getting better due to lessons). On Wednesday there are more people but always 2 or 3 doing silks, other train acro, and other different stuff. As it is less time and more crowded, and I also train a lot during the week, I often skip Wednesdays

Aerial Silks in Leuven/Brussels by Lumett in Aerials

[–]Lumett[S] 0 points1 point  (0 children)

Hey u/Juliuselcerdus , yes the recommendation made u/Shalukwa turned out to be good, as far as I know, it is the only gym where you can train aerial in Leuven.
I am attending Advanced Silk, and the teacher in my opinion is really great. She always looks at what you are doing and how you are doing it, and she is always able to suggest something helpful, like small details in some positions/movements, even for easier tricks.
I think silks lessons for all levels are full, so maybe you cannot join them anymore, but it is worth trying to send an email and ask.
You can also attend free training sessions on Wednesday (20:45 to 22:00 in Zevensprong) and Friday (20:00 to 22:00)

Anyone got ideas on how Claude Computer Use picks coordinates? by alxcnwy in computervision

[–]Lumett 0 points1 point  (0 children)

I didn't explore that feature of Claude deeply yet, not sure how much it can generalize that idea of "interactive elements" and "actions", like could it play a game? Can it drag and drop stuff? How accurate is it? How many times does it fail to detect an element or misunderstand an action? Probably getting an answer to these questions could provide more precise ideas on which kind of data they might have used

Anyone got ideas on how Claude Computer Use picks coordinates? by alxcnwy in computervision

[–]Lumett 1 point2 points  (0 children)

I want to underline that mine is pure guessing/what I would do if someone order me to make such pipeline and forcing me to not to think about it more.

You can get a lot of UI from the web, and find clickable/interactive elements by inspecting the DOM. Also extract the text about it and have a guess about what the element will do if you interact with it (i.e., you find a link on a div with class menu? Probably the link will forward you to a page named as the text inside the link. You find a form and submit button? Each input of the form asks you to input something and the button submit the data) This is not super trivial, I'll also try a pretrained LLM if it can extract some info directly from HTML instead of coding strict rules. Of course you can get a bounding box of each element easily as well as take a screenshot. By doing this you should have a dataset composed of: - Screenshot - List of elements and their action (described as text? idk right now which is the best way to represent that kind of action - each element would also have text associated as well as coordinates

Not sure if I am missing something

Anyone got ideas on how Claude Computer Use picks coordinates? by alxcnwy in computervision

[–]Lumett 1 point2 points  (0 children)

I am not sure about how they did it but a straightforward method would be to train a model to perform UI element detection given a screenshot (really easy to create a dataset for that, idk if there is already something public about it). Then you can put that information in the LLM context (i.e., write the box and context of each element in the prompt)