Fix CI by temporarily pinning tensorflow < 2.12.0
As a hotfix for our CI, temporarily pin `tensorflow` upper version:
- In Python 3.10, tensorflow-2.12.0 also installs `jax`

Fix #5663

Until root cause is fixed.
_The documentation is not available anymore as the PR was closed or merged._ <details>
<summary>Show benchmarks</summary>

PyArrow==8.0.0

<details>
<summary>Show updated benchmarks!</summary>

### Benchmark: benchmark_array_xd.json

| metric | read_batch_formatted_as_numpy after write_array2d | read_batch_formatted_as_numpy after write_flattened_sequence | read_batch_formatted_as_numpy after write_nested_sequence | read_batch_unformated after write_array2d | read_batch_unformated after write_flattened_sequence | read_batch_unformated after write_nested_sequence | read_col_formatted_as_numpy after write_array2d | read_col_formatted_as_numpy after write_flattened_sequence | read_col_formatted_as_numpy after write_nested_sequence | read_col_unformated after write_array2d | read_col_unformated after write_flattened_sequence | read_col_unformated after write_nested_sequence | read_formatted_as_numpy after write_array2d | read_formatted_as_numpy after write_flattened_sequence | read_formatted_as_numpy after write_nested_sequence | read_unformated after write_array2d | read_unformated after write_flattened_sequence | read_unformated after write_nested_sequence | write_array2d | write_flattened_sequence | write_nested_sequence |
|--------|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| new / old (diff) | 0.007500 / 0.011353 (-0.003853) | 0.005279 / 0.011008 (-0.005729) | 0.098848 / 0.038508 (0.060340) | 0.035290 / 0.023109 (0.012181) | 0.342676 / 0.275898 (0.066778) | 0.375310 / 0.323480 (0.051830) | 0.006037 / 0.007986 (-0.001948) | 0.004143 / 0.004328 (-0.000185) | 0.075757 / 0.004250 (0.071506) | 0.049436 / 0.037052 (0.012383) | 0.344734 / 0.258489 (0.086245) | 0.388111 / 0.293841 (0.094270) | 0.037079 / 0.128546 (-0.091467) | 0.011986 / 0.075646 (-0.063660) | 0.333911 / 0.419271 (-0.085361) | 0.050415 / 0.043533 (0.006882) | 0.341723 / 0.255139 (0.086584) | 0.364136 / 0.283200 (0.080936) | 0.099371 / 0.141683 (-0.042312) | 1.467030 / 1.452155 (0.014876) | 1.565472 / 1.492716 (0.072755) |

### Benchmark: benchmark_getitem\_100B.json

| metric | get_batch_of\_1024\_random_rows | get_batch_of\_1024\_rows | get_first_row | get_last_row |
|--------|---|---|---|---|
| new / old (diff) | 0.212534 / 0.018006 (0.194528) | 0.435854 / 0.000490 (0.435364) | 0.000419 / 0.000200 (0.000219) | 0.000060 / 0.000054 (0.000005) |

### Benchmark: benchmark_indices_mapping.json

| metric | select | shard | shuffle | sort | train_test_split |
|--------|---|---|---|---|---|
| new / old (diff) | 0.027957 / 0.037411 (-0.009454) | 0.106835 / 0.014526 (0.092309) | 0.115733 / 0.176557 (-0.060824) | 0.172374 / 0.737135 (-0.564761) | 0.121907 / 0.296338 (-0.174431) |

### Benchmark: benchmark_iterating.json

| metric | read 5000 | read 50000 | read_batch 50000 10 | read_batch 50000 100 | read_batch 50000 1000 | read_formatted numpy 5000 | read_formatted pandas 5000 | read_formatted tensorflow 5000 | read_formatted torch 5000 | read_formatted_batch numpy 5000 10 | read_formatted_batch numpy 5000 1000 | shuffled read 5000 | shuffled read 50000 | shuffled read_batch 50000 10 | shuffled read_batch 50000 100 | shuffled read_batch 50000 1000 | shuffled read_formatted numpy 5000 | shuffled read_formatted_batch numpy 5000 10 | shuffled read_formatted_batch numpy 5000 1000 |
|--------|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| new / old (diff) | 0.413195 / 0.215209 (0.197986) | 4.144775 / 2.077655 (2.067120) | 1.885647 / 1.504120 (0.381527) | 1.645525 / 1.541195 (0.104331) | 1.690117 / 1.468490 (0.221627) | 0.705787 / 4.584777 (-3.878989) | 3.763338 / 3.745712 (0.017626) | 2.163044 / 5.269862 (-3.106818) | 1.478619 / 4.565676 (-3.087057) | 0.086458 / 0.424275 (-0.337817) | 0.012711 / 0.007607 (0.005103) | 0.503592 / 0.226044 (0.277547) | 5.031176 / 2.268929 (2.762248) | 2.345348 / 55.444624 (-53.099276) | 2.064573 / 6.876477 (-4.811903) | 2.203937 / 2.142072 (0.061865) | 0.838761 / 4.805227 (-3.966466) | 0.170116 / 6.500664 (-6.330548) | 0.064012 / 0.075469 (-0.011457) |

### Benchmark: benchmark_map_filter.json

| metric | filter | map fast-tokenizer batched | map identity | map identity batched | map no-op batched | map no-op batched numpy | map no-op batched pandas | map no-op batched pytorch | map no-op batched tensorflow |
|--------|---|---|---|---|---|---|---|---|---|
| new / old (diff) | 1.190887 / 1.841788 (-0.650901) | 15.091466 / 8.074308 (7.017158) | 14.549112 / 10.191392 (4.357720) | 0.180603 / 0.680424 (-0.499820) | 0.017387 / 0.534201 (-0.516814) | 0.421372 / 0.579283 (-0.157911) | 0.434644 / 0.434364 (0.000281) | 0.496958 / 0.540337 (-0.043380) | 0.593995 / 1.386936 (-0.792941) |

</details>
PyArrow==latest

<details>
<summary>Show updated benchmarks!</summary>

### Benchmark: benchmark_array_xd.json

| metric | read_batch_formatted_as_numpy after write_array2d | read_batch_formatted_as_numpy after write_flattened_sequence | read_batch_formatted_as_numpy after write_nested_sequence | read_batch_unformated after write_array2d | read_batch_unformated after write_flattened_sequence | read_batch_unformated after write_nested_sequence | read_col_formatted_as_numpy after write_array2d | read_col_formatted_as_numpy after write_flattened_sequence | read_col_formatted_as_numpy after write_nested_sequence | read_col_unformated after write_array2d | read_col_unformated after write_flattened_sequence | read_col_unformated after write_nested_sequence | read_formatted_as_numpy after write_array2d | read_formatted_as_numpy after write_flattened_sequence | read_formatted_as_numpy after write_nested_sequence | read_unformated after write_array2d | read_unformated after write_flattened_sequence | read_unformated after write_nested_sequence | write_array2d | write_flattened_sequence | write_nested_sequence |
|--------|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| new / old (diff) | 0.007790 / 0.011353 (-0.003563) | 0.005307 / 0.011008 (-0.005701) | 0.074779 / 0.038508 (0.036271) | 0.034442 / 0.023109 (0.011332) | 0.337973 / 0.275898 (0.062075) | 0.371944 / 0.323480 (0.048464) | 0.006088 / 0.007986 (-0.001897) | 0.005619 / 0.004328 (0.001291) | 0.073757 / 0.004250 (0.069507) | 0.049385 / 0.037052 (0.012333) | 0.338326 / 0.258489 (0.079837) | 0.387916 / 0.293841 (0.094075) | 0.037197 / 0.128546 (-0.091350) | 0.012371 / 0.075646 (-0.063275) | 0.086938 / 0.419271 (-0.332334) | 0.051379 / 0.043533 (0.007846) | 0.331580 / 0.255139 (0.076441) | 0.355765 / 0.283200 (0.072565) | 0.103368 / 0.141683 (-0.038315) | 1.475963 / 1.452155 (0.023808) | 1.530579 / 1.492716 (0.037863) |

### Benchmark: benchmark_getitem\_100B.json

| metric | get_batch_of\_1024\_random_rows | get_batch_of\_1024\_rows | get_first_row | get_last_row |
|--------|---|---|---|---|
| new / old (diff) | 0.223037 / 0.018006 (0.205031) | 0.441795 / 0.000490 (0.441305) | 0.003937 / 0.000200 (0.003737) | 0.000090 / 0.000054 (0.000035) |

### Benchmark: benchmark_indices_mapping.json

| metric | select | shard | shuffle | sort | train_test_split |
|--------|---|---|---|---|---|
| new / old (diff) | 0.030081 / 0.037411 (-0.007330) | 0.110366 / 0.014526 (0.095841) | 0.124097 / 0.176557 (-0.052459) | 0.176237 / 0.737135 (-0.560898) | 0.127045 / 0.296338 (-0.169293) |

### Benchmark: benchmark_iterating.json

| metric | read 5000 | read 50000 | read_batch 50000 10 | read_batch 50000 100 | read_batch 50000 1000 | read_formatted numpy 5000 | read_formatted pandas 5000 | read_formatted tensorflow 5000 | read_formatted torch 5000 | read_formatted_batch numpy 5000 10 | read_formatted_batch numpy 5000 1000 | shuffled read 5000 | shuffled read 50000 | shuffled read_batch 50000 10 | shuffled read_batch 50000 100 | shuffled read_batch 50000 1000 | shuffled read_formatted numpy 5000 | shuffled read_formatted_batch numpy 5000 10 | shuffled read_formatted_batch numpy 5000 1000 |
|--------|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| new / old (diff) | 0.420191 / 0.215209 (0.204982) | 4.186721 / 2.077655 (2.109066) | 1.992336 / 1.504120 (0.488216) | 1.800567 / 1.541195 (0.259373) | 1.917982 / 1.468490 (0.449491) | 0.700932 / 4.584777 (-3.883845) | 3.888631 / 3.745712 (0.142918) | 2.138168 / 5.269862 (-3.131693) | 1.364636 / 4.565676 (-3.201041) | 0.085404 / 0.424275 (-0.338871) | 0.012550 / 0.007607 (0.004943) | 0.526110 / 0.226044 (0.300066) | 5.258717 / 2.268929 (2.989789) | 2.454287 / 55.444624 (-52.990338) | 2.130539 / 6.876477 (-4.745937) | 2.207982 / 2.142072 (0.065909) | 0.839242 / 4.805227 (-3.965985) | 0.167611 / 6.500664 (-6.333053) | 0.065706 / 0.075469 (-0.009763) |

### Benchmark: benchmark_map_filter.json

| metric | filter | map fast-tokenizer batched | map identity | map identity batched | map no-op batched | map no-op batched numpy | map no-op batched pandas | map no-op batched pytorch | map no-op batched tensorflow |
|--------|---|---|---|---|---|---|---|---|---|
| new / old (diff) | 1.266125 / 1.841788 (-0.575662) | 15.480513 / 8.074308 (7.406205) | 14.959376 / 10.191392 (4.767983) | 0.149195 / 0.680424 (-0.531229) | 0.017881 / 0.534201 (-0.516320) | 0.430863 / 0.579283 (-0.148420) | 0.432878 / 0.434364 (-0.001485) | 0.499605 / 0.540337 (-0.040733) | 0.605592 / 1.386936 (-0.781344) |

</details>
</details>

![](https://cml.dev/watermark.png#c20230f8d8762fb67523677093e95e773ce88786 "CML watermark")
