-
Notifications
You must be signed in to change notification settings - Fork 83
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Build embeddings with the load data script. #4402
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -81,10 +81,6 @@ function setup_python { | |
"https://download.pytorch.org/whl/cpu" | ||
echo_log "Installing Python requirements from $embeddings_req" | ||
run_cmd pip3 install -r "$embeddings_req" | ||
# TODO: remove install once embeddings doesn't need nl_server/requirements.txt | ||
nlserver_req="$WEBSITE_DIR/nl_server/requirements.txt" | ||
echo_log "Installing Python requirements from $nlserver_req" | ||
run_cmd pip3 install -r "$nlserver_req" | ||
fi | ||
fi | ||
} | ||
|
@@ -223,9 +219,45 @@ function generate_embeddings { | |
echo_log "Building embeddings for sentences in $NL_DIR" | ||
local cwd="$PWD" | ||
cd "$WEBSITE_DIR" | ||
# TODO: Enable with new build_embeddings.py | ||
# run_cmd python -m tools.nl.embeddings.build_custom_dc_embeddings \ | ||
# --input_file_path="$NL_DIR/sentences.csv" --output_dir="$NL_DIR" | ||
|
||
NL_EMBEDDINGS_DIR="$NL_DIR/embeddings" | ||
EMBEDDINGS_PATH="$NL_EMBEDDINGS_DIR/embeddings.csv" | ||
CUSTOM_EMBEDDING_INDEX="user_all_minilm_mem" | ||
CUSTOM_MODEL="ft-final-v20230717230459-all-MiniLM-L6-v2" | ||
CUSTOM_MODEL_PATH="gs://datcom-nl-models/ft_final_v20230717230459.all-MiniLM-L6-v2" | ||
CUSTOM_CATALOG_DICT=$(cat <<EOF | ||
{ | ||
"version": "1", | ||
"indexes": { | ||
"$CUSTOM_EMBEDDING_INDEX": { | ||
"store_type": "MEMORY", | ||
"source_path": "$NL_DIR", | ||
"embeddings_path": "$EMBEDDINGS_PATH", | ||
"model": "$CUSTOM_MODEL" | ||
} | ||
}, | ||
"models": { | ||
"$CUSTOM_MODEL": { | ||
"type": "LOCAL", | ||
"usage": "EMBEDDINGS", | ||
"gcs_folder": "$CUSTOM_MODEL_PATH", | ||
"score_threshold": 0.5 | ||
} | ||
} | ||
} | ||
EOF | ||
) | ||
local start_ts=$(date +%s) | ||
set -x | ||
python -m tools.nl.embeddings.build_embeddings \ | ||
--embeddings_name "$CUSTOM_EMBEDDING_INDEX" \ | ||
--output_dir "$NL_EMBEDDINGS_DIR" \ | ||
--catalog "$CUSTOM_CATALOG_DICT" >> $LOG 2>&1 | ||
status=$? | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. move this before set, right after the python command so we get the status of python (not set). There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thanks - done. |
||
set +x | ||
local duration=$(( $(date +%s) - $start_ts)) | ||
[[ "$status" == "0" ]] || echo_fatal "Failed to build embeddings" | ||
echo_log "Completed building embeddings with status:$status in $duration secs" | ||
cd "$cwd" | ||
} | ||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,4 +6,9 @@ google-cloud-storage==2.15.0 | |
lancedb==0.6.8 | ||
parameterized==0.8.1 | ||
sentence-transformers==2.2.2 | ||
torchvision==0.17.2 | ||
torchvision==0.17.2 | ||
# Downloading the named-entity recognition (NER) library spacy and the large EN model | ||
# using the guidelines here: https://spacy.io/usage/models#production | ||
# TODO: try using the large model | ||
-f https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.7.1/en_core_web_sm-3.7.1-py3-none-any.whl | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @shifucun - Needed to add this to the embeddings requirements to eliminate installing the nl_server requirements. Let me know if this is ok. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I was even thinking get rid of the lib here and make a shared requirements.txt. Duplicating the lib makes the version diverge very easily. Saw an bug before due to this. |
||
en_core_web_sm==3.7.1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ajaits - The
run_cmd
function did not work for argument values with spaces so calling the script directly here. Let me know if there's a better way or we can go with this?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if there are no spaces within the json values in CUSTOM_CATALOG_DICT, you can try: