examples/code_search/developer_guide.md

1.5 KiB

Developer guide for the code search example

This doc is intended for folks looking to contribute to the example.

Testing

We currently have tests that can be run manually to test the code. We hope to get these integrated into our CI system soon.

T2T Test

The test code_search/src/code_search/t2t/similarity_transformer_test.py can be used to test

  • Training
  • Evaluation
  • Model Export

The test can be run as follows

cd code_search/src
python3 -m code_search.t2t.similarity_transformer_test

The test just runs the relevant T2T steps and verifies they succeeds. No additional checks are executed.

TF Serving test

code_search/src/code_search/nmslib/cli/embed_query_test.py

Can be used to test generating predictions using TFServing.

The test assumes the TFServing is running in a docker container

You can start TFServing as follows

./code_search/nmslib/cli/start_test_server.sh 

You can then run the test

export PYTHONPATH=${EXAMPLES_REPO/code_search/src:${PYTHONPATH}
python3 -m embed_query_test

The test verifies that the code can successfully generate embeddings using TFServing.

The test verifies that different embeddings are computed for the query and the code.

start_test_server.sh relies on a model stored in code_search/src/code_search/t2t/ A new model can be produced by running similarity_transformer_export_test. The unittest will export the model to a temporary directory. You can then copy that model to the test_data directory.