[{"data":1,"prerenderedAt":1248},["ShallowReactive",2],{"navigation":3,"api-navigation":184,"\u002Flearn\u002Fexamples":206,"docyard:crossref-index":1247},[4,8,155,174,180],{"title":5,"path":6,"stem":7},"Getting Started","\u002Fgetting-started","1.getting-started",{"title":9,"path":10,"stem":11,"children":12},"Learn","\u002Flearn","2.learn",[13,15,66,99,133],{"title":9,"path":10,"stem":14},"2.learn\u002Findex",{"title":16,"path":17,"stem":18,"children":19},"Tutorials","\u002Flearn\u002Ftutorials","2.learn\u002F1.tutorials\u002Findex",[20,21,26,30,34,38,42,46,50,54,58,62],{"title":16,"path":17,"stem":18},{"title":22,"path":23,"stem":24,"icon":25},"Why Laco?","\u002Flearn\u002Ftutorials\u002Fwhy-laco","2.learn\u002F1.tutorials\u002F01.why-laco","i-lucide-notebook",{"title":27,"path":28,"stem":29,"icon":25},"First Steps with Laco","\u002Flearn\u002Ftutorials\u002Ffirst-steps","2.learn\u002F1.tutorials\u002F02.first-steps",{"title":31,"path":32,"stem":33,"icon":25},"Lazy Call and Partial","\u002Flearn\u002Ftutorials\u002Flazy-call-and-partial","2.learn\u002F1.tutorials\u002F03.lazy-call-and-partial",{"title":35,"path":36,"stem":37,"icon":25},"Hyperparameters and Interpolation","\u002Flearn\u002Ftutorials\u002Fhyperparameters-and-interpolation","2.learn\u002F1.tutorials\u002F04.hyperparameters-and-interpolation",{"title":39,"path":40,"stem":41,"icon":25},"Loading, Saving, and the CLI","\u002Flearn\u002Ftutorials\u002Floading-saving-cli","2.learn\u002F1.tutorials\u002F05.loading-saving-cli",{"title":43,"path":44,"stem":45,"icon":25},"Nested Configs and Containers","\u002Flearn\u002Ftutorials\u002Fnested-configs-and-containers","2.learn\u002F1.tutorials\u002F06.nested-configs-and-containers",{"title":47,"path":48,"stem":49,"icon":25},"Typed Groups and Schemas","\u002Flearn\u002Ftutorials\u002Ftyped-groups-and-schemas","2.learn\u002F1.tutorials\u002F07.typed-groups-and-schemas",{"title":51,"path":52,"stem":53,"icon":25},"Pipeline Configs","\u002Flearn\u002Ftutorials\u002Fpipeline-configs","2.learn\u002F1.tutorials\u002F08.pipeline-configs",{"title":55,"path":56,"stem":57,"icon":25},"Tasks and the App Loop","\u002Flearn\u002Ftutorials\u002Ftasks-and-app-loop","2.learn\u002F1.tutorials\u002F09.tasks-and-app-loop",{"title":59,"path":60,"stem":61,"icon":25},"Tracing","\u002Flearn\u002Ftutorials\u002Ftracing","2.learn\u002F1.tutorials\u002F10.tracing",{"title":63,"path":64,"stem":65,"icon":25},"Production Patterns","\u002Flearn\u002Ftutorials\u002Fproduction-patterns","2.learn\u002F1.tutorials\u002F11.production-patterns",{"title":67,"path":68,"stem":69,"children":70},"Concepts","\u002Flearn\u002Fconcepts","2.learn\u002F2.concepts\u002Findex",[71,72,76,80,84,88,92,95],{"title":67,"path":68,"stem":69},{"title":73,"path":74,"stem":75},"Config as Python","\u002Flearn\u002Fconcepts\u002Fconfig-as-python","2.learn\u002F2.concepts\u002F1.config-as-python",{"title":77,"path":78,"stem":79},"Lazy Construction","\u002Flearn\u002Fconcepts\u002Flazy-construction","2.learn\u002F2.concepts\u002F2.lazy-construction",{"title":81,"path":82,"stem":83},"Lie-Typing","\u002Flearn\u002Fconcepts\u002Flie-typing","2.learn\u002F2.concepts\u002F3.lie-typing",{"title":85,"path":86,"stem":87},"Interpolation","\u002Flearn\u002Fconcepts\u002Finterpolation","2.learn\u002F2.concepts\u002F4.interpolation",{"title":89,"path":90,"stem":91},"Typed Groups","\u002Flearn\u002Fconcepts\u002Ftyped-groups","2.learn\u002F2.concepts\u002F5.typed-groups",{"title":59,"path":93,"stem":94},"\u002Flearn\u002Fconcepts\u002Ftracing","2.learn\u002F2.concepts\u002F6.tracing",{"title":96,"path":97,"stem":98},"App Loop","\u002Flearn\u002Fconcepts\u002Fapp-loop","2.learn\u002F2.concepts\u002F7.app-loop",{"title":100,"path":101,"stem":102,"children":103},"How-To Guides","\u002Flearn\u002Fhow-to","2.learn\u002F3.how-to\u002Findex",[104,105,109,113,117,121,125,129],{"title":100,"path":101,"stem":102},{"title":106,"path":107,"stem":108},"Override Configs","\u002Flearn\u002Fhow-to\u002Foverride-configs","2.learn\u002F3.how-to\u002F1.override-configs",{"title":110,"path":111,"stem":112},"Safe Loading","\u002Flearn\u002Fhow-to\u002Fsafe-loading","2.learn\u002F3.how-to\u002F2.safe-loading",{"title":114,"path":115,"stem":116},"Custom Resolvers","\u002Flearn\u002Fhow-to\u002Fcustom-resolvers","2.learn\u002F3.how-to\u002F3.custom-resolvers",{"title":118,"path":119,"stem":120},"Lint and Strict Mode","\u002Flearn\u002Fhow-to\u002Flint-and-strict","2.learn\u002F3.how-to\u002F4.lint-and-strict",{"title":122,"path":123,"stem":124},"Publishing a reproducible app with laco app","\u002Flearn\u002Fhow-to\u002Flaco-app","2.learn\u002F3.how-to\u002F5.laco-app",{"title":126,"path":127,"stem":128},"Reproduce an Experiment","\u002Flearn\u002Fhow-to\u002Freproduce-experiment","2.learn\u002F3.how-to\u002F6.reproduce-experiment",{"title":130,"path":131,"stem":132},"Migrate from argparse","\u002Flearn\u002Fhow-to\u002Fmigrate-from-argparse","2.learn\u002F3.how-to\u002F7.migrate-from-argparse",{"title":134,"path":135,"stem":136,"children":137},"Examples Curriculum","\u002Flearn\u002Fexamples","2.learn\u002F4.examples\u002Findex",[138,139,143,147,151],{"title":134,"path":135,"stem":136},{"title":140,"path":141,"stem":142},"Foundation Examples","\u002Flearn\u002Fexamples\u002Ffoundations","2.learn\u002F4.examples\u002F1.foundations",{"title":144,"path":145,"stem":146},"Building Blocks","\u002Flearn\u002Fexamples\u002Fbuilding-blocks","2.learn\u002F4.examples\u002F2.building-blocks",{"title":148,"path":149,"stem":150},"Typed-Group Variants","\u002Flearn\u002Fexamples\u002Ftyped-variants","2.learn\u002F4.examples\u002F3.typed-variants",{"title":152,"path":153,"stem":154},"End-to-End Pipelines","\u002Flearn\u002Fexamples\u002Fpipelines","2.learn\u002F4.examples\u002F4.pipelines",{"title":156,"path":157,"stem":158,"children":159},"Resources","\u002Fresources","3.resources",[160,162,166,170],{"title":156,"path":157,"stem":161},"3.resources\u002Findex",{"title":163,"path":164,"stem":165},"Integrations","\u002Fresources\u002Fintegrations","3.resources\u002F1.integrations",{"title":167,"path":168,"stem":169},"Migration guide: Laco 0.x → 1.0","\u002Fresources\u002Fmigration-0.x-to-1.0","3.resources\u002F2.migration-0.x-to-1.0",{"title":171,"path":172,"stem":173},"Laco vs hydra-zen","\u002Fresources\u002Flaco-vs-hydra-zen","3.resources\u002F3.laco-vs-hydra-zen",{"title":175,"path":176,"stem":177,"children":178},"API Reference","\u002Fapi","4.api\u002Findex",[179],{"title":175,"path":176,"stem":177},{"title":181,"path":182,"stem":183},"Lazy Configuration for Python","\u002F","index",[185,188,191,194,197,200,203],{"title":186,"path":187},"cli","\u002Fapi\u002Fcli",{"title":189,"path":190},"compat","\u002Fapi\u002Fcompat",{"title":192,"path":193},"handler","\u002Fapi\u002Fhandler",{"title":195,"path":196},"keys","\u002Fapi\u002Fkeys",{"title":198,"path":199},"language","\u002Fapi\u002Flanguage",{"title":201,"path":202},"ops","\u002Fapi\u002Fops",{"title":204,"path":205},"utils","\u002Fapi\u002Futils",{"id":207,"title":134,"body":208,"description":1242,"extension":1243,"meta":1244,"navigation":393,"path":135,"seo":1245,"stem":136,"__hash__":1246},"content\u002F2.learn\u002F4.examples\u002Findex.md",{"type":209,"value":210,"toc":1228},"minimark",[211,215,228,233,329,334,609,612,665,668,676,679,683,703,765,769,990,996,998,1002,1056,1058,1062,1068,1070,1074,1126,1128,1132,1173,1177,1224],[212,213,134],"h1",{"id":214},"examples-curriculum",[216,217,218,219,223,224,227],"p",{},"The Laco examples curriculum is a set of progressively more complex\nconfiguration examples demonstrating the full API. All examples live under\n",[220,221,222],"code",{},"sources\u002Flaco\u002Fexamples\u002F"," and are exercised by ",[220,225,226],{},"tests\u002Ftest_examples.py",".",[229,230,232],"h2",{"id":231},"tier-01-foundations","Tier 0–1: Foundations",[234,235,236,249],"table",{},[237,238,239],"thead",{},[240,241,242,246],"tr",{},[243,244,245],"th",{},"Module",[243,247,248],{},"What it demonstrates",[250,251,252,279,298,313],"tbody",{},[240,253,254,264],{},[255,256,257],"td",{},[258,259,261],"a",{"href":260},"..\u002F..\u002Fsources\u002Flaco\u002Fexamples\u002Fmlp.py",[220,262,263],{},"mlp.py",[255,265,266,269,270,269,273,269,276],{},[220,267,268],{},"L.call",", ",[220,271,272],{},"L.params",[220,274,275],{},"L.repeat",[220,277,278],{},"L.OrderedDict",[240,280,281,289],{},[255,282,283],{},[258,284,286],{"href":285},"..\u002F..\u002Fsources\u002Flaco\u002Fexamples\u002Flinear_regression.py",[220,287,288],{},"linear_regression.py",[255,290,291,269,293,269,296],{},[220,292,268],{},[220,294,295],{},"L.partial",[220,297,272],{},[240,299,300,308],{},[255,301,302],{},[258,303,305],{"href":304},"..\u002F..\u002Fsources\u002Flaco\u002Fexamples\u002Fcnn_classifier.py",[220,306,307],{},"cnn_classifier.py",[255,309,310,311],{},"Stacked stages with ",[220,312,275],{},[240,314,315,323],{},[255,316,317],{},[258,318,320],{"href":319},"..\u002F..\u002Fsources\u002Flaco\u002Fexamples\u002Ftext_classifier.py",[220,321,322],{},"text_classifier.py",[255,324,325,328],{},[220,326,327],{},"L.required[T]()"," for mandatory fields",[330,331,333],"h3",{"id":332},"minimal-example-linear-regression","Minimal example: linear regression",[335,336,341],"pre",{"className":337,"code":338,"language":339,"meta":340,"style":340},"language-python shiki shiki-themes material-theme-lighter github-light github-dark","import laco.language as L\nfrom torch import nn, optim\n\n@L.params\nclass hps:\n    in_features: int = 8\n    out_features: int = 1\n    learning_rate: float = 1e-2\n\nmodel = L.call(nn.Linear, root=True)(\n    in_features=hps.in_features,\n    out_features=hps.out_features,\n)\noptimizer = L.partial(optim.SGD)(lr=hps.learning_rate)\n","python","",[220,342,343,368,388,395,411,425,446,461,477,482,526,544,560,566],{"__ignoreMap":340},[344,345,348,352,356,359,362,365],"span",{"class":346,"line":347},"line",1,[344,349,351],{"class":350},"sVHd0","import",[344,353,355],{"class":354},"su5hD"," laco",[344,357,227],{"class":358},"sP7_E",[344,360,198],{"class":361},"skxfh",[344,363,364],{"class":350}," as",[344,366,367],{"class":354}," L\n",[344,369,371,374,377,379,382,385],{"class":346,"line":370},2,[344,372,373],{"class":350},"from",[344,375,376],{"class":354}," torch ",[344,378,351],{"class":350},[344,380,381],{"class":354}," nn",[344,383,384],{"class":358},",",[344,386,387],{"class":354}," optim\n",[344,389,391],{"class":346,"line":390},3,[344,392,394],{"emptyLinePlaceholder":393},true,"\n",[344,396,398,402,406,408],{"class":346,"line":397},4,[344,399,401],{"class":400},"stp6e","@",[344,403,405],{"class":404},"sGLFI","L",[344,407,227],{"class":400},[344,409,410],{"class":404},"params\n",[344,412,414,418,422],{"class":346,"line":413},5,[344,415,417],{"class":416},"sbsja","class",[344,419,421],{"class":420},"sbgvK"," hps",[344,423,424],{"class":358},":\n",[344,426,428,431,434,438,442],{"class":346,"line":427},6,[344,429,430],{"class":354},"    in_features",[344,432,433],{"class":358},":",[344,435,437],{"class":436},"sZMiF"," int",[344,439,441],{"class":440},"smGrS"," =",[344,443,445],{"class":444},"srdBf"," 8\n",[344,447,449,452,454,456,458],{"class":346,"line":448},7,[344,450,451],{"class":354},"    out_features",[344,453,433],{"class":358},[344,455,437],{"class":436},[344,457,441],{"class":440},[344,459,460],{"class":444}," 1\n",[344,462,464,467,469,472,474],{"class":346,"line":463},8,[344,465,466],{"class":354},"    learning_rate",[344,468,433],{"class":358},[344,470,471],{"class":436}," float",[344,473,441],{"class":440},[344,475,476],{"class":444}," 1e-2\n",[344,478,480],{"class":346,"line":479},9,[344,481,394],{"emptyLinePlaceholder":393},[344,483,485,488,491,494,496,500,503,506,508,511,513,517,519,523],{"class":346,"line":484},10,[344,486,487],{"class":354},"model ",[344,489,490],{"class":440},"=",[344,492,493],{"class":354}," L",[344,495,227],{"class":358},[344,497,499],{"class":498},"slqww","call",[344,501,502],{"class":358},"(",[344,504,505],{"class":498},"nn",[344,507,227],{"class":358},[344,509,510],{"class":361},"Linear",[344,512,384],{"class":358},[344,514,516],{"class":515},"s99_P"," root",[344,518,490],{"class":440},[344,520,522],{"class":521},"s39Yj","True",[344,524,525],{"class":358},")(\n",[344,527,529,531,533,536,538,541],{"class":346,"line":528},11,[344,530,430],{"class":515},[344,532,490],{"class":440},[344,534,535],{"class":498},"hps",[344,537,227],{"class":358},[344,539,540],{"class":361},"in_features",[344,542,543],{"class":358},",\n",[344,545,547,549,551,553,555,558],{"class":346,"line":546},12,[344,548,451],{"class":515},[344,550,490],{"class":440},[344,552,535],{"class":498},[344,554,227],{"class":358},[344,556,557],{"class":361},"out_features",[344,559,543],{"class":358},[344,561,563],{"class":346,"line":562},13,[344,564,565],{"class":358},")\n",[344,567,569,572,574,576,578,581,583,586,588,592,595,598,600,602,604,607],{"class":346,"line":568},14,[344,570,571],{"class":354},"optimizer ",[344,573,490],{"class":440},[344,575,493],{"class":354},[344,577,227],{"class":358},[344,579,580],{"class":498},"partial",[344,582,502],{"class":358},[344,584,585],{"class":498},"optim",[344,587,227],{"class":358},[344,589,591],{"class":590},"swQdS","SGD",[344,593,594],{"class":358},")(",[344,596,597],{"class":515},"lr",[344,599,490],{"class":440},[344,601,535],{"class":498},[344,603,227],{"class":358},[344,605,606],{"class":361},"learning_rate",[344,608,565],{"class":358},[216,610,611],{},"Load and instantiate:",[335,613,615],{"className":337,"code":614,"language":339,"meta":340,"style":340},"cfg = laco.load(\"configs:\u002F\u002Fexamples\u002Flinear_regression.py#model\")\nmodel = laco.instantiate(cfg)\n",[220,616,617,645],{"__ignoreMap":340},[344,618,619,622,624,626,628,631,633,637,641,643],{"class":346,"line":347},[344,620,621],{"class":354},"cfg ",[344,623,490],{"class":440},[344,625,355],{"class":354},[344,627,227],{"class":358},[344,629,630],{"class":498},"load",[344,632,502],{"class":358},[344,634,636],{"class":635},"sjJ54","\"",[344,638,640],{"class":639},"s_sjI","configs:\u002F\u002Fexamples\u002Flinear_regression.py#model",[344,642,636],{"class":635},[344,644,565],{"class":358},[344,646,647,649,651,653,655,658,660,663],{"class":346,"line":370},[344,648,487],{"class":354},[344,650,490],{"class":440},[344,652,355],{"class":354},[344,654,227],{"class":358},[344,656,657],{"class":498},"instantiate",[344,659,502],{"class":358},[344,661,662],{"class":498},"cfg",[344,664,565],{"class":358},[216,666,667],{},"Override from CLI:",[335,669,674],{"className":670,"code":672,"language":673},[671],"language-text","laco compose configs:\u002F\u002Fexamples\u002Flinear_regression.py hps.in_features=16\n","text",[220,675,672],{"__ignoreMap":340},[677,678],"hr",{},[229,680,682],{"id":681},"tier-01-typed-group-variants","Tier 0–1: Typed-group variants",[216,684,685,686,689,690,269,693,269,696,269,699,702],{},"Each Tier 0–1 example has a sibling in ",[220,687,688],{},"examples\u002Ftyped\u002F"," that uses the\ntyped-group API (",[220,691,692],{},"L.Group",[220,694,695],{},"@L.config",[220,697,698],{},"L.slot",[220,700,701],{},"L.bind",").",[234,704,705,714],{},[237,706,707],{},[240,708,709,711],{},[243,710,245],{},[243,712,713],{},"Changes",[250,715,716,732,747],{},[240,717,718,726],{},[255,719,720],{},[258,721,723],{"href":722},"..\u002F..\u002Fsources\u002Flaco\u002Fexamples\u002Ftyped\u002Fmlp.py",[220,724,725],{},"typed\u002Fmlp.py",[255,727,728,731],{},[220,729,730],{},"ActivationGroup(L.Group[nn.Module])"," for swappable activations",[240,733,734,742],{},[255,735,736],{},[258,737,739],{"href":738},"..\u002F..\u002Fsources\u002Flaco\u002Fexamples\u002Ftyped\u002Flinear_regression.py",[220,740,741],{},"typed\u002Flinear_regression.py",[255,743,744],{},[220,745,746],{},"OptimGroup(L.Group[Optimizer])",[240,748,749,757],{},[255,750,751],{},[258,752,754],{"href":753},"..\u002F..\u002Fsources\u002Flaco\u002Fexamples\u002Ftyped\u002Ftext_classifier.py",[220,755,756],{},"typed\u002Ftext_classifier.py",[255,758,759,761,762],{},[220,760,695],{}," schema, ",[220,763,764],{},"L.required[int]()",[330,766,768],{"id":767},"typed-group-example-mlp","Typed-group example: MLP",[335,770,772],{"className":337,"code":771,"language":339,"meta":340,"style":340},"class ActivationGroup(L.Group[nn.Module]):\n    relu = L.call(nn.ReLU)()\n    gelu = L.call(nn.GELU)()\n\n@L.config\nclass MLPSchema:\n    dim_in: int = 128\n    activation: nn.Module = L.slot(ActivationGroup)\n\ndefaults = L.Defaults(\n    L.self_,\n    L.bind(MLPSchema.activation, ActivationGroup.relu),  # default to ReLU\n)\n",[220,773,774,802,827,851,855,866,875,889,918,922,939,951,986],{"__ignoreMap":340},[344,775,776,778,781,783,785,787,790,793,795,797,799],{"class":346,"line":347},[344,777,417],{"class":416},[344,779,780],{"class":420}," ActivationGroup",[344,782,502],{"class":358},[344,784,405],{"class":420},[344,786,227],{"class":358},[344,788,789],{"class":361},"Group",[344,791,792],{"class":358},"[",[344,794,505],{"class":361},[344,796,227],{"class":358},[344,798,245],{"class":361},[344,800,801],{"class":358},"]):\n",[344,803,804,807,809,811,813,815,817,819,821,824],{"class":346,"line":370},[344,805,806],{"class":354},"    relu ",[344,808,490],{"class":440},[344,810,493],{"class":354},[344,812,227],{"class":358},[344,814,499],{"class":498},[344,816,502],{"class":358},[344,818,505],{"class":498},[344,820,227],{"class":358},[344,822,823],{"class":361},"ReLU",[344,825,826],{"class":358},")()\n",[344,828,829,832,834,836,838,840,842,844,846,849],{"class":346,"line":390},[344,830,831],{"class":354},"    gelu ",[344,833,490],{"class":440},[344,835,493],{"class":354},[344,837,227],{"class":358},[344,839,499],{"class":498},[344,841,502],{"class":358},[344,843,505],{"class":498},[344,845,227],{"class":358},[344,847,848],{"class":590},"GELU",[344,850,826],{"class":358},[344,852,853],{"class":346,"line":397},[344,854,394],{"emptyLinePlaceholder":393},[344,856,857,859,861,863],{"class":346,"line":413},[344,858,401],{"class":400},[344,860,405],{"class":404},[344,862,227],{"class":400},[344,864,865],{"class":404},"config\n",[344,867,868,870,873],{"class":346,"line":427},[344,869,417],{"class":416},[344,871,872],{"class":420}," MLPSchema",[344,874,424],{"class":358},[344,876,877,880,882,884,886],{"class":346,"line":448},[344,878,879],{"class":354},"    dim_in",[344,881,433],{"class":358},[344,883,437],{"class":436},[344,885,441],{"class":440},[344,887,888],{"class":444}," 128\n",[344,890,891,894,896,898,900,902,904,906,908,911,913,916],{"class":346,"line":463},[344,892,893],{"class":354},"    activation",[344,895,433],{"class":358},[344,897,381],{"class":354},[344,899,227],{"class":358},[344,901,245],{"class":361},[344,903,441],{"class":440},[344,905,493],{"class":354},[344,907,227],{"class":358},[344,909,910],{"class":498},"slot",[344,912,502],{"class":358},[344,914,915],{"class":498},"ActivationGroup",[344,917,565],{"class":358},[344,919,920],{"class":346,"line":479},[344,921,394],{"emptyLinePlaceholder":393},[344,923,924,927,929,931,933,936],{"class":346,"line":484},[344,925,926],{"class":354},"defaults ",[344,928,490],{"class":440},[344,930,493],{"class":354},[344,932,227],{"class":358},[344,934,935],{"class":498},"Defaults",[344,937,938],{"class":358},"(\n",[344,940,941,944,946,949],{"class":346,"line":528},[344,942,943],{"class":498},"    L",[344,945,227],{"class":358},[344,947,948],{"class":361},"self_",[344,950,543],{"class":358},[344,952,953,955,957,960,962,965,967,970,972,974,976,979,982],{"class":346,"line":546},[344,954,943],{"class":498},[344,956,227],{"class":358},[344,958,959],{"class":498},"bind",[344,961,502],{"class":358},[344,963,964],{"class":498},"MLPSchema",[344,966,227],{"class":358},[344,968,969],{"class":361},"activation",[344,971,384],{"class":358},[344,973,780],{"class":498},[344,975,227],{"class":358},[344,977,978],{"class":361},"relu",[344,980,981],{"class":358},"),",[344,983,985],{"class":984},"sutJx","  # default to ReLU\n",[344,987,988],{"class":346,"line":562},[344,989,565],{"class":358},[216,991,992,993],{},"Override from CLI: ",[220,994,995],{},"laco compose examples\u002Ftyped\u002Fmlp.py activation=gelu",[677,997],{},[229,999,1001],{"id":1000},"tier-2-building-blocks","Tier 2: Building Blocks",[234,1003,1004,1012],{},[237,1005,1006],{},[240,1007,1008,1010],{},[243,1009,245],{},[243,1011,248],{},[250,1013,1014,1030,1043],{},[240,1015,1016,1024],{},[255,1017,1018],{},[258,1019,1021],{"href":1020},"..\u002F..\u002Fsources\u002Flaco\u002Fexamples\u002Fblocks\u002Fresidual.py",[220,1022,1023],{},"blocks\u002Fresidual.py",[255,1025,1026,1027,1029],{},"Residual connection, ",[220,1028,268],{}," factories",[240,1031,1032,1040],{},[255,1033,1034],{},[258,1035,1037],{"href":1036},"..\u002F..\u002Fsources\u002Flaco\u002Fexamples\u002Fblocks\u002Ftransformer.py",[220,1038,1039],{},"blocks\u002Ftransformer.py",[255,1041,1042],{},"Multi-head attention + FFN layers",[240,1044,1045,1053],{},[255,1046,1047],{},[258,1048,1050],{"href":1049},"..\u002F..\u002Fsources\u002Flaco\u002Fexamples\u002Fblocks\u002Fdecoder.py",[220,1051,1052],{},"blocks\u002Fdecoder.py",[255,1054,1055],{},"Autoregressive decoder",[677,1057],{},[229,1059,1061],{"id":1060},"tier-34-vision-language-models","Tier 3–4: Vision & Language Models",[216,1063,1064,1065,227],{},"Large model configs under ",[220,1066,1067],{},"examples\u002Fmodels\u002F",[677,1069],{},[229,1071,1073],{"id":1072},"tier-5-ecosystem-integrations","Tier 5: Ecosystem Integrations",[234,1075,1076,1085],{},[237,1077,1078],{},[240,1079,1080,1082],{},[243,1081,245],{},[243,1083,1084],{},"Integration",[250,1086,1087,1100,1113],{},[240,1088,1089,1097],{},[255,1090,1091],{},[258,1092,1094],{"href":1093},"..\u002F..\u002Fsources\u002Flaco\u002Fexamples\u002Fintegrations\u002Flightning_module.py",[220,1095,1096],{},"integrations\u002Flightning_module.py",[255,1098,1099],{},"PyTorch Lightning",[240,1101,1102,1110],{},[255,1103,1104],{},[258,1105,1107],{"href":1106},"..\u002F..\u002Fsources\u002Flaco\u002Fexamples\u002Fintegrations\u002Ftransformers_qa.py",[220,1108,1109],{},"integrations\u002Ftransformers_qa.py",[255,1111,1112],{},"HuggingFace Transformers",[240,1114,1115,1123],{},[255,1116,1117],{},[258,1118,1120],{"href":1119},"..\u002F..\u002Fsources\u002Flaco\u002Fexamples\u002Fintegrations\u002Ftensordict_module.py",[220,1121,1122],{},"integrations\u002Ftensordict_module.py",[255,1124,1125],{},"TensorDict",[677,1127],{},[229,1129,1131],{"id":1130},"tier-6-end-to-end-pipelines","Tier 6: End-to-end Pipelines",[234,1133,1134,1142],{},[237,1135,1136],{},[240,1137,1138,1140],{},[243,1139,245],{},[243,1141,248],{},[250,1143,1144,1160],{},[240,1145,1146,1154],{},[255,1147,1148],{},[258,1149,1151],{"href":1150},"..\u002F..\u002Fsources\u002Flaco\u002Fexamples\u002Fpipelines\u002Fmnist_train.py",[220,1152,1153],{},"pipelines\u002Fmnist_train.py",[255,1155,1156,1157],{},"MNIST training loop with ",[220,1158,1159],{},"@L.task",[240,1161,1162,1170],{},[255,1163,1164],{},[258,1165,1167],{"href":1166},"..\u002F..\u002Fsources\u002Flaco\u002Fexamples\u002Fpipelines\u002Fclm_finetune.py",[220,1168,1169],{},"pipelines\u002Fclm_finetune.py",[255,1171,1172],{},"Causal-LM fine-tuning pipeline",[330,1174,1176],{"id":1175},"running-the-mnist-pipeline","Running the MNIST pipeline",[335,1178,1182],{"className":1179,"code":1180,"language":1181,"meta":340,"style":340},"language-bash shiki shiki-themes material-theme-lighter github-light github-dark","# Smoke run (1 step, no real data needed):\npython -m laco.examples.pipelines.mnist_train\n\n# 10 steps on real MNIST (downloads ~11 MB):\npython -m laco.examples.pipelines.mnist_train hps.num_steps=10\n","bash",[220,1183,1184,1189,1200,1204,1209],{"__ignoreMap":340},[344,1185,1186],{"class":346,"line":347},[344,1187,1188],{"class":984},"# Smoke run (1 step, no real data needed):\n",[344,1190,1191,1193,1197],{"class":346,"line":370},[344,1192,339],{"class":420},[344,1194,1196],{"class":1195},"stzsN"," -m",[344,1198,1199],{"class":639}," laco.examples.pipelines.mnist_train\n",[344,1201,1202],{"class":346,"line":390},[344,1203,394],{"emptyLinePlaceholder":393},[344,1205,1206],{"class":346,"line":397},[344,1207,1208],{"class":984},"# 10 steps on real MNIST (downloads ~11 MB):\n",[344,1210,1211,1213,1215,1218,1221],{"class":346,"line":413},[344,1212,339],{"class":420},[344,1214,1196],{"class":1195},[344,1216,1217],{"class":639}," laco.examples.pipelines.mnist_train",[344,1219,1220],{"class":639}," hps.num_steps=",[344,1222,1223],{"class":444},"10\n",[1225,1226,1227],"style",{},"html pre.shiki code .sVHd0, html code.shiki .sVHd0{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .skxfh, html code.shiki .skxfh{--shiki-light:#E53935;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .stp6e, html code.shiki .stp6e{--shiki-light:#39ADB5;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sbgvK, html code.shiki .sbgvK{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZMiF, html code.shiki .sZMiF{--shiki-light:#E2931D;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .slqww, html code.shiki .slqww{--shiki-light:#6182B8;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s99_P, html code.shiki .s99_P{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#E36209;--shiki-default-font-style:inherit;--shiki-dark:#FFAB70;--shiki-dark-font-style:inherit}html pre.shiki code .s39Yj, html code.shiki .s39Yj{--shiki-light:#39ADB5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .swQdS, html code.shiki .swQdS{--shiki-light:#E53935;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sutJx, html code.shiki .sutJx{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit}html pre.shiki code .stzsN, html code.shiki .stzsN{--shiki-light:#91B859;--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":340,"searchDepth":390,"depth":390,"links":1229},[1230,1233,1236,1237,1238,1239],{"id":231,"depth":370,"text":232,"children":1231},[1232],{"id":332,"depth":390,"text":333},{"id":681,"depth":370,"text":682,"children":1234},[1235],{"id":767,"depth":390,"text":768},{"id":1000,"depth":370,"text":1001},{"id":1060,"depth":370,"text":1061},{"id":1072,"depth":370,"text":1073},{"id":1130,"depth":370,"text":1131,"children":1240},[1241],{"id":1175,"depth":390,"text":1176},"The Laco examples curriculum is a set of progressively more complex\nconfiguration examples demonstrating the full API. All examples live under\nsources\u002Flaco\u002Fexamples\u002F and are exercised by tests\u002Ftest_examples.py.","md",{},{"title":134,"description":1242},"bQvtuRK0agzLs-waTsGWDSfNoUz8o9RhyCUDLs09SqQ",{},1785687295904]