packages feed

shikumi-optimize-0.3.0.1: shikumi-optimize.cabal

cabal-version: 3.4
name: shikumi-optimize
version: 0.3.0.1
synopsis: The optimizer framework for shikumi LM programs (EP-10)
category: AI
description:
  The optimizer framework for shikumi: search procedures that automatically
  improve a 'Shikumi.Program.Program' by rewriting its per-node optimizable
  parameters (instruction strings and few-shot demonstrations) and scoring each
  candidate with @evaluate@ (EP-8) over a typed dataset and metric. Four
  strategies ship — labeled few-shot demo selection, bootstrap few-shot (recover
  demonstrations from a teacher's successful runs), instruction search
  (MIPRO/COPRO-style coordinate ascent under an explicit call budget), and
  ensemble search (combine complementary candidates by majority vote). Each
  optimizer returns a @CompiledProgram@ (EP-9, MasterPlan integration point #6).
  Every acceptance assertion runs fully offline against a deterministic stub LM,
  so the whole package tests with no network and no API key.

license: BSD-3-Clause
author: Nadeem Bitar
maintainer: nadeem@gmail.com
build-type: Simple
extra-doc-files: CHANGELOG.md

common common-options
  ghc-options:
    -Wall
    -Wcompat
    -Widentities
    -Wincomplete-uni-patterns
    -Wincomplete-record-updates
    -Wredundant-constraints
    -fhide-source-paths
    -Wmissing-export-lists
    -Wpartial-fields
    -Wmissing-deriving-strategies

  default-language: GHC2024
  default-extensions:
    DeriveAnyClass
    DuplicateRecordFields
    OverloadedLabels
    OverloadedStrings

library
  import: common-options
  hs-source-dirs: src
  exposed-modules:
    Shikumi.Optimize
    Shikumi.Optimize.Bootstrap
    Shikumi.Optimize.COPRO
    Shikumi.Optimize.Ensemble
    Shikumi.Optimize.Execution
    Shikumi.Optimize.Feedback
    Shikumi.Optimize.GEPA
    Shikumi.Optimize.Instruction
    Shikumi.Optimize.KNN
    Shikumi.Optimize.LabeledFewShot
    Shikumi.Optimize.MIPRO
    Shikumi.Optimize.Pareto
    Shikumi.Optimize.Propose
    Shikumi.Optimize.Propose.Grounded
    Shikumi.Optimize.Propose.Summarize
    Shikumi.Optimize.Propose.Tips
    Shikumi.Optimize.Propose.Types
    Shikumi.Optimize.RandomSearch
    Shikumi.Optimize.Report
    Shikumi.Optimize.Search
    Shikumi.Optimize.Structure
    Shikumi.Optimize.Types

  build-depends:
    aeson >=2.2 && <2.3,
    base >=4.20 && <5,
    containers >=0.6 && <0.9,
    effectful >=2.6 && <2.8,
    generic-lens >=2.2 && <2.4,
    lens ^>=5.3,
    shikumi ^>=0.4.0.0,
    shikumi-compile ^>=0.2.1.1,
    shikumi-eval ^>=0.3.0.1,
    shikumi-trace ^>=0.3.0.1,
    text ^>=2.1,
    vector >=0.13 && <0.14,

test-suite shikumi-optimize-test
  import: common-options
  type: exitcode-stdio-1.0
  hs-source-dirs: test
  main-is: Main.hs
  ghc-options:
    -threaded
    -with-rtsopts=-N

  other-modules:
    AcceptanceSpec
    BootstrapSpec
    CoproSpec
    EnsembleSpec
    ExecutionSpec
    FeedbackSpec
    GepaSpec
    InstructionSpec
    KNNSpec
    LabeledFewShotSpec
    Miprov2Spec
    NodeBootstrapSpec
    ObjectiveSpec
    OptimizeSpec
    ProposeSpec
    RandomSearchSpec
    SearchSpec
    SeedingSpec
    StructureSpec
    StubLM

  build-depends:
    aeson,
    baikai >=0.7.1.0 && <0.8,
    base,
    containers,
    effectful,
    generic-lens,
    lens,
    shikumi ^>=0.4.0.0,
    shikumi-compile ^>=0.2.1.1,
    shikumi-eval ^>=0.3.0.1,
    shikumi-optimize ^>=0.3.0.1,
    shikumi-trace ^>=0.3.0.1,
    tasty,
    tasty-hunit,
    text,
    vector,