Update README.md

clean code in readme
This commit is contained in:
Sefik Ilkin Serengil 2025-03-04 09:15:36 +00:00 committed by GitHub
parent 2e20fc63ba
commit 09969b10c3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -399,7 +399,7 @@ If your task requires facial recognition on large datasets, you should combine D
Conversely, if your task involves facial recognition on small to moderate-sized databases, you can adopt use relational databases such as [Postgres](https://youtu.be/f41sLxn1c0k) or [SQLite](https://youtu.be/_1ShBeWToPg), or NoSQL databases like [Mongo](https://youtu.be/dmprgum9Xu8), [Redis](https://youtu.be/X7DSpUMVTsw) or [Cassandra](https://youtu.be/J_yXpc3Y8Ec) to perform exact nearest neighbor search. Conversely, if your task involves facial recognition on small to moderate-sized databases, you can adopt use relational databases such as [Postgres](https://youtu.be/f41sLxn1c0k) or [SQLite](https://youtu.be/_1ShBeWToPg), or NoSQL databases like [Mongo](https://youtu.be/dmprgum9Xu8), [Redis](https://youtu.be/X7DSpUMVTsw) or [Cassandra](https://youtu.be/J_yXpc3Y8Ec) to perform exact nearest neighbor search.
**Encrypt Embeddings** - [`Demo with FHE`](https://youtu.be/njjw0PEhH00) **Encrypt Embeddings** - `Demo with PHE`, [`Demo with FHE`](https://youtu.be/njjw0PEhH00)
Even though vector embeddings are not reversible to original images, they still contain sensitive information such as fingerprints, making their security critical. Traditional encryption methods like AES are very safe but limited in securely utilizing cloud computational power for distance calculations. Herein, [homomorphic Encryption](https://youtu.be/3ejI0zNPMEQ), allowing calculations on encrypted data, offers a robust alternative. In summary, we are able to compute similarity between encrypted embeddings with homomorphic encryption. Even though vector embeddings are not reversible to original images, they still contain sensitive information such as fingerprints, making their security critical. Traditional encryption methods like AES are very safe but limited in securely utilizing cloud computational power for distance calculations. Herein, [homomorphic Encryption](https://youtu.be/3ejI0zNPMEQ), allowing calculations on encrypted data, offers a robust alternative. In summary, we are able to compute similarity between encrypted embeddings with homomorphic encryption.
@ -429,7 +429,7 @@ encrypted_source_embedding = onprem_cs.encrypt(source_embedding)
# find dot product of encrypted embedding and plain embedding in cloud # find dot product of encrypted embedding and plain embedding in cloud
encrypted_cosine_similarity = encrypted_source_embedding @ target_embedding encrypted_cosine_similarity = encrypted_source_embedding @ target_embedding
# confirm that cloud cannot decrypt it # confirm that cloud cannot decrypt it even though it is calculated by cloud
with pytest.raises(ValueError, match="You must have private key"): with pytest.raises(ValueError, match="You must have private key"):
cloud_cs.decrypt(encrypted_source_embedding) cloud_cs.decrypt(encrypted_source_embedding)
@ -437,9 +437,8 @@ with pytest.raises(ValueError, match="You must have private key"):
cosine_similarity = onprem_cs.decrypt(encrypted_cosine_similarity)[0] cosine_similarity = onprem_cs.decrypt(encrypted_cosine_similarity)[0]
# proof of work # proof of work
assert abs( expected_similarity = sum(x * y for x, y in zip(source_embedding, target_embedding))
cosine_similarity - sum(x * y for x, y in zip(source_embedding, target_embedding)) assert abs(cosine_similarity - expected_similarity) < 1e-2
) < 1e-2
``` ```
Check out [`LightPHE`](https://github.com/serengil/LightPHE) library to find out more about partially homomorphic encryption. Check out [`LightPHE`](https://github.com/serengil/LightPHE) library to find out more about partially homomorphic encryption.