-
Notifications
You must be signed in to change notification settings - Fork 703
Add novelty rejection sampling feature #287
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
codelion
merged 3 commits into
algorithmicsuperintelligence:main
from
bluebread:novelty
Oct 10, 2025
Merged
Add novelty rejection sampling feature #287
codelion
merged 3 commits into
algorithmicsuperintelligence:main
from
bluebread:novelty
Oct 10, 2025
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This commit introduces a novelty checking system that uses embeddings and LLM-based judging to ensure programs added to the database are meaningfully different from existing ones in their island. Changes: - Added EmbeddingClient class for computing code embeddings using OpenAI/Azure models - Added novelty judge prompts for LLM-based similarity assessment - Modified ProgramDatabase to support novelty checking before adding programs - Added embedding vector field to Program dataclass - Added configuration options for embedding model, novelty LLM, and similarity threshold - Integrated novelty LLM ensemble in controller setup - Updated example config with novelty checking parameters The novelty check uses cosine similarity of embeddings as a first pass, then uses an LLM judge to determine if programs exceeding the similarity threshold are truly novel or just trivial variations. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
- Fix novelty check in database.py to pass program.id instead of program object - Fix missing self parameter in embedding.py _get_client_model method - Fix serialization error by clearing novelty_llm before config deepcopy - Update function_minimization config for testing with different models 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
CLA assistant check
All committers have signed the CLA.
@codelion
codelion
merged commit Oct 10, 2025
9df937a
into
algorithmicsuperintelligence:main
3 checks passed
shubham3-ucb
pushed a commit
to mert-cemri/autoevolve
that referenced
this pull request
Nov 26, 2025
...velty Add novelty rejection sampling feature
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.
#277 Implemented novelty rejection sampling (as used in SakanaAI/ShinkaEvolve) and tested it on the function minimization example for 10 iterations. The combined score improved from 1.4975 -> 1.4995 (distance score 0.9950 -> 0.9995, value score unchanged). I’d appreciate any feedback or suggestions on this PR.
Changes
Test plan