iOS 18 Target Regression
πDescribing the bug
- My model works as expected when converting to
coremltools.target.iOS17, but only outputsnanwhen targetingcoremltools.target.iOS18
To Reproduce
- Clone this repository: https://github.com/NoahBPeterson/mxbai-embed-large-v1-CoreML (commit 4121f6d5ab6506ba7c5a18cac320ab92f9b6541f)
- Run
convert_pytorch_coreml.py. - Test the output using
run_coreml.py - It should output an array of floats.
- Change line 40 in
convert_pytorch_coreml.pytominimum_deployment_target=ct.target.iOS18, - Convert the model again
- Run: the model only outputs
nan
System environment (please complete the following information):
- coremltools version: 8.0
- OS (e.g. MacOS version or Linux type): macOS 15.0
- Any other relevant version information (e.g. PyTorch or TensorFlow version): torch 2.4.0, Python 3.11
Hey @NoahBPeterson
Thank you for reporting this. I tried your script and even for minimum_deployment_target=ct.target.iOS17 it produced nan.
Could you confirm on your side that minimum_deployment_target=ct.target.iOS17 works well? Thanks!
Yes, I can confirm that it does work with ct.target.iOS17.
~/Documents/books/coreml-conversion python3.11 run_coreml.py
CLS Token Embedding: [ 2.39501953e-01 -5.38574219e-01 3.90930176e-02 2.28149414e-01
-2.43652344e-01 -9.51538086e-02 2.86376953e-01 -3.62304688e-01
4.11132812e-01 6.15722656e-01 3.78906250e-01 2.64648438e-01
-6.11305237e-04 -6.48925781e-01 -2.91748047e-01 -1.96411133e-01
-3.57421875e-01 -7.26928711e-02 -8.73046875e-01 -2.16430664e-01
2.01293945e-01 1.80419922e-01 -1.35644531e+00 -1.87988281e-01
-3.80371094e-01 9.71191406e-01 5.93261719e-01 -1.61010742e-01
7.89550781e-01 6.19628906e-01 -2.29614258e-01 2.67822266e-01
3.09814453e-01 -4.89746094e-01 -6.42089844e-01 -4.79492188e-01
8.33007812e-01 -7.53417969e-01 -1.92016602e-01 -6.23046875e-01
3.21289062e-01 -6.57714844e-01 9.12597656e-01 -9.61914062e-01
-1.58496094e+00 -4.77294922e-01 6.93359375e-01 -4.13818359e-01
-3.82324219e-01 -1.45385742e-01 1.73095703e-01 6.13098145e-02
4.75585938e-01 1.70410156e-01 5.82031250e-01 -8.15917969e-01
1.36718750e-01 1.04858398e-01 -1.41699219e+00 9.95605469e-01
7.91503906e-01 5.28320312e-01 -2.26684570e-01 -1.41992188e+00
1.81518555e-01 -6.42700195e-02 -1.77856445e-01 1.84204102e-01
-9.88769531e-03 -6.55761719e-01 -6.89453125e-01 6.34155273e-02
-2.64404297e-01 -7.98828125e-01 -4.59228516e-01 7.22656250e-02
2.41699219e-01 -1.68212891e-01 -3.04687500e-01 1.10644531e+00
5.54504395e-02 6.30859375e-01 1.11621094e+00 -2.92724609e-01
-6.36230469e-01 -3.23974609e-01 8.75488281e-01 4.60693359e-01
-7.72094727e-02 -4.99511719e-01 -4.21386719e-01 8.23730469e-01
-5.12207031e-01 9.16992188e-01 -1.92749023e-01 6.75292969e-01
9.97924805e-02 1.22314453e-01 -2.73193359e-01 5.46264648e-02
6.58203125e-01 9.96582031e-01 -3.52539062e-01 7.69042969e-01
-8.81347656e-01 2.76855469e-01 -2.92968750e-01 -1.89575195e-01
-4.95910645e-02 -1.81274414e-01 -5.07812500e-01 1.70288086e-01
2.39257812e-01 -2.30590820e-01 -6.60156250e-01 2.84179688e-01
-8.98742676e-03 -7.15332031e-02 -3.61083984e-01 2.06787109e-01
3.88183594e-01 -1.27685547e-01 7.67211914e-02 -6.58691406e-01
-1.06262207e-01 -4.70214844e-01 -2.14233398e-02 1.22460938e+00
-1.13378906e+00 -2.04345703e-01 4.19189453e-01 -1.25122070e-01
5.97167969e-01 8.50830078e-02 2.42187500e-01 9.02099609e-02
2.33398438e-01 3.10058594e-01 6.48437500e-01 -5.86425781e-01
2.80273438e-01 1.27197266e-01 -3.73291016e-01 1.37109375e+00
7.92968750e-01 -1.23840332e-01 -3.11035156e-01 -7.54394531e-01
-6.88476562e-01 6.33789062e-01 -4.15283203e-01 -2.25830078e-01
5.93750000e-01 6.88476562e-01 -3.93066406e-01 -1.87988281e-01
-1.42578125e-01 4.25720215e-02 -6.69921875e-01 -1.39892578e-01
-1.40136719e-01 3.32763672e-01 -9.07714844e-01 5.31738281e-01
-5.62011719e-01 4.32128906e-01 -7.12402344e-01 -1.37176514e-02
-9.90722656e-01 -6.34277344e-01 3.21533203e-01 5.41503906e-01
-4.02832031e-01 7.00683594e-01 6.25610352e-02 9.27734375e-01
6.66503906e-01 4.29992676e-02 3.18359375e-01 -2.32543945e-01
-6.62597656e-01 1.19567871e-01 6.10839844e-01 4.92187500e-01
2.56652832e-02 8.61206055e-02 -3.87878418e-02 6.26220703e-02
-5.04882812e-01 3.28125000e-01 3.52050781e-01 6.67968750e-01
-4.48974609e-01 5.81542969e-01 -4.16992188e-01 2.49633789e-01
-1.03710938e+00 2.68310547e-01 -1.53320312e-01 -1.20019531e+00
-6.19628906e-01 1.54541016e-01 -2.99072266e-01 -4.77294922e-01
-2.90771484e-01 -2.04711914e-01 -1.25854492e-01 4.47509766e-01
-4.00390625e-01 1.39404297e-01 6.01562500e-01 3.05664062e-01
-6.34277344e-01 -3.80615234e-01 4.18457031e-01 -3.73840332e-02
-1.07812500e+00 4.36035156e-01 8.85620117e-02 2.20092773e-01
5.80139160e-02 -4.72106934e-02 5.16601562e-01 2.34130859e-01
2.51953125e-01 -7.36328125e-01 6.83784485e-04 1.18847656e+00
7.44628906e-02 3.82324219e-01 8.48144531e-01 2.30560303e-02
-4.05517578e-01 1.14550781e+00 5.63964844e-01 9.75585938e-01
1.54101562e+00 8.34960938e-01 2.72460938e-01 1.80786133e-01
2.99072266e-01 4.64355469e-01 1.00781250e+00 6.56250000e-01
2.99804688e-01 3.79638672e-01 7.39135742e-02 9.99145508e-02
3.61572266e-01 -1.58813477e-01 2.14965820e-01 2.75634766e-01
6.28417969e-01 3.74511719e-01 -5.54687500e-01 4.44335938e-01
3.69384766e-01 5.06835938e-01 -7.71972656e-01 -9.79492188e-01
8.77075195e-02 4.69970703e-01 2.68066406e-01 -3.81103516e-01
-1.22680664e-01 2.64404297e-01 3.99780273e-02 -1.52587891e-01
-4.42871094e-01 -5.70312500e-01 -3.05938721e-03 -4.70458984e-01
-1.50390625e+00 1.05468750e-01 -4.99023438e-01 5.54199219e-01
5.18066406e-01 -1.02636719e+00 -5.51223755e-03 -6.62597656e-01
5.17272949e-02 3.49426270e-02 -3.43322754e-02 6.65039062e-01
3.18359375e-01 1.01318359e-01 -6.68457031e-01 8.16406250e-01
-4.96582031e-01 8.44238281e-01 -1.65039062e-01 -1.56982422e-01
4.36523438e-01 -6.83105469e-01 -6.84204102e-02 -8.40454102e-02
-4.25537109e-01 1.12670898e-01 -6.40625000e-01 -6.76269531e-01
2.87353516e-01 -1.35864258e-01 -6.54296875e-02 -8.25500488e-03
-8.87695312e-01 6.92382812e-01 2.85888672e-01 2.35839844e-01
7.38769531e-01 4.47998047e-01 -8.97460938e-01 7.52441406e-01
1.72363281e-01 -1.83715820e-01 -5.83007812e-01 8.91113281e-01
1.13476562e+00 -5.26123047e-02 -3.84765625e-01 -2.96875000e-01
-4.03808594e-01 -2.21923828e-01 1.40869141e-01 -3.00537109e-01
1.59667969e-01 7.21679688e-01 -1.40258789e-01 -1.06054688e+00
-1.46606445e-01 -2.82958984e-01 -9.16992188e-01 -2.44873047e-01
-3.19480896e-03 7.96875000e-01 4.62646484e-01 4.17236328e-01
-7.28027344e-01 -2.75878906e-01 2.86621094e-01 9.90722656e-01
8.94531250e-01 -6.43310547e-02 -1.51489258e-01 6.66503906e-01
-3.40332031e-01 1.08154297e-01 1.35986328e-01 -3.75488281e-01
-3.32275391e-01 1.00021362e-02 9.03930664e-02 4.10156250e-01
2.90771484e-01 4.45556641e-01 -7.48291016e-02 3.09326172e-01
-3.50585938e-01 1.30981445e-01 5.66894531e-01 -2.57568359e-01
1.34399414e-01 1.24218750e+00 2.36358643e-02 7.24487305e-02
6.76879883e-02 -2.62207031e-01 -2.90771484e-01 -4.42810059e-02
1.26098633e-01 -1.42480469e+00 9.46044922e-02 -7.42675781e-01
-1.51000977e-01 7.71484375e-02 -4.70886230e-02 -1.97949219e+00
8.92089844e-01 3.21777344e-01 1.00097656e+00 -4.87548828e-01
2.88330078e-01 4.91027832e-02 4.14794922e-01 9.23828125e-01
6.38671875e-01 -2.85644531e-01 -4.51416016e-01 -5.56640625e-01
-6.42089844e-01 2.47558594e-01 -5.45349121e-02 5.15136719e-01
-2.41577148e-01 3.96240234e-01 -9.08203125e-01 -8.34960938e-01
6.29882812e-01 8.63769531e-01 8.46191406e-01 1.06689453e-01
2.32177734e-01 -3.45458984e-01 1.30371094e-01 3.29345703e-01
1.09313965e-01 1.74682617e-01 -8.67675781e-01 3.55712891e-01
-1.56616211e-01 2.38525391e-01 -7.98828125e-01 6.58203125e-01
-1.70532227e-01 6.88476562e-01 -3.54736328e-01 3.19213867e-02
-8.76464844e-01 1.08947754e-01 4.28955078e-01 1.00683594e+00
-5.44433594e-01 1.09191895e-01 5.31921387e-02 2.76367188e-01
5.47363281e-01 -2.10327148e-01 -3.50830078e-01 -4.75341797e-01
7.90405273e-02 3.81103516e-01 -5.53222656e-01 -7.96386719e-01
-4.05273438e-01 -3.06640625e-01 -9.11621094e-01 2.98095703e-01
2.58300781e-01 -4.45556641e-01 4.60205078e-02 -5.83007812e-01
-9.97314453e-02 -2.48046875e-01 3.44726562e-01 -2.40966797e-01
4.15527344e-01 -6.60400391e-02 2.78564453e-01 3.66210938e-01
-6.18164062e-01 -9.50195312e-01 -4.78515625e-01 -1.05273438e+00
5.81542969e-01 -8.37402344e-01 5.66894531e-01 -1.15844727e-01
-1.38549805e-01 1.38671875e-01 3.90380859e-01 -1.84936523e-01
2.39990234e-01 2.50244141e-01 7.62695312e-01 -1.37451172e-01
-4.07958984e-01 -2.83813477e-02 5.98144531e-02 -4.41650391e-01
8.37402344e-01 1.12304688e-01 -8.52050781e-02 3.11035156e-01
3.35693359e-01 -4.95605469e-01 1.22680664e-01 1.89453125e-01
2.13378906e-01 -2.79541016e-01 -3.39599609e-01 -1.03988647e-02
-3.99902344e-01 7.19238281e-01 -1.66137695e-01 -5.61523438e-01
-5.11718750e-01 -9.53613281e-01 -4.44824219e-01 -2.66357422e-01
3.81591797e-01 2.97607422e-01 7.45117188e-01 2.95166016e-01
2.06054688e-01 -4.20654297e-01 -8.13964844e-01 -7.83691406e-01
-2.44995117e-01 -9.44824219e-01 2.54394531e-01 3.89404297e-01
9.46289062e-01 -3.80371094e-01 -7.86132812e-01 2.66113281e-01
-1.03149414e-02 -2.36572266e-01 -5.38024902e-02 6.34765625e-01
7.35839844e-01 -6.46591187e-03 -7.28759766e-02 -9.39941406e-02
5.93566895e-02 -2.70996094e-01 5.04882812e-01 -2.83203125e-01
-8.69628906e-01 -1.40991211e-01 -3.40332031e-01 9.56054688e-01
4.22363281e-01 -6.24023438e-01 -5.94238281e-01 4.72656250e-01
1.99340820e-01 6.45507812e-01 5.52246094e-01 -1.94824219e-01
-9.61425781e-01 -9.53613281e-01 -2.71301270e-02 -2.78076172e-01
-5.39550781e-01 -1.26367188e+00 -6.43066406e-01 3.18847656e-01
1.03454590e-01 4.67529297e-01 -8.36425781e-01 -1.30653381e-03
-5.80078125e-01 2.87109375e-01 -9.65332031e-01 2.78320312e-02
-8.92578125e-01 6.27441406e-01 -4.44824219e-01 6.05957031e-01
-2.60498047e-01 2.63671875e-01 -3.83544922e-01 -5.07812500e-02
9.63867188e-01 8.77929688e-01 -6.52832031e-01 -4.58984375e-01
-4.16259766e-01 -6.59179688e-01 2.46582031e-01 3.29833984e-01
-9.89990234e-02 6.15722656e-01 -4.37500000e-01 -5.87402344e-01
-9.58496094e-01 -3.46435547e-01 -1.20703125e+00 1.43188477e-01
8.20800781e-01 -4.77294922e-01 4.85351562e-01 -5.76660156e-01
1.42968750e+00 -4.63256836e-02 5.04150391e-02 -1.23046875e+00
-1.20544434e-01 -6.52832031e-01 -4.51660156e-01 4.79492188e-01
-4.39697266e-01 1.07788086e-01 -3.84277344e-01 -1.52465820e-01
3.90136719e-01 -4.41650391e-01 2.65380859e-01 1.93652344e+00
-1.63085938e-01 1.64306641e-01 -1.19140625e+00 5.29785156e-01
1.03210449e-01 -7.11914062e-01 -4.25781250e-01 -3.48388672e-01
-8.36425781e-01 -6.09863281e-01 -6.11816406e-01 -1.17871094e+00
-7.58300781e-01 1.01867676e-01 1.46386719e+00 -2.99316406e-01
4.30908203e-01 4.46777344e-01 -2.55859375e-01 -5.28320312e-01
5.99609375e-01 5.09277344e-01 2.55859375e-01 1.12988281e+00
3.19091797e-01 2.88574219e-01 7.98339844e-02 -1.70166016e-01
-4.84375000e-01 -5.58105469e-01 4.32617188e-01 4.02343750e-01
3.77502441e-02 7.89550781e-01 9.17480469e-01 -1.08984375e+00
-1.10156250e+00 -2.07885742e-01 -3.16894531e-01 -1.07617188e+00
-7.23632812e-01 -4.01367188e-01 -1.24389648e-01 -7.90527344e-01
3.66020203e-03 -2.46826172e-01 -7.63671875e-01 -3.45947266e-01
-1.92382812e-01 -4.93408203e-01 -5.52246094e-01 -1.07727051e-01
1.00390625e+00 -5.34179688e-01 5.41015625e-01 -6.17675781e-01
-8.60595703e-02 2.44384766e-01 7.81738281e-01 6.01562500e-01
1.73217773e-01 -1.34643555e-01 6.65039062e-01 -1.04827881e-02
1.56835938e+00 -5.44921875e-01 3.34228516e-01 3.26660156e-01
-4.08203125e-01 -1.00976562e+00 -3.84277344e-01 4.38720703e-01
6.56250000e-01 4.33105469e-01 -8.51562500e-01 4.35058594e-01
1.12402344e+00 -3.14025879e-02 5.09765625e-01 -7.06787109e-02
1.36108398e-01 -8.81835938e-01 -5.35156250e-01 -4.03442383e-02
5.75561523e-02 -6.67968750e-01 1.10229492e-01 3.24707031e-01
-2.02514648e-01 -4.78271484e-01 1.19628906e+00 -5.52734375e-01
3.49609375e-01 -2.06420898e-01 3.73291016e-01 -5.61523438e-01
-8.83300781e-01 1.18103027e-01 -4.65087891e-01 1.20056152e-01
7.65136719e-01 -7.58300781e-01 1.31591797e-01 -1.14074707e-01
3.93066406e-01 -1.30493164e-01 -1.72119141e-01 -1.86645508e-01
-1.94580078e-01 1.94702148e-01 -5.44921875e-01 2.30102539e-01
3.74145508e-02 4.27246094e-02 5.99060059e-02 -5.54199219e-01
2.78808594e-01 1.67724609e-01 -6.48437500e-01 5.34973145e-02
8.44726562e-01 -4.16015625e-01 9.81933594e-01 -5.62500000e-01
3.18115234e-01 -8.56445312e-01 -2.73925781e-01 -1.82495117e-01
5.23376465e-02 6.00585938e-01 3.49609375e-01 7.43652344e-01
8.49121094e-01 2.78564453e-01 -1.09436035e-01 -9.95605469e-01
7.97363281e-01 3.38623047e-01 -4.36523438e-01 5.47790527e-02
-1.56860352e-02 -9.14306641e-02 -3.27392578e-01 -2.67089844e-01
5.98632812e-01 -4.67041016e-01 -3.96728516e-01 -7.72460938e-01
-2.75634766e-01 -1.37573242e-01 1.11022949e-01 1.48559570e-01
1.01074219e+00 7.42675781e-01 -3.65722656e-01 5.73730469e-01
2.46826172e-01 -4.40429688e-01 -1.61743164e-01 -2.52441406e-01
-4.37744141e-01 -1.72576904e-02 -4.20837402e-02 3.32031250e-01
1.61254883e-01 -4.09423828e-01 -2.12768555e-01 1.38183594e+00
2.13623047e-01 5.21972656e-01 4.08935547e-01 -1.74926758e-01
-4.71801758e-02 -7.13867188e-01 -1.10546875e+00 -1.19506836e-01
2.12768555e-01 -1.20605469e+00 -4.16503906e-01 -7.73315430e-02
3.41552734e-01 4.79736328e-01 1.31591797e-01 -1.64306641e-01
1.63696289e-01 -4.71191406e-01 -9.08203125e-02 -1.55883789e-01
4.80957031e-01 -3.38134766e-01 -6.14643097e-04 -9.38720703e-02
4.82421875e-01 5.60607910e-02 -1.90917969e-01 7.43652344e-01
-4.44335938e-01 1.08276367e-01 5.55664062e-01 -4.36096191e-02
-5.97656250e-01 3.62060547e-01 2.71728516e-01 7.26318359e-02
2.75878906e-01 -5.89355469e-01 -6.35253906e-01 7.46093750e-01
4.07714844e-02 1.59057617e-01 -2.08129883e-01 4.06494141e-01
3.10302734e-01 -5.74218750e-01 -7.29003906e-01 1.30957031e+00
1.40380859e-01 6.92871094e-01 -3.46679688e-01 -7.82714844e-01
5.16891479e-03 -3.85131836e-02 -6.72363281e-01 -2.33917236e-02
-6.32324219e-01 -5.02441406e-01 -4.35302734e-01 -8.43750000e-01
8.97460938e-01 -2.97393799e-02 -1.12890625e+00 -2.96875000e-01
2.30468750e-01 4.41894531e-01 8.05664062e-01 1.13952637e-01
2.58300781e-01 6.19140625e-01 4.11865234e-01 1.35644531e+00
5.02929688e-01 8.83789062e-02 -1.46728516e-01 -2.34130859e-01
-3.60107422e-02 3.25965881e-03 2.95166016e-01 -1.09375000e-01
-1.10449219e+00 -1.15039062e+00 8.56445312e-01 4.50927734e-01
-4.69970703e-01 5.89843750e-01 2.13623047e-01 -4.07226562e-01
-4.88525391e-01 1.07360840e-01 -3.73291016e-01 3.32763672e-01
4.99023438e-01 -5.78613281e-01 -1.08886719e-01 1.12890625e+00
9.50683594e-01 7.62695312e-01 -2.62298584e-02 5.00000000e-01
3.42529297e-01 9.34082031e-01 5.92285156e-01 -4.55078125e-01
2.94921875e-01 4.72412109e-01 -6.04003906e-01 -1.28295898e-01
-6.06689453e-02 -4.29931641e-01 5.71289062e-01 3.03710938e-01
-8.76953125e-01 2.75634766e-01 3.39843750e-01 -4.76318359e-01
-1.02441406e+00 3.16894531e-01 3.48876953e-01 -2.79052734e-01
4.20166016e-01 2.29858398e-01 5.11230469e-01 5.15625000e-01
-6.28417969e-01 -1.58325195e-01 -3.96728516e-01 2.98095703e-01
-4.94140625e-01 7.72460938e-01 -5.46386719e-01 -5.27343750e-01
-1.55883789e-01 -2.46337891e-01 -3.13232422e-01 -2.67333984e-01
2.95166016e-01 -5.69824219e-01 3.78417969e-01 3.08349609e-01
1.03808594e+00 1.04492188e-01 -1.28906250e+00 -7.38769531e-01
7.26074219e-01 6.74804688e-01 -4.55566406e-01 1.59082031e+00
8.20312500e-01 -2.86132812e-01 -5.48828125e-01 -2.70996094e-01
9.29687500e-01 2.39501953e-01 -4.44091797e-01 -1.08215332e-01
5.36621094e-01 -3.38134766e-01 -8.79882812e-01 2.96875000e-01
8.08593750e-01 2.43652344e-01 -2.89001465e-02 -1.07617188e+00
6.22558594e-03 -8.42773438e-01 -2.13012695e-01 -9.38476562e-01
8.45703125e-01 -1.71508789e-02 -6.12792969e-01 -3.74267578e-01
-1.09667969e+00 3.92382812e+00 3.29101562e-01 6.52343750e-01
2.74414062e-01 9.66186523e-02 7.30957031e-01 6.69433594e-01
6.64672852e-02 7.37792969e-01 -3.27148438e-01 4.52392578e-01
-7.29980469e-02 -2.18750000e-01 3.76464844e-01 -4.50927734e-01
2.75878906e-01 -1.65429688e+00 2.92480469e-01 -5.35156250e-01
-2.72460938e-01 -4.23583984e-01 2.91015625e-01 1.58813477e-01
7.56347656e-01 4.62890625e-01 -3.78417969e-02 3.96728516e-01
1.94213867e-01 1.84082031e-01 -4.47753906e-01 -1.07299805e-01
-2.60253906e-01 2.59765625e-01 1.62353516e-01 2.38776207e-04
4.67773438e-01 6.00891113e-02 -2.04345703e-01 -1.17736816e-01
6.42700195e-02 -5.55664062e-01 -3.88427734e-01 5.96679688e-01
-2.00561523e-01 -8.94531250e-01 7.86132812e-01 -3.51562500e-01
5.88867188e-01 3.39843750e-01 -1.60156250e-01 9.19921875e-01
-5.16967773e-02 6.63085938e-01 -9.54589844e-01 -9.83886719e-01
-1.36840820e-01 -2.67578125e-01 -7.40722656e-01 -2.66113281e-01
1.35864258e-01 -2.94921875e-01 1.43585205e-02 4.83642578e-01
4.07470703e-01 -2.73681641e-01 8.77929688e-01 2.17529297e-01
2.92724609e-01 -6.12792969e-01 -9.41894531e-01 5.51452637e-02
5.96191406e-01 -1.49291992e-01 -4.56787109e-01 2.30834961e-01
-1.09863281e-02 -4.44824219e-01 3.50097656e-01 2.14355469e-01
-1.78222656e-01 1.56005859e-01 -3.05908203e-01 1.58691406e-01
-2.41699219e-01 1.46484375e-01 1.02734375e+00 -3.49853516e-01
4.23828125e-01 -3.39599609e-01 5.82031250e-01 -8.81347656e-02
3.48632812e-01 2.23999023e-01 -7.30590820e-02 2.32910156e-01] 1024
~/Documents/books/coreml-conversion python3.11 convert_pytorch_coreml.py
/opt/homebrew/lib/python3.11/site-packages/transformers/modeling_utils.py:4713: FutureWarning: `_is_quantized_training_enabled` is going to be deprecated in transformers 4.39.0. Please use `model.hf_quantizer.is_trainable` instead
warnings.warn(
Converting PyTorch Frontend ==> MIL Ops: 0%| | 0/989 [00:00<?, ? ops/s]huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...
To disable this warning, you can either:
- Avoid using `tokenizers` before the fork if possible
- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)
Core ML embedding (gather) layer does not support any inputs besides the weights and indices. Those given will be ignored.
Converting PyTorch Frontend ==> MIL Ops: 100%|ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ| 988/989 [00:00<00:00, 2179.49 ops/s]
Running MIL frontend_pytorch pipeline: 100%|βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ| 5/5 [00:00<00:00, 29.39 passes/s]
Running MIL default pipeline: 64%|ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | 56/88 [00:02<00:02, 14.83 passes/s]/opt/homebrew/lib/python3.11/site-packages/coremltools/converters/mil/mil/ops/defs/iOS15/elementwise_unary.py:894: RuntimeWarning: overflow encountered in cast
return input_var.val.astype(dtype=string_to_nptype(dtype_val))
Running MIL default pipeline: 69%|ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | 61/88 [00:09<00:14, 1.91 passes/s]/opt/homebrew/lib/python3.11/site-packages/coremltools/converters/mil/mil/passes/defs/optimize_repeat_ops.py:433: RuntimeWarning: overflow encountered in cast
max(cur_range.low, tmp_range.low), min(cur_range.high, tmp_range.high)
Running MIL default pipeline: 100%|ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ| 88/88 [00:12<00:00, 7.27 passes/s]
Running MIL backend_mlprogram pipeline: 100%|ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ| 12/12 [00:00<00:00, 44.40 passes/s]
~/Documents/books/coreml-conversion python3.11 run_coreml.py
CLS Token Embedding: [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan
nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan] 1024
Here's a list of everything I have installed in pip:
Package Version Editable project location
----------------------- ----------- -------------------------------------------
absl-py 2.1.0
annotated-types 0.7.0
anyio 4.6.0
attrs 24.2.0
blobfile 3.0.0
cattrs 24.1.2
certifi 2024.8.30
charset-normalizer 3.3.2
click 8.1.7
coremltools 8.0
Cython 3.0.11
exporters 0.0.1 /Users/noahpeterson/Documents/exporters/src
filelock 3.16.1
fire 0.6.0
fsspec 2024.9.0
grpcio 1.66.2
h11 0.14.0
httpcore 1.0.5
httpx 0.27.2
huggingface-hub 0.24.0
idna 3.10
InstructorEmbedding 1.0.1
Jinja2 3.1.4
joblib 1.4.2
llama_models 0.0.35
llama_stack 0.0.35
llvmlite 0.43.0
lxml 5.3.0
Markdown 3.7
markdown-it-py 3.0.0
MarkupSafe 2.1.5
mdurl 0.1.2
mpmath 1.3.0
networkx 3.3
nltk 3.9.1
numpy 2.1.1
onnx 1.16.2
onnx-coreml 1.3
packaging 24.1
pillow 10.4.0
pip 24.2
prompt_toolkit 3.0.48
protobuf 5.28.2
pyaml 24.9.0
pybind11 2.13.5
pycryptodomex 3.20.0
pydantic 2.9.2
pydantic_core 2.23.4
Pygments 2.18.0
python-dateutil 2.9.0.post0
python-dotenv 1.0.1
PyYAML 6.0.2
regex 2024.9.11
requests 2.32.3
rich 13.8.1
ruamel.yaml 0.18.6
ruamel.yaml.clib 0.2.8
safetensors 0.4.5
scikit-learn 1.5.2
scipy 1.14.1
sentence-transformers 3.1.1
sentencepiece 0.2.0
setuptools 74.1.2
six 1.16.0
sniffio 1.3.1
sympy 1.13.3
tensorboard 2.18.0
tensorboard-data-server 0.7.2
termcolor 2.4.0
text-unidecode 1.3
threadpoolctl 3.5.0
tiktoken 0.7.0
tokenizers 0.19.1
torch 2.4.0
tqdm 4.66.5
transformers 4.44.2
typing 3.7.4.3
typing_extensions 4.12.2
urllib3 2.2.3
wcwidth 0.2.13
Werkzeug 3.0.4
wget 3.2
wheel 0.44.0
wrapt 1.16.0
I just created a new virtual environment and installed numpy, torch, transformers, and coremltools, and the issue still exists.
Package Version
------------------ ---------
attrs 24.2.0
cattrs 24.1.2
certifi 2024.8.30
charset-normalizer 3.3.2
coremltools 8.0
filelock 3.16.1
fsspec 2024.9.0
huggingface-hub 0.25.1
idna 3.10
Jinja2 3.1.4
MarkupSafe 2.1.5
mpmath 1.3.0
networkx 3.3
numpy 2.1.1
packaging 24.1
pip 24.2
protobuf 5.28.2
pyaml 24.9.0
PyYAML 6.0.2
regex 2024.9.11
requests 2.32.3
safetensors 0.4.5
setuptools 74.1.2
sympy 1.13.3
tokenizers 0.20.0
torch 2.4.1
tqdm 4.66.5
transformers 4.45.1
typing_extensions 4.12.2
urllib3 2.2.3
python3.11 --version
Python 3.11.10
xcodebuild -version
Xcode 16.0
Build version 16A242d
If I set compute_precision=ct.precision.FLOAT32 in ct.convert, both iOS17 and iOS18 works well. It's due to fp16 numerical issue.
Here are my experiments:
- coremltools==8.0 + ct.precision.FLOAT32 + iOS17: works well
- coremltools==8.0 + ct.precision.FLOAT32 + iOS18: works well
- coremltools==8.0 + ct.precision.FLOAT16 + iOS17: works well
- coremltools==8.0 + ct.precision.FLOAT16 + iOS18: nan
- coremltools==8.0b2 + ct.precision.FLOAT16 + iOS17: works well
- coremltools==8.0b2 + ct.precision.FLOAT16 + iOS18: nan
It's indeed an iOS18 fp16 op regression.
There are a lot of floating pieces. For example, I happened to find that transformers==4.38.2 will lead to nan even for iOS17, and updating to transformers==4.45.1 will solve the nan issue for iOS17.
I added this bug into our TODO list. Hey @NoahBPeterson, if it's urgent on your side, I would suggest to bi-sect the model to figure out which layer introduces this nan. Thanks!
Unfortunately, bisecting the model fails with both the iOS17 and iOS18 version.
With this script:
import coremltools as ct
model_path = "mxbai-embed-large-v1-iOS18.mlpackage"
output_dir = "./output/"
ct.models.utils.bisect_model(
model_path,
output_dir,
check_output_correctness=True
)
Both the mxbai-embed-large-v1-iOS17.mlpackage and mxbai-embed-large-v1-iOS18.mlpackage models produce this same error:
ERROR - 'common::topological_reorder' graph pass produces the following error:
Running MIL default pipeline: 98%|ββββββββββ| 84/86 [00:02<00:00, 28.06 passes/s]
Traceback (most recent call last):
File "/Users/noahpeterson/Documents/books/coreml-conversion/coreml_bisect.py", line 9, in <module>
ct.models.utils.bisect_model(
File "/opt/homebrew/lib/python3.11/site-packages/coremltools/models/utils.py", line 1983, in bisect_model
model_chunk2 = _mil_convert(
^^^^^^^^^^^^^
File "/opt/homebrew/lib/python3.11/site-packages/coremltools/converters/mil/converter.py", line 188, in mil_convert
return _mil_convert(model, convert_from, convert_to, ConverterRegistry, MLModel, compute_units, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/lib/python3.11/site-packages/coremltools/converters/mil/converter.py", line 212, in _mil_convert
proto, mil_program = mil_convert_to_proto(
^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/lib/python3.11/site-packages/coremltools/converters/mil/converter.py", line 291, in mil_convert_to_proto
PassPipelineManager.apply_pipeline(prog, main_pipeline)
File "/opt/homebrew/lib/python3.11/site-packages/coremltools/converters/mil/mil/passes/pass_pipeline.py", line 493, in apply_pipeline
raise e # re-raise exception
^^^^^^^
File "/opt/homebrew/lib/python3.11/site-packages/coremltools/converters/mil/mil/passes/pass_pipeline.py", line 488, in apply_pipeline
graph_pass(prog)
File "/opt/homebrew/lib/python3.11/site-packages/coremltools/converters/mil/mil/passes/graph_pass.py", line 56, in __call__
self.apply(prog)
File "/opt/homebrew/lib/python3.11/site-packages/coremltools/converters/mil/mil/passes/defs/cleanup/topological_reorder.py", line 72, in apply
self._move_operations_to_the_end_block(f, ["cast", "transpose"])
File "/opt/homebrew/lib/python3.11/site-packages/coremltools/converters/mil/mil/passes/helper.py", line 64, in wrapper
return _func(*args)
^^^^^^^^^^^^
File "/opt/homebrew/lib/python3.11/site-packages/coremltools/converters/mil/mil/passes/defs/cleanup/topological_reorder.py", line 112, in _move_operations_to_the_end_block
new_var = getattr(mb, op.op_type)(**op.inputs, before_op=before_op)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/lib/python3.11/site-packages/coremltools/converters/mil/mil/ops/registry.py", line 183, in add_op
return cls._add_op(op_cls_to_add, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/lib/python3.11/site-packages/coremltools/converters/mil/mil/builder.py", line 187, in _add_op
new_op = op_cls(**kwargs)
^^^^^^^^^^^^^^^^
File "/opt/homebrew/lib/python3.11/site-packages/coremltools/converters/mil/mil/operation.py", line 190, in __init__
self._validate_and_set_inputs(input_kv)
File "/opt/homebrew/lib/python3.11/site-packages/coremltools/converters/mil/mil/operation.py", line 506, in _validate_and_set_inputs
self.input_spec.validate_inputs(self.name, self.op_type, input_kvs)
File "/opt/homebrew/lib/python3.11/site-packages/coremltools/converters/mil/mil/input_type.py", line 164, in validate_inputs
raise ValueError(msg.format(name, var.name, input_type.type_str,
ValueError: Op "cast_0" (op_type: cast) Input x="gather_189_cast_uint16" expects tensor or scalar of dtype from type domain ['fp16', 'fp32', 'int32', 'bool'] but got uint16
Removing the check_output_correctness=True argument produces the exact output.