@elgap/edukaai 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.output/nitro.json +15 -0
- package/.output/public/_nuxt/BHDzAs85.js +1 -0
- package/.output/public/_nuxt/BJzbfdL_.js +1 -0
- package/.output/public/_nuxt/BKGLlKXk.js +6 -0
- package/.output/public/_nuxt/BLuXzJk3.js +1 -0
- package/.output/public/_nuxt/BNOzzLI3.js +1 -0
- package/.output/public/_nuxt/BO5GMwXh.js +1 -0
- package/.output/public/_nuxt/BQRbsFGy.js +1 -0
- package/.output/public/_nuxt/Be4MVdOg.js +1 -0
- package/.output/public/_nuxt/Bu4d3Z1T.js +1 -0
- package/.output/public/_nuxt/BwpBBNv4.js +1 -0
- package/.output/public/_nuxt/C1Og9-6n.js +97 -0
- package/.output/public/_nuxt/C3CjAhtj.js +1 -0
- package/.output/public/_nuxt/C6E3Ty3z.js +1 -0
- package/.output/public/_nuxt/COct4B42.js +1 -0
- package/.output/public/_nuxt/CQ6g2dtj.js +1 -0
- package/.output/public/_nuxt/CURSW5TV.js +246 -0
- package/.output/public/_nuxt/CW57JW4s.js +1 -0
- package/.output/public/_nuxt/Cg2fM61o.js +18 -0
- package/.output/public/_nuxt/CgGOeWta.js +1 -0
- package/.output/public/_nuxt/CoyYbT7u.js +1 -0
- package/.output/public/_nuxt/D11MHbGc.js +133 -0
- package/.output/public/_nuxt/D24dz0S8.js +1 -0
- package/.output/public/_nuxt/D3EFPr8x.js +1 -0
- package/.output/public/_nuxt/Dvt4ZHil.js +1 -0
- package/.output/public/_nuxt/builds/latest.json +1 -0
- package/.output/public/_nuxt/builds/meta/ab87ba0e-6d0d-4466-8b12-00d44f8fb9d3.json +1 -0
- package/.output/public/_nuxt/default.C1K1-g4D.css +1 -0
- package/.output/public/_nuxt/entry.CH8k-Mga.css +1 -0
- package/.output/public/_nuxt/error-404.C-Ezrlz-.css +1 -0
- package/.output/public/_nuxt/error-500.DBWf9FGj.css +1 -0
- package/.output/public/_nuxt/first-training.wFDD65zm.css +1 -0
- package/.output/public/_nuxt/import.cUKYdCrq.css +1 -0
- package/.output/public/_nuxt/index.D-2VHyHA.css +1 -0
- package/.output/public/_nuxt/index.D4J_vHmL.css +1 -0
- package/.output/public/_nuxt/mPJeLIz7.js +1 -0
- package/.output/server/chunks/_/error-500.mjs +19 -0
- package/.output/server/chunks/_/error-500.mjs.map +1 -0
- package/.output/server/chunks/build/ExampleCard-styles.BUOJhEg0.mjs +8 -0
- package/.output/server/chunks/build/ExampleCard-styles.BUOJhEg0.mjs.map +1 -0
- package/.output/server/chunks/build/ExampleForm-Bcpl0CfL.mjs +238 -0
- package/.output/server/chunks/build/ExampleForm-Bcpl0CfL.mjs.map +1 -0
- package/.output/server/chunks/build/ImportPreview-styles.CFmMl5Ok.mjs +8 -0
- package/.output/server/chunks/build/ImportPreview-styles.CFmMl5Ok.mjs.map +1 -0
- package/.output/server/chunks/build/_id_-BUSGcL-H.mjs +113 -0
- package/.output/server/chunks/build/_id_-BUSGcL-H.mjs.map +1 -0
- package/.output/server/chunks/build/axolotl-C-EXGgM8.mjs +112 -0
- package/.output/server/chunks/build/axolotl-C-EXGgM8.mjs.map +1 -0
- package/.output/server/chunks/build/best-practices-DsadorHb.mjs +38 -0
- package/.output/server/chunks/build/best-practices-DsadorHb.mjs.map +1 -0
- package/.output/server/chunks/build/client.precomputed.mjs +4 -0
- package/.output/server/chunks/build/client.precomputed.mjs.map +1 -0
- package/.output/server/chunks/build/default-DPkqqHOE.mjs +354 -0
- package/.output/server/chunks/build/default-DPkqqHOE.mjs.map +1 -0
- package/.output/server/chunks/build/default-styles.DsqVVS7k.mjs +8 -0
- package/.output/server/chunks/build/default-styles.DsqVVS7k.mjs.map +1 -0
- package/.output/server/chunks/build/error-404-K4UfZNck.mjs +97 -0
- package/.output/server/chunks/build/error-404-K4UfZNck.mjs.map +1 -0
- package/.output/server/chunks/build/error-404-styles.DuDrf-v0.mjs +8 -0
- package/.output/server/chunks/build/error-404-styles.DuDrf-v0.mjs.map +1 -0
- package/.output/server/chunks/build/error-500-CA7TEPNg.mjs +79 -0
- package/.output/server/chunks/build/error-500-CA7TEPNg.mjs.map +1 -0
- package/.output/server/chunks/build/error-500-styles.8IYEHzz6.mjs +8 -0
- package/.output/server/chunks/build/error-500-styles.8IYEHzz6.mjs.map +1 -0
- package/.output/server/chunks/build/examples-BHK8MDrs.mjs +134 -0
- package/.output/server/chunks/build/examples-BHK8MDrs.mjs.map +1 -0
- package/.output/server/chunks/build/export-BzxFqqfP.mjs +233 -0
- package/.output/server/chunks/build/export-BzxFqqfP.mjs.map +1 -0
- package/.output/server/chunks/build/faq-DKch73dS.mjs +112 -0
- package/.output/server/chunks/build/faq-DKch73dS.mjs.map +1 -0
- package/.output/server/chunks/build/field-guide-qbukT8F0.mjs +38 -0
- package/.output/server/chunks/build/field-guide-qbukT8F0.mjs.map +1 -0
- package/.output/server/chunks/build/first-training-BbEOBcEW.mjs +343 -0
- package/.output/server/chunks/build/first-training-BbEOBcEW.mjs.map +1 -0
- package/.output/server/chunks/build/first-training-styles.BzOa_KRD.mjs +8 -0
- package/.output/server/chunks/build/first-training-styles.BzOa_KRD.mjs.map +1 -0
- package/.output/server/chunks/build/glossary-CxSGCJoH.mjs +397 -0
- package/.output/server/chunks/build/glossary-CxSGCJoH.mjs.map +1 -0
- package/.output/server/chunks/build/huggingface-TSmyUzZU.mjs +128 -0
- package/.output/server/chunks/build/huggingface-TSmyUzZU.mjs.map +1 -0
- package/.output/server/chunks/build/import-C0kYhRv9.mjs +247 -0
- package/.output/server/chunks/build/import-C0kYhRv9.mjs.map +1 -0
- package/.output/server/chunks/build/index-C1ntBEWd.mjs +235 -0
- package/.output/server/chunks/build/index-C1ntBEWd.mjs.map +1 -0
- package/.output/server/chunks/build/index-D3CxihcX.mjs +320 -0
- package/.output/server/chunks/build/index-D3CxihcX.mjs.map +1 -0
- package/.output/server/chunks/build/index-DgKa1cy0.mjs +360 -0
- package/.output/server/chunks/build/index-DgKa1cy0.mjs.map +1 -0
- package/.output/server/chunks/build/index-cG54gaKX.mjs +513 -0
- package/.output/server/chunks/build/index-cG54gaKX.mjs.map +1 -0
- package/.output/server/chunks/build/index-styles.BX2SZiiS.mjs +8 -0
- package/.output/server/chunks/build/index-styles.BX2SZiiS.mjs.map +1 -0
- package/.output/server/chunks/build/llm-training-DIqc0eiM.mjs +91 -0
- package/.output/server/chunks/build/llm-training-DIqc0eiM.mjs.map +1 -0
- package/.output/server/chunks/build/new-b3338aLF.mjs +92 -0
- package/.output/server/chunks/build/new-b3338aLF.mjs.map +1 -0
- package/.output/server/chunks/build/nuxt-link-Ceyd90PQ.mjs +290 -0
- package/.output/server/chunks/build/nuxt-link-Ceyd90PQ.mjs.map +1 -0
- package/.output/server/chunks/build/sample-datasets-CVLWMQUA.mjs +45 -0
- package/.output/server/chunks/build/sample-datasets-CVLWMQUA.mjs.map +1 -0
- package/.output/server/chunks/build/server.mjs +1979 -0
- package/.output/server/chunks/build/server.mjs.map +1 -0
- package/.output/server/chunks/build/styles.mjs +20 -0
- package/.output/server/chunks/build/styles.mjs.map +1 -0
- package/.output/server/chunks/build/test-router-BYM6Cpst.mjs +105 -0
- package/.output/server/chunks/build/test-router-BYM6Cpst.mjs.map +1 -0
- package/.output/server/chunks/nitro/nitro.mjs +5800 -0
- package/.output/server/chunks/nitro/nitro.mjs.map +1 -0
- package/.output/server/chunks/routes/renderer.mjs +481 -0
- package/.output/server/chunks/routes/renderer.mjs.map +1 -0
- package/.output/server/chunks/virtual/_virtual_spa-template.mjs +4 -0
- package/.output/server/chunks/virtual/_virtual_spa-template.mjs.map +1 -0
- package/.output/server/index.mjs +12 -0
- package/.output/server/index.mjs.map +1 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/api.js +2 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/app.js +2 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/component.js +2 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/context.js +2 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/hooks.js +2 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/index.js +22 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/util.js +2 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/const.js +5 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/env.js +17 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/index.js +45 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/plugin.js +2 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/proxy.js +111 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/time.js +28 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/package.json +37 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@7.7.9/dist/index.cjs +42 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@7.7.9/package.json +32 -0
- package/.output/server/node_modules/.nitro/hookable@5.5.3/dist/index.cjs +299 -0
- package/.output/server/node_modules/.nitro/hookable@5.5.3/package.json +49 -0
- package/.output/server/node_modules/.nitro/hookable@6.0.1/dist/index.mjs +266 -0
- package/.output/server/node_modules/.nitro/hookable@6.0.1/package.json +52 -0
- package/.output/server/node_modules/.nitro/perfect-debounce@1.0.0/dist/index.cjs +59 -0
- package/.output/server/node_modules/.nitro/perfect-debounce@1.0.0/package.json +44 -0
- package/.output/server/node_modules/.nitro/perfect-debounce@2.1.0/dist/index.mjs +89 -0
- package/.output/server/node_modules/.nitro/perfect-debounce@2.1.0/package.json +41 -0
- package/.output/server/node_modules/@babel/parser/lib/index.js +14582 -0
- package/.output/server/node_modules/@babel/parser/package.json +50 -0
- package/.output/server/node_modules/@iconify/utils/lib/colors/index.js +292 -0
- package/.output/server/node_modules/@iconify/utils/lib/colors/keywords.js +702 -0
- package/.output/server/node_modules/@iconify/utils/lib/css/common.js +76 -0
- package/.output/server/node_modules/@iconify/utils/lib/css/format.js +40 -0
- package/.output/server/node_modules/@iconify/utils/lib/css/icon.js +52 -0
- package/.output/server/node_modules/@iconify/utils/lib/css/icons.js +133 -0
- package/.output/server/node_modules/@iconify/utils/lib/customisations/bool.js +20 -0
- package/.output/server/node_modules/@iconify/utils/lib/customisations/defaults.js +15 -0
- package/.output/server/node_modules/@iconify/utils/lib/customisations/flip.js +18 -0
- package/.output/server/node_modules/@iconify/utils/lib/customisations/merge.js +18 -0
- package/.output/server/node_modules/@iconify/utils/lib/customisations/rotate.js +31 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/cleanup.js +80 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/convert.js +102 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/data.js +29 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/format.js +60 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/parse.js +50 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/base.js +204 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/create.js +35 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/numbers.js +134 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/similar.js +167 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/tree.js +81 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/replace/find.js +94 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/replace/replace.js +28 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/test/components.js +78 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/test/missing.js +68 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/test/name.js +47 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/test/parse.js +105 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/test/similar.js +38 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/test/tree.js +94 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/test/variations.js +64 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon/defaults.js +26 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon/merge.js +18 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon/name.js +58 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon/square.js +34 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon/transformations.js +13 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon-set/convert-info.js +126 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon-set/expand.js +21 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon-set/get-icon.js +27 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon-set/get-icons.js +38 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon-set/minify.js +93 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon-set/parse.js +48 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon-set/tree.js +24 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon-set/validate-basic.js +44 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon-set/validate.js +125 -0
- package/.output/server/node_modules/@iconify/utils/lib/index.js +53 -0
- package/.output/server/node_modules/@iconify/utils/lib/loader/custom.js +32 -0
- package/.output/server/node_modules/@iconify/utils/lib/loader/loader.js +28 -0
- package/.output/server/node_modules/@iconify/utils/lib/loader/modern.js +42 -0
- package/.output/server/node_modules/@iconify/utils/lib/loader/utils.js +63 -0
- package/.output/server/node_modules/@iconify/utils/lib/misc/objects.js +27 -0
- package/.output/server/node_modules/@iconify/utils/lib/misc/strings.js +27 -0
- package/.output/server/node_modules/@iconify/utils/lib/misc/title.js +10 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/build.js +115 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/defs.js +32 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/encode-svg-for-css.js +15 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/html.js +10 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/id.js +42 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/inner-html.js +23 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/parse.js +69 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/pretty.js +55 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/size.js +28 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/trim.js +8 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/url.js +23 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/viewbox.js +9 -0
- package/.output/server/node_modules/@iconify/utils/package.json +118 -0
- package/.output/server/node_modules/@iconify/vue/dist/iconify.mjs +1893 -0
- package/.output/server/node_modules/@iconify/vue/package.json +64 -0
- package/.output/server/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js +6763 -0
- package/.output/server/node_modules/@vue/compiler-core/package.json +58 -0
- package/.output/server/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js +689 -0
- package/.output/server/node_modules/@vue/compiler-dom/package.json +57 -0
- package/.output/server/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js +1413 -0
- package/.output/server/node_modules/@vue/compiler-ssr/package.json +34 -0
- package/.output/server/node_modules/@vue/devtools-kit/dist/index.cjs +6850 -0
- package/.output/server/node_modules/@vue/devtools-kit/package.json +44 -0
- package/.output/server/node_modules/@vue/devtools-shared/dist/index.cjs +378 -0
- package/.output/server/node_modules/@vue/devtools-shared/package.json +34 -0
- package/.output/server/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js +1870 -0
- package/.output/server/node_modules/@vue/reactivity/package.json +55 -0
- package/.output/server/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js +6810 -0
- package/.output/server/node_modules/@vue/runtime-core/package.json +52 -0
- package/.output/server/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js +1750 -0
- package/.output/server/node_modules/@vue/runtime-dom/package.json +60 -0
- package/.output/server/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js +883 -0
- package/.output/server/node_modules/@vue/server-renderer/package.json +55 -0
- package/.output/server/node_modules/@vue/shared/dist/shared.cjs.prod.js +604 -0
- package/.output/server/node_modules/@vue/shared/package.json +47 -0
- package/.output/server/node_modules/birpc/dist/index.cjs +296 -0
- package/.output/server/node_modules/birpc/package.json +57 -0
- package/.output/server/node_modules/consola/dist/chunks/prompt.mjs +280 -0
- package/.output/server/node_modules/consola/dist/core.mjs +512 -0
- package/.output/server/node_modules/consola/dist/index.mjs +651 -0
- package/.output/server/node_modules/consola/dist/shared/consola.DRwqZj3T.mjs +72 -0
- package/.output/server/node_modules/consola/dist/shared/consola.DXBYu-KD.mjs +288 -0
- package/.output/server/node_modules/consola/package.json +136 -0
- package/.output/server/node_modules/devalue/index.js +4 -0
- package/.output/server/node_modules/devalue/package.json +37 -0
- package/.output/server/node_modules/devalue/src/base64.js +110 -0
- package/.output/server/node_modules/devalue/src/constants.js +7 -0
- package/.output/server/node_modules/devalue/src/parse.js +246 -0
- package/.output/server/node_modules/devalue/src/stringify.js +350 -0
- package/.output/server/node_modules/devalue/src/uneval.js +490 -0
- package/.output/server/node_modules/devalue/src/utils.js +148 -0
- package/.output/server/node_modules/entities/dist/commonjs/decode-codepoint.js +77 -0
- package/.output/server/node_modules/entities/dist/commonjs/decode.js +568 -0
- package/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-html.js +7 -0
- package/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +7 -0
- package/.output/server/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js +21 -0
- package/.output/server/node_modules/entities/dist/commonjs/internal/decode-shared.js +31 -0
- package/.output/server/node_modules/entities/dist/commonjs/package.json +3 -0
- package/.output/server/node_modules/entities/package.json +120 -0
- package/.output/server/node_modules/estree-walker/dist/umd/estree-walker.js +344 -0
- package/.output/server/node_modules/estree-walker/package.json +37 -0
- package/.output/server/node_modules/pinia/dist/pinia.prod.cjs +719 -0
- package/.output/server/node_modules/pinia/package.json +94 -0
- package/.output/server/node_modules/source-map-js/lib/array-set.js +121 -0
- package/.output/server/node_modules/source-map-js/lib/base64-vlq.js +140 -0
- package/.output/server/node_modules/source-map-js/lib/base64.js +67 -0
- package/.output/server/node_modules/source-map-js/lib/binary-search.js +111 -0
- package/.output/server/node_modules/source-map-js/lib/mapping-list.js +79 -0
- package/.output/server/node_modules/source-map-js/lib/quick-sort.js +132 -0
- package/.output/server/node_modules/source-map-js/lib/source-map-consumer.js +1188 -0
- package/.output/server/node_modules/source-map-js/lib/source-map-generator.js +444 -0
- package/.output/server/node_modules/source-map-js/lib/source-node.js +413 -0
- package/.output/server/node_modules/source-map-js/lib/util.js +594 -0
- package/.output/server/node_modules/source-map-js/package.json +71 -0
- package/.output/server/node_modules/source-map-js/source-map.js +8 -0
- package/.output/server/node_modules/tailwindcss/dist/chunk-X4GG3EDV.mjs +1 -0
- package/.output/server/node_modules/tailwindcss/dist/colors.mjs +1 -0
- package/.output/server/node_modules/tailwindcss/package.json +89 -0
- package/.output/server/node_modules/ufo/dist/index.mjs +645 -0
- package/.output/server/node_modules/ufo/package.json +48 -0
- package/.output/server/node_modules/unhead/dist/index.mjs +9 -0
- package/.output/server/node_modules/unhead/dist/parser.mjs +508 -0
- package/.output/server/node_modules/unhead/dist/plugins.mjs +101 -0
- package/.output/server/node_modules/unhead/dist/scripts.mjs +30 -0
- package/.output/server/node_modules/unhead/dist/server.mjs +180 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.BPM0-cfG.mjs +44 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.BYvz9V1x.mjs +43 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.BnoAbrHA.mjs +269 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.CApf5sj3.mjs +148 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.CbpEuj3y.mjs +71 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.DQc16pHI.mjs +196 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.D_nrZZPH.mjs +182 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.ckV6dpEQ.mjs +166 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.fVVqDC1O.mjs +203 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.yem5I2v_.mjs +38 -0
- package/.output/server/node_modules/unhead/dist/utils.mjs +5 -0
- package/.output/server/node_modules/unhead/package.json +105 -0
- package/.output/server/node_modules/vue/dist/vue.cjs.js +80 -0
- package/.output/server/node_modules/vue/dist/vue.cjs.prod.js +66 -0
- package/.output/server/node_modules/vue/index.js +7 -0
- package/.output/server/node_modules/vue/index.mjs +1 -0
- package/.output/server/node_modules/vue/package.json +112 -0
- package/.output/server/node_modules/vue/server-renderer/index.mjs +1 -0
- package/.output/server/node_modules/vue-bundle-renderer/dist/runtime.mjs +301 -0
- package/.output/server/node_modules/vue-bundle-renderer/package.json +55 -0
- package/.output/server/node_modules/vue-router/dist/devtools-EWN81iOl.mjs +1220 -0
- package/.output/server/node_modules/vue-router/dist/vue-router.mjs +1557 -0
- package/.output/server/node_modules/vue-router/package.json +153 -0
- package/.output/server/node_modules/vue-router/vue-router.node.mjs +2 -0
- package/.output/server/package.json +37 -0
- package/LICENSE +21 -0
- package/README.md +132 -0
- package/bin/cli.js +75 -0
- package/package.json +71 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { mergeProps, useSSRContext } from 'vue';
|
|
2
|
+
import { ssrRenderAttrs } from 'vue/server-renderer';
|
|
3
|
+
import { _ as _export_sfc } from './server.mjs';
|
|
4
|
+
import '../nitro/nitro.mjs';
|
|
5
|
+
import 'node:http';
|
|
6
|
+
import 'node:https';
|
|
7
|
+
import 'node:events';
|
|
8
|
+
import 'node:buffer';
|
|
9
|
+
import 'node:fs';
|
|
10
|
+
import 'node:path';
|
|
11
|
+
import 'node:crypto';
|
|
12
|
+
import 'node:url';
|
|
13
|
+
import '@iconify/utils';
|
|
14
|
+
import 'consola';
|
|
15
|
+
import 'pinia';
|
|
16
|
+
import 'vue-router';
|
|
17
|
+
import 'tailwindcss/colors';
|
|
18
|
+
import '@iconify/vue';
|
|
19
|
+
import '../routes/renderer.mjs';
|
|
20
|
+
import 'vue-bundle-renderer/runtime';
|
|
21
|
+
import 'unhead/server';
|
|
22
|
+
import 'devalue';
|
|
23
|
+
import 'unhead/utils';
|
|
24
|
+
|
|
25
|
+
const _sfc_main = {};
|
|
26
|
+
function _sfc_ssrRender(_ctx, _push, _parent, _attrs) {
|
|
27
|
+
_push(`<div${ssrRenderAttrs(mergeProps({ class: "max-w-5xl mx-auto" }, _attrs))}><section id="field-guide" class="mb-12"><div class="flex items-center gap-3 mb-6"><span class="text-3xl">📝</span><h2 class="text-2xl font-bold">Complete Field Guide</h2></div><p class="text-lg text-gray-600 mb-6"> Every field in edukaAI serves a purpose. Master them all to create the best training dataset. </p><div class="card mb-6"><h3 class="text-xl font-semibold mb-6 text-blue-600">Core Fields (Required)</h3><div class="space-y-8"><div class="border-l-4 border-blue-500 pl-4"><h4 class="text-lg font-semibold mb-2">🎯 Instruction</h4><p class="text-gray-600 mb-3"> The main question or task. This is what the user will type to get a response from your model. </p><div class="bg-green-50 p-4 rounded-lg mb-3"><p class="text-sm text-green-800 font-medium mb-2">✅ Good Example:</p><p class="text-sm text-gray-700">"Explain how React's useEffect hook works, including the dependency array, cleanup functions, and common pitfalls to avoid. Provide code examples for each concept."</p></div><div class="bg-red-50 p-4 rounded-lg mb-3"><p class="text-sm text-red-800 font-medium mb-2">❌ Bad Example:</p><p class="text-sm text-gray-700">"React help"</p></div><div class="text-sm bg-blue-50 p-3 rounded"><strong>💡 Pro Tips:</strong><ul class="list-disc list-inside mt-1 space-y-1"><li>Be specific about what you want</li><li>Include context in the instruction if needed</li><li>Use natural language like a real user would</li><li>Length: 50-500 characters is ideal</li></ul></div></div><div class="border-l-4 border-gray-400 pl-4"><h4 class="text-lg font-semibold mb-2">📎 Input Context (Optional)</h4><p class="text-gray-600 mb-3"> Additional context that helps the AI understand the full picture. Use this for code snippets, background info, or supporting data. </p><div class="bg-yellow-50 p-4 rounded-lg mb-3"><p class="text-sm text-yellow-800 font-medium mb-2">📌 When to Use:</p><ul class="list-disc list-inside text-sm text-gray-700 space-y-1"><li>Code that needs to be explained or refactored</li><li>Error messages that need debugging</li><li>Long context that shouldn't be in the main instruction</li><li>Background information for complex questions</li></ul></div><div class="bg-green-50 p-4 rounded-lg"><p class="text-sm text-green-800 font-medium mb-2">✅ Example:</p><p class="text-sm text-gray-700 mb-2"><strong>Instruction:</strong> "What's wrong with this code and how do I fix it?"</p><p class="text-sm text-gray-700"><strong>Input:</strong> Code snippet with error</p></div></div><div class="border-l-4 border-green-500 pl-4"><h4 class="text-lg font-semibold mb-2">📝 Output / Response</h4><p class="text-gray-600 mb-3"> The ideal AI response. This is what you want the model to learn to produce. Make it as good as you want your AI to be. </p><div class="bg-green-50 p-4 rounded-lg mb-3"><p class="text-sm text-green-800 font-medium mb-2">✅ What Makes Good Output:</p><ul class="list-disc list-inside text-sm text-gray-700 space-y-1"><li><strong>Directly answers</strong> the instruction</li><li><strong>Complete and thorough</strong> - doesn't leave the user hanging</li><li><strong>Well-structured</strong> - uses formatting, lists, code blocks</li><li><strong>Accurate</strong> - factually correct information</li><li><strong>Appropriate tone</strong> - matches your desired style</li><li><strong>Includes examples</strong> - shows, don't just tell</li><li><strong>Explains reasoning</strong> - helps user understand why</li></ul></div><div class="text-sm bg-red-50 p-3 rounded"><strong>⚠️ Common Mistakes:</strong><ul class="list-disc list-inside mt-1 space-y-1"><li>Too short or incomplete</li><li>Doesn't actually answer the question</li><li>Contains errors or bad advice</li><li>Too generic or vague</li></ul></div></div></div></div><div class="card mb-6"><h3 class="text-xl font-semibold mb-6 text-purple-600">Metadata Fields</h3><div class="space-y-6"><div class="border-l-4 border-purple-400 pl-4"><h4 class="font-semibold mb-2">🎭 System Prompt</h4><p class="text-gray-600 mb-3"> Defines the AI's personality, role, and behavior. Think of it as the "character sheet" for your AI. </p><div class="bg-purple-50 p-4 rounded-lg"><p class="text-sm text-purple-800 font-medium mb-2">✅ Example System Prompts:</p><div class="space-y-2 text-sm"><p class="bg-white p-2 rounded">"You are a patient senior software engineer who mentors junior developers. Explain concepts clearly, use analogies, and always provide code examples."</p><p class="bg-white p-2 rounded">"You are a concise technical writer. Provide direct, accurate answers without fluff. Focus on practical implementation."</p><p class="bg-white p-2 rounded">"You are an enthusiastic teacher who makes complex topics fun and accessible. Use analogies and real-world examples."</p></div></div><p class="text-sm text-gray-500 mt-3"><strong>Tip:</strong> Use the same system prompt across related examples to maintain consistent personality. </p></div><div class="border-l-4 border-purple-400 pl-4"><h4 class="font-semibold mb-2">🏷️ Category</h4><p class="text-gray-600 mb-3">Organizes your dataset into topics.</p><div class="grid grid-cols-2 md:grid-cols-4 gap-2 text-sm"><div class="bg-gray-100 p-2 rounded text-center"><strong>Coding</strong><p class="text-xs text-gray-600">Programming, debugging, architecture</p></div><div class="bg-gray-100 p-2 rounded text-center"><strong>Explanation</strong><p class="text-xs text-gray-600">Concepts, how-tos, tutorials</p></div><div class="bg-gray-100 p-2 rounded text-center"><strong>Analysis</strong><p class="text-xs text-gray-600">Data, reviews, debugging</p></div><div class="bg-gray-100 p-2 rounded text-center"><strong>Writing</strong><p class="text-xs text-gray-600">Content, emails, docs</p></div><div class="bg-gray-100 p-2 rounded text-center"><strong>Math</strong><p class="text-xs text-gray-600">Calculations, problems</p></div><div class="bg-gray-100 p-2 rounded text-center"><strong>Science</strong><p class="text-xs text-gray-600">Scientific topics</p></div><div class="bg-gray-100 p-2 rounded text-center col-span-2"><strong>General</strong><p class="text-xs text-gray-600">Everything else</p></div></div></div><div class="border-l-4 border-purple-400 pl-4"><h4 class="font-semibold mb-2">📊 Difficulty</h4><p class="text-gray-600 mb-3">Tracks complexity level. Aim for a mix of difficulties in your dataset.</p><div class="grid grid-cols-1 md:grid-cols-3 gap-3"><div class="bg-green-50 p-3 rounded-lg"><strong class="text-green-700">Beginner</strong><p class="text-sm text-gray-600 mt-1">Basic concepts, simple tasks, foundational knowledge</p><p class="text-xs text-gray-500 mt-2">Example: "What is a variable?"</p></div><div class="bg-yellow-50 p-3 rounded-lg"><strong class="text-yellow-700">Intermediate</strong><p class="text-sm text-gray-600 mt-1">Practical applications, combining concepts</p><p class="text-xs text-gray-500 mt-2">Example: "How do I use async/await with error handling?"</p></div><div class="bg-red-50 p-3 rounded-lg"><strong class="text-red-700">Advanced</strong><p class="text-sm text-gray-600 mt-1">Complex reasoning, optimization, architecture</p><p class="text-xs text-gray-500 mt-2">Example: "Design a distributed system for 1M concurrent users"</p></div></div></div><div class="border-l-4 border-purple-400 pl-4"><h4 class="font-semibold mb-2">⭐ Quality Rating (1-5 Stars)</h4><p class="text-gray-600 mb-3">Your assessment of how good this training example is.</p><div class="space-y-2 text-sm"><div class="flex items-center gap-3"><span class="text-2xl">⭐</span><div><strong>Poor</strong><p class="text-gray-600">Major issues, shouldn't be used for training</p></div></div><div class="flex items-center gap-3"><span class="text-2xl">⭐⭐</span><div><strong>Fair</strong><p class="text-gray-600">Significant problems, needs major revision</p></div></div><div class="flex items-center gap-3"><span class="text-2xl">⭐⭐⭐</span><div><strong>Good</strong><p class="text-gray-600">Acceptable quality, could be improved</p></div></div><div class="flex items-center gap-3"><span class="text-2xl">⭐⭐⭐⭐</span><div><strong>Very Good</strong><p class="text-gray-600">Solid example, minor improvements possible</p></div></div><div class="flex items-center gap-3"><span class="text-2xl">⭐⭐⭐⭐⭐</span><div><strong>Excellent</strong><p class="text-gray-600">Perfect example, ideal for training</p></div></div></div><p class="text-sm text-gray-500 mt-3"><strong>Tip:</strong> Only approve examples with 3+ stars for training. Reject 1-2 star examples. </p></div><div class="border-l-4 border-purple-400 pl-4"><h4 class="font-semibold mb-2">🏷️ Tags</h4><p class="text-gray-600 mb-3">Custom labels for filtering and organization.</p><div class="flex flex-wrap gap-2 mb-3"><span class="px-2 py-1 bg-blue-100 text-blue-700 text-xs rounded">javascript</span><span class="px-2 py-1 bg-blue-100 text-blue-700 text-xs rounded">react</span><span class="px-2 py-1 bg-blue-100 text-blue-700 text-xs rounded">debugging</span><span class="px-2 py-1 bg-blue-100 text-blue-700 text-xs rounded">best-practices</span><span class="px-2 py-1 bg-blue-100 text-blue-700 text-xs rounded">performance</span></div><p class="text-sm text-gray-500"> Add relevant keywords to make examples easier to find later. </p></div><div class="border-l-4 border-purple-400 pl-4"><h4 class="font-semibold mb-2">📝 Notes</h4><p class="text-gray-600 mb-3">Document why this is a good example or what could be improved.</p><div class="bg-yellow-50 p-3 rounded text-sm"><strong>Example notes:</strong><ul class="list-disc list-inside mt-1 space-y-1"><li>"Clear explanation with multiple examples - great for training"</li><li>"Output needs more detail about error handling"</li><li>"Imported from Claude conversation, needs review"</li><li>"Perfect beginner example, covers common confusion"</li></ul></div></div></div></div></section></div>`);
|
|
28
|
+
}
|
|
29
|
+
const _sfc_setup = _sfc_main.setup;
|
|
30
|
+
_sfc_main.setup = (props, ctx) => {
|
|
31
|
+
const ssrContext = useSSRContext();
|
|
32
|
+
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/help/field-guide.vue");
|
|
33
|
+
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
|
34
|
+
};
|
|
35
|
+
const fieldGuide = /* @__PURE__ */ _export_sfc(_sfc_main, [["ssrRender", _sfc_ssrRender]]);
|
|
36
|
+
|
|
37
|
+
export { fieldGuide as default };
|
|
38
|
+
//# sourceMappingURL=field-guide-qbukT8F0.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-guide-qbukT8F0.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/field-guide-qbukT8F0.js"],"names":[],"mappings":"","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
import { _ as __nuxt_component_0 } from './nuxt-link-Ceyd90PQ.mjs';
|
|
2
|
+
import { ref, mergeProps, withCtx, createTextVNode, useSSRContext } from 'vue';
|
|
3
|
+
import { ssrRenderAttrs, ssrRenderComponent } from 'vue/server-renderer';
|
|
4
|
+
import { _ as _export_sfc } from './server.mjs';
|
|
5
|
+
import '../nitro/nitro.mjs';
|
|
6
|
+
import 'node:http';
|
|
7
|
+
import 'node:https';
|
|
8
|
+
import 'node:events';
|
|
9
|
+
import 'node:buffer';
|
|
10
|
+
import 'node:fs';
|
|
11
|
+
import 'node:path';
|
|
12
|
+
import 'node:crypto';
|
|
13
|
+
import 'node:url';
|
|
14
|
+
import '@iconify/utils';
|
|
15
|
+
import 'consola';
|
|
16
|
+
import 'pinia';
|
|
17
|
+
import 'vue-router';
|
|
18
|
+
import 'tailwindcss/colors';
|
|
19
|
+
import '@iconify/vue';
|
|
20
|
+
import '../routes/renderer.mjs';
|
|
21
|
+
import 'vue-bundle-renderer/runtime';
|
|
22
|
+
import 'unhead/server';
|
|
23
|
+
import 'devalue';
|
|
24
|
+
import 'unhead/utils';
|
|
25
|
+
|
|
26
|
+
const _sfc_main = {
|
|
27
|
+
__name: "first-training",
|
|
28
|
+
__ssrInlineRender: true,
|
|
29
|
+
setup(__props) {
|
|
30
|
+
const copiedIndex = ref(null);
|
|
31
|
+
return (_ctx, _push, _parent, _attrs) => {
|
|
32
|
+
const _component_NuxtLink = __nuxt_component_0;
|
|
33
|
+
_push(`<div${ssrRenderAttrs(mergeProps({ class: "max-w-4xl mx-auto" }, _attrs))} data-v-022ec2d4><div class="mb-8" data-v-022ec2d4><div class="flex items-center gap-3 mb-4" data-v-022ec2d4>`);
|
|
34
|
+
_push(ssrRenderComponent(_component_NuxtLink, {
|
|
35
|
+
to: "/export",
|
|
36
|
+
class: "text-blue-600 hover:text-blue-800"
|
|
37
|
+
}, {
|
|
38
|
+
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
39
|
+
if (_push2) {
|
|
40
|
+
_push2(` ← Back to Export `);
|
|
41
|
+
} else {
|
|
42
|
+
return [
|
|
43
|
+
createTextVNode(" ← Back to Export ")
|
|
44
|
+
];
|
|
45
|
+
}
|
|
46
|
+
}),
|
|
47
|
+
_: 1
|
|
48
|
+
}, _parent));
|
|
49
|
+
_push(`</div><div class="bg-gradient-to-r from-green-500 to-emerald-600 text-white p-6 rounded-2xl mb-6" data-v-022ec2d4><h1 class="text-3xl font-bold mb-2" data-v-022ec2d4>🎯 Your First Fine-tuning</h1><p class="text-xl opacity-90" data-v-022ec2d4> Complete step-by-step guide. The technical part is easy — focus on creating great training data! </p></div></div><div class="card mb-6" data-v-022ec2d4><h2 class="text-lg font-semibold mb-4" data-v-022ec2d4>Your Progress</h2><div class="relative" data-v-022ec2d4><div class="absolute top-1/2 left-0 right-0 h-1 bg-gray-200 -translate-y-1/2 z-0" data-v-022ec2d4></div><div class="absolute top-1/2 left-0 w-2/3 h-1 bg-green-500 -translate-y-1/2 z-0" data-v-022ec2d4></div><div class="relative z-10 flex justify-between" data-v-022ec2d4><div class="flex flex-col items-center" data-v-022ec2d4><div class="w-10 h-10 bg-green-500 text-white rounded-full flex items-center justify-center font-bold text-lg mb-2" data-v-022ec2d4> ✓ </div><span class="text-sm font-medium text-green-700" data-v-022ec2d4>Create Dataset</span><span class="text-xs text-gray-500" data-v-022ec2d4>Done in edukaAI</span></div><div class="flex flex-col items-center" data-v-022ec2d4><div class="w-10 h-10 bg-green-500 text-white rounded-full flex items-center justify-center font-bold text-lg mb-2" data-v-022ec2d4> ✓ </div><span class="text-sm font-medium text-green-700" data-v-022ec2d4>Export Data</span><span class="text-xs text-gray-500" data-v-022ec2d4>Downloaded JSON</span></div><div class="flex flex-col items-center" data-v-022ec2d4><div class="w-10 h-10 bg-blue-600 text-white rounded-full flex items-center justify-center font-bold text-lg mb-2 animate-pulse" data-v-022ec2d4> 3 </div><span class="text-sm font-medium text-blue-700" data-v-022ec2d4>Train Model</span><span class="text-xs text-gray-500" data-v-022ec2d4>You are here →</span></div><div class="flex flex-col items-center" data-v-022ec2d4><div class="w-10 h-10 bg-gray-300 text-gray-500 rounded-full flex items-center justify-center font-bold text-lg mb-2" data-v-022ec2d4> 4 </div><span class="text-sm font-medium text-gray-500" data-v-022ec2d4>Test Model</span><span class="text-xs text-gray-500" data-v-022ec2d4>Chat with AI</span></div></div></div><div class="mt-6 p-3 bg-blue-50 rounded-lg border border-blue-200 text-center" data-v-022ec2d4><p class="text-sm text-blue-800" data-v-022ec2d4><strong data-v-022ec2d4>⏱️ Total Time:</strong> ~25 minutes active work + 15-20 minutes computer processing </p></div></div><div class="card mb-6 border-2 border-yellow-300 bg-gradient-to-r from-yellow-50 to-orange-50" data-v-022ec2d4><h2 class="text-xl font-semibold mb-4 flex items-center gap-2" data-v-022ec2d4><span class="text-2xl" data-v-022ec2d4>✅</span> Pre-Flight Checklist </h2><p class="text-gray-700 mb-4" data-v-022ec2d4>Before you start, make sure you have:</p><div class="space-y-3" data-v-022ec2d4><div class="flex items-start gap-3 p-3 bg-white rounded-lg border border-yellow-200" data-v-022ec2d4><input type="checkbox" id="check-dataset" class="w-5 h-5 mt-0.5 text-green-600 rounded border-gray-300 focus:ring-green-500" data-v-022ec2d4><label for="check-dataset" class="flex-1 cursor-pointer" data-v-022ec2d4><span class="font-semibold text-gray-800" data-v-022ec2d4>Dataset File</span><p class="text-sm text-gray-600" data-v-022ec2d4> You have <code class="bg-gray-100 px-1 rounded" data-v-022ec2d4>dataset_alpaca.json</code> from edukaAI export `);
|
|
50
|
+
_push(ssrRenderComponent(_component_NuxtLink, {
|
|
51
|
+
to: "/export",
|
|
52
|
+
class: "text-blue-600 hover:underline ml-1"
|
|
53
|
+
}, {
|
|
54
|
+
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
55
|
+
if (_push2) {
|
|
56
|
+
_push2(`(get it here)`);
|
|
57
|
+
} else {
|
|
58
|
+
return [
|
|
59
|
+
createTextVNode("(get it here)")
|
|
60
|
+
];
|
|
61
|
+
}
|
|
62
|
+
}),
|
|
63
|
+
_: 1
|
|
64
|
+
}, _parent));
|
|
65
|
+
_push(`</p></label></div><div class="flex items-start gap-3 p-3 bg-white rounded-lg border border-yellow-200" data-v-022ec2d4><input type="checkbox" id="check-python" class="w-5 h-5 mt-0.5 text-green-600 rounded border-gray-300 focus:ring-green-500" data-v-022ec2d4><label for="check-python" class="flex-1 cursor-pointer" data-v-022ec2d4><span class="font-semibold text-gray-800" data-v-022ec2d4>Python 3.9+</span><p class="text-sm text-gray-600" data-v-022ec2d4> Check by running: <code class="bg-gray-800 text-green-400 px-2 py-0.5 rounded text-xs" data-v-022ec2d4>python --version</code> in terminal </p></label></div><div class="flex items-start gap-3 p-3 bg-white rounded-lg border border-yellow-200" data-v-022ec2d4><input type="checkbox" id="check-time" class="w-5 h-5 mt-0.5 text-green-600 rounded border-gray-300 focus:ring-green-500" data-v-022ec2d4><label for="check-time" class="flex-1 cursor-pointer" data-v-022ec2d4><span class="font-semibold text-gray-800" data-v-022ec2d4>20-30 Minutes</span><p class="text-sm text-gray-600" data-v-022ec2d4> Training takes 15-20 minutes of computer time. You can do other things while it runs! </p></label></div><div class="flex items-start gap-3 p-3 bg-white rounded-lg border border-yellow-200" data-v-022ec2d4><input type="checkbox" id="check-expectations" class="w-5 h-5 mt-0.5 text-green-600 rounded border-gray-300 focus:ring-green-500" data-v-022ec2d4><label for="check-expectations" class="flex-1 cursor-pointer" data-v-022ec2d4><span class="font-semibold text-gray-800" data-v-022ec2d4>Realistic Expectations</span><p class="text-sm text-gray-600" data-v-022ec2d4> With 10-20 examples, results will be okay but inconsistent. That's normal! This is a learning exercise, not production AI. </p></label></div></div><div class="mt-4 p-3 bg-green-100 rounded-lg border border-green-300" data-v-022ec2d4><p class="text-sm text-green-800 text-center font-medium" data-v-022ec2d4> ✨ Checked all 4 boxes? You're ready to start! </p></div></div><div class="card mb-6 bg-gradient-to-r from-blue-50 to-purple-50" data-v-022ec2d4><h2 class="text-xl font-semibold mb-4" data-v-022ec2d4>What You'll Accomplish</h2><div class="grid grid-cols-1 md:grid-cols-3 gap-4" data-v-022ec2d4><div class="text-center p-4" data-v-022ec2d4><div class="text-4xl mb-2" data-v-022ec2d4>📊</div><h3 class="font-semibold mb-1" data-v-022ec2d4>Export Data</h3><p class="text-sm text-gray-600" data-v-022ec2d4>Already done in edukaAI</p></div><div class="text-center p-4" data-v-022ec2d4><div class="text-4xl mb-2" data-v-022ec2d4>⚙️</div><h3 class="font-semibold mb-1" data-v-022ec2d4>Train Model</h3><p class="text-sm text-gray-600" data-v-022ec2d4>Just 3 simple commands</p></div><div class="text-center p-4" data-v-022ec2d4><div class="text-4xl mb-2" data-v-022ec2d4>🎉</div><h3 class="font-semibold mb-1" data-v-022ec2d4>Chat with AI</h3><p class="text-sm text-gray-600" data-v-022ec2d4>That learned from YOUR data</p></div></div><div class="mt-4 p-4 bg-white rounded-lg border-2 border-green-200" data-v-022ec2d4><p class="text-center text-green-800 font-medium" data-v-022ec2d4> 💡 Remember: Training the model is the <strong data-v-022ec2d4>easy part</strong>. Creating quality training data is where the magic happens — and that's what edukaAI helps you with! </p></div></div><div class="card mb-6" data-v-022ec2d4><h2 class="text-xl font-semibold mb-4" data-v-022ec2d4>📋 Before You Start (Prerequisites)</h2><div class="space-y-4" data-v-022ec2d4><div class="flex items-start gap-4 p-4 bg-green-50 rounded-lg border border-green-200" data-v-022ec2d4><div class="w-8 h-8 bg-green-500 text-white rounded-full flex items-center justify-center font-bold flex-shrink-0" data-v-022ec2d4>✓</div><div data-v-022ec2d4><h3 class="font-semibold text-green-800" data-v-022ec2d4>Your Dataset from edukaAI</h3><p class="text-gray-700" data-v-022ec2d4> You should have exported your dataset as <code data-v-022ec2d4>dataset_alpaca.json</code>. If not, `);
|
|
66
|
+
_push(ssrRenderComponent(_component_NuxtLink, {
|
|
67
|
+
to: "/export",
|
|
68
|
+
class: "text-blue-600 hover:underline"
|
|
69
|
+
}, {
|
|
70
|
+
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
71
|
+
if (_push2) {
|
|
72
|
+
_push2(`go to Export`);
|
|
73
|
+
} else {
|
|
74
|
+
return [
|
|
75
|
+
createTextVNode("go to Export")
|
|
76
|
+
];
|
|
77
|
+
}
|
|
78
|
+
}),
|
|
79
|
+
_: 1
|
|
80
|
+
}, _parent));
|
|
81
|
+
_push(` first. </p></div></div><div class="flex items-start gap-4 p-4 bg-blue-50 rounded-lg border border-blue-200" data-v-022ec2d4><div class="w-8 h-8 bg-blue-500 text-white rounded-full flex items-center justify-center font-bold flex-shrink-0" data-v-022ec2d4>1</div><div data-v-022ec2d4><h3 class="font-semibold text-blue-800" data-v-022ec2d4>Python 3.9 or higher</h3><p class="text-gray-700 mb-2" data-v-022ec2d4>Check if you have it:</p><div class="relative group" data-v-022ec2d4><code class="block bg-gray-800 text-green-400 p-3 rounded text-sm" data-v-022ec2d4>python --version</code><button class="absolute top-2 right-2 opacity-0 group-hover:opacity-100 transition-opacity bg-gray-700 hover:bg-gray-600 text-white text-xs px-2 py-1 rounded flex items-center gap-1" data-v-022ec2d4>`);
|
|
82
|
+
if (copiedIndex.value === 0) {
|
|
83
|
+
_push(`<span data-v-022ec2d4>✓ Copied!</span>`);
|
|
84
|
+
} else {
|
|
85
|
+
_push(`<span data-v-022ec2d4>📋 Copy</span>`);
|
|
86
|
+
}
|
|
87
|
+
_push(`</button></div><p class="text-sm text-gray-600 mt-2" data-v-022ec2d4> Don't have it? <a href="https://www.python.org/downloads/" target="_blank" class="text-blue-600 hover:underline" data-v-022ec2d4>Download Python</a></p></div></div><div class="flex items-start gap-4 p-4 bg-yellow-50 rounded-lg border border-yellow-200" data-v-022ec2d4><div class="w-8 h-8 bg-yellow-500 text-white rounded-full flex items-center justify-center font-bold flex-shrink-0" data-v-022ec2d4>2</div><div data-v-022ec2d4><h3 class="font-semibold text-yellow-800" data-v-022ec2d4>A GPU... OR Use Hugging Face!</h3><p class="text-gray-700 mb-2" data-v-022ec2d4> Training requires a GPU, unless you use Hugging Face AutoTrain. Choose your path: </p><div class="grid grid-cols-1 md:grid-cols-3 gap-3" data-v-022ec2d4><div class="p-3 bg-white rounded border" data-v-022ec2d4><h4 class="font-semibold text-sm mb-1" data-v-022ec2d4>Option A: Your Computer</h4><p class="text-xs text-gray-600" data-v-022ec2d4>If you have an NVIDIA GPU with 8GB+ VRAM</p></div><div class="p-3 bg-white rounded border border-green-300 bg-green-50" data-v-022ec2d4><h4 class="font-semibold text-sm mb-1 text-green-700" data-v-022ec2d4>Option B: Google Colab ⭐</h4><p class="text-xs text-gray-600" data-v-022ec2d4>Free GPU in the cloud. Great for beginners!</p></div><div class="p-3 bg-white rounded border border-yellow-300 bg-yellow-50" data-v-022ec2d4><h4 class="font-semibold text-sm mb-1 text-yellow-700" data-v-022ec2d4>Option C: Hugging Face 🤗</h4><p class="text-xs text-gray-600" data-v-022ec2d4>No GPU needed! Web-based, easiest for non-coders</p></div></div></div></div></div></div><div class="card mb-6 border-2 border-green-300" data-v-022ec2d4><div class="flex items-center gap-3 mb-4" data-v-022ec2d4><span class="text-3xl" data-v-022ec2d4>☁️</span><h2 class="text-2xl font-bold text-green-700" data-v-022ec2d4>Path A: Google Colab (Easiest - Free GPU!)</h2></div><p class="text-gray-700 mb-6" data-v-022ec2d4> Google Colab provides a free GPU in the cloud. No setup on your computer needed. This is the <strong data-v-022ec2d4>recommended path for beginners</strong>. </p><div class="mb-6" data-v-022ec2d4><div class="flex items-center justify-between mb-3" data-v-022ec2d4><div class="flex items-center gap-3" data-v-022ec2d4><div class="w-10 h-10 bg-blue-600 text-white rounded-full flex items-center justify-center font-bold text-xl" data-v-022ec2d4>1</div><div data-v-022ec2d4><h3 class="text-lg font-semibold" data-v-022ec2d4>Upload Your Dataset</h3><span class="text-sm text-gray-500" data-v-022ec2d4>⏱️ 2 minutes</span></div></div></div><div class="ml-13 pl-4 border-l-4 border-blue-200" data-v-022ec2d4><ol class="list-decimal list-inside space-y-2 text-gray-700" data-v-022ec2d4><li data-v-022ec2d4>Go to <a href="https://colab.research.google.com" target="_blank" class="text-blue-600 hover:underline font-semibold" data-v-022ec2d4>Google Colab</a></li><li data-v-022ec2d4>Click "New Notebook"</li><li data-v-022ec2d4>In the left sidebar, click the 📁 folder icon</li><li data-v-022ec2d4>Click "Upload" and select your <code data-v-022ec2d4>dataset_alpaca.json</code> file</li><li data-v-022ec2d4>Wait for upload to complete (green checkmark)</li></ol><div class="mt-3 p-3 bg-gray-50 rounded text-sm" data-v-022ec2d4><strong data-v-022ec2d4>💡 Tip:</strong> The file will appear in the <code data-v-022ec2d4>/content/</code> folder </div><div class="mt-2 p-2 bg-yellow-50 rounded border border-yellow-200 text-sm" data-v-022ec2d4><strong data-v-022ec2d4>🆘 Stuck?</strong> File not uploading? Try refreshing the page or checking file size (should be < 50MB) </div></div></div><div class="mb-6" data-v-022ec2d4><div class="flex items-center justify-between mb-3" data-v-022ec2d4><div class="flex items-center gap-3" data-v-022ec2d4><div class="w-10 h-10 bg-blue-600 text-white rounded-full flex items-center justify-center font-bold text-xl" data-v-022ec2d4>2</div><div data-v-022ec2d4><h3 class="text-lg font-semibold" data-v-022ec2d4>Enable GPU</h3><span class="text-sm text-gray-500" data-v-022ec2d4>⏱️ 1 minute</span></div></div></div><div class="ml-13 pl-4 border-l-4 border-blue-200" data-v-022ec2d4><ol class="list-decimal list-inside space-y-2 text-gray-700" data-v-022ec2d4><li data-v-022ec2d4>Click "Runtime" in the top menu</li><li data-v-022ec2d4>Click "Change runtime type"</li><li data-v-022ec2d4>Under "Hardware accelerator", select "T4 GPU"</li><li data-v-022ec2d4>Click "Save"</li></ol><div class="mt-2 p-2 bg-yellow-50 rounded border border-yellow-200 text-sm" data-v-022ec2d4><strong data-v-022ec2d4>⚠️ Important:</strong> Without GPU, training will be extremely slow (hours instead of minutes) or may fail! </div></div></div><div class="mb-6" data-v-022ec2d4><div class="flex items-center justify-between mb-3" data-v-022ec2d4><div class="flex items-center gap-3" data-v-022ec2d4><div class="w-10 h-10 bg-blue-600 text-white rounded-full flex items-center justify-center font-bold text-xl" data-v-022ec2d4>3</div><div data-v-022ec2d4><h3 class="text-lg font-semibold" data-v-022ec2d4>Install Axolotl</h3><span class="text-sm text-gray-500" data-v-022ec2d4>⏱️ 3 minutes (mostly waiting)</span></div></div></div><div class="ml-13 pl-4 border-l-4 border-blue-200" data-v-022ec2d4><p class="text-gray-700 mb-2" data-v-022ec2d4>In the first code cell, type:</p><code class="block bg-gray-800 text-green-400 p-3 rounded text-sm mb-2" data-v-022ec2d4> !pip install axolotl </code><p class="text-gray-700" data-v-022ec2d4>Press <kbd class="bg-gray-200 px-2 py-1 rounded" data-v-022ec2d4>Shift</kbd> + <kbd class="bg-gray-200 px-2 py-1 rounded" data-v-022ec2d4>Enter</kbd> to run</p><div class="mt-3 p-3 bg-yellow-50 rounded border border-yellow-200 text-sm" data-v-022ec2d4><strong data-v-022ec2d4>⏳ Wait:</strong> Installation takes 2-3 minutes. Watch the output scroll by! You'll see progress bars. </div><div class="mt-2 p-2 bg-red-50 rounded border border-red-200 text-sm" data-v-022ec2d4><strong data-v-022ec2d4>🆘 Error?</strong> If you see red text, try: <code data-v-022ec2d4>!pip install --upgrade axolotl</code> or restart runtime (Runtime → Restart runtime) </div></div></div><div class="mb-6" data-v-022ec2d4><div class="flex items-center justify-between mb-3" data-v-022ec2d4><div class="flex items-center gap-3" data-v-022ec2d4><div class="w-10 h-10 bg-blue-600 text-white rounded-full flex items-center justify-center font-bold text-xl" data-v-022ec2d4>4</div><div data-v-022ec2d4><h3 class="text-lg font-semibold" data-v-022ec2d4>Create Your Config</h3><span class="text-sm text-gray-500" data-v-022ec2d4>⏱️ 3 minutes</span></div></div></div><div class="ml-13 pl-4 border-l-4 border-blue-200" data-v-022ec2d4><p class="text-gray-700 mb-2" data-v-022ec2d4>Create a new code cell and paste this:</p><pre class="bg-gray-800 text-green-400 p-3 rounded text-sm overflow-x-auto" data-v-022ec2d4><code data-v-022ec2d4>config = '''
|
|
88
|
+
base_model: TinyLlama/TinyLlama-1.1B-Chat-v1.0
|
|
89
|
+
model_type: LlamaForCausalLM
|
|
90
|
+
tokenizer_type: LlamaTokenizer
|
|
91
|
+
|
|
92
|
+
# Your edukaAI dataset
|
|
93
|
+
datasets:
|
|
94
|
+
- path: /content/dataset_alpaca.json
|
|
95
|
+
type: alpaca
|
|
96
|
+
|
|
97
|
+
# Training settings (keep it simple!)
|
|
98
|
+
num_epochs: 3
|
|
99
|
+
micro_batch_size: 1
|
|
100
|
+
gradient_accumulation_steps: 4
|
|
101
|
+
learning_rate: 0.0002
|
|
102
|
+
|
|
103
|
+
# Where to save your trained model
|
|
104
|
+
output_dir: /content/my-first-model
|
|
105
|
+
|
|
106
|
+
# Use less memory (good for Colab)
|
|
107
|
+
load_in_8bit: true
|
|
108
|
+
'''
|
|
109
|
+
|
|
110
|
+
# Save the config
|
|
111
|
+
with open('/content/config.yaml', 'w') as f:
|
|
112
|
+
f.write(config)
|
|
113
|
+
|
|
114
|
+
print("✅ Config created!")</code></pre><p class="text-gray-700 mt-2" data-v-022ec2d4>Run it with <kbd class="bg-gray-200 px-2 py-1 rounded" data-v-022ec2d4>Shift</kbd> + <kbd class="bg-gray-200 px-2 py-1 rounded" data-v-022ec2d4>Enter</kbd></p><div class="mt-2 p-2 bg-blue-50 rounded border border-blue-200 text-sm" data-v-022ec2d4><strong data-v-022ec2d4>💡 Tip:</strong> If your dataset filename is different, change <code data-v-022ec2d4>/content/dataset_alpaca.json</code> to match </div></div></div><div class="mb-6" data-v-022ec2d4><div class="flex items-center justify-between mb-3" data-v-022ec2d4><div class="flex items-center gap-3" data-v-022ec2d4><div class="w-10 h-10 bg-purple-600 text-white rounded-full flex items-center justify-center font-bold text-xl" data-v-022ec2d4>5</div><div data-v-022ec2d4><h3 class="text-lg font-semibold" data-v-022ec2d4>Train Your Model! 🚀</h3><span class="text-sm text-gray-500" data-v-022ec2d4>⏱️ 15-20 minutes ☕ (computer does the work)</span></div></div></div><div class="ml-13 pl-4 border-l-4 border-purple-200" data-v-022ec2d4><p class="text-gray-700 mb-2" data-v-022ec2d4>Create another code cell:</p><code class="block bg-gray-800 text-green-400 p-3 rounded text-sm mb-2" data-v-022ec2d4> !axolotl train /content/config.yaml </code><p class="text-gray-700" data-v-022ec2d4>Run it and watch the magic happen! ✨</p><div class="mt-3 p-3 bg-blue-50 rounded border border-blue-200 text-sm" data-v-022ec2d4><strong data-v-022ec2d4>What you'll see:</strong><br data-v-022ec2d4> • Loading model... ✓<br data-v-022ec2d4> • Loading dataset... ✓<br data-v-022ec2d4> • Epoch 1/3: [████████] 100%<br data-v-022ec2d4> • Epoch 2/3: [████████] 100%<br data-v-022ec2d4> • Epoch 3/3: [████████] 100%<br data-v-022ec2d4> • Training complete! ✓ </div><div class="mt-2 p-2 bg-yellow-50 rounded border border-yellow-200 text-sm" data-v-022ec2d4><strong data-v-022ec2d4>☕ This takes time:</strong> Go grab coffee! The computer is working. Don't close the tab. </div><div class="mt-2 p-2 bg-red-50 rounded border border-red-200 text-sm" data-v-022ec2d4><strong data-v-022ec2d4>🆘 Taking >30 mins?</strong> This is too long. Try:<br data-v-022ec2d4> • Change model to <code data-v-022ec2d4>TinyLlama/TinyLlama-1.1B-Chat-v1.0</code> (smaller = faster)<br data-v-022ec2d4> • Or add <code data-v-022ec2d4>num_epochs: 1</code> to config (less training) </div><div class="mt-2 p-2 bg-red-50 rounded border border-red-200 text-sm" data-v-022ec2d4><strong data-v-022ec2d4>🆘 Out of Memory error?</strong> Add this to config:<br data-v-022ec2d4><code data-v-022ec2d4>load_in_4bit: true</code> (instead of 8bit)<br data-v-022ec2d4> Or use even smaller model </div></div></div><div class="mb-6" data-v-022ec2d4><div class="flex items-center justify-between mb-3" data-v-022ec2d4><div class="flex items-center gap-3" data-v-022ec2d4><div class="w-10 h-10 bg-green-600 text-white rounded-full flex items-center justify-center font-bold text-xl" data-v-022ec2d4>6</div><div data-v-022ec2d4><h3 class="text-lg font-semibold" data-v-022ec2d4>Chat With Your Model 💬</h3><span class="text-sm text-gray-500" data-v-022ec2d4>⏱️ 5 minutes</span></div></div></div><div class="ml-13 pl-4 border-l-4 border-green-200" data-v-022ec2d4><p class="text-gray-700 mb-2" data-v-022ec2d4>After training completes, test your model:</p><pre class="bg-gray-800 text-green-400 p-3 rounded text-sm overflow-x-auto" data-v-022ec2d4><code data-v-022ec2d4>from transformers import AutoModelForCausalLM, AutoTokenizer
|
|
115
|
+
import torch
|
|
116
|
+
|
|
117
|
+
# Load your trained model
|
|
118
|
+
model_path = "/content/my-first-model"
|
|
119
|
+
model = AutoModelForCausalLM.from_pretrained(
|
|
120
|
+
model_path,
|
|
121
|
+
torch_dtype=torch.float16,
|
|
122
|
+
device_map="auto"
|
|
123
|
+
)
|
|
124
|
+
tokenizer = AutoTokenizer.from_pretrained(model_path)
|
|
125
|
+
|
|
126
|
+
# Test it!
|
|
127
|
+
prompt = "What is photosynthesis?"
|
|
128
|
+
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
|
|
129
|
+
|
|
130
|
+
# Generate response
|
|
131
|
+
with torch.no_grad():
|
|
132
|
+
outputs = model.generate(
|
|
133
|
+
**inputs,
|
|
134
|
+
max_new_tokens=100,
|
|
135
|
+
temperature=0.7
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
|
|
139
|
+
print(f"You: {prompt}")
|
|
140
|
+
print(f"Model: {response}")</code></pre><div class="mt-3 p-3 bg-green-100 rounded text-sm text-green-800" data-v-022ec2d4><strong data-v-022ec2d4>🎉 Success!</strong> If you see a response (even if imperfect), you trained your first AI model! </div><div class="mt-2 p-2 bg-gray-50 rounded border border-gray-200 text-sm" data-v-022ec2d4><strong data-v-022ec2d4>What to expect:</strong> With only 10-20 training examples, responses will be <strong data-v-022ec2d4>okay but inconsistent</strong>. Some will be great, some weird. This is normal! </div></div></div><div data-v-022ec2d4><div class="flex items-center justify-between mb-3" data-v-022ec2d4><div class="flex items-center gap-3" data-v-022ec2d4><div class="w-10 h-10 bg-yellow-600 text-white rounded-full flex items-center justify-center font-bold text-xl" data-v-022ec2d4>7</div><div data-v-022ec2d4><h3 class="text-lg font-semibold" data-v-022ec2d4>Save Your Model (Important!)</h3><span class="text-sm text-gray-500" data-v-022ec2d4>⏱️ 2 minutes</span></div></div></div><div class="ml-13 pl-4 border-l-4 border-yellow-200" data-v-022ec2d4><p class="text-gray-700 mb-2" data-v-022ec2d4>⚠️ Colab deletes files when you close it. Download your model:</p><ol class="list-decimal list-inside space-y-2 text-gray-700" data-v-022ec2d4><li data-v-022ec2d4>In the file browser (left sidebar), find <code data-v-022ec2d4>my-first-model</code> folder</li><li data-v-022ec2d4>Right-click it → "Download"</li><li data-v-022ec2d4>It will create a ZIP file you can save to your computer</li></ol><div class="mt-2 p-2 bg-red-50 rounded border border-red-200 text-sm" data-v-022ec2d4><strong data-v-022ec2d4>⚠️ Don't skip this!</strong> If you don't download, you'll lose your trained model when Colab session ends. </div></div></div><div class="mt-8 p-6 bg-gradient-to-r from-purple-50 to-blue-50 rounded-xl border-2 border-purple-200" data-v-022ec2d4><h3 class="text-xl font-bold text-purple-700 mb-3 flex items-center gap-2" data-v-022ec2d4><span data-v-022ec2d4>⚡</span> Shortcut: Pre-Built Colab Notebook </h3><p class="text-gray-700 mb-4" data-v-022ec2d4> Want to skip copy-pasting? Use our pre-configured notebook with everything set up! </p><a href="https://colab.research.google.com/drive/1axolotl-edukaai-template" target="_blank" class="inline-flex items-center gap-2 bg-purple-600 hover:bg-purple-700 text-white font-semibold py-3 px-6 rounded-lg transition-colors" data-v-022ec2d4><span data-v-022ec2d4>🚀</span> Open Pre-Built Template </a><p class="text-sm text-gray-500 mt-3" data-v-022ec2d4> Just upload your dataset and click run! All config included. </p></div></div><div class="card mb-6 bg-gradient-to-r from-green-50 to-emerald-50 border-green-300" data-v-022ec2d4><h2 class="text-2xl font-bold mb-4 text-green-700 flex items-center gap-2" data-v-022ec2d4><span data-v-022ec2d4>✅</span> How to Know It Worked </h2><div class="space-y-4" data-v-022ec2d4><div class="p-4 bg-white rounded-lg border border-green-200" data-v-022ec2d4><h3 class="font-semibold text-green-800 mb-2" data-v-022ec2d4>✓ You Should See This:</h3><pre class="bg-gray-800 text-green-400 p-3 rounded text-xs overflow-x-auto" data-v-022ec2d4>Loading model... ✓
|
|
141
|
+
Loading dataset... ✓ (16 examples)
|
|
142
|
+
Starting training...
|
|
143
|
+
Epoch 1/3: 100%|████████| 16/16 [02:30<00:00]
|
|
144
|
+
Epoch 2/3: 100%|████████| 16/16 [02:28<00:00]
|
|
145
|
+
Epoch 3/3: 100%|████████| 16/16 [02:29<00:00]
|
|
146
|
+
Training complete! ✓
|
|
147
|
+
Model saved to /content/my-first-model</pre></div><div class="p-4 bg-white rounded-lg border border-green-200" data-v-022ec2d4><h3 class="font-semibold text-green-800 mb-2" data-v-022ec2d4>✓ When Testing, You'll Get:</h3><div class="bg-gray-100 p-3 rounded text-sm font-mono" data-v-022ec2d4> You: What is photosynthesis?<br data-v-022ec2d4> Model: Photosynthesis is the process by which plants use sunlight, water, and carbon dioxide to create oxygen and energy in the form of sugar. It's how plants make their food! </div><p class="text-sm text-gray-600 mt-2" data-v-022ec2d4><strong data-v-022ec2d4>It doesn't need to be perfect!</strong> Even partial or slightly weird responses mean it worked. With only 10-20 examples, quality will vary. </p></div><div class="p-4 bg-yellow-50 rounded-lg border border-yellow-200" data-v-022ec2d4><h3 class="font-semibold text-yellow-800 mb-2" data-v-022ec2d4>⚠️ If You Get Gibberish:</h3><p class="text-sm text-gray-700" data-v-022ec2d4> This is <strong data-v-022ec2d4>totally normal</strong> with a small dataset! The model hasn't learned enough yet. Signs of partial success: </p><ul class="text-sm text-gray-700 mt-2 ml-4 list-disc" data-v-022ec2d4><li data-v-022ec2d4>Response relates to your training topic (even if incorrect)</li><li data-v-022ec2d4>Grammar is somewhat coherent</li><li data-v-022ec2d4>It's not random characters</li></ul><p class="text-sm text-gray-700 mt-2" data-v-022ec2d4><strong data-v-022ec2d4>Solution:</strong> Go back to edukaAI and add 30-50 more high-quality examples, then retrain! </p></div></div></div><div class="card mb-6" data-v-022ec2d4><div class="flex items-center gap-3 mb-4" data-v-022ec2d4><span class="text-3xl" data-v-022ec2d4>💻</span><h2 class="text-2xl font-bold" data-v-022ec2d4>Path B: Your Local Computer</h2></div><p class="text-gray-700 mb-6" data-v-022ec2d4> If you have a powerful NVIDIA GPU (8GB+ VRAM), you can train on your own computer. The steps are similar to Colab, just on your machine. </p><div class="mb-6" data-v-022ec2d4><div class="flex items-center gap-3 mb-3" data-v-022ec2d4><div class="w-10 h-10 bg-blue-600 text-white rounded-full flex items-center justify-center font-bold text-xl" data-v-022ec2d4>3</div><h3 class="text-lg font-semibold" data-v-022ec2d4>Install Axolotl</h3></div><div class="ml-13 pl-4 border-l-4 border-blue-200" data-v-022ec2d4><p class="text-gray-700 mb-2" data-v-022ec2d4>In the first code cell, type:</p><code class="block bg-gray-800 text-green-400 p-3 rounded text-sm mb-2" data-v-022ec2d4> !pip install axolotl </code><p class="text-gray-700" data-v-022ec2d4>Press <kbd class="bg-gray-200 px-2 py-1 rounded" data-v-022ec2d4>Shift</kbd> + <kbd class="bg-gray-200 px-2 py-1 rounded" data-v-022ec2d4>Enter</kbd> to run</p><div class="mt-3 p-3 bg-yellow-50 rounded border border-yellow-200 text-sm" data-v-022ec2d4><strong data-v-022ec2d4>⏳ Wait:</strong> Installation takes 2-3 minutes. Watch the output scroll by! </div></div></div><div class="mb-6" data-v-022ec2d4><div class="flex items-center gap-3 mb-3" data-v-022ec2d4><div class="w-10 h-10 bg-blue-600 text-white rounded-full flex items-center justify-center font-bold text-xl" data-v-022ec2d4>4</div><h3 class="text-lg font-semibold" data-v-022ec2d4>Create Your Config</h3></div><div class="ml-13 pl-4 border-l-4 border-blue-200" data-v-022ec2d4><p class="text-gray-700 mb-2" data-v-022ec2d4>Create a new code cell and paste this:</p><pre class="bg-gray-800 text-green-400 p-3 rounded text-sm overflow-x-auto" data-v-022ec2d4><code data-v-022ec2d4>config = '''
|
|
148
|
+
base_model: TinyLlama/TinyLlama-1.1B-Chat-v1.0
|
|
149
|
+
model_type: LlamaForCausalLM
|
|
150
|
+
tokenizer_type: LlamaTokenizer
|
|
151
|
+
|
|
152
|
+
# Your edukaAI dataset
|
|
153
|
+
datasets:
|
|
154
|
+
- path: /content/dataset_alpaca.json
|
|
155
|
+
type: alpaca
|
|
156
|
+
|
|
157
|
+
# Training settings (keep it simple!)
|
|
158
|
+
num_epochs: 3
|
|
159
|
+
micro_batch_size: 1
|
|
160
|
+
gradient_accumulation_steps: 4
|
|
161
|
+
learning_rate: 0.0002
|
|
162
|
+
|
|
163
|
+
# Where to save your trained model
|
|
164
|
+
output_dir: /content/my-first-model
|
|
165
|
+
|
|
166
|
+
# Use less memory (good for Colab)
|
|
167
|
+
load_in_8bit: true
|
|
168
|
+
'''
|
|
169
|
+
|
|
170
|
+
# Save the config
|
|
171
|
+
with open('/content/config.yaml', 'w') as f:
|
|
172
|
+
f.write(config)
|
|
173
|
+
|
|
174
|
+
print("✅ Config created!")</code></pre><p class="text-gray-700 mt-2" data-v-022ec2d4>Run it with <kbd class="bg-gray-200 px-2 py-1 rounded" data-v-022ec2d4>Shift</kbd> + <kbd class="bg-gray-200 px-2 py-1 rounded" data-v-022ec2d4>Enter</kbd></p></div></div><div class="mb-6" data-v-022ec2d4><div class="flex items-center gap-3 mb-3" data-v-022ec2d4><div class="w-10 h-10 bg-purple-600 text-white rounded-full flex items-center justify-center font-bold text-xl" data-v-022ec2d4>5</div><h3 class="text-lg font-semibold" data-v-022ec2d4>Train Your Model! 🚀</h3></div><div class="ml-13 pl-4 border-l-4 border-purple-200" data-v-022ec2d4><p class="text-gray-700 mb-2" data-v-022ec2d4>Create another code cell:</p><code class="block bg-gray-800 text-green-400 p-3 rounded text-sm mb-2" data-v-022ec2d4> !axolotl train /content/config.yaml </code><p class="text-gray-700" data-v-022ec2d4>Run it and watch the magic happen! ✨</p><div class="mt-3 p-3 bg-blue-50 rounded border border-blue-200 text-sm" data-v-022ec2d4><strong data-v-022ec2d4>⏰ Time:</strong> This takes 10-20 minutes on Colab's free GPU. You'll see progress bars and loss values going down — that's good! </div></div></div><div class="mb-6" data-v-022ec2d4><div class="flex items-center gap-3 mb-3" data-v-022ec2d4><div class="w-10 h-10 bg-green-600 text-white rounded-full flex items-center justify-center font-bold text-xl" data-v-022ec2d4>6</div><h3 class="text-lg font-semibold" data-v-022ec2d4>Chat With Your Model 💬</h3></div><div class="ml-13 pl-4 border-l-4 border-green-200" data-v-022ec2d4><p class="text-gray-700 mb-2" data-v-022ec2d4>After training completes, test your model:</p><pre class="bg-gray-800 text-green-400 p-3 rounded text-sm overflow-x-auto" data-v-022ec2d4><code data-v-022ec2d4>from transformers import AutoModelForCausalLM, AutoTokenizer
|
|
175
|
+
import torch
|
|
176
|
+
|
|
177
|
+
# Load your trained model
|
|
178
|
+
model_path = "/content/my-first-model"
|
|
179
|
+
model = AutoModelForCausalLM.from_pretrained(
|
|
180
|
+
model_path,
|
|
181
|
+
torch_dtype=torch.float16,
|
|
182
|
+
device_map="auto"
|
|
183
|
+
)
|
|
184
|
+
tokenizer = AutoTokenizer.from_pretrained(model_path)
|
|
185
|
+
|
|
186
|
+
# Test it!
|
|
187
|
+
prompt = "What is photosynthesis?"
|
|
188
|
+
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
|
|
189
|
+
|
|
190
|
+
# Generate response
|
|
191
|
+
with torch.no_grad():
|
|
192
|
+
outputs = model.generate(
|
|
193
|
+
**inputs,
|
|
194
|
+
max_new_tokens=100,
|
|
195
|
+
temperature=0.7
|
|
196
|
+
)
|
|
197
|
+
|
|
198
|
+
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
|
|
199
|
+
print(f"You: {prompt}")
|
|
200
|
+
print(f"Model: {response}")</code></pre><div class="mt-3 p-3 bg-green-100 rounded text-sm text-green-800" data-v-022ec2d4><strong data-v-022ec2d4>🎉 Success!</strong> If you see a response, you trained your first AI model! </div></div></div><div data-v-022ec2d4><div class="flex items-center gap-3 mb-3" data-v-022ec2d4><div class="w-10 h-10 bg-yellow-600 text-white rounded-full flex items-center justify-center font-bold text-xl" data-v-022ec2d4>7</div><h3 class="text-lg font-semibold" data-v-022ec2d4>Save Your Model (Important!)</h3></div><div class="ml-13 pl-4 border-l-4 border-yellow-200" data-v-022ec2d4><p class="text-gray-700 mb-2" data-v-022ec2d4>⚠️ Colab deletes files when you close it. Download your model:</p><ol class="list-decimal list-inside space-y-2 text-gray-700" data-v-022ec2d4><li data-v-022ec2d4>In the file browser (left sidebar), find <code data-v-022ec2d4>my-first-model</code> folder</li><li data-v-022ec2d4>Right-click it → "Download"</li><li data-v-022ec2d4>It will create a ZIP file you can save to your computer</li></ol></div></div></div><div class="card mb-6" data-v-022ec2d4><div class="flex items-center gap-3 mb-4" data-v-022ec2d4><span class="text-3xl" data-v-022ec2d4>💻</span><h2 class="text-2xl font-bold" data-v-022ec2d4>Path B: Your Local Computer</h2></div><p class="text-gray-700 mb-6" data-v-022ec2d4> If you have a powerful NVIDIA GPU (8GB+ VRAM), you can train on your own computer. The steps are similar to Colab, just on your machine. </p><div class="space-y-4" data-v-022ec2d4><div class="flex items-start gap-4" data-v-022ec2d4><div class="w-8 h-8 bg-gray-800 text-white rounded-full flex items-center justify-center font-bold flex-shrink-0" data-v-022ec2d4>1</div><div data-v-022ec2d4><h3 class="font-semibold" data-v-022ec2d4>Create Project Folder</h3><code class="block bg-gray-800 text-green-400 p-2 rounded text-sm mt-2" data-v-022ec2d4> mkdir my-first-training<br data-v-022ec2d4> cd my-first-training </code></div></div><div class="flex items-start gap-4" data-v-022ec2d4><div class="w-8 h-8 bg-gray-800 text-white rounded-full flex items-center justify-center font-bold flex-shrink-0" data-v-022ec2d4>2</div><div data-v-022ec2d4><h3 class="font-semibold" data-v-022ec2d4>Copy Your Dataset</h3><p class="text-gray-700 text-sm" data-v-022ec2d4>Copy your <code data-v-022ec2d4>dataset_alpaca.json</code> into this folder</p></div></div><div class="flex items-start gap-4" data-v-022ec2d4><div class="w-8 h-8 bg-gray-800 text-white rounded-full flex items-center justify-center font-bold flex-shrink-0" data-v-022ec2d4>3</div><div data-v-022ec2d4><h3 class="font-semibold" data-v-022ec2d4>Install Axolotl</h3><code class="block bg-gray-800 text-green-400 p-2 rounded text-sm mt-2" data-v-022ec2d4> pip install axolotl </code></div></div><div class="flex items-start gap-4" data-v-022ec2d4><div class="w-8 h-8 bg-gray-800 text-white rounded-full flex items-center justify-center font-bold flex-shrink-0" data-v-022ec2d4>4</div><div data-v-022ec2d4><h3 class="font-semibold" data-v-022ec2d4>Create Config File</h3><p class="text-gray-700 text-sm mb-2" data-v-022ec2d4>Create <code data-v-022ec2d4>config.yaml</code> with this content:</p><pre class="bg-gray-800 text-green-400 p-3 rounded text-sm overflow-x-auto" data-v-022ec2d4><code data-v-022ec2d4>base_model: TinyLlama/TinyLlama-1.1B-Chat-v1.0
|
|
201
|
+
model_type: LlamaForCausalLM
|
|
202
|
+
tokenizer_type: LlamaTokenizer
|
|
203
|
+
|
|
204
|
+
# Your edukaAI dataset
|
|
205
|
+
datasets:
|
|
206
|
+
- path: ./dataset_alpaca.json
|
|
207
|
+
type: alpaca
|
|
208
|
+
|
|
209
|
+
# Training settings
|
|
210
|
+
num_epochs: 3
|
|
211
|
+
micro_batch_size: 1
|
|
212
|
+
gradient_accumulation_steps: 4
|
|
213
|
+
learning_rate: 0.0002
|
|
214
|
+
|
|
215
|
+
# Where to save
|
|
216
|
+
output_dir: ./my-first-model
|
|
217
|
+
|
|
218
|
+
# Use 8-bit to save memory
|
|
219
|
+
load_in_8bit: true</code></pre></div></div><div class="flex items-start gap-4" data-v-022ec2d4><div class="w-8 h-8 bg-purple-600 text-white rounded-full flex items-center justify-center font-bold flex-shrink-0" data-v-022ec2d4>5</div><div data-v-022ec2d4><h3 class="font-semibold text-purple-700" data-v-022ec2d4>Train!</h3><code class="block bg-gray-800 text-green-400 p-2 rounded text-sm mt-2" data-v-022ec2d4> axolotl train config.yaml </code><p class="text-gray-600 text-sm mt-2" data-v-022ec2d4>Training takes 30-60 minutes depending on your GPU</p></div></div><div class="flex items-start gap-4" data-v-022ec2d4><div class="w-8 h-8 bg-green-600 text-white rounded-full flex items-center justify-center font-bold flex-shrink-0" data-v-022ec2d4>6</div><div data-v-022ec2d4><h3 class="font-semibold text-green-700" data-v-022ec2d4>Test Your Model</h3><p class="text-gray-700 text-sm" data-v-022ec2d4>Your trained model is now in <code data-v-022ec2d4>./my-first-model</code> folder!</p><p class="text-gray-700 text-sm mt-2" data-v-022ec2d4>Use the same Python code as Colab (above) to chat with it</p></div></div></div></div><div class="card mb-6 border-2 border-yellow-400 bg-gradient-to-r from-yellow-50 to-orange-50" data-v-022ec2d4><div class="flex items-center gap-3 mb-4" data-v-022ec2d4><span class="text-3xl" data-v-022ec2d4>🤗</span><h2 class="text-2xl font-bold text-yellow-700" data-v-022ec2d4>Path C: Hugging Face (AutoTrain - Easiest GUI!)</h2></div><p class="text-gray-700 mb-6" data-v-022ec2d4> Want to train without writing any code? Use Hugging Face AutoTrain - a web interface where you just upload your dataset and click "Train". No Colab, no command line! </p><div class="space-y-4" data-v-022ec2d4><div class="flex items-start gap-4" data-v-022ec2d4><div class="w-8 h-8 bg-yellow-500 text-white rounded-full flex items-center justify-center font-bold flex-shrink-0" data-v-022ec2d4>1</div><div data-v-022ec2d4><h3 class="font-semibold" data-v-022ec2d4>Create Hugging Face Account</h3><p class="text-gray-700 text-sm mb-2" data-v-022ec2d4> Go to <a href="https://huggingface.co/join" target="_blank" class="text-blue-600 hover:underline font-semibold" data-v-022ec2d4>huggingface.co/join</a> and sign up for free. </p><div class="p-2 bg-white rounded border border-yellow-200 text-xs text-gray-600" data-v-022ec2d4> 💡 The free tier is enough to get started and experiment! </div></div></div><div class="flex items-start gap-4" data-v-022ec2d4><div class="w-8 h-8 bg-yellow-500 text-white rounded-full flex items-center justify-center font-bold flex-shrink-0" data-v-022ec2d4>2</div><div data-v-022ec2d4><h3 class="font-semibold" data-v-022ec2d4>Go to AutoTrain</h3><p class="text-gray-700 text-sm mb-2" data-v-022ec2d4> Visit <a href="https://huggingface.co/autotrain" target="_blank" class="text-blue-600 hover:underline font-semibold" data-v-022ec2d4>huggingface.co/autotrain</a> and create a new project. </p><div class="p-2 bg-white rounded border border-yellow-200 text-xs text-gray-600" data-v-022ec2d4> 🎯 Select "LLM Fine-tuning" as your project type </div></div></div><div class="flex items-start gap-4" data-v-022ec2d4><div class="w-8 h-8 bg-yellow-500 text-white rounded-full flex items-center justify-center font-bold flex-shrink-0" data-v-022ec2d4>3</div><div data-v-022ec2d4><h3 class="font-semibold" data-v-022ec2d4>Upload Your Dataset</h3><p class="text-gray-700 text-sm mb-2" data-v-022ec2d4> Click "Upload Dataset" and select your <code data-v-022ec2d4>dataset_alpaca.json</code> file from edukaAI. </p><div class="p-2 bg-white rounded border border-yellow-200 text-xs text-gray-600" data-v-022ec2d4> 📁 AutoTrain supports the Alpaca format automatically - no conversion needed! </div></div></div><div class="flex items-start gap-4" data-v-022ec2d4><div class="w-8 h-8 bg-yellow-500 text-white rounded-full flex items-center justify-center font-bold flex-shrink-0" data-v-022ec2d4>4</div><div data-v-022ec2d4><h3 class="font-semibold" data-v-022ec2d4>Choose Base Model</h3><p class="text-gray-700 text-sm mb-2" data-v-022ec2d4> Select a model to start from. Good beginner options: </p><ul class="text-sm text-gray-700 ml-4 list-disc" data-v-022ec2d4><li data-v-022ec2d4><code data-v-022ec2d4>TinyLlama/TinyLlama-1.1B-Chat-v1.0</code> (fast, free tier)</li><li data-v-022ec2d4><code data-v-022ec2d4>meta-llama/Llama-2-7b-chat-hf</code> (better quality, requires HF Pro)</li></ul></div></div><div class="flex items-start gap-4" data-v-022ec2d4><div class="w-8 h-8 bg-yellow-500 text-white rounded-full flex items-center justify-center font-bold flex-shrink-0" data-v-022ec2d4>5</div><div data-v-022ec2d4><h3 class="font-semibold" data-v-022ec2d4>Configure Training (Keep It Simple!)</h3><p class="text-gray-700 text-sm mb-2" data-v-022ec2d4>Use these beginner-friendly settings:</p><div class="bg-white p-3 rounded border border-gray-200 text-sm" data-v-022ec2d4><table class="w-full text-sm" data-v-022ec2d4><tbody data-v-022ec2d4><tr class="border-b" data-v-022ec2d4><td class="py-1 font-medium" data-v-022ec2d4>Epochs:</td><td data-v-022ec2d4>3</td></tr><tr class="border-b" data-v-022ec2d4><td class="py-1 font-medium" data-v-022ec2d4>Learning Rate:</td><td data-v-022ec2d4>0.0002</td></tr><tr class="border-b" data-v-022ec2d4><td class="py-1 font-medium" data-v-022ec2d4>Batch Size:</td><td data-v-022ec2d4>1</td></tr><tr data-v-022ec2d4><td class="py-1 font-medium" data-v-022ec2d4>LoRA Rank:</td><td data-v-022ec2d4>8 (reduces memory)</td></tr></tbody></table></div></div></div><div class="flex items-start gap-4" data-v-022ec2d4><div class="w-8 h-8 bg-purple-600 text-white rounded-full flex items-center justify-center font-bold flex-shrink-0" data-v-022ec2d4>6</div><div data-v-022ec2d4><h3 class="font-semibold text-purple-700" data-v-022ec2d4>Click "Start Training" 🚀</h3><p class="text-gray-700 text-sm mb-2" data-v-022ec2d4> That's it! AutoTrain will handle everything: </p><ul class="text-sm text-gray-700 ml-4 list-disc" data-v-022ec2d4><li data-v-022ec2d4>Download the base model</li><li data-v-022ec2d4>Fine-tune on your data</li><li data-v-022ec2d4>Save to your Hugging Face Hub</li><li data-v-022ec2d4>Create a demo space automatically!</li></ul><div class="mt-2 p-2 bg-blue-50 rounded border border-blue-200 text-xs text-gray-600" data-v-022ec2d4> ⏱️ Training takes 10-30 minutes depending on dataset size and model </div></div></div><div class="flex items-start gap-4" data-v-022ec2d4><div class="w-8 h-8 bg-green-600 text-white rounded-full flex items-center justify-center font-bold flex-shrink-0" data-v-022ec2d4>7</div><div data-v-022ec2d4><h3 class="font-semibold text-green-700" data-v-022ec2d4>Test & Share Your Model! 🎉</h3><p class="text-gray-700 text-sm mb-2" data-v-022ec2d4> Once training completes: </p><ul class="text-sm text-gray-700 ml-4 list-disc space-y-1" data-v-022ec2d4><li data-v-022ec2d4>Your model is automatically hosted on Hugging Face</li><li data-v-022ec2d4>AutoTrain creates a demo Space where you can chat with it</li><li data-v-022ec2d4>Share the link with anyone - they can try your AI!</li><li data-v-022ec2d4>Download the model files anytime</li></ul><div class="mt-3 p-3 bg-green-100 rounded border border-green-300 text-sm text-green-800" data-v-022ec2d4><strong data-v-022ec2d4>✨ Bonus:</strong> You now have a public demo of YOUR trained AI that anyone can try! </div></div></div></div><div class="mt-6 p-4 bg-white rounded-lg border-2 border-yellow-300" data-v-022ec2d4><h3 class="font-bold text-yellow-800 mb-3 flex items-center gap-2" data-v-022ec2d4><span data-v-022ec2d4>🤔</span> Why Choose Hugging Face? </h3><div class="grid grid-cols-1 md:grid-cols-3 gap-3 text-sm" data-v-022ec2d4><div class="p-2 bg-green-50 rounded" data-v-022ec2d4><strong class="text-green-700" data-v-022ec2d4>✅ No Code</strong><p class="text-gray-600" data-v-022ec2d4>Everything through web UI</p></div><div class="p-2 bg-blue-50 rounded" data-v-022ec2d4><strong class="text-blue-700" data-v-022ec2d4>✅ Auto-Hosting</strong><p class="text-gray-600" data-v-022ec2d4>Model is live immediately</p></div><div class="p-2 bg-purple-50 rounded" data-v-022ec2d4><strong class="text-purple-700" data-v-022ec2d4>✅ Free Demo</strong><p class="text-gray-600" data-v-022ec2d4>Shareable chat interface</p></div></div><div class="mt-3 text-xs text-gray-600" data-v-022ec2d4><strong data-v-022ec2d4>Note:</strong> Free tier has compute limits. For larger models or datasets, you may need Hugging Face Pro or compute credits. </div></div></div><div class="card mb-6 bg-gradient-to-r from-yellow-50 to-orange-50 border-yellow-300" data-v-022ec2d4><h2 class="text-xl font-semibold mb-4" data-v-022ec2d4>⚠️ What to Expect</h2><div class="space-y-4 text-gray-700" data-v-022ec2d4><div class="flex items-start gap-3" data-v-022ec2d4><span class="text-2xl" data-v-022ec2d4>⏱️</span><div data-v-022ec2d4><h3 class="font-semibold" data-v-022ec2d4>Time</h3><p class="text-sm" data-v-022ec2d4>Training takes 10-20 minutes on Colab, 30-60 minutes locally. This is normal!</p></div></div><div class="flex items-start gap-3" data-v-022ec2d4><span class="text-2xl" data-v-022ec2d4>📊</span><div data-v-022ec2d4><h3 class="font-semibold" data-v-022ec2d4>Quality</h3><p class="text-sm" data-v-022ec2d4>With 10-20 examples, results will be <strong data-v-022ec2d4>okay but inconsistent</strong>. This is expected! More data = better results.</p></div></div><div class="flex items-start gap-3" data-v-022ec2d4><span class="text-2xl" data-v-022ec2d4>🎯</span><div data-v-022ec2d4><h3 class="font-semibold" data-v-022ec2d4>The Point</h3><p class="text-sm" data-v-022ec2d4>This is a <strong data-v-022ec2d4>learning exercise</strong>. You're not creating production-ready AI — you're understanding the process!</p></div></div><div class="flex items-start gap-3" data-v-022ec2d4><span class="text-2xl" data-v-022ec2d4>🔄</span><div data-v-022ec2d4><h3 class="font-semibold" data-v-022ec2d4>Next Steps</h3><p class="text-sm" data-v-022ec2d4> After seeing how it works, come back to edukaAI and `);
|
|
220
|
+
_push(ssrRenderComponent(_component_NuxtLink, {
|
|
221
|
+
to: "/examples",
|
|
222
|
+
class: "text-blue-600 hover:underline"
|
|
223
|
+
}, {
|
|
224
|
+
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
225
|
+
if (_push2) {
|
|
226
|
+
_push2(`add more quality examples`);
|
|
227
|
+
} else {
|
|
228
|
+
return [
|
|
229
|
+
createTextVNode("add more quality examples")
|
|
230
|
+
];
|
|
231
|
+
}
|
|
232
|
+
}),
|
|
233
|
+
_: 1
|
|
234
|
+
}, _parent));
|
|
235
|
+
_push(`. Then retrain for better results! </p></div></div></div></div><div class="card mb-6" data-v-022ec2d4><h2 class="text-xl font-semibold mb-4" data-v-022ec2d4>🔧 Common Issues & Solutions</h2><div class="space-y-4" data-v-022ec2d4><div class="p-4 bg-red-50 rounded-lg border border-red-200" data-v-022ec2d4><h3 class="font-semibold text-red-800 mb-1" data-v-022ec2d4>"Out of Memory" Error</h3><p class="text-gray-700 text-sm" data-v-022ec2d4><strong data-v-022ec2d4>Solution:</strong> You're using a model too big for your GPU. Switch to an even smaller model like <code data-v-022ec2d4>TinyLlama/TinyLlama-1.1B-Chat-v1.0</code> (which we use above) or increase <code data-v-022ec2d4>load_in_8bit: true</code>. </p></div><div class="p-4 bg-yellow-50 rounded-lg border border-yellow-200" data-v-022ec2d4><h3 class="font-semibold text-yellow-800 mb-1" data-v-022ec2d4>"ModuleNotFoundError: No module named 'axolotl'"</h3><p class="text-gray-700 text-sm" data-v-022ec2d4><strong data-v-022ec2d4>Solution:</strong> Axolotl didn't install properly. Restart your runtime/environment and run <code data-v-022ec2d4>pip install axolotl</code> again. </p></div><div class="p-4 bg-blue-50 rounded-lg border border-blue-200" data-v-022ec2d4><h3 class="font-semibold text-blue-800 mb-1" data-v-022ec2d4>"FileNotFoundError: dataset_alpaca.json"</h3><p class="text-gray-700 text-sm" data-v-022ec2d4><strong data-v-022ec2d4>Solution:</strong> The path in your config doesn't match where you uploaded the file. Check the path carefully! </p></div><div class="p-4 bg-gray-50 rounded-lg border border-gray-200" data-v-022ec2d4><h3 class="font-semibold text-gray-800 mb-1" data-v-022ec2d4>Model Generates Gibberish</h3><p class="text-gray-700 text-sm" data-v-022ec2d4><strong data-v-022ec2d4>Normal!</strong> With only 10-20 training examples, the model hasn't learned much yet. This is why <strong data-v-022ec2d4>dataset quality and quantity matter</strong>. Go back to edukaAI and add more diverse, high-quality examples! </p></div></div></div><div class="card mb-6 bg-gradient-to-r from-purple-600 to-blue-600 text-white" data-v-022ec2d4><h2 class="text-xl font-semibold mb-4" data-v-022ec2d4>🎓 The Real Lesson</h2><p class="mb-4 opacity-90" data-v-022ec2d4> After completing this guide, you'll realize something important: </p><div class="p-4 bg-white bg-opacity-20 rounded-lg mb-4" data-v-022ec2d4><p class="text-lg font-medium" data-v-022ec2d4> "Training the model was just running a command. The hard part — the part that matters — is creating good training data." </p></div><p class="opacity-90 mb-4" data-v-022ec2d4> That's exactly what edukaAI helps you with! The technical training is easy. Creating meaningful, diverse, high-quality training examples is where the value is. </p><div class="grid grid-cols-1 md:grid-cols-2 gap-3" data-v-022ec2d4>`);
|
|
236
|
+
_push(ssrRenderComponent(_component_NuxtLink, {
|
|
237
|
+
to: "/examples",
|
|
238
|
+
class: "bg-white bg-opacity-20 hover:bg-opacity-30 text-white py-3 px-4 rounded-lg text-center transition-colors"
|
|
239
|
+
}, {
|
|
240
|
+
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
241
|
+
if (_push2) {
|
|
242
|
+
_push2(` 📝 Add More Examples → `);
|
|
243
|
+
} else {
|
|
244
|
+
return [
|
|
245
|
+
createTextVNode(" 📝 Add More Examples → ")
|
|
246
|
+
];
|
|
247
|
+
}
|
|
248
|
+
}),
|
|
249
|
+
_: 1
|
|
250
|
+
}, _parent));
|
|
251
|
+
_push(ssrRenderComponent(_component_NuxtLink, {
|
|
252
|
+
to: "/help/best-practices",
|
|
253
|
+
class: "bg-white bg-opacity-20 hover:bg-opacity-30 text-white py-3 px-4 rounded-lg text-center transition-colors"
|
|
254
|
+
}, {
|
|
255
|
+
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
256
|
+
if (_push2) {
|
|
257
|
+
_push2(` 📚 Learn Best Practices → `);
|
|
258
|
+
} else {
|
|
259
|
+
return [
|
|
260
|
+
createTextVNode(" 📚 Learn Best Practices → ")
|
|
261
|
+
];
|
|
262
|
+
}
|
|
263
|
+
}),
|
|
264
|
+
_: 1
|
|
265
|
+
}, _parent));
|
|
266
|
+
_push(`</div></div><div class="card mb-6 bg-gradient-to-r from-orange-500 to-red-500 text-white" data-v-022ec2d4><h2 class="text-2xl font-bold mb-4 flex items-center gap-2" data-v-022ec2d4><span data-v-022ec2d4>🚀</span> You Trained a Model! Now What? </h2><p class="mb-4 opacity-90 text-lg" data-v-022ec2d4> Congratulations! You've completed your first fine-tuning. Here's how to make it even better: </p><div class="grid grid-cols-1 md:grid-cols-3 gap-4 mb-6" data-v-022ec2d4><div class="p-4 bg-white bg-opacity-20 rounded-lg" data-v-022ec2d4><div class="text-3xl mb-2" data-v-022ec2d4>📈</div><h3 class="font-bold mb-2" data-v-022ec2d4>Add More Data</h3><p class="text-sm opacity-90" data-v-022ec2d4> 10 examples = okay results<br data-v-022ec2d4> 50 examples = noticeably better<br data-v-022ec2d4> 100 examples = quite good! </p>`);
|
|
267
|
+
_push(ssrRenderComponent(_component_NuxtLink, {
|
|
268
|
+
to: "/examples",
|
|
269
|
+
class: "mt-3 inline-block text-sm bg-white text-orange-600 px-3 py-1 rounded font-semibold hover:bg-opacity-90"
|
|
270
|
+
}, {
|
|
271
|
+
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
272
|
+
if (_push2) {
|
|
273
|
+
_push2(` Add Examples → `);
|
|
274
|
+
} else {
|
|
275
|
+
return [
|
|
276
|
+
createTextVNode(" Add Examples → ")
|
|
277
|
+
];
|
|
278
|
+
}
|
|
279
|
+
}),
|
|
280
|
+
_: 1
|
|
281
|
+
}, _parent));
|
|
282
|
+
_push(`</div><div class="p-4 bg-white bg-opacity-20 rounded-lg" data-v-022ec2d4><div class="text-3xl mb-2" data-v-022ec2d4>🎯</div><h3 class="font-bold mb-2" data-v-022ec2d4>Improve Quality</h3><p class="text-sm opacity-90" data-v-022ec2d4> Review your examples:<br data-v-022ec2d4> • Fix low-quality ones<br data-v-022ec2d4> • Add more diverse topics<br data-v-022ec2d4> • Include edge cases </p>`);
|
|
283
|
+
_push(ssrRenderComponent(_component_NuxtLink, {
|
|
284
|
+
to: "/help/best-practices",
|
|
285
|
+
class: "mt-3 inline-block text-sm bg-white text-orange-600 px-3 py-1 rounded font-semibold hover:bg-opacity-90"
|
|
286
|
+
}, {
|
|
287
|
+
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
288
|
+
if (_push2) {
|
|
289
|
+
_push2(` Learn How → `);
|
|
290
|
+
} else {
|
|
291
|
+
return [
|
|
292
|
+
createTextVNode(" Learn How → ")
|
|
293
|
+
];
|
|
294
|
+
}
|
|
295
|
+
}),
|
|
296
|
+
_: 1
|
|
297
|
+
}, _parent));
|
|
298
|
+
_push(`</div><div class="p-4 bg-white bg-opacity-20 rounded-lg" data-v-022ec2d4><div class="text-3xl mb-2" data-v-022ec2d4>🔄</div><h3 class="font-bold mb-2" data-v-022ec2d4>Retrain & Compare</h3><p class="text-sm opacity-90" data-v-022ec2d4> See the improvement:<br data-v-022ec2d4> • Export new dataset<br data-v-022ec2d4> • Retrain model<br data-v-022ec2d4> • Compare results! </p>`);
|
|
299
|
+
_push(ssrRenderComponent(_component_NuxtLink, {
|
|
300
|
+
to: "/export",
|
|
301
|
+
class: "mt-3 inline-block text-sm bg-white text-orange-600 px-3 py-1 rounded font-semibold hover:bg-opacity-90"
|
|
302
|
+
}, {
|
|
303
|
+
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
304
|
+
if (_push2) {
|
|
305
|
+
_push2(` Export Again → `);
|
|
306
|
+
} else {
|
|
307
|
+
return [
|
|
308
|
+
createTextVNode(" Export Again → ")
|
|
309
|
+
];
|
|
310
|
+
}
|
|
311
|
+
}),
|
|
312
|
+
_: 1
|
|
313
|
+
}, _parent));
|
|
314
|
+
_push(`</div></div><div class="p-4 bg-white bg-opacity-20 rounded-lg" data-v-022ec2d4><h3 class="font-bold mb-2 flex items-center gap-2" data-v-022ec2d4><span data-v-022ec2d4>💡</span> The Iteration Loop </h3><div class="flex items-center justify-center gap-4 text-sm" data-v-022ec2d4><span class="text-center" data-v-022ec2d4>Add Data<br data-v-022ec2d4>in edukaAI</span><span class="text-2xl" data-v-022ec2d4>→</span><span class="text-center" data-v-022ec2d4>Export &<br data-v-022ec2d4>Retrain</span><span class="text-2xl" data-v-022ec2d4>→</span><span class="text-center" data-v-022ec2d4>Test &<br data-v-022ec2d4>Compare</span><span class="text-2xl" data-v-022ec2d4>→</span><span class="text-center" data-v-022ec2d4>Repeat<br data-v-022ec2d4>↺</span></div><p class="text-center mt-3 text-sm opacity-90" data-v-022ec2d4> Each iteration makes your model smarter! 🧠 </p></div></div><div class="text-center py-8" data-v-022ec2d4><div class="text-6xl mb-4" data-v-022ec2d4>🎉</div><h2 class="text-2xl font-bold text-gray-800 mb-2" data-v-022ec2d4>You're Ready!</h2><p class="text-gray-600 mb-6" data-v-022ec2d4> The technical part is straightforward. Focus on creating amazing training data — that's your superpower. </p><div class="flex flex-col sm:flex-row gap-3 justify-center" data-v-022ec2d4><a href="https://colab.research.google.com" target="_blank" class="bg-blue-600 hover:bg-blue-700 text-white font-semibold py-3 px-8 rounded-lg transition-colors" data-v-022ec2d4> Open Google Colab → </a>`);
|
|
315
|
+
_push(ssrRenderComponent(_component_NuxtLink, {
|
|
316
|
+
to: "/export",
|
|
317
|
+
class: "bg-gray-200 hover:bg-gray-300 text-gray-800 font-semibold py-3 px-8 rounded-lg transition-colors"
|
|
318
|
+
}, {
|
|
319
|
+
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
320
|
+
if (_push2) {
|
|
321
|
+
_push2(` Export Dataset First `);
|
|
322
|
+
} else {
|
|
323
|
+
return [
|
|
324
|
+
createTextVNode(" Export Dataset First ")
|
|
325
|
+
];
|
|
326
|
+
}
|
|
327
|
+
}),
|
|
328
|
+
_: 1
|
|
329
|
+
}, _parent));
|
|
330
|
+
_push(`</div></div></div>`);
|
|
331
|
+
};
|
|
332
|
+
}
|
|
333
|
+
};
|
|
334
|
+
const _sfc_setup = _sfc_main.setup;
|
|
335
|
+
_sfc_main.setup = (props, ctx) => {
|
|
336
|
+
const ssrContext = useSSRContext();
|
|
337
|
+
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/help/first-training.vue");
|
|
338
|
+
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
|
339
|
+
};
|
|
340
|
+
const firstTraining = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-022ec2d4"]]);
|
|
341
|
+
|
|
342
|
+
export { firstTraining as default };
|
|
343
|
+
//# sourceMappingURL=first-training-BbEOBcEW.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"first-training-BbEOBcEW.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/first-training-BbEOBcEW.js"],"names":[],"mappings":"","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const firstTraining_vue_vue_type_style_index_0_scoped_022ec2d4_lang = ".ml-13[data-v-022ec2d4]{margin-left:52px}.relative code[data-v-022ec2d4]{position:relative}.copy-btn[data-v-022ec2d4]{align-items:center;background-color:#4b5563e6;border:none;border-radius:.25rem;color:#fff;cursor:pointer;display:flex;font-size:.75rem;gap:.25rem;opacity:0;padding:.25rem .5rem;position:absolute;right:.5rem;top:.5rem;transition:opacity .2s ease;z-index:10}.copy-btn[data-v-022ec2d4]:hover{background-color:#6b7280e6}.relative:hover .copy-btn[data-v-022ec2d4]{opacity:1}.copy-btn.copied[data-v-022ec2d4]{background-color:#22c55ee6}.relative[data-v-022ec2d4]:has(>code){position:relative}";
|
|
2
|
+
|
|
3
|
+
const firstTrainingStyles_BzOa_KRD = [
|
|
4
|
+
firstTraining_vue_vue_type_style_index_0_scoped_022ec2d4_lang
|
|
5
|
+
];
|
|
6
|
+
|
|
7
|
+
export { firstTrainingStyles_BzOa_KRD as default };
|
|
8
|
+
//# sourceMappingURL=first-training-styles.BzOa_KRD.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"first-training-styles.BzOa_KRD.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/first-training-styles-1.mjs-Dz30x8CG.js","../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/first-training-styles.BzOa_KRD.mjs"],"names":["style_0"],"mappings":"","x_google_ignoreList":[0,1]}
|