{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":730845987,"defaultBranch":"main","name":"mlx-swift","ownerLogin":"ml-explore","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-12-12T19:58:52.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/102832242?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1709584838.0","currentOid":""},"activityList":{"items":[{"before":"7cd3240fb05d9129bcaa6e9d558b2143fcd309c5","after":"d6d9472da5bf7ec2654e8914bd1d15622f45b6a9","ref":"refs/heads/main","pushedAt":"2024-05-28T20:49:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"davidkoski","name":"David Koski","path":"/davidkoski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46639364?s=80&v=4"},"commit":{"message":"add quantized embedding (#73)","shortMessageHtmlLink":"add quantized embedding (#73)"}},{"before":"e2bfe0de9417beb949b9c4f5d8ef3657f8abaee9","after":"7cd3240fb05d9129bcaa6e9d558b2143fcd309c5","ref":"refs/heads/main","pushedAt":"2024-05-24T14:49:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"davidkoski","name":"David Koski","path":"/davidkoski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46639364?s=80&v=4"},"commit":{"message":"Unify operator implementation (#92)","shortMessageHtmlLink":"Unify operator implementation (#92)"}},{"before":"ab854b91445bee56d0a9747753d536f2850ef809","after":"e2bfe0de9417beb949b9c4f5d8ef3657f8abaee9","ref":"refs/heads/main","pushedAt":"2024-05-24T14:47:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"davidkoski","name":"David Koski","path":"/davidkoski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46639364?s=80&v=4"},"commit":{"message":"Add in-place operators (#91)","shortMessageHtmlLink":"Add in-place operators (#91)"}},{"before":"83efa171113771328019b56bdb4b36cb522e9707","after":"ab854b91445bee56d0a9747753d536f2850ef809","ref":"refs/heads/main","pushedAt":"2024-05-20T20:33:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"davidkoski","name":"David Koski","path":"/davidkoski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46639364?s=80&v=4"},"commit":{"message":"add discardableResult so callers don't get a warning if they do not chain calls (#90)","shortMessageHtmlLink":"add discardableResult so callers don't get a warning if they do not c…"}},{"before":"fe4b4c696579a3f1afcf833710497cef540573ef","after":"83efa171113771328019b56bdb4b36cb522e9707","ref":"refs/heads/main","pushedAt":"2024-05-20T15:27:05.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"davidkoski","name":"David Koski","path":"/davidkoski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46639364?s=80&v=4"},"commit":{"message":"Make Optimizer parameters public to enable dynamic learning rate (#87)","shortMessageHtmlLink":"Make Optimizer parameters public to enable dynamic learning rate (#87)"}},{"before":"3c802c808d281c191d5f26f37a4f93135d8ca119","after":"fe4b4c696579a3f1afcf833710497cef540573ef","ref":"refs/heads/main","pushedAt":"2024-05-20T15:26:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"davidkoski","name":"David Koski","path":"/davidkoski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46639364?s=80&v=4"},"commit":{"message":"Corrections in documentation (#88)","shortMessageHtmlLink":"Corrections in documentation (#88)"}},{"before":"a225ad9b5d907bb65ed1d78ef575e625d33ae3fa","after":"3c802c808d281c191d5f26f37a4f93135d8ca119","ref":"refs/heads/main","pushedAt":"2024-05-07T15:35:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"davidkoski","name":"David Koski","path":"/davidkoski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46639364?s=80&v=4"},"commit":{"message":"switch to non underscore variant (#84)","shortMessageHtmlLink":"switch to non underscore variant (#84)"}},{"before":"d885b3573512cf8dbafd0aba01d54503d38beeb7","after":"a225ad9b5d907bb65ed1d78ef575e625d33ae3fa","ref":"refs/heads/main","pushedAt":"2024-05-03T06:19:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"davidkoski","name":"David Koski","path":"/davidkoski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46639364?s=80&v=4"},"commit":{"message":"reconcile changes between mlx 0.8.1 and 0.12.1 (#81)\n\n- some changes from mlx were skipped as we were just updating what we built against\r\n- this pulls in remaining changes from https://github.com/ml-explore/mlx/compare/v0.8.1...v0.12.1\r\n- with the exception of the bitwise operators: https://github.com/ml-explore/mlx-c/issues/23","shortMessageHtmlLink":"reconcile changes between mlx 0.8.1 and 0.12.1 (#81)"}},{"before":"2ff4d14ede505df547baafe7f18f75666bbd0f9d","after":"d885b3573512cf8dbafd0aba01d54503d38beeb7","ref":"refs/heads/main","pushedAt":"2024-05-02T16:43:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"davidkoski","name":"David Koski","path":"/davidkoski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46639364?s=80&v=4"},"commit":{"message":"update for mlx v0.12.0 (#77)\n\n* update for mlx v0.12.0\r\n* softmax (and friends naming)","shortMessageHtmlLink":"update for mlx v0.12.0 (#77)"}},{"before":"e0a29189e1871707ccf2f70287f8c378db4ef090","after":"2ff4d14ede505df547baafe7f18f75666bbd0f9d","ref":"refs/heads/main","pushedAt":"2024-05-02T16:00:14.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"davidkoski","name":"David Koski","path":"/davidkoski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46639364?s=80&v=4"},"commit":{"message":"Make error conform LocalizedError (#80)\n\n* Make error conform LocalizedError","shortMessageHtmlLink":"Make error conform LocalizedError (#80)"}},{"before":"b43bdff8b6a413eb75e88eafd4a3995971a406fd","after":"e0a29189e1871707ccf2f70287f8c378db4ef090","ref":"refs/heads/main","pushedAt":"2024-05-02T01:02:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"davidkoski","name":"David Koski","path":"/davidkoski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46639364?s=80&v=4"},"commit":{"message":"fix for #76 (#78)\n\n- fix array indexing issue\r\n\r\n* adopt changes from https://github.com/ml-explore/mlx/pull/1053","shortMessageHtmlLink":"fix for #76 (#78)"}},{"before":"cf2c5d20c8575b375cb0d97a06ae0199527b5f32","after":"b43bdff8b6a413eb75e88eafd4a3995971a406fd","ref":"refs/heads/main","pushedAt":"2024-04-26T15:32:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"davidkoski","name":"David Koski","path":"/davidkoski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46639364?s=80&v=4"},"commit":{"message":"fix #71 -- loading npy file always gives zeros (#72)\n\n* fix #71 -- loading npy file always gives zeros\r\n\r\n- we can't use the FILE * variant of the call as the operation is lazy\r\n- the file is being closed before the read of the data is done","shortMessageHtmlLink":"fix #71 -- loading npy file always gives zeros (#72)"}},{"before":"129f95ac965eb66be0e8ea4680e5ae78be84761e","after":"cf2c5d20c8575b375cb0d97a06ae0199527b5f32","ref":"refs/heads/main","pushedAt":"2024-04-17T17:58:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"awni","name":"Awni Hannun","path":"/awni","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1542805?s=80&v=4"},"commit":{"message":"lora updates part 2 (#68)\n\n- the new LoRALinear and QLoraLinear implementations are subclasses of Linear\r\n- these need the same access to their superclass initializer that QuantizedLinear had\r\n- freeze/unfreeze need to be open for subclasses","shortMessageHtmlLink":"lora updates part 2 (#68)"}},{"before":"b4d3e4bbbe41e6dc7c46d5ba075049ae7177961b","after":"129f95ac965eb66be0e8ea4680e5ae78be84761e","ref":"refs/heads/main","pushedAt":"2024-04-12T22:01:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"davidkoski","name":"David Koski","path":"/davidkoski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46639364?s=80&v=4"},"commit":{"message":"update to pix up mlx v0.10.0 (#67)\n\n* update to pix up mlx v0.10.0\r\n\r\n- this doesn't include any new API (coming later)\r\n- includes two fixes important for smaller stack sizes (e.g. running on a async thread)\r\n\t- https://github.com/ml-explore/mlx/pull/980\r\n\t- https://github.com/ml-explore/mlx/pull/982","shortMessageHtmlLink":"update to pix up mlx v0.10.0 (#67)"}},{"before":"826f4c5e639bdd791c53e4ddd607d1ca8a461ebe","after":"b4d3e4bbbe41e6dc7c46d5ba075049ae7177961b","ref":"refs/heads/main","pushedAt":"2024-04-10T16:15:18.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"davidkoski","name":"David Koski","path":"/davidkoski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46639364?s=80&v=4"},"commit":{"message":"Updates in support of stable-diffusion (#66)\n\n- make a variant of split that returns a tuple for the parts: 2 case (common)\r\n- and destructuring shape properties (convenience)\r\n- add asData to get access to bytes\r\n- handle properties that hold modules/parameters in tuples\r\n- handle optional parameter and module properties with ModuleInfo/PropertyInfo\r\n- bugfix: GroupNorm was ignoring weight, bias\r\n- bugfix: MultiHeadAttention was not reshaping correctly","shortMessageHtmlLink":"Updates in support of stable-diffusion (#66)"}},{"before":"b59d802ca5abfc058196f93ca45a9d41522112b8","after":"826f4c5e639bdd791c53e4ddd607d1ca8a461ebe","ref":"refs/heads/main","pushedAt":"2024-04-10T16:14:56.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"davidkoski","name":"David Koski","path":"/davidkoski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46639364?s=80&v=4"},"commit":{"message":"improved support for @ModuleInfo (#65)\n\n* improved support for @ModuleInfo\r\n\r\n- just like ParameterInfo should be able to write to it once if nil\r\n- otherwise all updates have to go through API and will fatalError if not","shortMessageHtmlLink":"improved support for @ModuleInfo (#65)"}},{"before":"a1c544c817d44cfdfa1a650f521066b565c2ae4f","after":"b59d802ca5abfc058196f93ca45a9d41522112b8","ref":"refs/heads/main","pushedAt":"2024-04-05T23:13:03.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"davidkoski","name":"David Koski","path":"/davidkoski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46639364?s=80&v=4"},"commit":{"message":"implement Upsample and Recurrent layers (#64)\n\n* implement Upsample and Recurrent layers\r\n\r\n- completes work of sync with mlx 0.8.1\r\n- https://github.com/ml-explore/mlx/compare/v0.6.0...v0.8.1","shortMessageHtmlLink":"implement Upsample and Recurrent layers (#64)"}},{"before":"7bf4a3fffec89f513fc9b7515aefa906e5a3e314","after":"a1c544c817d44cfdfa1a650f521066b565c2ae4f","ref":"refs/heads/main","pushedAt":"2024-04-03T17:12:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"davidkoski","name":"David Koski","path":"/davidkoski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46639364?s=80&v=4"},"commit":{"message":"Implement full python indexing (#55)\n\n* Implement full python indexing\r\n\r\nThis is roughly a port of the code in https://github.com/ml-explore/mlx/blob/main/python/src/indexing.cpp and includes:\r\n\r\n- get operations\r\n- set operations\r\n- tests\r\n- documentation\r\n\r\nThis allows e.g.:\r\n\r\narray[::-1, :2, i, 2:, ..., None, ::2]\r\n\r\n// swift\r\narray[.stride(by: -1), ..<2, i, 2..., .ellipsis, .newAxis, .stride(by: 2)]","shortMessageHtmlLink":"Implement full python indexing (#55)"}},{"before":"7d3b625d9d0147249fabecac41201e7053244ee9","after":"7bf4a3fffec89f513fc9b7515aefa906e5a3e314","ref":"refs/heads/main","pushedAt":"2024-04-03T16:30:08.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"davidkoski","name":"David Koski","path":"/davidkoski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46639364?s=80&v=4"},"commit":{"message":"fix typo: ModuleChilren -> ModuleChildren (#63)","shortMessageHtmlLink":"fix typo: ModuleChilren -> ModuleChildren (#63)"}},{"before":"aa2d87b6de46b19caca475a3b861514bdd9b7759","after":"7d3b625d9d0147249fabecac41201e7053244ee9","ref":"refs/heads/main","pushedAt":"2024-04-02T20:23:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"davidkoski","name":"David Koski","path":"/davidkoski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46639364?s=80&v=4"},"commit":{"message":"run swift-format (#62)\n\n- circleci failed (silently?) on the PR run for #61","shortMessageHtmlLink":"run swift-format (#62)"}},{"before":"bd8666dad2651e8af9b430a821f22533705e9da0","after":"aa2d87b6de46b19caca475a3b861514bdd9b7759","ref":"refs/heads/main","pushedAt":"2024-04-02T18:35:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"davidkoski","name":"David Koski","path":"/davidkoski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46639364?s=80&v=4"},"commit":{"message":"add integration test for MLX.save(arrays: (#61)","shortMessageHtmlLink":"add integration test for MLX.save(arrays: (#61)"}},{"before":"f4b00d8ce6917c64bd5057a4fb19433e848fdf87","after":"bd8666dad2651e8af9b430a821f22533705e9da0","ref":"refs/heads/main","pushedAt":"2024-04-02T15:01:09.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"davidkoski","name":"David Koski","path":"/davidkoski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46639364?s=80&v=4"},"commit":{"message":"Use write mode when saving (#60)","shortMessageHtmlLink":"Use write mode when saving (#60)"}},{"before":"19a1985e9179d5733b0fbcfafb3532311ef07226","after":"f4b00d8ce6917c64bd5057a4fb19433e848fdf87","ref":"refs/heads/main","pushedAt":"2024-03-30T22:16:14.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"awni","name":"Awni Hannun","path":"/awni","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1542805?s=80&v=4"},"commit":{"message":"Append visionOS support (#56)\n\n* Append visionOS support\r\n\r\n* Fix typo","shortMessageHtmlLink":"Append visionOS support (#56)"}},{"before":"5e51224ac869366017859dc0b07f6d2dc51b3bae","after":"19a1985e9179d5733b0fbcfafb3532311ef07226","ref":"refs/heads/main","pushedAt":"2024-03-29T13:19:14.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"awni","name":"Awni Hannun","path":"/awni","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1542805?s=80&v=4"},"commit":{"message":"Update compilation.md (#57)","shortMessageHtmlLink":"Update compilation.md (#57)"}},{"before":"f31b4e6d6f382b9e36fd3cbb426eea565f4ae7e1","after":"5e51224ac869366017859dc0b07f6d2dc51b3bae","ref":"refs/heads/main","pushedAt":"2024-03-27T03:51:43.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"davidkoski","name":"David Koski","path":"/davidkoski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46639364?s=80&v=4"},"commit":{"message":"adopt mlx/mlx-c from 0.6.0 to 0.8.1 (#54)\n\n* adopt mlx/mlx-c from 0.6.0 to 0.8.1\r\n\r\n- this includes MLXFast, MLXLinAlg but not the new layers in MLXNN\r\n- https://github.com/ml-explore/mlx/compare/v0.6.0...v0.8.1","shortMessageHtmlLink":"adopt mlx/mlx-c from 0.6.0 to 0.8.1 (#54)"}},{"before":"24e71937e12efe01a0d28a429a703036fae2ff8a","after":"f31b4e6d6f382b9e36fd3cbb426eea565f4ae7e1","ref":"refs/heads/main","pushedAt":"2024-03-21T15:10:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"davidkoski","name":"David Koski","path":"/davidkoski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46639364?s=80&v=4"},"commit":{"message":"add documentation on [::-1] (#51)","shortMessageHtmlLink":"add documentation on [::-1] (#51)"}},{"before":"948000ceaa27c343f4dd5ce40f727f221bf45c6e","after":"24e71937e12efe01a0d28a429a703036fae2ff8a","ref":"refs/heads/main","pushedAt":"2024-03-14T16:05:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"davidkoski","name":"David Koski","path":"/davidkoski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46639364?s=80&v=4"},"commit":{"message":"add documentation with suggestions on how to develop for iOS (no simulator) (#47)\n\n* add documentation with suggestions on how to develop for iOS (no simulator)\r\n\r\nCo-authored-by: Awni Hannun ","shortMessageHtmlLink":"add documentation with suggestions on how to develop for iOS (no simu…"}},{"before":"303aec76840af4c3cb72c5331c476f672d17ac41","after":"948000ceaa27c343f4dd5ce40f727f221bf45c6e","ref":"refs/heads/main","pushedAt":"2024-03-12T05:04:43.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"davidkoski","name":"David Koski","path":"/davidkoski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46639364?s=80&v=4"},"commit":{"message":"adopt mlx changes up to v0.6.0 (#45)\n\n* adopt mlx changes up to v0.6.0\r\n\r\n- https://github.com/ml-explore/mlx/compare/v0.5.1...v0.6.0\r\n- add MLXFast package\r\n- expose RoPE and scaledDotProductAttention\r\n\r\nCo-authored-by: Awni Hannun ","shortMessageHtmlLink":"adopt mlx changes up to v0.6.0 (#45)"}},{"before":"04e53ed927d900989a27dffe0cc8683e1503f477","after":"303aec76840af4c3cb72c5331c476f672d17ac41","ref":"refs/heads/main","pushedAt":"2024-03-12T05:04:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"davidkoski","name":"David Koski","path":"/davidkoski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46639364?s=80&v=4"},"commit":{"message":"changes based on recent feedback (#43)\n\n* changes based on recent feedback\r\n\r\n- rename repeat -> repeated (swift consistency), deprecate repeat()\r\n- add variant of Linear initializer with parameter names","shortMessageHtmlLink":"changes based on recent feedback (#43)"}},{"before":"1e410a9d2ab845b3e384eedfe8d14765ae7e201c","after":"04e53ed927d900989a27dffe0cc8683e1503f477","ref":"refs/heads/main","pushedAt":"2024-03-10T04:22:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"davidkoski","name":"David Koski","path":"/davidkoski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46639364?s=80&v=4"},"commit":{"message":"documentation updates (#44)\n\n* documentation updates\r\n\r\n- add info about building command line via xcodebuild\r\n- improve documentation that looked sparse -- more examples, explanatory text\r\n\r\nCo-authored-by: Awni Hannun ","shortMessageHtmlLink":"documentation updates (#44)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEVkZsWAA","startCursor":null,"endCursor":null}},"title":"Activity · ml-explore/mlx-swift"}