Unverified Commit e4df8640 authored by Gaétan Lepage's avatar Gaétan Lepage Committed by GitHub
Browse files

python3Packages.lm-eval: 0.4.9.1 -> 0.4.9.2; python3Packages.mlx: 0.30.1 ->...

python3Packages.lm-eval: 0.4.9.1 -> 0.4.9.2; python3Packages.mlx: 0.30.1 -> 0.30.3; python3Packages.mlx-lm: 0.30.2 -> 0.30.4 (#482847)
parents 26d344c7 bf4e615d
Loading
Loading
Loading
Loading
+11 −7
Original line number Diff line number Diff line
@@ -34,6 +34,8 @@
  tenacity,
  tiktoken,
  tqdm,
  # dscrim_eval
  statsmodels,
  # hf_transfer
  hf-transfer,
  # ifeval
@@ -62,16 +64,16 @@
  writableTmpDirAsHomeHook,
}:

buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
  pname = "lm-eval";
  version = "0.4.9.1";
  version = "0.4.9.2";
  pyproject = true;

  src = fetchFromGitHub {
    owner = "EleutherAI";
    repo = "lm-evaluation-harness";
    tag = "v${version}";
    hash = "sha256-N5NRRabjWxPchwOIkjqYTCKInCmVSY6T5cAmdxNbCkU=";
    tag = "v${finalAttrs.version}";
    hash = "sha256-Foz49XfIIzGJkgzjBu9P1J9cwYjl3fjAAJG9GKRwfq8=";
  };

  build-system = [
@@ -108,6 +110,7 @@ buildPythonPackage rec {
      tiktoken
      tqdm
    ];
    discrim_eval = [ statsmodels ];
    hf_transfer = [ hf-transfer ];
    ifeval = [
      immutabledict
@@ -144,7 +147,7 @@ buildPythonPackage rec {
    pytestCheckHook
    writableTmpDirAsHomeHook
  ]
  ++ optional-dependencies.api;
  ++ finalAttrs.passthru.optional-dependencies.api;

  disabledTests = [
    "test_deepsparse" # deepsparse is not available
@@ -156,6 +159,7 @@ buildPythonPackage rec {

  disabledTestPaths = [
    # attempts to download models
    "tests/models/test_bos_handling.py"
    "tests/models/test_huggingface.py"
    "tests/test_evaluator.py"
    "tests/test_include_path.py"
@@ -172,10 +176,10 @@ buildPythonPackage rec {
  ];

  meta = {
    changelog = "https://github.com/EleutherAI/lm-evaluation-harness/releases/tag/${src.tag}";
    changelog = "https://github.com/EleutherAI/lm-evaluation-harness/releases/tag/${finalAttrs.src.tag}";
    description = "Framework for few-shot evaluation of language models";
    homepage = "https://github.com/EleutherAI/lm-evaluation-harness";
    license = [ lib.licenses.mit ];
    maintainers = [ lib.maintainers.booxter ];
  };
}
})
+5 −3
Original line number Diff line number Diff line
@@ -15,22 +15,23 @@
  transformers,

  # tests
  aiohttp,
  lm-eval,
  sentencepiece,
  pytestCheckHook,
  sentencepiece,
  writableTmpDirAsHomeHook,
}:

buildPythonPackage (finalAttrs: {
  pname = "mlx-lm";
  version = "0.30.2";
  version = "0.30.4";
  pyproject = true;

  src = fetchFromGitHub {
    owner = "ml-explore";
    repo = "mlx-lm";
    tag = "v${finalAttrs.version}";
    hash = "sha256-6WlKAchze5B724XYwzpVHy+17HlMcGSYjJw0aOdm5yw=";
    hash = "sha256-ncDg7C84d1tAgk1300N7wY6kD1BocNNIqDUl0xBLhqY=";
  };

  build-system = [
@@ -50,6 +51,7 @@ buildPythonPackage (finalAttrs: {
  ];

  nativeCheckInputs = [
    aiohttp
    lm-eval
    pytestCheckHook
    sentencepiece
+16 −16
Original line number Diff line number Diff line
@@ -4,17 +4,16 @@
  buildPythonPackage,
  fetchFromGitHub,
  replaceVars,
  nanobind,

  # build-system
  setuptools,

  # nativeBuildInputs
  cmake,
  setuptools,
  typing-extensions,

  # buildInputs
  apple-sdk,
  fmt,
  nanobind,
  nlohmann_json,
  pybind11,
  # linux-only
@@ -42,26 +41,27 @@ let
in
buildPythonPackage (finalAttrs: {
  pname = "mlx";
  version = "0.30.1";
  version = "0.30.3";
  pyproject = true;

  src = fetchFromGitHub {
    owner = "ml-explore";
    repo = "mlx";
    tag = "v${finalAttrs.version}";
    hash = "sha256-Vt0RH+70VBwUjXSfPTsNdRS3g0ookJHhzf2kvgEtgH8=";
    hash = "sha256-Y4RTkGcDCZ9HLyflN0qYhPt/oVOsBhF1mHnKM4n1/ys=";
  };

  patches = lib.optionals stdenv.hostPlatform.isDarwin [
  patches = [
    # Use system nanobind instead of fetching its sources
    ./dont-fetch-nanobind.patch
  ]
  ++ lib.optionals stdenv.hostPlatform.isDarwin [
    (replaceVars ./darwin-build-fixes.patch {
      sdkVersion = apple-sdk.version;
    })
  ];

  postPatch = ''
    substituteInPlace pyproject.toml \
      --replace-fail "nanobind==2.10.2" "nanobind"

    substituteInPlace mlx/backend/cpu/jit_compiler.cpp \
      --replace-fail "g++" "${lib.getExe' stdenv.cc "c++"}"
  '';
@@ -79,7 +79,7 @@ buildPythonPackage (finalAttrs: {
  passthru.skipBulkUpdate = true;

  env = {
    DEV_RELEASE = 1;
    PYPI_RELEASE = 1;
    CMAKE_ARGS = toString [
      # NOTE The `metal` command-line utility used to build the Metal kernels is not open-source.
      # To build mlx with Metal support in Nix, you'd need to use one of the sandbox escape
@@ -89,21 +89,21 @@ buildPythonPackage (finalAttrs: {
      (lib.cmakeBool "USE_SYSTEM_FMT" true)
      (lib.cmakeOptionType "filepath" "FETCHCONTENT_SOURCE_DIR_GGUFLIB" "${gguf-tools}")
      (lib.cmakeOptionType "filepath" "FETCHCONTENT_SOURCE_DIR_JSON" "${nlohmann_json.src}")

      # Cmake cannot find nanobind-config.cmake by itself
      (lib.cmakeFeature "nanobind_DIR" "${nanobind}/${python.sitePackages}/nanobind/cmake")
    ];
  };

  build-system = [
    setuptools
  ];

  nativeBuildInputs = [
    cmake
    setuptools
    typing-extensions
  ];

  buildInputs = [
    fmt
    gguf-tools
    nanobind
    nlohmann_json
    pybind11
  ]
+19 −0
Original line number Diff line number Diff line
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0ed30932..e5842707 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -339,13 +339,7 @@ if(MLX_BUILD_PYTHON_BINDINGS)
     Python 3.10
     COMPONENTS Interpreter Development.Module
     REQUIRED)
-  FetchContent_Declare(
-    nanobind
-    GIT_REPOSITORY https://github.com/wjakob/nanobind.git
-    GIT_TAG v2.10.2
-    GIT_SHALLOW TRUE
-    EXCLUDE_FROM_ALL)
-  FetchContent_MakeAvailable(nanobind)
+  find_package(nanobind CONFIG REQUIRED)
   add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/python/src)
 endif()