Hello. In the following code of RFD3, I am unsure why query_chain is essentially being set to chain_id[c for c in unique_chains] in each loop iteration, where chain_id is of atom sequence length L. My understanding is that this effectively means that inter-chain attention indices are only determined for the first len(unique_chains) atoms within the first unique chain of each batch element (i.e., duplicate structure).
Is that correct? And if so, why should this logic be preferred over something more intuitive like setting query_chain = c for c in unique_chains, to allow each chain to derive its own inter-chain attention indices?
|
query_chain = chain_id[c] |
Hello. In the following code of RFD3, I am unsure why
query_chainis essentially being set tochain_id[c for c in unique_chains]in each loop iteration, wherechain_idis of atom sequence lengthL. My understanding is that this effectively means that inter-chain attention indices are only determined for the firstlen(unique_chains)atoms within the first unique chain of each batch element (i.e., duplicate structure).Is that correct? And if so, why should this logic be preferred over something more intuitive like setting
query_chain = cforc in unique_chains, to allow each chain to derive its own inter-chain attention indices?foundry/models/rfd3/src/rfd3/model/layers/block_utils.py
Line 293 in cee116d