Compatibility with Tensorflow Text
hellodanylo opened this issue · 5 comments
Background
Tensorflow Text (TFT) is an add-on package for Tensorflow Core (TFC) that implements various NLP-related operators.
TFT is a dependency for KerasNLP, which is an add-on package for Keras.
https://www.tensorflow.org/text
https://keras.io/api/keras_nlp/
Challenge
Currently, TFT requires ABI-level compatibility with the Tensorflow Core package.
For example, installing TFC from conda-forge, but TFT from pip results in errors such as:
ImportError: /root/miniconda3/envs/env/lib/python3.10/site-packages/tensorflow_text/core/pybinds/tflite_registrar.so: undefined symbol: _ZN4absl12lts_2021032420raw_logging_internal21internal_log_functionE
This has been reported in TFT's tracker: tensorflow/text#644
TFT documentation recommends building from source: https://www.tensorflow.org/text/guide/tf_text_intro#build_from_source
Steps to reproduce:
conda create -n text python
conda activate text
conda install -c conda-forge tensorflow=2.10
pip install tensorflow_text==2.10
python -c 'import tensorflow_text'
Discussion Questions
- Is there an easy way to make TFT compatible with conda-forge's Tensorflow Core without rebuilding?
- If not, what would be the steps build TFT in conda-forge?
There isn't good cross compatibility between conda and pip. They are built with different compilers, and thus potential differences in the library versions they use.
This is a "known issue". The only resolution is express to upstream that compatibility with "conda-forge" is important to you as a user, and that it is worth their time to help us here.
Given the breadth of libraries and pacakges we target, I don't think we can guarantee to be compatible with "pip" packages.
All that said, you can consider contributing the tensorflow-text
pacakge. Follow: https://conda-forge.org/docs/maintainer/adding_pkgs.html#contributing-packages
Note that we don't have any windows builds for tensorflow at the moment.
xref conda-forge/staged-recipes#19578
If you decide to work on this, please tag us (@conda-forge/tensorflow
). The likely productive approach is likely going to be similar to this PR: #206
Also, to give you an idea, this points to an issue with absl (... ZN4absl12lts_2021032420 ... in the error you provided); you may be able to reconcile the two versions if you find some build of tensorflow-text that utilizes the same toolchain we use here (perhaps unlikely)
In order to implement TensorFlow-Text
, it looks like that it depends on TensorFlow-Hub
.
install_requires=[
'tensorflow>=2.11.0, <2.12; platform_machine != "arm64" or platform_system != "Darwin"',
'tensorflow-macos>=2.11.0, <2.12; platform_machine == "arm64" and platform_system == "Darwin"',
'tensorflow_hub>=0.8.0',
Most likely, this hast to be implemented first.
Is there any resolution to this?