Q# ajuda na estimativa de recursos quânticos para preços de derivativos

a anunciar mais tarde.
O logotipo do Goldman Sachs é apenas texto.

Na Goldman Sachs, nossa equipe de P&D está sempre ansiosa para conduzir a tecnologia de ponta para serviços financeiros. Embora a computação quântica ainda esteja em um estágio inicial, a promessa da tecnologia significa que estamos pesquisando ativamente onde e como aplicá-la no futuro. A principal abordagem aqui é “trabalhar para trás”. Começamos com um problema matemático valioso e bem definido em finanças que podemos combinar com uma vantagem computacional teórica dos computadores quânticos. Então perguntamos: Quais são as especificações de um computador quântico real para obter uma vantagem prática para este problema? Ao fazer este trabalho de estimativa de recursos, precisamos preencher os detalhes práticos e preencher as lacunas nos métodos teóricos. Muitas vezes, também revela melhorias significativas que podem, por exemplo, reduzir o tempo de resolução ou a memória quantitativa necessária.

Estimativa de recursos de vantagem quantitativa na precificação de derivativos

Um exemplo em que nos concentramos é a precificação de derivativos complexos. Derivativos são contratos financeiros cujo valor hoje depende de algum modelo estatístico para o que acontecerá no futuro. Um exemplo comum de derivativo financeiro é uma opção de ações. Quando você tem um contrato complexo ou um modelo estatístico complexo, calcular o preço pode ser computacionalmente caro. Os derivativos são tão comuns em finanças que uma ligeira melhoria em seus preços, ou na contabilização de quantidades relacionadas, pode ser de grande valor.

As derivadas são um bom alvo para a estimativa de recursos porque o algoritmo subjacente frequentemente usado é Monte Carlo, e sabe-se que há aceleração teórica disponível para computadores quânticos para algoritmos de Monte Carlo bastante gerais. O algoritmo é baseado em uma sub-rotina chamada estimativa de amplitude e introduz aceleração quadrática. Por exemplo, para alcançar a precisão de ε no preço, o algoritmo clássico de Monte Carlo para O(1/ε) deve ser executado2) degraus. No entanto, o algoritmo quântico funciona apenas em etapas O(1/ε). Por exemplo, se você está buscando uma precisão de 1 parte por mil (ε = 10-3), então um algoritmo quântico pode precisar de apenas 1.000 etapas versus um algoritmo clássico que pode precisar de 1.000.000.

Claro, esta é apenas uma medida teórica e os detalhes devem ser preenchidos para ver se isso é prático. Por exemplo, cada etapa em um computador quântico pode demorar muito mais do que cada etapa em um computador convencional porque a taxa de clock é mais lenta. Também pode haver outras sobrecargas que afetam as constantes no algoritmo.

Em 2020, trabalhamos com coautores da IBM para produzir a primeira estimativa abrangente de recursos para preços de derivativos em nosso artigo “Quantitative Advantage Threshold in Derivative Pricing”. Usamos dois exemplos práticos de contratos de derivativos neste artigo: resgatável automático e vencimento a termo (TARF). Esses são exemplos complexos o suficiente para serem precificados hoje que queremos acelerar e estão negociando em volumes suficientes para melhorar seus preços. Para tornar a estimativa de recursos prática, fizemos algumas modificações no algoritmo chamado de método de redefinição de parâmetros. Isso resultou nas seguintes estimativas dos recursos necessários para um exemplo de chamada automática. Incluímos os recursos totais necessários, bem como os recursos utilizados em uma importante sub-rotina para estimativa de capacidade, o fator Q:

recursos totais Q. jogador
T-contagem 1,2 x 10^10 11,4 m
Profundidade em T 5,4 x 10^7 9,5 quilos
kibits lógicos 8 quilos 8 quilos

Incluímos três importantes figuras de mérito para descrever os recursos. T-count fornece o número de operações de porta T necessárias no algoritmo. O processo T-gate em muitas arquiteturas de computação quântica tolerantes a falhas requer muito mais recursos do que outras operações e, portanto, domina os recursos necessários à computação. Também incluímos um T-deep. Este é o número de operações da porta T que precisam ser executadas sequencialmente. Em algumas arquiteturas, esse número de profundidade determina o tempo de execução geral do algoritmo onde outras portas T podem ser paralelas. Finalmente, incluímos a quantidade de memória quântica necessária para o algoritmo medida pelo número de qubits.

Estimando recursos com Q#

A estimativa de recursos é um desafio, pois todos os detalhes são importantes. Por exemplo, nosso artigo usa precisão totalmente mista na implementação, onde cada registro de ponto fixo é otimizado para usar o número correto de bits. Como podemos ter certeza de que não cometemos erros quando não podemos executar um aplicativo completo?

Para levar nossa estimativa de recursos para o próximo nível, optamos por usar Q# e trabalhar com Mathias Soeken e Martin Roetteler na equipe Microsoft Azure Quantum para desenvolver uma implementação Q# completa de nosso algoritmo. A estimativa de recursos dessa maneira teve vários benefícios:

  1. Lidando com a complexidade Podemos usar recursos Q# para lidar automaticamente com alocação e gerenciamento de memória quântica. Além disso, recursos como a criação automática de processos controlados e coabitantes tornaram mais fácil para nós expressar o algoritmo em um nível mais alto e permitir que o compilador conhecesse os detalhes.
  2. Usando bibliotecas: Grande parte da complexidade do recurso é usada em nosso algoritmo de precificação derivado por computação reversível em registros quânticos. O Q# já tem várias bibliotecas para operações aritméticas de ponto fixo que podemos importar e invocar sem precisar reimplementá-las nós mesmos.
  3. Encontrar erros: Como grande parte do código em nosso aplicativo lida com versões reversíveis da aritmética clássica, pudemos aproveitar o emulador Toffoli do Q# para testar com eficiência partes de nosso aplicativo quanto à exatidão. Embora o algoritmo inteiro não possa ser simulado diretamente, conseguimos desenvolver testes de unidade de componentes-chave que podemos simular com eficiência para aumentar a confiança em nossa contagem de recursos.
  4. Design modular: O algoritmo geral é complexo. A implementação concreta permite que o indivíduo se concentre em melhorar funções específicas uma a uma e, em seguida, permite que o sistema informe o impacto geral no número de recursos.

Novas atualizações para o algoritmo usando Q#

Ao implementar o algoritmo de nosso trabalho anterior no Q#, fizemos algumas melhorias e ajustes.

Primeiro, removemos as operações aritméticas de arco e raiz quadrada (passo 3 do algoritmo 4.2) e as substituímos pelo método de comparação (seção 2.2 deste trabalho). Isso reduz os recursos necessários para essa etapa.

Em segundo lugar, substituímos a implementação polinomial da função exponencial por uma tabela de pesquisa. A tabela de pesquisa pode reduzir ainda mais os recursos às custas de pontos fixos reversíveis que podem ser caros em computadores quânticos. Este aplicativo de tabela de pesquisa foi aberto como parte do Q#. Nos resultados de estimativa de recursos abaixo, a tabela de pesquisa de função exponencial tem um parâmetro livre dado pelo número de qubits usados. Nas estimativas de recursos abaixo, citamos recursos para três opções diferentes de trocas de qubit. Como temos uma implementação em Q#, é fácil gerenciar e calcular diferentes requisitos de recursos para implementações com diferentes parâmetros.

Avaliação do resultado

Usando essas atualizações e uma implementação mais detalhada no Q#, calculamos os recursos necessários para três submedidas principais na precificação de derivativos e os comparamos com nosso trabalho anterior. A primeira é para o operador Q, o principal fator na estimativa da amplitude. O segundo é para o operador push que implementa inversamente o payoff derivado. A terceira é para a própria função exponencial, que é a maior consumidora de recursos além da própria estimativa de capacitância de base.

O critério escolhido são 3 ativos que podem ser chamados automaticamente em 20 etapas de tempo. Esses parâmetros correspondem aos casos reais que se podem encontrar na prática.

As comparações são feitas entre três maneiras:

  • papel: Estimativas de mão originais de nosso trabalho em Chakrabarti et al.: https://quantum-journal.org/papers/q-2021-06-01-463/.
  • TROCA10: A execução Q# estima onde a tabela de pesquisa exponencial está configurada para usar 10 bits de troca.
  • TROCA5: A execução Q# estima onde a tabela de pesquisa exponencial está configurada para usar 5 bits de troca.
  • TROCA1: A execução Q# estima onde a tabela de pesquisa exponencial está configurada para usar um único bit de troca.

fator Q geral

papel TROCA 10 SWAP5 trocar 1
T-contagem 11,4 m 14h60 14h90 6,3 m
Profundidade em T 9,5 quilos 16 quilos 16,6 K 36K
kibits lógicos 8 quilos 3,8 m 124K 19,2K

Agente pagador

papel TROCA 10 SWAP5 trocar 1
T-contagem 189 mil 77 quilos 77 quilos 77 quilos
Profundidade em T 3,2 quilos 2,7K 2,7K 2,7K
kibits lógicos 1,6 quilo 19,2K 19,2K 19,2K

ponto exponencial fixo

papel TROCA 10 SWAP5 trocar 1
T-contagem 19h 12.3 AD 617 mil 15h90
Profundidade em T 1,2K 62 1,3 K 20,5 quilos
kibits lógicos 5,4kg 3,8 m 124K 11,5 K

Em geral, os resultados da implementação do SWAP1 são próximos, mas não idênticos às nossas estimativas manuais. Isso significa que nossas estimativas manuais eram algumas vezes pessimistas (como uma contagem T) e outras vezes otimistas, mas não muito.

Leve embora

Ao trabalhar com o aplicativo Q#, conseguimos melhorar a precisão e a flexibilidade de nossas estimativas de recursos de vantagem quantitativa na precificação de derivativos. A implementação também nos dá uma base para iteração mais rápida em versões atualizadas e em outros algoritmos que usam sub-rotinas semelhantes. Esperamos continuar melhorando esse algoritmo e implementação, aproveitando as novas ideias e desenvolvimentos no ecossistema Q#.

“Trabalhar diretamente com a equipe do Goldman Sachs proporcionou uma oportunidade fantástica de colaborar na estimativa de recursos para uma questão importante no setor financeiro, obter insights para aprimorar as ofertas em todo o ecossistema Azure Quantum e compartilhar técnicas de estimativa de recursos e melhorias de algoritmos com a comunidade. É emocionante ver o impacto que o Q# pode ter. Do desenvolvimento de algoritmos à estimativa e minimização de recursos, tive o prazer de trabalhar com a Goldman Sachs para obter ainda mais impacto quantitativo.”-Dr. Krysta Svore, Distinguished Engineer e Vice President of Quantum Program for Azure Quantum

Leave a Comment

Your email address will not be published.