Instructions to use EdisonScientific/MarkushGlyph with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use EdisonScientific/MarkushGlyph with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3.5-2B-Base") model = PeftModel.from_pretrained(base_model, "EdisonScientific/MarkushGlyph") - Notebooks
- Google Colab
- Kaggle
| base_model: Qwen/Qwen3.5-2B-Base | |
| library_name: peft | |
| pipeline_tag: image-text-to-text | |
| tags: [chemistry, markush, lora, image-to-cxsmiles] | |
| # MarkushGlyph | |
| ## Installing the code | |
| The commands below use the **`glyph`** package. Install it from the code repository: | |
| ```bash | |
| git clone https://github.com/EdisonScientific/glyph | |
| cd glyph | |
| uv venv && uv sync --extra markush # or: pip install -e ".[markush]" | |
| ``` | |
| See the repo's `README.md` (quickstart + inference) and `REPRODUCE.md` (frozen eval contract). | |
| Markush chemical structure recognition: image -> CXSMILES. A LoRA adapter (r=128, alpha=128) over | |
| `Qwen/Qwen3.5-2B-Base`. | |
| ## Results - IP5-M (n=878, official DS4SD paired scoring contract) | |
| | System | Accuracy | | |
| |---|---| | |
| | MarkushGrapher-2 (baseline) | 467/878 = 53.19% | | |
| | MarkushGlyph - greedy | 511/878 = **58.20%** | | |
| | MarkushGlyph - MV@8 | 532/878 = **60.59%** | | |
| ## Usage | |
| ```bash | |
| python -m glyph.markush.eval.fast_eval \ | |
| --checkpoint EdisonScientific/MarkushGlyph --base-model Qwen/Qwen3.5-2B-Base --eval-data <eval_ip5m.jsonl> ... | |
| ``` | |
| Scored with the pinned DS4SD `get_scores` (official contract). See the code repository's `REPRODUCE.md`. | |
| **License:** pending. **Citation:** to be added on publication. | |