Publish docs

This commit is contained in:
Andras Schmelczer 2026-10-28 12:57:37 +00:00
commit 77016417f2
6 changed files with 65 additions and 58 deletions

View file

@ -272,7 +272,7 @@
"metadata": {},
"source": [
"In this case, the service is built as a docker image, pushed to our image registry and subsequent rolling update is performed in the production cluster.\n",
"To check out the Dockerimage, go to [the additional files page](https://great-ai.scoutinscience.com/examples/scibert/additional-files)."
"To check out the Dockerimage, go to [the additional files page](https://great-ai.schmelczer.dev/examples/scibert/additional-files)."
]
}
],

View file

@ -7,8 +7,8 @@ This is a simplified example illustrating how `great-ai` is used in practice at
## Objectives
1. You will see how the [great_ai.utilities](https://great-ai.scoutinscience.com/reference/utilities) can integrate into your Data Science workflow.
2. You will see how [great_ai.large_file](https://great-ai.scoutinscience.com/reference/large-file) can be used to version and store your trained model.
1. You will see how the [great_ai.utilities](https://great-ai.schmelczer.dev/reference/utilities) can integrate into your Data Science workflow.
2. You will see how [great_ai.large_file](https://great-ai.schmelczer.dev/reference/large-file) can be used to version and store your trained model.
3. You will see how [GreatAI][great_ai.GreatAI] should be used to prepare your model for a robust and responsible deployment.
4. You will see multiple ways of customising your deployment.
@ -37,13 +37,13 @@ We load and analyse the data by calculating inter-rater reliability and checking
We simply fine-tune SciBERT.
After training and evaluating a model, it is exported using [great_ai.save_model][]. For more info, check out [the configuration how-to page](https://great-ai.scoutinscience.com/how-to-guides/configure-service).
After training and evaluating a model, it is exported using [great_ai.save_model][]. For more info, check out [the configuration how-to page](https://great-ai.schmelczer.dev/how-to-guides/configure-service).
### [Deployment notebook](deploy.ipynb)
We customise the GreatAI configuration, create custom caching for the model and implement an inference function that can be hardened by wrapping it in a [GreatAI][great_ai.GreatAI] instance. We also extract the attention weights as a quasi-explanation.
Finally, we test the model's inference function through the GreatAI dashboard. [The only thing left is to deploy the hardened service properly.](https://great-ai.scoutinscience.com/how-to-guides/use-service)
Finally, we test the model's inference function through the GreatAI dashboard. [The only thing left is to deploy the hardened service properly.](https://great-ai.schmelczer.dev/how-to-guides/use-service)
#### [Additional files](additional-files.md)

View file

@ -348,7 +348,7 @@
"id": "cell-8",
"metadata": {},
"source": [
"The [saved historical run](https://great-ai.scoutinscience.com/examples/scibert/validation-results.json) selected a checkpoint with **validation binary F1 of 0.8966** (recorded value: 0.896551724137931). This validation split was also used for early stopping and checkpoint selection, so the number is not an independent test result or macro F1. The historical split seed was not recorded; the seeded code above defines future runs and does not reproduce that split. Its results are saved to `models/validation_results.json` and `models/validation-run.json`.\n",
"The [saved historical run](https://great-ai.schmelczer.dev/examples/scibert/validation-results.json) selected a checkpoint with **validation binary F1 of 0.8966** (recorded value: 0.896551724137931). This validation split was also used for early stopping and checkpoint selection, so the number is not an independent test result or macro F1. The historical split seed was not recorded; the seeded code above defines future runs and does not reproduce that split. Its results are saved to `models/validation_results.json` and `models/validation-run.json`.\n",
"\n",
"To estimate performance after model selection, evaluate once on a separate untouched test split. We make no test-set performance claim here. Next, store the selected model for deployment."
]
@ -409,7 +409,7 @@
"id": "cell-10",
"metadata": {},
"source": [
"Next: [Part 3](https://great-ai.scoutinscience.com/examples/scibert/deploy)"
"Next: [Part 3](https://great-ai.schmelczer.dev/examples/scibert/deploy)"
]
}
],

View file

@ -185,7 +185,7 @@
"id": "cell-10",
"metadata": {},
"source": [
"### Next: [Part 2](https://great-ai.scoutinscience.com/examples/simple/train)"
"### Next: [Part 2](https://great-ai.schmelczer.dev/examples/simple/train)"
]
}
],

View file

@ -9,10 +9,10 @@
"\n",
"> Part 3: Create production inference function\n",
"\n",
"![position of this step in the lifecycle](https://great-ai.scoutinscience.com/media/scope-deploy.svg)\n",
"![position of this step in the lifecycle](https://great-ai.schmelczer.dev/media/scope-deploy.svg)\n",
"> The blue boxes show the steps implemented in this notebook.\n",
"\n",
"In [Part 2](https://great-ai.scoutinscience.com/examples/simple/train), we trained our AI model. Now, it's time to create **G**eneral **R**obust **E**nd-to-end **A**utomated **T**rustworthy deployment.\n",
"In [Part 2](https://great-ai.schmelczer.dev/examples/simple/train), we trained our AI model. Now, it's time to create **G**eneral **R**obust **E**nd-to-end **A**utomated **T**rustworthy deployment.\n",
"\n",
"## Create the inference function\n",
"\n",

View file

@ -7,14 +7,14 @@
"source": [
"# Optimise and train a model\n",
"\n",
"![position of this step in the lifecycle](https://great-ai.scoutinscience.com/media/scope-train.svg)\n",
"![position of this step in the lifecycle](https://great-ai.schmelczer.dev/media/scope-train.svg)\n",
"> The blue boxes show the steps implemented in this notebook.\n",
"\n",
"Run `data.ipynb` first. We read its ground truth from the shared local TinyDB database. The default uses a compact parameter search suitable for the bundled sample; `GREAT_AI_NOTEBOOK_FULL=1` enables the original larger search on the full MAG training data. \n",
"\n",
"In this part, we hyperparameter-optimise and train a simple Naive Bayes classifier which we then export for deployment using `great_ai.save_model`.\n",
"\n",
"## Load data that has been extracted in [part 1](https://great-ai.scoutinscience.com/examples/simple/data)"
"## Load data that has been extracted in [part 1](https://great-ai.schmelczer.dev/examples/simple/data)"
]
},
{
@ -138,7 +138,7 @@
"\n",
"Each paper may have several accepted labels. We expand it into one training row per label for this single-label classifier, but keep all rows with the same paper text in one cross-validation fold using `GroupKFold`. The final train/test split was already made by paper in Part 1, before expansion.\n",
"\n",
"The search uses macro F1 on the expanded single-label validation rows as a training surrogate. This differs from the top-1 hit rate and fixed-target multilabel metrics used to evaluate the deployed label sets in [Part 3](https://great-ai.scoutinscience.com/examples/simple/deploy). Rerun the search to obtain results for these grouped folds; the previous ungrouped outputs have been removed."
"The search uses macro F1 on the expanded single-label validation rows as a training surrogate. This differs from the top-1 hit rate and fixed-target multilabel metrics used to evaluate the deployed label sets in [Part 3](https://great-ai.schmelczer.dev/examples/simple/deploy). Rerun the search to obtain results for these grouped folds; the previous ungrouped outputs have been removed."
]
},
{
@ -2783,7 +2783,7 @@
"id": "cell-11",
"metadata": {},
"source": [
"## Next: [Part 3](https://great-ai.scoutinscience.com/examples/simple/deploy)"
"## Next: [Part 3](https://great-ai.schmelczer.dev/examples/simple/deploy)"
]
}
],