{"id":1364,"date":"2025-01-18T15:46:52","date_gmt":"2025-01-18T18:46:52","guid":{"rendered":"https:\/\/alanleal-econ.com\/?page_id=1364"},"modified":"2025-01-18T20:43:01","modified_gmt":"2025-01-18T23:43:01","slug":"llama-para-economistas","status":"publish","type":"page","link":"https:\/\/alanleal-econ.com\/index.php\/llama-para-economistas\/","title":{"rendered":"LLama para Economistas"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Llama \u00e9 um modelo de intelig\u00eancia generativa (GPT), criada pela Meta, a companhia m\u00e3e do Facebook, Instagram, WhatsApp e Threads. Ao contr\u00e1rio de suas contrapartes pagas online (Chat GPT da Open AI, Gemini do Google Claude.AI da Anthropic, Copilot da Microsoft, Grok do X- antigo Twitter, dentre outros), a Llama oferece uma comodidade entre os GPTs, qual seja ele pass\u00edvel de download e uso na sua pr\u00f3pria m\u00e1quina. As vantagens disso envolvem n\u00e3o dispender recursos pagando por requisi\u00e7\u00f5es de API e n\u00e3o ter os limites de tokens de\u00a0<em>input<\/em>\u00a0e\u00a0<em>output<\/em> existentes nos GPTs comerciais.\u00a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Assim, por exemplo, se voc\u00ea quer analisar o conte\u00fado de um arquivo pdf de 250 p\u00e1ginas, os GPTs comerciais podem te impedir de fazer isso, devido ao fato de isso estourar seus limites de tokens de inputs. Ao mesmo tempo, se voc\u00ea demanda uma resposta mais longa dos GPTs, esses limites de output, \u00e0s vezes menores que os limites de input, podem tamb\u00e9m limitar seu trabalho.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O presente texto tem por objetivo exibir a aplica\u00e7\u00e3o de uma instala\u00e7\u00e3o local da Llama para uma tarefa que se aplicada pelos GPTs comerciais encontrariam limita\u00e7\u00f5es imediatas no uso de tokens. Num primeiro momento, explico como a instala\u00e7\u00e3o da Llama deve ocorrer na sua m\u00e1quina. Num segundo momento, exibo a tarefa preditiva de texto que irei aplicar o modelo aqui. Por fim, exibo o c\u00f3digo e os resultados dessa aplica\u00e7\u00e3o. Todas essas an\u00e1lises foram realizadas num MacBook Air M1, com 8GB de mem\u00f3ria RAM e 256GB de mem\u00f3ria f\u00edsica, do tipo SSD NVMe.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Instala\u00e7\u00e3o da LLama<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code># Guia de Instala\u00e7\u00e3o do Llama\nEste guia fornecer\u00e1 instru\u00e7\u00f5es passo a passo para instalar o Llama em seu computador pessoal.\n## Pr\u00e9-requisitos\n\nAntes de come\u00e7ar, certifique-se de que seu sistema atende aos seguintes requisitos:\n- Sistema operacional: Windows 10\/11, macOS, ou Linux\n- M\u00ednimo de 16GB de RAM (recomendado 32GB)\n- Espa\u00e7o livre em disco: pelo menos 10GB\n- Python 3.9 ou superior instalado\n- Git instalado\n## Passo 1: Preparar o Ambiente\n1. Abra um terminal ou prompt de comando\n2. Crie um novo diret\u00f3rio para o projeto:\n```bash\nmkdir llama-project\ncd llama-project\n```\n3. Crie um ambiente virtual Python:\n```bash\npython -m venv llama-env\n```\n4. Ative o ambiente virtual:\n- Windows:\n```bash\nllama-env\\Scripts\\activate\n```\n- macOS\/Linux:\n```bash\nsource llama-env\/bin\/activate\n```\n## Passo 2: Clonar o Reposit\u00f3rio\nClone o reposit\u00f3rio oficial do Llama:\n```bash\ngit clone https:\/\/github.com\/facebookresearch\/llama.git\ncd llama\n```\n## Passo 3: Instalar Depend\u00eancias\nInstale as depend\u00eancias necess\u00e1rias:\n```bash\npip install -r requirements.txt\npip install torch torchvision torchaudio\n```\n## Passo 4: Baixar o Modelo\n1. Acesse o site oficial da Meta AI para solicitar acesso aos modelos\n2. Ap\u00f3s receber aprova\u00e7\u00e3o, baixe o modelo desejado\n3. Extraia os arquivos do modelo para a pasta `models` dentro do diret\u00f3rio do projeto\n## Passo 5: Configura\u00e7\u00e3o Final\n\n1. Crie um arquivo de configura\u00e7\u00e3o chamado `config.json`:\n```json\n{\n    \"model_path\": \".\/models\/llama-2-7b\",\n    \"max_seq_len\": 512,\n    \"max_batch_size\": 32\n}\n```\n2. Ajuste os par\u00e2metros conforme necess\u00e1rio baseado em seu hardware\n## Passo 6: Teste a Instala\u00e7\u00e3o\nExecute o script de teste para verificar se tudo est\u00e1 funcionando corretamente:\n\n```bash\npython3 example.py\n```\n## Solu\u00e7\u00e3o de Problemas Comuns\n### Erro de CUDA n\u00e3o encontrado\n- Verifique se voc\u00ea tem uma GPU NVIDIA compat\u00edvel\n- Instale os drivers CUDA mais recentes\n- Reinstale o PyTorch com suporte a CUDA\n### Erro de Mem\u00f3ria Insuficiente\n- Reduza o tamanho do batch no arquivo de configura\u00e7\u00e3o\n- Feche outros programas que consumam muita mem\u00f3ria\n- Considere usar um modelo menor\n### Problemas de Importa\u00e7\u00e3o de M\u00f3dulos\n- Verifique se o ambiente virtual est\u00e1 ativado\n- Confirme se todas as depend\u00eancias foram instaladas corretamente\n- Tente reinstalar as depend\u00eancias\n## Dicas de Otimiza\u00e7\u00e3o\n1. Para melhor desempenho:\n   - Use uma GPU NVIDIA com pelo menos 8GB de VRAM\n   - Mantenha os drivers atualizados\n   - Use SSD para armazenamento do modelo\n2. Para uso em CPU:\n   - Ajuste o tamanho do batch para menor\n   - Considere usar modelos quantizados\n   - Aumente o tamanho da mem\u00f3ria virtual se necess\u00e1rio\n## Pr\u00f3ximos Passos\nAp\u00f3s a instala\u00e7\u00e3o bem-sucedida, voc\u00ea pode:\n1. Experimentar diferentes modelos do Llama\n2. Ajustar os par\u00e2metros de gera\u00e7\u00e3o\n3. Integrar o Llama em seus pr\u00f3prios projetos\n4. Explorar t\u00e9cnicas de otimiza\u00e7\u00e3o e fine-tuning\n## Recursos Adicionais\n- Documenta\u00e7\u00e3o oficial do Llama\n- F\u00f3rum da comunidade\n- Exemplos de c\u00f3digo e aplica\u00e7\u00f5es\n- Guias de otimiza\u00e7\u00e3o e fine-tuning\n## Suporte\nSe encontrar problemas durante a instala\u00e7\u00e3o:\n1. Consulte a documenta\u00e7\u00e3o oficial\n2. Verifique issues no GitHub\n3. Participe do f\u00f3rum da comunidade\n4. Reporte bugs no reposit\u00f3rio oficial<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">2. Classifica\u00e7\u00e3o Tem\u00e1tica de Estudos que empregam Modelos Quantitativos de Com\u00e9rcio<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">2.1. Busca no Google<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Nesta fase, selecionamos os estudos que usaremos para realizar a classifica\u00e7\u00e3o. A quest\u00e3o a ser respondida \u00e9 a seguinte: no universo dos papers analisados, quantos deles: (i) mencionam o m\u00e9todo exact-hat algebra?; (ii) usam o m\u00e9todo exact-hat algebra? A busca no Google Scholar \u00e9 a seguinte: &#8220;quantitative trade model&#8221; e consideramos as 15 primeiras respostas v\u00e1lidas como nossa amostra para esse exerc\u00edcio. Os artigos considerados s\u00e3o listados ao fim desse tutorial. Este \u00e9 s\u00f3 um exemplo e a Llama local no seu computador te permite ganhos pronunciados se voc\u00ea precisar repetir esse tipo de atividade para 100,200 artigos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2.2. C\u00f3digo no R<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">O c\u00f3digo do R \u00e9 composto de algumas etapas: (i) ele l\u00ea o arquivo pdf, tokeniza-o, o envia ao Llama junto com a query e em seguida tem a resposta em formatos de tokens que precisam ser novamente organizados segundo uma fun\u00e7\u00e3o pr\u00f3pria do R. O c\u00f3digo comentado e completo segue abaixo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Instala\u00e7\u00e3o dos pacotes necess\u00e1rios\nrequired_packages &lt;- c(\"pdftools\", \"httr\", \"jsonlite\", \"stringr\", \"dplyr\", \"tidyr\")\nnew_packages &lt;- required_packages&#91;!(required_packages %in% installed.packages()&#91;,\"Package\"])]\nif(length(new_packages)) install.packages(new_packages)\n\n# Carregamento das bibliotecas necess\u00e1rias\nlibrary(pdftools)   # Para leitura de PDFs\nlibrary(httr)       # Para requisi\u00e7\u00f5es HTTP\nlibrary(jsonlite)   # Para manipula\u00e7\u00e3o de JSON\nlibrary(stringr)    # Para manipula\u00e7\u00e3o de strings\nlibrary(dplyr)      # Para manipula\u00e7\u00e3o de dados\nlibrary(tidyr)      # Para organiza\u00e7\u00e3o de dados\n\n#' Fun\u00e7\u00e3o para pr\u00e9-processamento do texto\n#' @param text String de texto a ser pr\u00e9-processada\n#' @return Texto pr\u00e9-processado\npreprocess_text &lt;- function(text) {\n  # Converte para min\u00fasculas\n  text &lt;- tolower(text)\n  \n  # Remove caracteres especiais\n  text &lt;- stringr::str_replace_all(text, \"&#91;^&#91;:alnum:]&#91;:space:]]\", \" \")\n  \n  # Normaliza espa\u00e7os\n  text &lt;- stringr::str_squish(text)\n  \n  return(text)\n}\n\n#' Fun\u00e7\u00e3o para tokeniza\u00e7\u00e3o do texto\n#' @param text String de texto a ser tokenizada\n#' @return Vetor de tokens\ntokenize_text &lt;- function(text) {\n  tokens &lt;- unlist(stringr::str_split(text, \"\\\\s+\"))\n  return(tokens)\n}\n\n#' Verifica se o servi\u00e7o Ollama est\u00e1 rodando\n#' @return Booleano indicando se o servi\u00e7o est\u00e1 dispon\u00edvel\ncheck_ollama_connection &lt;- function() {\n  tryCatch({\n    response &lt;- httr::GET(\"http:\/\/localhost:11434\/api\/tags\")\n    return(httr::status_code(response) == 200)\n  }, error = function(e) {\n    return(FALSE)\n  })\n}\n\n#' Classifica o documento exacthatusendo a API do Ollama\n#' @param text Texto a ser classificado\n#' @return Lista contendo resultados da classifica\u00e7\u00e3o\nclassify_document &lt;- function(text) {\n  # Prepara o prompt com as instru\u00e7\u00f5es\n  prompt &lt;- \"INSTRUCTION:\nYOU MUST ANSWER EXACTLY IN THIS FORMAT:\nFORMAT:\n\nFirst line: exacthat (SIM or N\u00c3O)\nSecond line: exacthatuse (SIM or N\u00c3O)\nThird line onwards: text of maximum 150 words justifying the answers\n\nVALID RESPONSE EXAMPLE:\nSIM\nN\u00c3O\nThe article mentions the exact-hat algebra method in its literature review, citing it as one of the existing approaches for equilibrium analysis. However, the article does not apply this method in its empirical analysis, opting instead to use a different approach based on spatial econometrics.\nRULES:\n\nAnswer if the text mentions any of these variations: exacthat algebra, exact-hat algebra, exact hat algebra, or any combination of these terms with different spacing or hyphenation\nAnswer if the text effectively uses any of the above variations of exact hat algebra as an analytical method\nJustify your answers in up to 150 words\n\nTEXT:\n\"\n  \n  # Limita o tamanho do texto e combina com o prompt\n  text_limited &lt;- substr(text, 1, 100000)\n  full_prompt &lt;- paste0(prompt, text_limited)\n  \n  # Prepara a requisi\u00e7\u00e3o para a API\n  url &lt;- \"http:\/\/localhost:11434\/api\/generate\"\n  body &lt;- list(\n    model = \"llama3.2:latest\",\n    prompt = full_prompt,\n    stream = FALSE\n  )\n  \n  tryCatch({\n    # Faz a requisi\u00e7\u00e3o para a API\n    response &lt;- httr::POST(\n      url,\n      body = jsonlite::toJSON(body, auto_unbox = TRUE),\n      httr::add_headers(\"Content-Type\" = \"application\/json\")\n    )\n    \n    # Verifica se a requisi\u00e7\u00e3o foi bem-sucedida\n    if (httr::status_code(response) == 200) {\n      # Processa a resposta\n      result &lt;- httr::content(response, \"parsed\")$response\n      print(paste(\"Resposta bruta:\", result))  # Sa\u00edda para debug\n      \n      # Divide a resposta em linhas\n      lines &lt;- unlist(strsplit(result, \"\\n\"))\n      \n      # Extrai as classifica\u00e7\u00f5es e explica\u00e7\u00e3o\n      exacthat &lt;- trimws(toupper(lines&#91;1])) == \"SIM\"\n      exacthatuse &lt;- trimws(toupper(lines&#91;2])) == \"SIM\"\n      \n      # Obt\u00e9m a explica\u00e7\u00e3o (todas as linhas ap\u00f3s as duas primeiras)\n      explanation &lt;- paste(lines&#91;-(1:2)], collapse = \"\\n\")\n      \n      return(list(\n        exacthat = exacthat,\n        exacthatuse = exacthatuse,\n        explanation = explanation\n      ))\n    } else {\n      return(list(\n        exacthat = FALSE,\n        exacthatuse = FALSE,\n        explanation = \"Erro: Falha na requisi\u00e7\u00e3o da API\",\n        error = \"Falha na requisi\u00e7\u00e3o da API\"\n      ))\n    }\n  }, error = function(e) {\n    return(list(\n      exacthat = FALSE,\n      exacthatuse = FALSE,\n      explanation = paste(\"Erro:\", as.character(e)),\n      error = as.character(e)\n    ))\n  })\n}\n\n#' Processa um \u00fanico documento PDF\n#' @param file_path Caminho para o arquivo PDF\n#' @return Lista contendo resultados da an\u00e1lise\nprocess_document &lt;- function(file_path) {\n  tryCatch({\n    # Verifica conex\u00e3o com Ollama\n    if (!check_ollama_connection()) {\n      stop(\"N\u00e3o foi poss\u00edvel conectar ao Ollama. Verifique se o servi\u00e7o est\u00e1 rodando.\")\n    }\n    \n    # L\u00ea o PDF\n    text &lt;- pdftools::pdf_text(file_path)\n    text &lt;- paste(text, collapse = \" \")\n    \n    # Pr\u00e9-processa o texto\n    processed_text &lt;- preprocess_text(text)\n    tokens &lt;- tokenize_text(processed_text)\n    \n    # Classifica o documento\n    classification &lt;- classify_document(processed_text)\n    \n    # Retorna resultados\n    return(list(\n      file_path = file_path,\n      exacthat = classification$exacthat,\n      exacthatuse = classification$exacthatuse,\n      explanation = classification$explanation,\n      token_count = length(tokens),\n      sample_tokens = head(tokens, 10),\n      status = \"success\"\n    ))\n  }, error = function(e) {\n    return(list(\n      file_path = file_path,\n      status = \"error\",\n      error_message = as.character(e)\n    ))\n  })\n}\n\n#' Processa m\u00faltiplos documentos PDF\n#' @param file_paths Vetor com caminhos dos arquivos PDF\n#' @param output_file Caminho para arquivo CSV de sa\u00edda (opcional)\n#' @return Data frame com resultados\nprocess_multiple_documents &lt;- function(file_paths, output_file = NULL) {\n  # Processa todos os documentos\n  results &lt;- lapply(file_paths, process_document)\n  \n  # Converte resultados para data frame\n  results_df &lt;- bind_rows(lapply(results, function(x) {\n    if (x$status == \"success\") {\n      data.frame(\n        file_path = x$file_path,\n        status = x$status,\n        exacthat = as.numeric(x$exacthat),  # Converte para 1\/0\n        exacthatuse = as.numeric(x$exacthatuse),            # Converte para 1\/0\n        explanation = x$explanation,\n        token_count = x$token_count,\n        sample_tokens = paste(x$sample_tokens, collapse = \", \")\n      )\n    } else {\n      data.frame(\n        file_path = x$file_path,\n        status = x$status,\n        exacthat = NA,\n        exacthatuse = NA,\n        explanation = NA,\n        token_count = NA,\n        sample_tokens = NA,\n        error_message = x$error_message\n      )\n    }\n  }))\n  \n  # Salva em CSV se o arquivo de sa\u00edda for especificado\n  if (!is.null(output_file)) {\n    write.csv(results_df, output_file, row.names = FALSE)\n  }\n  \n  return(results_df)\n}\n\n# Exemplo de uso\n# Substitua o caminho abaixo pelo caminho correto dos seus arquivos\nfiles &lt;- list.files(\"path_dos_arquivos_pdf\", full.names = TRUE)\nresults &lt;- process_multiple_documents(files, \"resultados_analise.csv\")\nprint(results)<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">3. Resultados<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">3.1. Tipo de Resposta Gerada<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Os resultados a seguir se referem a Mei (2020) e s\u00e3o usados como exemplo:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">exacthat:0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">exacthatuse:0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Resumo Curto<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The text appears to be discussing various aspects of international trade, economic policy, and game theory. Here are some possible summary points:<br><br>1. **Trade models**: The text discusses different types of trade models, including infinite punishment, finite punishment, and punishment with finite periods.<br>2. **Nash equilibrium**: The authors discuss the concept of Nash equilibrium in repeated games, where countries cooperate on tariffs to maximize their welfare.<br>3. **Sustainability of cooperative equilibria**: The text explores the conditions under which cooperative equilibria are sustainable, including the minimum patience parameter \u03b2j and the length of the punishment phase kj.<br>4. **Tariff data**: The authors use various sources of tariff data, including the Global Trade Analysis Project (GTAP) database and the US export data.<br>5. **Trade policy analysis**: The text discusses the importance of quantitative trade policy analysis in understanding the impact of trade policies on economic outcomes.<br>Please let me know if you have any specific questions or topics you&#8217;d like me to help with. I&#8217;ll do my best to assist you!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4. Conclus\u00e3o<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Esta foi simplesmente uma aplica\u00e7\u00e3o curta do Llama para uma tarefa de natureza de revis\u00e3o de literatura. Ainda assim, em poucos minutos, \u00e9 poss\u00edvel extrair-se informa\u00e7\u00e3o de muitos dados de forma ordenada. Alternativas mais arcaicas de levantamento desse tipo de informa\u00e7\u00e3o envolvem esfor\u00e7os pronunciados em termos intelectuais e de tempo. O exemplo exibido aqui pode ser usado com uma primeira filtragem para esse tipo de trabalho mais demorado. Ao mesmo tempo, este exemplo apenas uma das possibilidades que uma GPT local abre em termos anal\u00edticos e de processo.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5. Refer\u00eancias Bibliogr\u00e1ficas<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Adao, R., Costinot, A., &amp; Donaldson, D. (2022).&nbsp;<em>Putting quantitative trade models to the test: Evidence from the Trump tariffs<\/em>. mimeo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bekkers, E., &amp; Koopman, R. B. (2022). Simulating the trade effects of the COVID\u201019 pandemic: Scenario analysis based on quantitative trade modelling.&nbsp;<em>The World Economy<\/em>,&nbsp;<em>45<\/em>(2), 445-467.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bekkers, E., &amp; Rojas\u2010Romagosa, H. (2019). The welfare effects of free trade agreements in quantitative trade models: A comparison of studies about Transatlantic Trade and Investment Partnership.&nbsp;<em>The World Economy<\/em>,&nbsp;<em>42<\/em>(1), 87-121.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Blank, S., Egger, P. H., Merlo, V., &amp; Wamser, G. (2022). A structural quantitative analysis of services trade de-liberalization.&nbsp;<em>Journal of International Economics<\/em>,&nbsp;<em>137<\/em>, 103605.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Che, Z., Che, J., &amp; Wang, S. (2024). The gains from changes in internal trade costs: A quantitative analysis of China.&nbsp;<em>Journal of Regional Science<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Egger, P. H., &amp; Erhardt, K. (2024). Heterogeneous effects of tariff and nontariff trade\u2010policy barriers in quantitative general equilibrium.&nbsp;<em>Quantitative Economics<\/em>,&nbsp;<em>15<\/em>(2), 453-487.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Felbermayr, G., Gr\u00f6schl, J. K., &amp; Heiland, I. (2018).&nbsp;<em>Undoing Europe in a new quantitative trade model<\/em>&nbsp;(No. 250). Ifo working paper.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Huang, X., &amp; Chen, X. (2022). A quantitative model of international trade based on deep neural network.&nbsp;<em>Computational Intelligence and Neuroscience<\/em>,&nbsp;<em>2022<\/em>(1), 9811358.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Krebs, O., &amp; Pfl\u00fcger, M. (2018). How deep is your love? A quantitative spatial analysis of the transatlantic trade partnership.&nbsp;<em>Review of International Economics<\/em>,&nbsp;<em>26<\/em>(1), 171-222.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mei, Y. (2020). Sustainable cooperation in international trade: A quantitative analysis.&nbsp;<em>Journal of International Economics<\/em>,&nbsp;<em>123<\/em>, 103305.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lee, K. Y. (2018). A quantitative trade model with unemployment.&nbsp;<em>KIEP Research Paper. Working paper<\/em>, 18-04.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ritel, M. (2022). A Quantitative Analysis of Trade Cooperation Over Three Decades.&nbsp;<em>Available at SSRN 4252542<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Thoenig, M. (2023).&nbsp;<em>Trade policy in the shadow of war: A quantitative toolkit for geoeconomics<\/em>. Centre for Economic Policy Research.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Walter, T. (2022). Applied policy research through the lens of new quantitative trade models.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Yu, Z., Han, J., Shi, X., &amp; Yang, Y. (2024). Estimates of the trade and global value chain (GVC) effects of China\u2019s Pilot Free Trade Zones: a research based on the quantitative trade model.&nbsp;<em>Journal of the Asia Pacific Economy<\/em>, 1-48.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Llama \u00e9 um modelo de intelig\u00eancia generativa (GPT), criada pela Meta, a companhia m\u00e3e do Facebook, Instagram, WhatsApp e Threads. Ao contr\u00e1rio de suas contrapartes pagas online (Chat GPT da Open AI, Gemini do Google Claude.AI da Anthropic, Copilot da Microsoft, Grok do X- antigo Twitter, dentre outros), a Llama oferece uma comodidade entre os[&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"zakra_general_container_width":0,"zakra_general_content_width":0,"zakra_general_sidebar_width":0,"zakra_sticky_header":"customizer","zakra_header_main_area":true,"zakra_site_logo_width":0,"zakra_header_top_enabled":"customizer","zakra_header_top_style":"customizer","zakra_primary_menu_item_style":"customizer","zakra_page_header_text_color":"","zakra_page_header_layout":"customizer","zakra_page_title_bg":"","zakra_footer_widgets_bg_image":0,"zakra_page_title_bg_repeat":"customizer","zakra_page_title_bg_position":"customizer","zakra_page_title_bg_size":"customizer","zakra_page_title_bg_attachment":"customizer","zakra_breadcrumbs_enabled":"customizer","zakra_breadcrumbs_text_color":"","zakra_breadcrumbs_separator_color":"","zakra_breadcrumbs_link_color":"","zakra_breadcrumbs_link_hover_color":"","zakra_page_title_bg_image":0,"zakra_footer_widgets_enabled":"customizer","zakra_footer_column_layout_1_style":"customizer","zakra_footer_widgets_bg":"","zakra_footer_widgets_bg_repeat":"customizer","zakra_footer_widgets_bg_position":"customizer","zakra_footer_widgets_bg_size":"customizer","zakra_footer_widgets_bg_attachment":"customizer","zakra_footer_bar_enabled":"customizer","zakra_footer_bar_style":"customizer","zakra_page_container_layout":"customizer","zakra_page_sidebar_layout":"customizer","zakra_remove_content_margin":false,"zakra_sidebar":"customizer","zakra_transparent_header":"customizer","zakra_logo":0,"zakra_main_header_style":"default","zakra_menu_item_color":"","zakra_menu_item_hover_color":"","zakra_menu_item_active_color":"","zakra_menu_active_style":"","zakra_page_header":true,"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","_uag_custom_page_level_css":"","footnotes":""},"class_list":["post-1364","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"zakra-thumb-size-one":false,"zakra-thumb-size-two":false},"uagb_author_info":{"display_name":"Alan Leal","author_link":"https:\/\/alanleal-econ.com\/index.php\/author\/alanmarqueslealhotmail-com\/"},"uagb_comment_info":0,"uagb_excerpt":"Llama \u00e9 um modelo de intelig\u00eancia generativa (GPT), criada pela Meta, a companhia m\u00e3e do Facebook, Instagram, WhatsApp e Threads. Ao contr\u00e1rio de suas contrapartes pagas online (Chat GPT da Open AI, Gemini do Google Claude.AI da Anthropic, Copilot da Microsoft, Grok do X- antigo Twitter, dentre outros), a Llama oferece uma comodidade entre os[&hellip;]","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/alanleal-econ.com\/index.php\/wp-json\/wp\/v2\/pages\/1364","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alanleal-econ.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/alanleal-econ.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/alanleal-econ.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/alanleal-econ.com\/index.php\/wp-json\/wp\/v2\/comments?post=1364"}],"version-history":[{"count":3,"href":"https:\/\/alanleal-econ.com\/index.php\/wp-json\/wp\/v2\/pages\/1364\/revisions"}],"predecessor-version":[{"id":1368,"href":"https:\/\/alanleal-econ.com\/index.php\/wp-json\/wp\/v2\/pages\/1364\/revisions\/1368"}],"wp:attachment":[{"href":"https:\/\/alanleal-econ.com\/index.php\/wp-json\/wp\/v2\/media?parent=1364"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}