From e7e37c2ac3497068d51d0917acc35d617cf67d48 Mon Sep 17 00:00:00 2001 From: Sean Friedowitz Date: Thu, 8 Feb 2024 11:42:32 -0700 Subject: [PATCH 1/6] passing artifact loader into finetuning --- src/flamingo/cli/run.py | 5 ++-- src/flamingo/jobs/finetuning/entrypoint.py | 33 ++++++++++++++-------- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/src/flamingo/cli/run.py b/src/flamingo/cli/run.py index 175f7cc7..59e59910 100644 --- a/src/flamingo/cli/run.py +++ b/src/flamingo/cli/run.py @@ -23,7 +23,8 @@ def run_finetuning(config: str) -> None: from flamingo.jobs.finetuning import FinetuningJobConfig, run_finetuning config = FinetuningJobConfig.from_yaml_file(config) - run_finetuning(config) + artifact_loader = WandbArtifactLoader() + run_finetuning(config, artifact_loader) @group.command("lm-harness", help="Run the lm-harness evaluation job.") @@ -31,6 +32,6 @@ def run_finetuning(config: str) -> None: def run_lm_harness(config: str) -> None: from flamingo.jobs.lm_harness import LMHarnessJobConfig, run_lm_harness - artifact_loader = WandbArtifactLoader() config = LMHarnessJobConfig.from_yaml_file(config) + artifact_loader = WandbArtifactLoader() run_lm_harness(config, artifact_loader) diff --git a/src/flamingo/jobs/finetuning/entrypoint.py b/src/flamingo/jobs/finetuning/entrypoint.py index debed613..8731d14c 100644 --- a/src/flamingo/jobs/finetuning/entrypoint.py +++ b/src/flamingo/jobs/finetuning/entrypoint.py @@ -1,3 +1,6 @@ +from typing import Any + +import ray from ray import train from ray.train import CheckpointConfig, RunConfig, ScalingConfig from ray.train.huggingface.transformers import RayTrainReportCallback, prepare_trainer @@ -7,8 +10,8 @@ from flamingo.integrations.huggingface import HuggingFaceAssetLoader from flamingo.integrations.wandb import ( + ArtifactLoader, ArtifactType, - WandbArtifactLoader, WandbResumeMode, build_directory_artifact, default_artifact_name, @@ -24,10 +27,10 @@ def is_tracking_enabled(config: FinetuningJobConfig): return config.tracking is not None and train.get_context().get_world_rank() == 0 -def load_and_train(config: FinetuningJobConfig): - # Load the input artifacts, potentially linking them to the active W&B run - # TODO(RD2024-89): Inject this into Ray workers somehow - hf_loader = HuggingFaceAssetLoader(WandbArtifactLoader()) +def load_and_train(config: FinetuningJobConfig, artifact_loader: ArtifactLoader): + # Load the HF assets from configurations + # Internally, artifact lineages are declared for the active training run + hf_loader = HuggingFaceAssetLoader(artifact_loader) model = hf_loader.load_pretrained_model(config.model, config.quantization) tokenizer = hf_loader.load_pretrained_tokenizer(config.tokenizer) datasets = hf_loader.load_and_split_dataset(config.dataset) @@ -59,18 +62,25 @@ def load_and_train(config: FinetuningJobConfig): trainer.train() -def training_function(config_data: dict): - config = FinetuningJobConfig(**config_data) +def training_function(data: dict[str, Any]): + artifact_loader = ray.get(data["artifact_loader"]) + config = FinetuningJobConfig(**data["config"]) if is_tracking_enabled(config): with wandb_init_from_config( config.tracking, resume=WandbResumeMode.NEVER, job_type=FlamingoJobType.FINETUNING ): - load_and_train(config) + load_and_train(config, artifact_loader) else: - load_and_train(config) + load_and_train(config, artifact_loader) + +def run_finetuning(config: FinetuningJobConfig, artifact_loader: ArtifactLoader): + # Construct input data to pass to training workers + train_loop_config = { + "config": config.model_dump(), + "artifact_loader": ray.put(artifact_loader), + } -def run_finetuning(config: FinetuningJobConfig): # Construct Ray train configurations from input config scaling_config = ScalingConfig( use_gpu=config.ray.use_gpu, @@ -83,7 +93,7 @@ def run_finetuning(config: FinetuningJobConfig): ) trainer = TorchTrainer( train_loop_per_worker=training_function, - train_loop_config=config.model_dump(), + train_loop_config=train_loop_config, scaling_config=scaling_config, run_config=run_config, ) @@ -101,5 +111,4 @@ def run_finetuning(config: FinetuningJobConfig): reference=True, ) print("Logging artifact for model checkpoint...") - artifact_loader = WandbArtifactLoader() artifact_loader.log_artifact(model_artifact) From a19b740d554740579a7e9715b7ebc517f25cc792 Mon Sep 17 00:00:00 2001 From: Sean Friedowitz Date: Thu, 8 Feb 2024 15:25:14 -0700 Subject: [PATCH 2/6] adding new shakespeare dataset --- src/flamingo/jobs/finetuning/entrypoint.py | 36 ++++++------- tests/conftest.py | 11 ++++ tests/integration/test_finetuning.py | 32 ++++++++++++ .../create_tiny_shakespeare.py | 10 ++++ .../data-00000-of-00001.arrow | Bin 0 -> 258488 bytes .../tiny_shakespeare/dataset_info.json | 48 ++++++++++++++++++ .../datasets/tiny_shakespeare/state.json | 13 +++++ 7 files changed, 132 insertions(+), 18 deletions(-) create mode 100644 tests/integration/test_finetuning.py create mode 100644 tests/resources/datasets/tiny_shakespeare/create_tiny_shakespeare.py create mode 100644 tests/resources/datasets/tiny_shakespeare/data-00000-of-00001.arrow create mode 100644 tests/resources/datasets/tiny_shakespeare/dataset_info.json create mode 100644 tests/resources/datasets/tiny_shakespeare/state.json diff --git a/src/flamingo/jobs/finetuning/entrypoint.py b/src/flamingo/jobs/finetuning/entrypoint.py index 8731d14c..3207bc55 100644 --- a/src/flamingo/jobs/finetuning/entrypoint.py +++ b/src/flamingo/jobs/finetuning/entrypoint.py @@ -62,24 +62,24 @@ def load_and_train(config: FinetuningJobConfig, artifact_loader: ArtifactLoader) trainer.train() -def training_function(data: dict[str, Any]): - artifact_loader = ray.get(data["artifact_loader"]) - config = FinetuningJobConfig(**data["config"]) - if is_tracking_enabled(config): - with wandb_init_from_config( - config.tracking, resume=WandbResumeMode.NEVER, job_type=FlamingoJobType.FINETUNING - ): - load_and_train(config, artifact_loader) - else: - load_and_train(config, artifact_loader) - - def run_finetuning(config: FinetuningJobConfig, artifact_loader: ArtifactLoader): - # Construct input data to pass to training workers - train_loop_config = { - "config": config.model_dump(), - "artifact_loader": ray.put(artifact_loader), - } + # Place the artifact loader in Ray object storage + artifact_loader_ref = ray.put(artifact_loader) + + # Define training function internally to capture the artifact loader ref as a closure + # Reference: https://docs.ray.io/en/latest/ray-core/objects.html#closure-capture-of-objects + def training_function(config_data: dict[str, Any]): + artifact_loader = ray.get(artifact_loader_ref) + config = FinetuningJobConfig(**config_data) + if is_tracking_enabled(config): + with wandb_init_from_config( + config.tracking, + resume=WandbResumeMode.NEVER, + job_type=FlamingoJobType.FINETUNING, + ): + load_and_train(config, artifact_loader) + else: + load_and_train(config, artifact_loader) # Construct Ray train configurations from input config scaling_config = ScalingConfig( @@ -93,7 +93,7 @@ def run_finetuning(config: FinetuningJobConfig, artifact_loader: ArtifactLoader) ) trainer = TorchTrainer( train_loop_per_worker=training_function, - train_loop_config=train_loop_config, + train_loop_config=config.model_dump(), scaling_config=scaling_config, run_config=run_config, ) diff --git a/tests/conftest.py b/tests/conftest.py index 41e8f770..3228da2b 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -29,6 +29,17 @@ def xyz_dataset_artifact(resources_dir): ) +@pytest.fixture +def shakespeare_dataset_artifact(resources_dir): + dataset_path = resources_dir / "datasets" / "tiny_shakespeare" + return build_directory_artifact( + artifact_name="tiny-shakespeare-dataset", + artifact_type=ArtifactType.DATASET, + dir_path=dataset_path, + reference=True, + ) + + @pytest.fixture def gpt2_model_artifact(resources_dir): model_path = resources_dir / "models" / "fake_gpt2" diff --git a/tests/integration/test_finetuning.py b/tests/integration/test_finetuning.py new file mode 100644 index 00000000..01ef0dde --- /dev/null +++ b/tests/integration/test_finetuning.py @@ -0,0 +1,32 @@ +import pytest + +from flamingo.integrations.huggingface import AutoModelConfig +from flamingo.integrations.wandb import WandbArtifactConfig, WandbRunConfig +from flamingo.jobs.lm_harness import LMHarnessEvaluatorConfig, LMHarnessJobConfig, run_lm_harness +from tests.test_utils import FakeArtifactLoader + + +@pytest.fixture +def job_config(gpt2_model_artifact): + artifact_config = WandbArtifactConfig(name=gpt2_model_artifact.name, project="test") + model_config = AutoModelConfig(load_from=artifact_config) + + tracking_config = WandbRunConfig(name="test-lm-harness-job") + evaluator_config = LMHarnessEvaluatorConfig(tasks=["hellaswag"], limit=5) + return LMHarnessJobConfig( + model=model_config, + evaluator=evaluator_config, + tracking=tracking_config, + ) + + +def test_finetuning_job(gpt2_model_artifact, job_config): + # Preload input artifact in loader + artifact_loader = FakeArtifactLoader() + artifact_loader.log_artifact(gpt2_model_artifact) + + # Run test job + run_lm_harness(job_config, artifact_loader) + + # One input artifact, and one eval artifact produced + assert artifact_loader.num_artifacts() == 2 diff --git a/tests/resources/datasets/tiny_shakespeare/create_tiny_shakespeare.py b/tests/resources/datasets/tiny_shakespeare/create_tiny_shakespeare.py new file mode 100644 index 00000000..61fc428f --- /dev/null +++ b/tests/resources/datasets/tiny_shakespeare/create_tiny_shakespeare.py @@ -0,0 +1,10 @@ +"""Script to generate the `tiny_shakespeare` dataset files.""" +from pathlib import Path + +from datasets import load_dataset + +if __name__ == "__main__": + repo_id = "Trelis/tiny-shakespeare" + dataset = load_dataset(repo_id, split="train[:100]") + dataset = dataset.rename_column("Text", "text") + dataset.save_to_disk(dataset_path=Path(__file__).parent) diff --git a/tests/resources/datasets/tiny_shakespeare/data-00000-of-00001.arrow b/tests/resources/datasets/tiny_shakespeare/data-00000-of-00001.arrow new file mode 100644 index 0000000000000000000000000000000000000000..ab0c46775a2c5e88782ed218735c1ea0006329dc GIT binary patch literal 258488 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�dYUClS)XNZx02?u|Vgr!j2($@vtbCN$#7;*- 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 nsl)ektZJY#{guzB5I` Date: Thu, 8 Feb 2024 15:39:58 -0700 Subject: [PATCH 3/6] write basic finetuning job --- tests/conftest.py | 4 +- tests/integration/test_finetuning.py | 44 ++++++++++++------ tests/integration/test_lm_harness.py | 15 +++--- .../cache-1f365c79744bfcef.arrow | Bin 0 -> 17696 bytes .../cache-295b735eadbd0e64.arrow | Bin 0 -> 5696 bytes .../cache-be708fc06f7fa557.arrow | Bin 0 -> 1376 bytes .../create_tiny_shakespeare.py | 2 +- .../data-00000-of-00001.arrow | Bin 258488 -> 26384 bytes .../datasets/tiny_shakespeare/state.json | 4 +- .../huggingface/test_loading_utils.py | 6 +-- 10 files changed, 45 insertions(+), 30 deletions(-) create mode 100644 tests/resources/datasets/tiny_shakespeare/cache-1f365c79744bfcef.arrow create mode 100644 tests/resources/datasets/tiny_shakespeare/cache-295b735eadbd0e64.arrow create mode 100644 tests/resources/datasets/tiny_shakespeare/cache-be708fc06f7fa557.arrow diff --git a/tests/conftest.py b/tests/conftest.py index 3228da2b..84102698 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -30,7 +30,7 @@ def xyz_dataset_artifact(resources_dir): @pytest.fixture -def shakespeare_dataset_artifact(resources_dir): +def text_dataset_artifact(resources_dir): dataset_path = resources_dir / "datasets" / "tiny_shakespeare" return build_directory_artifact( artifact_name="tiny-shakespeare-dataset", @@ -41,7 +41,7 @@ def shakespeare_dataset_artifact(resources_dir): @pytest.fixture -def gpt2_model_artifact(resources_dir): +def llm_model_artifact(resources_dir): model_path = resources_dir / "models" / "fake_gpt2" return build_directory_artifact( artifact_name="fake-gpt2-model", diff --git a/tests/integration/test_finetuning.py b/tests/integration/test_finetuning.py index 01ef0dde..5da1bdbe 100644 --- a/tests/integration/test_finetuning.py +++ b/tests/integration/test_finetuning.py @@ -1,32 +1,46 @@ import pytest -from flamingo.integrations.huggingface import AutoModelConfig +from flamingo.integrations.huggingface import AutoModelConfig, TextDatasetConfig, TrainerConfig from flamingo.integrations.wandb import WandbArtifactConfig, WandbRunConfig -from flamingo.jobs.lm_harness import LMHarnessEvaluatorConfig, LMHarnessJobConfig, run_lm_harness +from flamingo.jobs.finetuning import FinetuningJobConfig, FinetuningRayConfig, run_finetuning from tests.test_utils import FakeArtifactLoader @pytest.fixture -def job_config(gpt2_model_artifact): - artifact_config = WandbArtifactConfig(name=gpt2_model_artifact.name, project="test") - model_config = AutoModelConfig(load_from=artifact_config) - - tracking_config = WandbRunConfig(name="test-lm-harness-job") - evaluator_config = LMHarnessEvaluatorConfig(tasks=["hellaswag"], limit=5) - return LMHarnessJobConfig( +def job_config(llm_model_artifact, text_dataset_artifact): + model_config = AutoModelConfig( + load_from=WandbArtifactConfig(name=llm_model_artifact.name, project="test") + ) + dataset_config = TextDatasetConfig( + load_from=WandbArtifactConfig(name=text_dataset_artifact.name, project="test"), + text_field="text", + split="train", + ) + trainer_config = TrainerConfig( + max_seq_length=8, + num_train_epochs=1, + save_steps=1, + save_strategy="epoch", + ) + tracking_config = WandbRunConfig(name="test-finetuning-job") + ray_config = FinetuningRayConfig(num_workers=1, use_gpu=False) + return FinetuningJobConfig( model=model_config, - evaluator=evaluator_config, + dataset=dataset_config, + trainer=trainer_config, tracking=tracking_config, + ray=ray_config, ) -def test_finetuning_job(gpt2_model_artifact, job_config): +def test_finetuning_job(llm_model_artifact, text_dataset_artifact, job_config): # Preload input artifact in loader artifact_loader = FakeArtifactLoader() - artifact_loader.log_artifact(gpt2_model_artifact) + artifact_loader.log_artifact(llm_model_artifact) + artifact_loader.log_artifact(text_dataset_artifact) # Run test job - run_lm_harness(job_config, artifact_loader) + run_finetuning(job_config, artifact_loader) - # One input artifact, and one eval artifact produced - assert artifact_loader.num_artifacts() == 2 + # Two input artifacts, and one output model artifact produced + assert artifact_loader.num_artifacts() == 3 diff --git a/tests/integration/test_lm_harness.py b/tests/integration/test_lm_harness.py index f3d4fab5..b1e4814f 100644 --- a/tests/integration/test_lm_harness.py +++ b/tests/integration/test_lm_harness.py @@ -7,9 +7,10 @@ @pytest.fixture -def job_config(gpt2_model_artifact): - artifact_config = WandbArtifactConfig(name=gpt2_model_artifact.name, project="test") - model_config = AutoModelConfig(load_from=artifact_config) +def job_config(llm_model_artifact): + model_config = AutoModelConfig( + load_from=WandbArtifactConfig(name=llm_model_artifact.name, project="test") + ) tracking_config = WandbRunConfig(name="test-lm-harness-job") evaluator_config = LMHarnessEvaluatorConfig(tasks=["hellaswag"], limit=5) @@ -20,10 +21,10 @@ def job_config(gpt2_model_artifact): ) -def test_lm_harness_job_with_tracking(gpt2_model_artifact, job_config): +def test_lm_harness_job_with_tracking(llm_model_artifact, job_config): # Preload input artifact in loader artifact_loader = FakeArtifactLoader() - artifact_loader.log_artifact(gpt2_model_artifact) + artifact_loader.log_artifact(llm_model_artifact) # Run test job run_lm_harness(job_config, artifact_loader) @@ -32,13 +33,13 @@ def test_lm_harness_job_with_tracking(gpt2_model_artifact, job_config): assert artifact_loader.num_artifacts() == 2 -def test_lm_harness_job_no_tracking(gpt2_model_artifact, job_config): +def test_lm_harness_job_no_tracking(llm_model_artifact, job_config): # Disable tracking on job config job_config.tracking = None # Preload input artifact in loader artifact_loader = FakeArtifactLoader() - artifact_loader.log_artifact(gpt2_model_artifact) + artifact_loader.log_artifact(llm_model_artifact) # Run test job run_lm_harness(job_config, artifact_loader) diff --git a/tests/resources/datasets/tiny_shakespeare/cache-1f365c79744bfcef.arrow b/tests/resources/datasets/tiny_shakespeare/cache-1f365c79744bfcef.arrow new file mode 100644 index 0000000000000000000000000000000000000000..a238f246555bfb9d3a3e4d5807f250f061eedb69 GIT binary patch literal 17696 zcmeI4dAwA`m4FL`=K?BGL@}bx0|Z475EY0@BeE#C;*Rk(;A2tQ1YDwqh6#=lF&a0_ zAk%K>xZ;Xo7;Ts6L@_QXni#c>TXfu}#I-&B{D8Wjy|=+!IfIy%{Uy$<-{wKVGn3y8}w8qgU(D zt`bSD%hbarEy{W<9Tew{wH=sAF|~+cbv-3bbFc8I8L2*Ap#ixTR_^hw=DklGS-4l4 zS@%7y@3r^3^XWZrU{@|}UMrWwwe!Az-Mly%APeMxJWv3NKnXCJGC&r{0ePSR6oC?8 zKxKd|kOT5S0Vo0`AZ)@skOgu;9w-1spacYz$N*U&2jqbQPy|XqXvsW~1#&>%@<0J70wo}9$~=$-azGv^07ak#=*$d|1#&S@1M)xtC;}zG1k3fI*l6vOo^V173%0A3~?<JzP6Tmwe ze5t(&k-J`jOP&`?99DwCeF*R#XcddVa&CgazBBGCB6f%A06>t<+%ksdXu~l z@a(#=_*)*G8Bg*JVD3F+-j*@fKYwWC^=L0=Z71>|FAIf+evi?VJAJ(vdFkK~hJy1raq!>Z9nEu!mEM^UKEj23f#MaTiFn_-CTHzcOUZn0{9#BjK5dvqVHF2$NtLu-oT5@&Ed{ecoaDj&#$As zC9&Oe>*$ZiJ6G3DB}P^-w-+>r+|4+Icj5VZ_&f~0^6kR&EXI^koBbJ^i8GG-jXgr> z#d8ZFKxh1J5pVUO^ardnzdCU@?ta)n+z^B9u$gqFCx3IJk(k0VBWQ1BQ{Xa<9SXx7>}cP*N^YAMt!EXtIDZN=PZsj#eMtDF_G3o z6<@tVd}{mG?tnJ;&%P6BU(NG#?E>EWW9_W;71ntuEH3hsRap|6~@+=VsvQ0U<2Me$ulBTd%&jB+@iC#km$aw9j%3 zzX&y>%_ zV01%|-(iPcSoft7mymNhf1WPhrp5lR=uf;jH7{UVRf?C!o?YFMa0zIii z?t}Bmmn;iw*FL`oaYjw4wZ*(a(f7@f&lpf9Yu7aNI~@NTBi2!EA&;i~?yl6md$E)2 zy=$X7@ISsFuDPl!G&)rG-nY?T+%YFaTW-%9eJuU$>*Ct^;4DTab&=N9*h|}J`&P$B zpWV*$j{U1TW|(&myMwjvEr+7RLWHqC>A$}CSibTx_lz6s!P8x$p6*e99Ks~mHLTSR zqv4zI-3Rt$Jj3`0j7!&Ep*{CA8Bes$vCo0U%qjbo&^5-4|Hml$(zCw5;Tm-L8FHP> zT#9>buDlDOp}xJDbIr=0F>l4~!1#^ZlAHKbzOLB>dwHJ&J^6lcL$zjoNIcAi-qoy0 zHdQWdV2#=hn|U7!xHrmIo`Zq6VbGi!m-uXn+>79)95dO+jTv#>N9{BJo%u}|vrgDY z*5>8uGEwiQ zdF^}$+##nwLC2P>=q}v zZiddAjL(9uc1p5YAIHgqIeV;UG0vgj8yk*2+bPnv*Vv19b#T3YweB~~XXD6Nao)bq zn%sart^3M2jQBW{M#}wF(agDa;8~N51NVOGsQKNR7;w#jCv)drndN^6OtnkezmD5I z?v1`{J8OMAp6}&uzpm{9@0sJ)mG{--*FCG~XMJZ3K1pnTK`hnkckiC-;=hl*AA#;w z^h*13SLa*%;#1WS{sLuP5 zQ(fz0{0~F6uZwf*!b!xKdye~>F=YP)zYM*Q$GxZ1Y1R(IjuJ;r>qKD+MQ=I=RT z0kOXp;~QUJ(B~L~9oTD9%$p~Uxi_AGkMHRnbrAoT)I;$W(XUyHwXbI?^I^u&m=kBy zuWGA5jtt@a!>e@Xkz3Y(^EKJ94e>q~g3{a^8(G6$yCxIDUChARnTzm|2|+(4Y8Pl_Mc$>Sz$ zwG-pYv5c5T?Q)(D#P@BP_blR^HOm?x-OH%M4>4yAvtE1td4&7r%s+z6Ug9-}M$ZbL zaz4;cyh`jTgT0%z^%cf$fyWBKHP&y>H}X7{`|H3>+e91wjWx+$7o5u3cu0JIc|yF; zq*u5DImd!$e2V)3cj=lhLwU9yTGI{y@3#{}m<;`cuCCH`PwrEZ`84{4^O)CPp82J- zC%uMiq(2q8w4t=+mHaE7dN^lpd8OX&{zAlkZeV%1Otbcz$Ir0C>}l1#E5(#FH^UDcv$E;Jzvm3surTJAgX&!{6mCj7P(AT<=)*lFc>;4xw)V{`N zb1cQIGTR$Fc0}h`Z!RXlq^U0)pV%|@DXp-zx#$|@7UyVqZByCvPvF`7blv535ijw* z0_4l#?|yS7eob_`Lt{Q;1Cd*L#;W_<0m8m<>~-Y(ly~P7?}ga2J^r@WYGCe#;ArGF;tFK`)zC9 zYz90_YSSD!ZVX6Anx1b`FP3^jegb-PcU}LUm-HI} z-3)$%Wmk;!_w2e6d6KG61(me4d#9MiY<8&7cWLM|$+dx!d{m+|?=?r}XWQ<#p; zUc?UH2hUzy8>HT?#SdcdbpOA__3x7_UWxx#<+k6%mch&1wjM5{C!YroztvjblyM>Y zrGBE#1@twHT@0QzAdSn*y(GzQAEz#k+hiQV|bAAc$dETu{-o^hNd3p@@ zomt~~zm7TUr})p3`zxR)p0)KU<_2T8UjtnjvnP28dy4D6GMqgzJ%2=PNcpHQ%{Al7 z{>2{O7zp!XZ(vMy#0Gc6uQku~UnUImTBy9Z-~c~>sK@A!T4 z`USBcTTt<>{_w1&4qXvUzC-3m`#p&Ou2n|A3H2Bd!W49nf6Bk3nRCtTSrJzo{(<6?PKGA~^BZm$rogSWMOWan5Lt$}_!oJ@VvR)_JAJ+Aojt_S*qGY9Z; zT==T^%P{X=XU_OdLmMgUuu0VMQ=)IQp?15YPh`e;9CjsmV?-RJnqHKY6R4_DIRR}-V(k0IvNwYC?wwrjWZ=wa-Iu0f`c zxx02j1K(T7m3qd8GWK3wr0?$z#2ZLN9k)iQ*SuzP#(F2T0vi+e1*=hb$F@jLn#(A9NQv)qrvv$Eime z&bxI`osFxN(3hTZukU?#eYh&dfx4K_?xX4aX&)?34{ZDwWYP!ne+xd75z5?Gw$B+m zk@!;&-(7P9_1E)sBQ!i8uj&|k3uP7O3i<=_IsyO1ynU``ck8I*_VVd_@+-`rk)@A? zhjG`OcXLQQVSW3#pO5iE>0qvD)wCAIr z5Tn}9o~s*lJnN>K{7vMMx91r5fEi1p9aeI7P}W}#4qy*+zqH*0CFtSL8*zeem}ZkUI+vq)C*@O*DQPUkA)K)ZYZ zO=;V&ICdtneG7Qf(00}e*Jpr+-C}%dyD{C-2VKX)&-L208+X5__Tsq(@B`-b(*j~o z8bh#&wz---u9bg7{f7FuN4*UAElYW7*EO}57r*PIHTK{3{fE*!JP59OXpat^$5e^@ATFnY1)&z z7j$KQB=3uPRzK_WV0^0X>b+okRc~Y5watl_(fe1=Z2qnzf4_;k-zdk7O73}HHD1QD z*Vqe5R~pkQ=cYx2quyWUP}dkw)*^MB->({5_EpCCl54BA`2IpDfA5+K;iI7IH&DN; zBpus;|NAa6$GQ%Q>z(^k-xk7k zfl+Oy7_kv?)mC>46$}G&$aS>4|+Yx9d2O@WWSRAN0pS% z-wTWZ?fffjCJ$qA;=jcCZaL}!!8RJa&G3NE{qvXg<68?}SkoV%vB5nzyI2&isFCZ@#bBSL1C9#`5q?xWuzj8MjR@hN7*DaC zYM}kno2)YrJS)22`)qCV+s!JTQ!dNvtM)Or!0>(6+w1xFKM&4}GWa)7Udpj6wmOR% z@c{GE`#PGZ)4%M{XtJZ|{s!_sTd9x!Ca?YVhrYCDu;0>N3l~S3 zd`~tw`@T5$L*hyt^Xdrft37{&E^E182ETzdbd)>ox6ThhH@|m_)1A3vsEg9lw)#su zHUQ1xoBS+|-oQt*s`1}$IB@}Nm!WB;d~e>y4d z5q%ji5EpmNj(%|8cnwFiAcoah+&zG|@ns_e?$7TP`35nEZ;&Tf>z=r~FxQoyIIa7P z*m~@2_DcpXJwA?GFZ~-mao)z4*2+(bm3s*4wmj>b6bIIx!#N*{YYwbr?P)m6IP%;n zuHQ7JQJWL*bJj5aE}+g>8=n4N)Wh#F_Hp;HPspP^Yg3c4UfQWrb3#>@T7zuC3V@cWmsVO*{uMqi_EOtd^JKaImu{d<(;ejGf% zzbfleWJ`LYR{8IAw`R`%QF=33Z+$rAa*jISYPViPV;!!Im-We8`_1j!=D*}J{+264 zE#&-i8~3DhCv<+`k?5<ey=cAjB9H|o;9`lb_BQIAkLV?*r>Tx8~WYxX=;VP zZLe=n@a)@_wVubk-2WF7pvq|urdU2oj;z^fKFRzjJEy(Xas$Znzyz%)l@BW_c`LY?%fx0^#A8JQ!d*bja zzV@;nTnvBn$ltnVP&?$iRW^>z$U&IvAA!GeWPmJ?1M)xtC;}xQAa@4H0y!WL6o4X7 z0s^{bfGm&$@<0J70wo||w+xU4azGv^07ak#1Y#ruWPu!z2MRzDC;@?Z%>Y>-2jqbQ zPy|XqsAC?;0y!WL6o4X70s?-@09hah-2PymWR3Gheg43GtKKpyaFw(;6%fsGc} kXn~Cu*l2-`7T9QkjTYEwfsGc}Xo3GH3;6$M;W_0007J~~UjP6A literal 0 HcmV?d00001 diff --git a/tests/resources/datasets/tiny_shakespeare/cache-295b735eadbd0e64.arrow b/tests/resources/datasets/tiny_shakespeare/cache-295b735eadbd0e64.arrow new file mode 100644 index 0000000000000000000000000000000000000000..c84209958c5f1ae8746986c47dae162a00d02818 GIT binary patch literal 5696 zcmeI0jc?V}8ONWN+j@D^yMgSYpg*o)Yhbk$&=%jSZdzn&g)wVfEG@mXRVfv2HxSW+ z)-)onn}S`|utpQ<6tT=mIz&^PnW)4R1*}W9lqg!3m{ns;Vah|mxQVQ%r)Y}Z z6mTZ^w&`Z=oNse?GL@GokQ@!owTbu&tshOEu?)riz$tXhf;SqRj5+I2@;~K#B00;p zGm=@1q;j2+)EOkt@h3HVoyv8X8`8

7Fc`k^RJ$w!TGHYrs}!%JA|D1(4C2n%!=A->AZ5L>1t);rIT2=UHh?mVO_M8m24e z>2`^e&ewhQ1jV2Pl!7v_6x4uvum&`OX3zp!K|AOGouCVJgZ-cf z^nyOn4+g*>(1Qr8&wwZhKrYA!g`gOefKpHfmVz2k57vN2&wSw~oo&{{ z{&hPey<{&KV3*f0ryyj|kUhj@f@tfhMz z=RH4*{lqA=%Q<(o*;VYttHGuTzZ;HK7@ub=p74)WxH!Cek+Y$fxK4ro{v&2Z=bJ6c zLjXheeRwnd0^Y`7n|b^1K!M`E9XvVTY|j}^XD;VO>qD3B?qR+ybxySL*e&~yfb&xF zb?)XD-1}0#{*B$Doz1*Aix>jsI||R|Q~Y9(N1T+$P556-KzF6$_F^jTn$O{!V*bU$ ztjV2^djP%jTC?Y|X&w9lU9lR4U79!W@s<4lJZ+XZ z+xaW|R2zrM<;%z#1z)uw`8%{ulYb0DV$jY9w`1%_%vm>)1Lh7H&)7~ZjeG`8T){D^Xy!+so3$~pF2PPMa_H#Z!Kpva$?T@>#;LE zKL=;w1HO;M*ZbIv?L!1frl0tcvvDf-6*t9yF>&)bh#+$#4Dm)|>mqC`y3g#N_}NDM zME8FE;dxho`>^$KY~DxSG{ny&KY7^vezm)km_lCBQ^{G?pXBUjR{d!GSzz`8x^-81 zQvS9e^F3-j!huR?dedJ2O~~GZLnjF4T=K0PDE4{eTk(|~)%FuycpSd+u?78#fp{~) zCTOaqKZD1pQ`uF84u3y?+Q@vL-)GRH`;Vp7(S@ts`;I^#54{cj@39O_czmXKb^oCXsX{6oKsFdWxtiZhS#I_*TB8a_;4}tUBFr~?&h6K&zJP* zccG~_`uC|i*8QIn2i55q_H*Eirtfc@-&l)S>pM6*819b;;Jrm2B;UWqH?K82i#k&* zM^i(RAzC)d)mLO+9Q(&J%g-IqeSKv>Q+)NU$%hvL_i|SKdNa03)?0iB{Cm;<<9xT* znS;ba-=FKyEnlyI_A!e>X8)Z#QsDZr>^m~kos%5Z&Gu?Dy(9ImvFKBb#8b|ciyZFA z{z`K30kQRV*AoNjYs1fe3QRSVL+$AO>HYvcO+M`eIqZv}&j-!qReZ(x5OT-x4c^Wf z)$ZTv59)D}t22AapL*sVY}61YtO5+r)k(e$&-Xp5BY>ke})s^C%$Iklu%n*;?vX zI`#b+i|jk+4ae^_YV>vJ>aQD#Sts`Cz54i`ivP^-`Q0Dz8}(1bmD#^>%FTA~qaK-O zY#H|d@B+71ohTm4Z)U0%rZOw$N&C2`SmuB>Xd24@Hk{J$P5CJQFg2Mw@j7^0>TAij z1YP$>;&bHmzYB?71VljqazQ>Q1jV2Pl!7v_6ew@?U=3&l&7cLef_BgWIzboc2Kzw| g=mmYC9}Iv&aH@Y7W}F_UBXBwbr;LF9f1i5SH_u3GDgXcg literal 0 HcmV?d00001 diff --git a/tests/resources/datasets/tiny_shakespeare/cache-be708fc06f7fa557.arrow b/tests/resources/datasets/tiny_shakespeare/cache-be708fc06f7fa557.arrow new file mode 100644 index 0000000000000000000000000000000000000000..4790149c924a4aa371ec66fce2a28ed6a1db34f9 GIT binary patch literal 1376 zcmb_by=xO;7=Nz4#oC5P=LrgwvsI0$Zn zn^T9*I=Ki!-Nea3{2v^;Il7&{-+LcMrL==j_}%+HAMf*>IF94ilt@WPvoa?InGp*& zkYVQXB3Lt(R}9{v1}L}irOv|rCqUf+u;ciFH*l`oJC3K^FdC_C&G^AE3fq1+;Zl{> zbi=1Zg&Q7*^{YhAIgCLD1fEw;xXi{l|0j_>RX6 z==niUjfNv6#oRVjqt^5~wN8uSM)7EzQq-PeBv$pVpF+qln4+-JpMHIyvNkv&mH>s$-%e1NM_`$+8&4N$% zhP$>4uvWcyTF<>YoLCpBmK^yv<6CK*VID6r$@uL3-e3BRU&}ovJ)g{rs!2Whqx7_4 zJtctiw1H)S`8I(Ta2Lq@-a9LD>5<4e$UXz#ZILc>MS~w;xvCiI2k_iG>U#x|7vK-z zgf*-cF&v!tA-{;TjQ5$Xxq7tz>v@s&Ya%!Cmj1sX-u$%4Tg3i&MWhbd#vPH@(7yxT zV3Fznc_XpEd`6@I`KOA=X~^kgfaTps6Y7vZYm2-`jti(K%Zqx}pwOg!+!=cb_L+VL md>PGKx&gb}BDcU(*GEqCuYUK+Ld_&RJ$Ap1|4jTpFo$2fH>}(M literal 0 HcmV?d00001 diff --git a/tests/resources/datasets/tiny_shakespeare/create_tiny_shakespeare.py b/tests/resources/datasets/tiny_shakespeare/create_tiny_shakespeare.py index 61fc428f..8cd127b9 100644 --- a/tests/resources/datasets/tiny_shakespeare/create_tiny_shakespeare.py +++ b/tests/resources/datasets/tiny_shakespeare/create_tiny_shakespeare.py @@ -5,6 +5,6 @@ if __name__ == "__main__": repo_id = "Trelis/tiny-shakespeare" - dataset = load_dataset(repo_id, split="train[:100]") + dataset = load_dataset(repo_id, split="train[:10]") dataset = dataset.rename_column("Text", "text") dataset.save_to_disk(dataset_path=Path(__file__).parent) diff --git a/tests/resources/datasets/tiny_shakespeare/data-00000-of-00001.arrow b/tests/resources/datasets/tiny_shakespeare/data-00000-of-00001.arrow index ab0c46775a2c5e88782ed218735c1ea0006329dc..2fe65a256b593046f37f036e1ecff3f599694807 100644 GIT binary patch delta 103 zcmdn-n18}K#tjOLiUp|*P{73?!N9}7!ob161r+fCVgVrLn(WA^uBZc5V*sTc;JO$X Z7{RIn8HFd$Vbs{H!|amE@gE34Dgn{t4}$;z literal 258488 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�dYUClS)XNZx02?u|Vgr!j2($@vtbCN$#7;*- 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 nsl)ektZJY#{guzB5I` Date: Fri, 9 Feb 2024 08:17:26 -0700 Subject: [PATCH 4/6] docs and rename --- src/flamingo/integrations/huggingface/asset_loader.py | 2 +- src/flamingo/jobs/finetuning/entrypoint.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/flamingo/integrations/huggingface/asset_loader.py b/src/flamingo/integrations/huggingface/asset_loader.py index 2cdf6dce..5128a44d 100644 --- a/src/flamingo/integrations/huggingface/asset_loader.py +++ b/src/flamingo/integrations/huggingface/asset_loader.py @@ -106,7 +106,7 @@ def load_pretrained_model( An exception is raised if the HuggingFace repo does not contain a `config.json` file. - TODO(RD2024-87): Handle PEFT adapter loading directly in this method + TODO(RD2024-87): This fails if the checkpoint only contains a PEFT adapter config """ device_map, bnb_config = None, None if quantization is not None: diff --git a/src/flamingo/jobs/finetuning/entrypoint.py b/src/flamingo/jobs/finetuning/entrypoint.py index 3207bc55..56cedb37 100644 --- a/src/flamingo/jobs/finetuning/entrypoint.py +++ b/src/flamingo/jobs/finetuning/entrypoint.py @@ -63,7 +63,7 @@ def load_and_train(config: FinetuningJobConfig, artifact_loader: ArtifactLoader) def run_finetuning(config: FinetuningJobConfig, artifact_loader: ArtifactLoader): - # Place the artifact loader in Ray object storage + # Place the artifact loader in Ray object store artifact_loader_ref = ray.put(artifact_loader) # Define training function internally to capture the artifact loader ref as a closure From 7399427273750f3cba62cb89def868331e6c3dd0 Mon Sep 17 00:00:00 2001 From: Sean Friedowitz Date: Fri, 9 Feb 2024 08:24:18 -0700 Subject: [PATCH 5/6] update test --- tests/integration/test_finetuning.py | 8 ++++++-- tests/test_utils.py | 5 ++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/tests/integration/test_finetuning.py b/tests/integration/test_finetuning.py index 5da1bdbe..c71c0cb7 100644 --- a/tests/integration/test_finetuning.py +++ b/tests/integration/test_finetuning.py @@ -1,7 +1,7 @@ import pytest from flamingo.integrations.huggingface import AutoModelConfig, TextDatasetConfig, TrainerConfig -from flamingo.integrations.wandb import WandbArtifactConfig, WandbRunConfig +from flamingo.integrations.wandb import ArtifactType, WandbArtifactConfig, WandbRunConfig from flamingo.jobs.finetuning import FinetuningJobConfig, FinetuningRayConfig, run_finetuning from tests.test_utils import FakeArtifactLoader @@ -43,4 +43,8 @@ def test_finetuning_job(llm_model_artifact, text_dataset_artifact, job_config): run_finetuning(job_config, artifact_loader) # Two input artifacts, and one output model artifact produced - assert artifact_loader.num_artifacts() == 3 + artifacts = artifact_loader.get_artifacts() + num_dataset_artifacts = len([a for a in artifacts if a.type == ArtifactType.DATASET]) + num_model_artifacts = len([a for a in artifacts if a.type == ArtifactType.MODEL]) + assert num_dataset_artifacts == 1 + assert num_model_artifacts == 2 diff --git a/tests/test_utils.py b/tests/test_utils.py index f0f08f1a..7cc7a5b5 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -20,11 +20,14 @@ class FakeArtifactLoader: """ def __init__(self): - self._storage = dict() + self._storage: dict[str, wandb.Artifact] = dict() def num_artifacts(self) -> int: return len(self._storage) + def get_artifacts(self) -> list[wandb.Artifact]: + return list(self._storage.values()) + def use_artifact(self, config: WandbArtifactConfig) -> wandb.Artifact: return self._storage[config.name] From d1d965adac8b1c54a768ec592719ba2ea69425c7 Mon Sep 17 00:00:00 2001 From: Sean Friedowitz Date: Fri, 9 Feb 2024 10:20:11 -0700 Subject: [PATCH 6/6] add IT readme --- tests/integration/README.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 tests/integration/README.md diff --git a/tests/integration/README.md b/tests/integration/README.md new file mode 100644 index 00000000..308b41c6 --- /dev/null +++ b/tests/integration/README.md @@ -0,0 +1,29 @@ +# Integration Tests + +This folder houses tests that bring together the local package code +and external job dependencies. +Currently, the main external dependencies of the package are a Ray cluster +and tracking services (e.g., W&B). + +## Ray compute + +A Ray cluster is provided for testing as a `pytest` fixture (see `conftest.py`). +Currently, this is a tiny cluster with a fixed number of CPUs that runs on +the local test runner machine. +The [Ray documentation](https://docs.ray.io/en/latest/ray-core/examples/testing-tips.html) +provides helpful guides on how to set these clusters up for testing. + +## Tracking services + +Weights & Biases is currently used as the main experiment tracking service. +For testing, W&B can be disabled by setting the environment variable `WANDB_MODE="offline"`, +which is done automatically in a fixture for integration tests. +This causes the [W&B SDK to act like a no-op](https://docs.wandb.ai/guides/technical-faq/general#can-i-disable-wandb-when-testing-my-code) +so the actual service is not contacted during testing. + +However, when W&B is disabled, the loading and logging of artifacts is also disabled +which breaks the input/output data flow for the job entrypoints. +To work around this during testing, we use the `FakeArtifactLoader` class +that stores artifacts in in-memory storage to avoid calls to the W&B SDK. +This allows the full job entrypoints to be executed +and the output artifacts produced by the jobs to be verified as test assertions.