Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,11 @@ repos:
rev: 1.19.1
hooks:
- id: blacken-docs
- repo: https://github.com/igorshubovych/markdownlint-cli
rev: v0.45.0
hooks:
- id: markdownlint
args: [--config=pyproject.toml, --configPointer=/tool/markdownlint]
- repo: https://github.com/jsh9/markdown-toc-creator
rev: 0.0.10
hooks:
Expand Down
19 changes: 12 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
# ether0 Reward Model

[![GitHub](https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge&logo=github&logoColor=white)](https://github.com/Future-House/ether0)
[![arXiv](https://img.shields.io/badge/arXiv-2506.17238-b31b1b.svg)](https://arxiv.org/abs/2506.17238)
[![Project Status: Active](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)
![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)

[![Tests](https://github.com/Future-House/ether0/actions/workflows/lint-test.yaml/badge.svg)](https://github.com/Future-House/ether0/actions)
<a href="https://github.com/psf/black"><img alt="Code style: black" src="https://img.shields.io/badge/code%20style-black-000000.svg"></a>
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![python](https://img.shields.io/badge/python-3.11+-blue?style=flat&logo=python&logoColor=white)](https://www.python.org)
[![Model on HF](https://huggingface.co/datasets/huggingface/badges/resolve/main/model-on-hf-md-dark.svg)](https://huggingface.co/futurehouse/ether0)
[![Dataset on HF](https://huggingface.co/datasets/huggingface/badges/resolve/main/dataset-on-hf-md-dark.svg)](https://huggingface.co/datasets/futurehouse/ether0-benchmark)
Expand All @@ -13,9 +15,9 @@

_ether0: a scientific reasoning model, dataset, and reward functions for chemistry._

# ether0 Reward Model

This repo contains the reward model for evaluating ether0 and similar models, along with utilities for working with the verifiable rewards in [our benchmark](https://huggingface.co/datasets/futurehouse/ether0-benchmark).
This repo contains the reward model for evaluating ether0 and similar models,
along with utilities for working with the verifiable rewards in
[our benchmark](https://huggingface.co/datasets/futurehouse/ether0-benchmark).

## Overview

Expand Down Expand Up @@ -51,7 +53,8 @@ This repo contains several packages:

### Open Weights

Please see our open-source weights on Hugging Face: https://huggingface.co/futurehouse/ether0
Please see our open-source weights on Hugging Face:
<https://huggingface.co/futurehouse/ether0>

```python
from transformers import AutoModelForCausalLM, AutoTokenizer
Expand All @@ -62,7 +65,8 @@ tokenizer = AutoTokenizer.from_pretrained("futurehouse/ether0")

### Open Test Set

Please see our open-source benchmark (test set) on Hugging Face: https://huggingface.co/datasets/futurehouse/ether0-benchmark
Please see our open-source benchmark (test set) on Hugging Face:
<https://huggingface.co/datasets/futurehouse/ether0-benchmark>

```python
from datasets import load_dataset
Expand Down Expand Up @@ -148,7 +152,8 @@ ETHER0_REMOTES_API_TOKEN=abc123 ether0-serve
Next, start `ipython` with the relevant environment variables set:

```bash
ETHER0_REMOTES_API_BASE_URL="http://127.0.0.1:8000" ETHER0_REMOTES_API_TOKEN=abc123 ipython
ETHER0_REMOTES_API_BASE_URL="http://127.0.0.1:8000" ETHER0_REMOTES_API_TOKEN=abc123 \
ipython
```

And run the following Python code:
Expand Down
8 changes: 5 additions & 3 deletions packages/remotes/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,16 @@ curl --location --output src/ether0/USPTO480k_model_step_400000.pt \

Or more manually:

1. Go to this notebook: https://github.com/schwallergroup/ai4chem_course/blob/main/notebooks/07%20-%20Reaction%20Prediction/template_free.ipynb
1. Go to [this notebook][1]
2. Download the `USPTO480k_model_step_400000.pt`
linked in the `trained_model_url` variable's linked Google Drive file:
https://drive.google.com/uc?id=1ywJCJHunoPTB5wr6KdZ8aLv7tMFMBHNy
<https://drive.google.com/uc?id=1ywJCJHunoPTB5wr6KdZ8aLv7tMFMBHNy>
3. Set the environment variable `ETHER0_REMOTES_MOLTRANS_MODEL_PATH`
to the downloaded PyTorch model's location,
or place the model in the default checked `ether0` source code folder (`src/ether0`).

[1]: https://github.com/schwallergroup/ai4chem_course/blob/main/notebooks/07%20-%20Reaction%20Prediction/template_free.ipynb

## Serving

To run the server:
Expand All @@ -31,6 +33,6 @@ To run the server:

```bash
ETHER0_REMOTES_API_TOKEN="abc123" \
ETHER0_REMOTES_MOLTRANS_MODEL_PATH="/path/to/downloaded/USPTO480k_model_step_400000.pt" \
ETHER0_REMOTES_MOLTRANS_MODEL_PATH="/path/to/USPTO480k_model_step_400000.pt" \
ether0-serve
```
9 changes: 9 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,15 @@ branch = true
# This is designed to be invoked from within the test directory
command_line = "-m pytest"

[tool.markdownlint]
no-inline-html = false

[tool.markdownlint.line-length]
code_block_line_length = 88 # Match ruff line-length
line_length = 120 # Match ruff max-doc-length
stern = true
tables = false

[tool.mypy]
# Type-checks the interior of functions without type annotations.
check_untyped_defs = true
Expand Down
Loading