esunAI commited on
Commit
b042698
·
verified ·
1 Parent(s): 87a1c31

Add comprehensive documentation: decoder_process_latex.tex

Browse files
Files changed (1) hide show
  1. documentation/decoder_process.tex +119 -0
documentation/decoder_process.tex ADDED
@@ -0,0 +1,119 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ \section{ESM-2 Language Model Head Decoder}
2
+ \label{sec:decoder}
3
+
4
+ Our decoder leverages the pre-trained ESM-2 language model head to convert generated embeddings back to amino acid sequences, avoiding traditional cosine similarity approaches in favor of a principled probabilistic decoding strategy that maintains the semantic structure of the protein embedding space.
5
+
6
+ \subsection{Decoder Architecture}
7
+
8
+ The decoding process consists of three main stages: (1) decompression from the flow-generated compressed space back to full ESM-2 embedding space, (2) projection through ESM-2's language model head, and (3) probabilistic sequence sampling.
9
+
10
+ \subsubsection{Embedding Decompression}
11
+ \label{sec:decompression}
12
+
13
+ The flow matching model generates embeddings in a compressed 80-dimensional space (16× compression from ESM-2's native 1280 dimensions). The decompressor $\mathcal{D}: \mathbb{R}^{L \times 80} \rightarrow \mathbb{R}^{L \times 1280}$ reconstructs full-dimensional embeddings:
14
+
15
+ \begin{align}
16
+ \mathbf{z}^{(dec)} &= \text{LayerNorm}(\mathbf{z}^{(comp)}) \mathbf{W}^{(proj)} \label{eq:proj}\\
17
+ \mathbf{x}^{(unpool)} &= \text{Unpool}(\mathbf{z}^{(dec)}) \label{eq:unpool}\\
18
+ \mathbf{h}^{(full)} &= \text{TransformerEncoder}(\mathbf{x}^{(unpool)}) \label{eq:decoder_transformer}
19
+ \end{align}
20
+
21
+ where $\mathbf{W}^{(proj)} \in \mathbb{R}^{80 \times 1280}$ is the learned projection matrix, and the unpooling operation restores the original sequence length through interpolation. The transformer encoder consists of 2 layers with 8 attention heads and 5120-dimensional feedforward networks.
22
+
23
+ \subsubsection{ESM-2 Language Model Head Projection}
24
+ \label{sec:lm_head}
25
+
26
+ Unlike approaches that use cosine similarity between generated embeddings and amino acid token embeddings, our method directly utilizes ESM-2's pre-trained language model head $\text{LM}_{\text{ESM-2}}$. This head was trained to predict amino acids from contextual embeddings during ESM-2's pre-training on evolutionary sequences, ensuring optimal alignment between embedding space and amino acid probabilities.
27
+
28
+ The language model head applies layer normalization followed by a linear projection:
29
+
30
+ \begin{align}
31
+ \mathbf{h}^{(norm)} &= \text{LayerNorm}_{\text{ESM-2}}(\mathbf{h}^{(full)}) \label{eq:esm_norm}\\
32
+ \mathbf{L}^{(full)} &= \mathbf{h}^{(norm)} \mathbf{W}^{(lm)} + \mathbf{b}^{(lm)} \label{eq:lm_projection}\\
33
+ \mathbf{L}^{(aa)} &= \mathbf{L}^{(full)}[:, :, \mathcal{I}_{\text{AA}}] \label{eq:aa_selection}
34
+ \end{align}
35
+
36
+ where $\mathbf{W}^{(lm)} \in \mathbb{R}^{1280 \times |\mathcal{V}|}$ and $\mathbf{b}^{(lm)} \in \mathbb{R}^{|\mathcal{V}|}$ are ESM-2's pre-trained language model parameters, $|\mathcal{V}|$ is ESM-2's full vocabulary size, and $\mathcal{I}_{\text{AA}} = \{4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23\}$ are the indices corresponding to the 20 canonical amino acids in ESM-2's vocabulary.
37
+
38
+ \subsubsection{Probabilistic Sequence Sampling}
39
+ \label{sec:sampling}
40
+
41
+ The logits $\mathbf{L}^{(aa)} \in \mathbb{R}^{L \times 20}$ are converted to amino acid probability distributions and sampled using nucleus sampling (top-p) for controlled stochasticity:
42
+
43
+ \begin{align}
44
+ \mathbf{P}_{i,j} &= \frac{\exp(\mathbf{L}^{(aa)}_{i,j} / \tau)}{\sum_{k=1}^{20} \exp(\mathbf{L}^{(aa)}_{i,k} / \tau)} \label{eq:softmax_temp}\\
45
+ \mathbf{P}^{(sorted)}_{i}, \mathbf{I}^{(sorted)}_{i} &= \text{sort}(\mathbf{P}_{i}, \text{descending}=\text{True}) \label{eq:sort_probs}\\
46
+ \mathbf{C}_{i} &= \text{cumsum}(\mathbf{P}^{(sorted)}_{i}) \label{eq:cumsum}\\
47
+ \mathbf{M}_{i} &= \mathbf{C}_{i} \leq p \label{eq:nucleus_mask}\\
48
+ a_i &\sim \text{Categorical}(\mathbf{P}^{(filtered)}_{i}) \label{eq:sample}
49
+ \end{align}
50
+
51
+ where $\tau = 0.8$ is the temperature parameter, $p = 0.9$ is the nucleus sampling threshold, and $\mathbf{P}^{(filtered)}_{i}$ contains only the probability mass within the top-p nucleus, renormalized to sum to 1.
52
+
53
+ \subsection{Advantages Over Cosine Similarity Approaches}
54
+
55
+ Our ESM-2 language model head approach offers several key advantages over traditional cosine similarity-based decoders:
56
+
57
+ \begin{enumerate}
58
+ \item \textbf{Contextual Awareness}: The language model head was trained to predict amino acids from contextual embeddings, incorporating sequence context and evolutionary patterns that pure cosine similarity cannot capture.
59
+
60
+ \item \textbf{Probability Calibration}: The pre-trained head provides well-calibrated probability distributions over amino acids, enabling principled uncertainty quantification and controlled sampling strategies.
61
+
62
+ \item \textbf{Evolutionary Consistency}: ESM-2's training on evolutionary sequences ensures that the embedding-to-sequence mapping respects biological constraints and evolutionary relationships.
63
+
64
+ \item \textbf{Reduced Bias}: Cosine similarity approaches can be biased toward high-frequency amino acids in the embedding space. The language model head learned to balance frequency with contextual appropriateness during pre-training.
65
+ \end{enumerate}
66
+
67
+ \subsection{Decoding Performance}
68
+
69
+ The decoder successfully converts flow-generated embeddings to valid amino acid sequences with high fidelity. For the 80 sequences generated with different CFG scales, we observe:
70
+
71
+ \begin{itemize}
72
+ \item \textbf{Sequence Validity}: 100\% of decoded sequences contain only canonical amino acids
73
+ \item \textbf{Length Consistency}: All sequences maintain the target length of 50 residues
74
+ \item \textbf{Diversity}: Strong CFG (scale 7.5) produces the highest diversity while maintaining biological plausibility
75
+ \item \textbf{AMP Classification}: 8.8\% of decoded sequences are classified as antimicrobial peptides by HMD-AMP, with Strong CFG achieving 20\% AMP rate
76
+ \end{itemize}
77
+
78
+ \subsection{Implementation Details}
79
+
80
+ The decoder is implemented using PyTorch and leverages the pre-trained ESM-2 model (esm2\_t33\_650M\_UR50D) from Facebook's ESM repository. Key implementation considerations include:
81
+
82
+ \begin{itemize}
83
+ \item \textbf{Memory Efficiency}: Batch processing with automatic chunking to prevent out-of-memory errors
84
+ \item \textbf{Numerical Stability}: Careful handling of temperature scaling and probability renormalization
85
+ \item \textbf{Deterministic Sampling}: Optional seed control for reproducible sequence generation
86
+ \item \textbf{Confidence Estimation}: Per-position maximum probability averaging for sequence confidence scoring
87
+ \end{itemize}
88
+
89
+ The complete decoding pipeline from compressed flow embeddings to amino acid sequences takes approximately 0.1 seconds per sequence on GPU hardware, enabling efficient large-scale sequence generation and analysis.
90
+
91
+ \begin{algorithm}[h]
92
+ \caption{ESM-2 Language Model Head Decoder}
93
+ \label{alg:decoder}
94
+ \begin{algorithmic}[1]
95
+ \REQUIRE Flow-generated compressed embeddings $\mathbf{Z}^{(comp)} \in \mathbb{R}^{B \times L \times 80}$
96
+ \REQUIRE Pre-trained ESM-2 model with language model head
97
+ \REQUIRE Temperature $\tau = 0.8$, nucleus threshold $p = 0.9$
98
+ \ENSURE Amino acid sequences $\mathbf{S} = \{s_1, s_2, \ldots, s_B\}$
99
+
100
+ \STATE $\mathbf{H}^{(full)} \leftarrow \text{Decompressor}(\mathbf{Z}^{(comp)})$ \COMMENT{Decompress to ESM-2 space}
101
+ \STATE $\mathbf{H}^{(norm)} \leftarrow \text{LayerNorm}_{\text{ESM-2}}(\mathbf{H}^{(full)})$ \COMMENT{Apply ESM-2 normalization}
102
+ \STATE $\mathbf{L}^{(full)} \leftarrow \mathbf{H}^{(norm)} \mathbf{W}^{(lm)} + \mathbf{b}^{(lm)}$ \COMMENT{Language model head projection}
103
+ \STATE $\mathbf{L}^{(aa)} \leftarrow \mathbf{L}^{(full)}[:, :, \mathcal{I}_{\text{AA}}]$ \COMMENT{Extract amino acid logits}
104
+ \STATE $\mathbf{P} \leftarrow \text{softmax}(\mathbf{L}^{(aa)} / \tau)$ \COMMENT{Temperature-scaled probabilities}
105
+
106
+ \FOR{$i = 1$ to $B$}
107
+ \FOR{$j = 1$ to $L$}
108
+ \STATE $\mathbf{p}^{(sorted)}, \mathbf{idx} \leftarrow \text{sort}(\mathbf{P}_{i,j}, \text{desc})$ \COMMENT{Sort probabilities}
109
+ \STATE $\mathbf{c} \leftarrow \text{cumsum}(\mathbf{p}^{(sorted)})$ \COMMENT{Cumulative probabilities}
110
+ \STATE $\mathbf{mask} \leftarrow \mathbf{c} \leq p$ \COMMENT{Nucleus mask}
111
+ \STATE $\mathbf{p}^{(filtered)} \leftarrow \text{renormalize}(\mathbf{p}^{(sorted)}[\mathbf{mask}])$ \COMMENT{Filter and renormalize}
112
+ \STATE $a_{i,j} \leftarrow \text{sample}(\mathbf{p}^{(filtered)})$ \COMMENT{Sample amino acid}
113
+ \ENDFOR
114
+ \STATE $s_i \leftarrow \text{decode\_indices}(\mathbf{a}_i)$ \COMMENT{Convert to sequence string}
115
+ \ENDFOR
116
+
117
+ \RETURN $\mathbf{S}$
118
+ \end{algorithmic}
119
+ \end{algorithm}