-
Notifications
You must be signed in to change notification settings - Fork 0
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
[Draft] Concepts and Architecture #2
base: master
Are you sure you want to change the base?
Conversation
|
||
- **Local tensors** are a specific type of TFE tensors used to represent plaintext values held locally by a player. Technically they are just small wrappers over raw tensors, but including extra metadata about locality and ownership. This metadata is used by e.g. kernels and protocols, as well as for detecting privacy violations. | ||
|
||
- **Operations** are abstract targets used when defining secure computations, for instance `tfe.matmul` and `tfe.keras.Dense`. |
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.
Do we want to include tfe.keras.Dense
as an Operation? A vanilla Dense
contains several Operations, specifically MatMul
and BiasAdd
, but might not be an Operation itself.
|
||
- **Protocols** are sets of kernels, and are hence not specific about *what* is being computed but rather *how* it is. They are typically used as context handlers, under which an abstract specification of a function is made concrete via the implied mapping from operations to kernels. Note that this roughly matches how "protocol" is used in e.g. MPC. | ||
|
||
- **Functionalities** are protocols implementing a specific task and exposed as functions, for instance mapping from and to local tensors. This roughly follows the idea of ideal functionality from the UC framework yet are more intended to be user-facing. |
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.
What would the user want these for? I can see e.g. testing as one, but would be interested if you had others!
|
||
- **Raw tensors** are the built-in TensorFlow tensors. | ||
|
||
- **Local tensors** are a specific type of TFE tensors used to represent plaintext values held locally by a player. Technically they are just small wrappers over raw tensors, but including extra metadata about locality and ownership. This metadata is used by e.g. kernels and protocols, as well as for detecting privacy violations. |
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.
I'd also add representation as metadata (e.g. native TF data types, fixed-point, quantized, etc.)
The aim of this RFC is to define a common vocabulary for TF Encrypted.