@@ -2,10 +2,8 @@ |
| 2 | 2 | |
| 3 | 3 | Differential testing for fine-tuned causal language models. |
| 4 | 4 | |
| 5 | | -> **⚠️ Pre-alpha — not on PyPI yet.** This project is in active |
| 6 | | -> development and has **not** been published to PyPI. `pip install dlm-sway` |
| 7 | | -> will not work. The wheel name is reserved for when publication happens; |
| 8 | | -> see [Install](#install-from-source) for how to use sway today. |
| 5 | +> **Alpha — v0.1.0 on PyPI.** API is not stable; semantic versioning |
| 6 | +> applies only from v1.0 onward. Feedback + issues welcome. |
| 9 | 7 | |
| 10 | 8 | **One question:** *did LoRA/QLoRA training actually change model behavior |
| 11 | 9 | in a meaningful way, or is the model just defaulting to the pretrained |
@@ -15,25 +13,24 @@ base?* |
| 15 | 13 | purpose-built primitives, each z-scored against a null-adapter baseline. |
| 16 | 14 | No LLM judges. No external APIs. Deterministic on CPU where possible. |
| 17 | 15 | |
| 18 | | -> **Naming convention (for when PyPI goes live).** The source repo and |
| 19 | | -> CLI entry point are both `sway`. The PyPI wheel will be `dlm-sway` |
| 20 | | -> because the short `sway` name is already taken on PyPI by an unrelated |
| 21 | | -> project. The CLI installed by `pip install dlm-sway` will be |
| 22 | | -> `sway` — mismatched wheel/command names are a PyPA convention (see |
| 23 | | -> `pyyaml` → `import yaml`). |
| 16 | +> **Naming convention.** The source repo and CLI entry point are both |
| 17 | +> `sway`. The PyPI wheel is `dlm-sway` because the short `sway` name is |
| 18 | +> taken on PyPI by an unrelated project. The CLI installed by |
| 19 | +> `pip install dlm-sway` is `sway` — mismatched wheel/command names are |
| 20 | +> a PyPA convention (see `pyyaml` → `import yaml`). |
| 24 | 21 | |
| 25 | | -## Install from source |
| 26 | | - |
| 27 | | -Until the wheel lands on PyPI, install editable from a clone: |
| 22 | +## Install |
| 28 | 23 | |
| 29 | 24 | ```bash |
| 30 | | -git clone https://github.com/tenseleyFlow/sway.git |
| 31 | | -cd sway |
| 25 | +# HF + PEFT backend — required for real models |
| 26 | +pip install "dlm-sway[hf]" |
| 32 | 27 | |
| 33 | | -# Create a venv and install with the HF backend extras |
| 34 | | -uv venv --python 3.11 .venv # or: python -m venv .venv |
| 35 | | -source .venv/bin/activate |
| 36 | | -uv pip install -e ".[hf]" --group dev |
| 28 | +# Extras composable as usual |
| 29 | +pip install "dlm-sway[hf,style,semsim]" |
| 30 | +pip install "dlm-sway[all]" |
| 31 | + |
| 32 | +# .dlm auto-suite generation (requires the DLM sibling project) |
| 33 | +pip install "dlm-sway[dlm]" |
| 37 | 34 | ``` |
| 38 | 35 | |
| 39 | 36 | Available extras: |
@@ -53,19 +50,18 @@ sway --version |
| 53 | 50 | sway doctor |
| 54 | 51 | ``` |
| 55 | 52 | |
| 56 | | -## Planned PyPI install (not live yet) |
| 53 | +## Install from source |
| 57 | 54 | |
| 58 | | -Once the wheel ships the install story will be the single-line flavor: |
| 55 | +For the development HEAD (unreleased changes, contributor workflow): |
| 59 | 56 | |
| 60 | 57 | ```bash |
| 61 | | -# ⚠️ NOT FUNCTIONAL YET — post-PyPI-publish only |
| 62 | | -pip install "dlm-sway[hf]" |
| 63 | | -pip install "dlm-sway[hf,style,semsim]" |
| 64 | | -pip install "dlm-sway[all]" |
| 65 | | -pip install "dlm-sway[dlm]" |
| 66 | | -``` |
| 58 | +git clone https://github.com/tenseleyFlow/sway.git |
| 59 | +cd sway |
| 67 | 60 | |
| 68 | | -Watch the repo's Releases for the first published tag. |
| 61 | +uv venv --python 3.11 .venv # or: python -m venv .venv |
| 62 | +source .venv/bin/activate |
| 63 | +uv pip install -e ".[hf]" --group dev |
| 64 | +``` |
| 69 | 65 | |
| 70 | 66 | ## 90-second smoke test |
| 71 | 67 | |