Automatizando o código aberto: Como a Ersilia distribui modelos de IA para promover a equidade na saúde global

Automatizando o código aberto: Como a Ersilia distribui modelos de IA para promover a equidade na saúde global

Levando uma média de 10 anos e US$ 1,3 bilhão para desenvolver um único novo medicamento, as empresas farmacêuticas geralmente concentram seus esforços de descoberta de medicamentos em um alto retorno sobre o investimento, desenvolvendo medicamentos para doenças prevalentes em países de maior renda - e deixando para trás os países de baixa e média renda. Em resposta, os investimentos na construção de modelos de IA/ML para descoberta de medicamentos dispararam nos últimos cinco anos. Ao usar esses modelos, os cientistas podem encurtar seu cronograma de pesquisa e desenvolvimento, melhorando a identificação de perspectivas de medicamentos. No entanto, o acesso a esses modelos é limitado pela experiência em ciência de dados e recursos computacionais. A Iniciativa de Código Aberto Ersilia , sem fins lucrativos, está lidando com esse problema com o Ersilia Model Hub .

Por meio do hub, a Ersilia visa disseminar modelos de IA/ML e poder computacional para pesquisadores focados na descoberta de medicamentos para doenças infecciosas em regiões fora da Europa e da América do Norte. Nesta postagem, compartilharemos como os engenheiros da Ersilia e do GitHub criaram um processo de autoatendimento IssueOps para disponibilizar publicamente os modelos de IA/ML no hub, permitindo que os pesquisadores os encontrem e executem gratuitamente em repositórios públicos usando o GitHub Actions . 👇

Ersilia Model Hub: o que é e quem o usa

Embora amplamente negligenciada por empresas farmacêuticas com fins lucrativos, a pesquisa sobre doenças infecciosas em países de baixa e média renda está em andamento. O hub aproveita essa pesquisa, servindo como uma coleção com curadoria de modelos de IA/ML relevantes para a descoberta de antibióticos.

Por meio de sua plataforma, a Ersilia ajuda a disseminar descobertas e modelos publicados, bem como os seus próprios, por meio de repositórios públicos no GitHub, para que pesquisadores e instituições subcontratadas possam usá-los gratuitamente para melhorar a descoberta de medicamentos em seus respectivos países.

"Em algum momento, percebi que havia a necessidade de uma nova organização que fosse flexível o suficiente para realmente viajar para diferentes países e instituições, identificar suas necessidades de ciência de dados, que muitas vezes são extremamente escassas, e desenvolver algumas ferramentas de ciência de dados", diz o cofundador da Ersilia, Miquel Duran-Fragola , PhD.

Essa percepção se cristalizou no Ersilia e no Ersilia Model Hub, que Duran-Frigola fundou com dois outros especialistas em biomedicina, Gemma Turon , PhD, e Edo Gaude , PhD.

"O hub contém modelos computacionais, que são relativamente muito baratos de executar em comparação com experimentos em laboratório", diz Duran-Fogola. "Os pesquisadores podem criar simulações usando modelos computacionais para prever como uma molécula candidata pode tratar uma doença específica. É por isso que esses modelos costumam ser bons pontos de partida para realizar pesquisas de descoberta de medicamentos." Atualmente, existem cerca de 150 modelos no Ersilia Model Hub.

Quem usa e contribui para Ersilia?

A maioria dos colaboradores que adicionam modelos ao hub são cientistas de dados e desenvolvedores de software, enquanto a maioria dos que executam esses modelos são pesquisadores em biomedicina e descoberta de medicamentos em instituições em vários países da África Subsaariana. Nos próximos dois anos, a Ersilia pretende estabelecer o centro em 15 instituições em toda a África.

O maior parceiro da Ersilia é o Centro de Descoberta e Desenvolvimento de Drogas Holísticas (H3D) da Universidade da Cidade do Cabo. Fundado em 2010 como o primeiro centro integrado de descoberta e desenvolvimento de medicamentos da África, os pesquisadores da H3D usam as ferramentas de ciência de dados disseminadas pelo Ersilia Model Hub para promover a descoberta de medicamentos inovadores em todo o continente africano.

A Ersilia também está fazendo parceria com centros de pesquisa emergentes, como o Centro de Descoberta de Medicamentos da Universidade de Buea , em Camarões. Uma bolsa da Fundação Bill & Melinda Gates forneceu ao centro o financiamento inicial necessário para começar em 2022, e hoje tem 25 membros.

"O centro tem como objetivo descobrir novos medicamentos baseados em produtos naturais coletados de curandeiros tradicionais, mas ainda não tem muitos recursos", explica Duran-Frigola. "A ideia é que nossa ferramenta se torne um componente central do centro para que seus pesquisadores possam se beneficiar das previsões computacionais."

Como funciona o Ersilia Model Hub

Os colaboradores podem solicitar que um modelo seja adicionado ao hub abrindo um issue. A grande maioria dos modelos é de código aberto, todos estão disponíveis publicamente e a maioria é submetida e extraída da literatura científica.

Por exemplo, bioquímicos do David Braley Center for Antibiotic Discovery criaram um modelo de ML para prever a probabilidade de um composto químico inibir a atividade da Acinetobacter baumannii , um patógeno frequentemente transmitido em ambientes de saúde e conhecido por sua resistência a vários antibióticos.

Mas a Ersilia desenvolve alguns modelos internamente, como um que prevê a eficácia de produtos químicos contra o Mycobacterium tuberculosis ( M. tuberculosis ) cultivado em laboratório , usando dados do Hospital Infantil de Seattle. M. tuberculosis é o agente causador da tuberculose, uma doença infecciosa que afeta principalmente indivíduos em países de baixa e média renda.

Embora a equipe da Ersilia aprove manualmente quais modelos entram no hub, ele usa GitHub Actions para simplificar as solicitações e solicitar as seguintes informações dos colaboradores do modelo:

  • O esquema do modelo (qual entrada é esperada e qual saída será retornada).
  • Informações de licença de código aberto.
  • Se o modelo pode ser executado em CPUs ou GPUs.
  • Link para o código-fonte aberto do modelo.
  • Link para publicação (revisado por pares ou pré-impressão).
  • Rótulos para descrever o caso de uso do modelo, com tags como malária, classificação, regressão, não supervisionado ou supervisionado.

Quando a Ersilia aprova o modelo, o colaborador envia uma solicitação de pull que dispara um conjunto de testes. Se todos esses testes forem bem-sucedidos, o GitHub Actions mescla o pull request e o modelo é incorporado ao hub.Rachel Stanik , engenheira de software do GitHub, detalha as etapas para adicionar um modelo de IA ao Ersilia Model Hub:

Do lado do usuário, os pesquisadores interessados na descoberta de medicamentos podem buscar modelos de IA/ML estáticos e prontos para uso no hub e contidos em repositórios públicos, inserir moléculas candidatas e, em seguida, receber previsões que indicam o desempenho da molécula candidata contra uma doença específica - tudo online e gratuitamente.

O processo de autoatendimento contém uma observação importante sobre privacidade , divulgando que qualquer atividade no repositório é aberta e disponível para o público em geral, o que inclui essas previsões, armazenadas como artefatos de ações.

"No momento, a Ersilia está focada na disseminação de informações e ferramentas", diz Duran-Frigola. "Para o futuro, estamos trabalhando para fornecer uma métrica de confiança para os modelos. E, com uma base de usuários maior, a Ersilia poderia agregar insumos para capturar as moléculas candidatas que as pessoas estão testando contra doenças infecciosas."

Usando uma combinação de moléculas candidatas, os pesquisadores podem descobrir quais medicamentos estão disponíveis em determinados países e experimentar o reaproveitamento desses medicamentos para combater outros micróbios. As informações podem ajudá-los a tratar doenças negligenciadas sem ter que desenvolver um novo medicamento do zero.


Fique atento

A Ersilia aplica o código de verificação aos dados de entrada ao configurar o modelo para que ele seja válido e forneça uma saída esperada. O processo de verificação é um trabalho em andamento, por isso é importante lembrar que as saídas do modelo são um indicador de que uma molécula pode funcionar, não a confirmação.


Como o GitHub criou um processo de autoatendimento para o Ersilia Model Hub


Antes de entrar em contato com o GitHub, os pesquisadores não podiam acessar ou executar os modelos de forma independente no hub. A customer success architect do GitHub, Jenna Massardo , e o engenheiro de impacto social, Sean Marcia , que também é fundador da organização sem fins lucrativos Ruby For Good , trabalharam com a Ersilia para corrigir isso criando um processo de autoatendimento para o hub.

O programa de voluntariado baseado em habilidades do GitHub, administrado pela equipe de Impacto Social do GitHub , organizou a oportunidade. O programa faz parceria com funcionários com organizações do setor social por um período de tempo para ajudar a resolver problemas estratégicos e técnicos.


Criando um processo IssueOps


O primeiro passo de Massardo e Marcia na resolução de problemas foi entender e aprender como o software funciona: como um pesquisador compartilharia informações? Que tipo de resultados um pesquisador deve esperar?

"Pedi que eles me orientassem no processo de configuração e uso do Ersilia Model Hub em minha estação de trabalho. Foi apenas quando ele estava sendo executado na minha estação de trabalho, onde eu poderia realmente testá-lo e fazer o processo sozinha, que comecei a separá-lo", diz Massardo.

Massardo e Marcia então dividiram as fases em pedaços: como um pesquisador faria um pedido para usar um modelo? Como o modelo processaria os dados de entrada do pesquisador? Como essa entrada seria tratada? Quais notificações os pesquisadores receberiam? Massardo e Marcia decidiram trazer um padrão padrão IssueOps, que usa issues do GitHub para impulsionar a automação com o GitHub Actions.

"É um padrão super comum. Muitas de nossas ferramentas internas no GitHub são construídas sobre ele, como algumas de nossas ferramentas de migração para nossos clientes corporativos", explica Massardo.

Ela rapidamente descartou o uso de um fluxo de pull request , onde os colaboradores propõem alterações no código-fonte.

"As pessoas estão contribuindo para o repositório, mas não estão realmente fazendo alterações no código. Eles estão apenas adicionando arquivos para processamento", diz Massardo. "O uso de pull request significaria muito ruído no histórico do repositório. Mas os issues são perfeitos para esse tipo de coisa."

Uma vez que um plano foi estabelecido, Massardo começou a construir enquanto Marcia mantinha a colaboração funcionando sem problemas. Pesquisadores, biólogos e até mesmo estudantes agora podem usar o processo de autoatendimento simplesmente acessando o hub, criando um issue, preenchendo o modelo e enviando-o.

Observe que o modelo exige que os usuários selecionem o modelo que desejam executar e insiram a(s) molécula(s) candidata(s) no formato SMILES padrão (Sistema de Entrada de Linha de Entrada Molecular Simplificado), um formato legível por computador para representar moléculas e texto complexos.



Configurar um fluxo de trabalho do GitHub Actions


Originalmente, Ersilia queria criar uma ação personalizada do GitHub, mas Massardo, alguém que escreveu várias ações personalizadas usadas interna e externamente, sabia que ela vem com uma boa quantidade de manutenção.

"Há muito código que você está escrevendo por conta própria, e isso significa que você precisa gerenciar várias dependências e atualizações de segurança", diz Massardo. "Nesse ponto, torna-se uma aplicação completa."

Entender o problema como uma série de tarefas individuais permitiu que ela usasse uma solução eficaz e econômica.

"Criamos uma série de fluxos de trabalho simples usando ações prontamente disponíveis no GitHub Marketplace e deixamos o GitHub Actions fazer o seu trabalho", diz Massardo. "Ao entender os desejos e necessidades reais de Ersilia, evitamos complicar demais e ofuscar a questão."

Quando um pesquisador registra um problema para executar uma molécula candidata por meio de um modelo, ele aciona um fluxo de trabalho do GitHub Actions para ser executado. Aqui está uma visão geral do processo:

  1. O GitHub Actions cria um executor hospedado no GitHub para realizar o fluxo de trabalho.
  2. A ação GitHub Issue Forms Body Parser analisa o conteúdo do problema e o converte do Markdown em dados estruturados e utilizáveis.
  3. O fluxo de trabalho busca o modelo solicitado pelo usuário e, em seguida, aciona a execução do software da Ersilia.
  4. O software da Ersilia configura o modelo e a entrada fornecida pelo usuário é colocada em um arquivo que o modelo pode processar.
  5. O software da Ersilia gera uma saída CSV, salva como um artefato no GitHub Actions.
  6. O fluxo de trabalho permite que o usuário saiba que foi concluído com êxito, deixando um comentário no problema aberto, que inclui um link para o artefato no qual o usuário pode clicar para fazer download.
  7. Esse fluxo de trabalho específico tem um período de retenção de 30 dias, portanto, cinco dias antes da expiração do artefato, o bot obsoleto notifica os usuários para baixar a saída. Após 30 dias, o bot obsoleto fecha automaticamente o problema.

"Tudo acontece diretamente no GitHub", explica Massardo. "O usuário não precisa se preocupar com nada. Eles apenas enviam o issue, e o fluxo de trabalho da Ersilia o processa e informa quando tudo está pronto. É importante ressaltar que a equipe da Ersilia, que está ocupada administrando a organização sem fins lucrativos, não precisa fazer nenhuma manutenção.


Usar contêineres do Docker para executar modelos de IA em executores do GitHub


Para agilizar o processo de criação de imagens de modelo, a Ersilia usa um modelo Dockerfile . Quando um pesquisador envia um novo modelo para o hub, Ersilia copia o modelo para o repositório do modelo, que inicia a compilação da imagem do Docker para esse modelo, um processo que é alimentado por executores hospedados no GitHub. Uma vez construída, a imagem do modelo fica no hub e os pesquisadores podem executá-la quantas vezes forem necessárias. Um modelo também pode ser reconstruído se forem necessárias correções posteriormente.

Os modelos no hub estão disponíveis em repositórios públicos, onde GitHub Actions é executado sem nenhum custo . Quando os pesquisadores usam o processo de autoatendimento, o GitHub Actions executa essas imagens do Docker nos executores do GitHub gratuitamente, o que, por sua vez, permite que os pesquisadores executem esses modelos gratuitamente.

Os modelos no hub também são projetados e otimizados para serem executados em CPUs para que os pesquisadores possam executar os modelos localmente em suas máquinas, tornando-os mais acessíveis à comunidade científica global. Os modelos não são muito grandes, explica o CTO da Ersilia, Dhanshree Arora , porque são construídos para casos de uso muito específicos.

"Estamos trabalhando ativamente para reduzir o tamanho de nossas imagens de modelo, para que elas usem menos recursos de rede quando transferidas entre máquinas, ocupem menos espaço na máquina em que são executadas e permitam tempos de rotação mais rápidos para os contêineres criados a partir dessas imagens de modelo", diz Arora.

A capacidade de empacotar esses modelos como contêineres do Docker também significa que os pesquisadores podem colaborar com mais facilidade, pois os modelos são executados em ambientes consistentes e reproduzíveis.


Automatizando a busca diária de modelos


Quando os pesquisadores registram um issue para usar um modelo, eles veem uma lista de modelos disponíveis. Essa lista é atualizada todos os dias por um fluxo de trabalho que Massardo criou usando GitHub Actions e algum código personalizado. Todos os dias, o fluxo de trabalho:

  1. Busca o arquivo que contém a lista de modelos gerenciados pela equipe do Ersilia. O arquivo é atualizado automaticamente sempre que a equipe modifica ou substitui um modelo ou adiciona um novo modelo.
  2. Executa um script Python para processar o arquivo e extrair dados que capturam modelos novos, atualizados ou preteridos.
  3. Atualiza a lista de modelos no modelo de problemas com os dados extraídos.

"Este é outro exemplo de como construímos esse processo para ser o mais prático possível, ao mesmo tempo em que facilitamos ao máximo o uso da ferramenta pelos pesquisadores", diz Massardo.


A Ersilia quer as suas contribuições


A Ersilia desenvolveu uma comunidade de código aberto de colaboradores e usuários e acredita que tudo o que faz precisa continuar sendo de código aberto. Ele foi inicialmente atraído para o GitHub Actions porque é gratuito para uso em repositórios públicos. Depois de testemunhar o impacto do GitHub Actions no hub de modelos, Duran-Frigola quer identificar mais casos de uso.

"Quero encontrar maneiras criativas de usar o GitHub Actions, além do CI/CD, para ajudar mais pesquisadores a usar nossas ferramentas", diz ele.

Ele também quer que os muitos estagiários da Ersilia pratiquem o uso do GitHub Copilot e ganhem experiência prática com o uso de ferramentas de codificação de IA que estão mudando o cenário do desenvolvimento de software.


3 dicas para contribuir com projetos de código aberto, de um Hubber


➡️ Leia as três dicas de Massardo para contribuir com projetos de código aberto, as diretrizes de contribuições de Ersilia e comece a se envolver com a comunidade de código aberto do GitHub.

  1. Encontre um projeto que lhe interesse. Trabalhar em um projeto que é pessoalmente interessante geralmente significa que você vai ficar com ele e não ficar entediado.
  2. Examine os problemas no repositório de um projeto para encontrar algo que você possa corrigir ou adicionar. Muitos projetos usam o rótulo de "good first issue" para identificar coisas que os recém-chegados podem resolver.
  3. Esteja preparado para interagir. Alguns proprietários de projetos exigem várias contribuições menores antes de considerarem uma mudança maior no produto. Algumas pessoas estão em diferentes partes do mundo, então você pode precisar reescrever as coisas para ficar mais clara. Se você está pensando em uma grande mudança em um projeto, abra um problema para discuti-lo primeiro com os proprietários, porque eles podem ter uma visão diferente.


Como contribuir para um projeto de código aberto

Os projetos de código aberto precisam de contribuições técnicas e não relacionadas ao código. Confira nossos guias para emprestar suas habilidades técnicas e oferecer contribuições valiosas sem código .


Contribua para outra organização sem fins lucrativos usando o For Good First Issue


Ersilia foi recentemente designado como um Bem Público Digital (DPG) pelas Nações Unidas. Os DPGs são soluções de código aberto, desde software e dados de código aberto até sistemas de IA e coleções de conteúdo, projetadas para desbloquear um mundo mais equitativo. Os DPGs são de acesso livre, destinados a serem usados e aprimorados por qualquer pessoa para beneficiar o público e são projetados para enfrentar um desafio social e promover o desenvolvimento sustentável. Se você se inspirou no Ersilia e deseja contribuir para mais DPGs, confira o For Good First Issue do GitHub, uma lista selecionada de DPGs reconhecidos que precisam de colaboradores. O For Good First Issue foi projetado como uma ferramenta para organizações sem fins lucrativos se conectarem com tecnólogos de todo o mundo. Como as organizações sem fins lucrativos geralmente carecem de financiamento e recursos para resolver os desafios da sociedade por meio da tecnologia, o For Good First Issue pode conectar organizações sem fins lucrativos que precisam de apoio com as pessoas que desejam fazer mudanças positivas. 



Carlos Morais

Desenvolvedor Python | Analista de Dados | SQL | Automação e Interface Gráfica

1 d

Concordo

Entre para ver ou adicionar um comentário

Conferir tópicos