Anvendelse af AI-teknikker fra medicinsk forskning på LLM'er for at reducere hallucinationer

05.12.2024

Revolutionerende GitHub-projekter: Automatisk lægemiddelopdagelse med AI

Integreringen af kunstig intelligens (AI) i medicinsk forskning revolutionerer den farmaceutiske industri. Open Source-projekter på GitHub spiller her en afgørende rolle. Her præsenterer vi nogle af de mest innovative projekter, der driver automatisering af lægemiddelopdagelse med AI.

DeepChem: En åben platform for deep learning i kemi

DeepChem er et førende open source-bibliotek, der gør deep learning tilgængeligt for kemiske applikationer. Det tilbyder værktøjer til:

Advertising

Med sin brugervenlige grænseflade gør DeepChem det muligt for forskere at implementere komplekse AI-modeller uden dybdegående programmeringsviden. Dette fremskynder opdagelsen af nye lægemidler og fremmer innovation i branchen.

MoleculeNet: Benchmarking for AI i kemi

MoleculeNet er et omfattende benchmark-system, der er udviklet specielt til maskinlæring i kemisk forskning. Det tilbyder:

Ved at levere enhedlige benchmarks letter MoleculeNet sammenligningen af forskellige AI-modeller og fremmer dermed fremskridt i lægemiddelopdagelsen.

ATOM Modeling Pipeline (AMPL): Accelereret medicinering

Det ATOM Modeling Pipeline er et projekt fra ATOM-konsortiet, der sigter mod at fremskynde lægemiddeludviklingen gennem maskinlæring. AMPL tilbyder:

Med AMPL kan forskere effektivt oprette komplekse modeller, hvilket forkorter tiden fra lægemiddelopdagelse til introduktion på markedet.

Chemprop: Molekylære egenskabsforudsigelser med deep learning

Chemprop udnytter grafiske neurale netværk til at forudsige molekylære egenskaber. Dens funktioner inkluderer:

Chemprop har opnået fremragende resultater i flere konkurrencer og er et værdifuldt værktøj for AI-understøttet kemi.

DeepPurpose: Et universelt toolkit til lægemiddeludvikling

DeepPurpose er et omfattende deep learning-toolkit til medicinsk forskning. Det tilbyder:

Med sin alsidighed gør DeepPurpose det muligt for forskere hurtigt og effektivt at identificere nye terapeutiske kandidater.

OpenChem: Et specialiseret deep learning-framework til kemiske applikationer

OpenChem er et deep learning-framework skræddersyet til kemi. Det skiller sig ud ved:

OpenChem fremmer udviklingen af nye metoder inden for kemisk AI og bidrager til at fremskynde forskningen.

Open Source-samfundet på GitHub driver grænserne for automatisering af lægemiddelopdagelse. Ved at kombinere AI og kemi åbnes der nye muligheder for at udvikle terapeutiske løsninger mere effektivt og præcist. Disse innovationer har potentiale til at forme fremtiden for medicin.

Anvendelse af AI-forskningsmodeller fra lægemiddelopdagelsen på distillation af AI-modeller

AI-modeller og -metoder, der anvendes i automatisk lægemiddelopdagelse, giver innovative tilgange, som kan overføres til distillering af AI-modeller. Selvom de to områder tilsyneladende er forskellige, deler de fælles teknikker og udfordringer, der muliggør en meningsfuld anvendelse.

Begrundelsen for brugen

Anvendelsen af forskningsmodeller fra lægemiddelopdagelsen på distillation af AI-modeller er rimelig, fordi:

Hvordan brugen kan foregå

1. Graph Neural Networks (GNN'er) til strukturanalyse

I lægemiddelopdagelsen anvendes Graph Neural Networks til at analysere komplekse molekylære strukturer. Disse teknikker kan bruges i model-distillation for at forstå strukturen af store modeller og udtrække de vigtigste træk, der skal overføres til det mindre model.

2. Transfer Learning og Feature Extraction

Modeller fra projekter som DeepChem eller Chemprop bruger transfer learning til at lære fra eksisterende datasæt. Lignende kan i distillation en stor, fortrænet model bruges som udgangspunkt, hvor væsentlige funktioner overføres til det mindre model.

3. Multi-Task Learning til alsidige modeller

Projekter som MoleculeNet bruger multi-task learning til at træne modeller, der kan udføre flere opgaver samtidigt. Denne metode kan bruges i distillation for at skabe kompakte modeller, der stadig imødekommer forskellige funktioner.

4. Optimeringsteknikker fra lægemiddelopdagelsen

Optimiseringsmetoder fra lægemiddelopdagelse, såsom finjustering af hyperparametre eller brug af evolutionære algoritmer, kan anvendes til at gøre distillerede modeller mere effektive.

5. Datagenerering og augmentation

Generering af syntetiske data er en nøglekomponent i projekter som DeepPurpose. Lignende teknikker kan bruges til at forbedre træningsprocessen i distillation, især når begrænsede data er tilgængelige.

Praktiske implementeringsskridt

Integrationen af teknikker fra automatisk lægemiddelopdagelse i distillation af AI-modeller åbner nye veje til effektivitetsforbedring og kompleksitetreduktion. Ved at overføre beviste metoder kan ydedygtige, kompakte modeller udvikles, der opfylder kravene til moderne AI-applikationer. Denne tværfaglige tilgang fremmer innovation og fremskynder fremskridt i begge forskningsområder.

Kort tankeeksperiment: Er det meningsfuldt?

Kemien og sprog er på den ene side forskellige, men begge systemer har komplekse regler og strukturer. Teknikker til modellering og forudsigelse i kemi kan derfor give værdifulde impulser til behandling af naturligt sprog. Det er vigtigt at være åben over for tværfaglige tilgange, da innovation ofte opstår på tværs af forskellige discipliner.

Integrationen af AI-teknikker fra lægemiddelopdagelsen i udviklingen af LLM'er kan være en lovende vej til at øge forudsigelsesnøjagtigheden og reducere hallucinationer. Selvom nogle metoder allerede bruges i LLM'er, er der plads til yderligere innovation gennem en tværfaglig tilgang. Udfordringerne ligger primært i de forskellige datatyper og skalerbarheden. Alligevel kan samarbejdet mellem disse to områder føre til betydelige fremskridt inden for AI-forskning.

Implementering til reduktion af hallucinationer i LLM'er med Hugging Face

Her viser vi, hvordan man opretter et sprogmodel med usikkerhedsestimering ved hjælp af Hugging Face og Python for at reducere hallucinationer. Vi bruger teknikker, der er inspireret af metoder i lægemiddelopdagelsen, især usikkerhedsestimering gennem Monte Carlo Dropout.

Forudsætninger

Du kan installere de nødvendige biblioteker med følgende kommando:

pip install transformers torch datasets

Kodeimplementering

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch.nn.functional as F
import numpy as np

# Indlæs tokenizere og model
model_name = 'gpt2'
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)

# Aktiver Dropout under evaluering
def enable_dropout(model):
"""Aktiverer Dropout-lagene i modellen under evaluering."""
for module in model.modules():
if isinstance(module, torch.nn.Dropout):
module.train()

# Funktion til generering med usikkerhedsestimering
def generate_with_uncertainty(model, tokenizer, prompt, num_samples=5, max_length=50):
model.eval()
enable_dropout(model)
inputs = tokenizer(prompt, return_tensors='pt')
input_ids = inputs['input_ids']

# Flere forudsigelser til usikkerhedsestimering
outputs = []
for _ in range(num_samples):
with torch.no_grad():
output = model.generate(
input_ids=input_ids,
max_length=max_length,
do_sample=True,
top_k=50,
top_p=0.95
)
outputs.append(output)

# Dekodér de genererede sekvenser
sequences = [tokenizer.decode(output[0], skip_special_tokens=True) for output in outputs]

# Beregn usikkerhed (entropi)
probs = []
for output in outputs:
with torch.no_grad():
logits = model(output)['logits']
prob = F.softmax(logits, dim=-1)
probs.append(prob.cpu().numpy())

# Beregn gennemsnitlig entropi
entropies = []
for prob in probs:
entropy = -np.sum(prob * np.log(prob + 1e-8)) / prob.size
entropies.append(entropy)

avg_entropy = np.mean(entropies)
uncertainty = avg_entropy

# Vælg den mest almindelige sekvens
from collections import Counter
sequence_counts = Counter(sequences)
most_common_sequence = sequence_counts.most_common(1)[0][0]

return {
'genereret_tekst': most_common_sequence,
'usikkerhed': uncertainty
}

# Eksempel på brug
prompt = "Effekterne af kunstig intelligens på medicin er"

resultat = generate_with_uncertainty(model, tokenizer, prompt)
print("Genereret tekst:")
print(resultat['genereret_tekst'])
print("Estimerede usikkerhed:", resultat['usikkerhed'])

Forklaring af koden

tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
  • Aktiver Dropout: Funktionen enable_dropout aktiverer dropout-lagene under evaluering for at muliggøre Monte Carlo Dropout.
  • def enable_dropout(model):
    for module in model.modules():
    if isinstance(module, torch.nn.Dropout):
    module.train()
    
  • Generering med usikkerhedsestimering: Funktionen generate_with_uncertainty udfører flere forudsigelser og beregner usikkerheden baseret på entropien af output-fordelingerne.
  • def generate_with_uncertainty(model, tokenizer, prompt, num_samples=5, max_length=50):
    # Funktion implementeret som vist ovenfor
    
  • Usikkerhedsberegning: Entropien af sandsynlighedsfordelingerne beregnes for at estimere usikkerheden. En højere entropi indikerer en større usikkerhed.
  • Vælg den bedste sekvens: Den mest almindelige genererede sekvens vælges som den endelige output, da den sandsynligvis er korrekt.
  • Brug af GitHub-repositories

    For udvidede funktionaliteter og avancerede teknikker kan følgende GitHub-repositories være nyttige:

    Udvidelige muligheder

    Konklusion

    Ved at anvende usikkerhedsestimering og teknikker fra automatisk lægemiddelopdagelse kan vi øge pålideligheden af sprogmodeller og reducere uønskede hallucinationer. Selvom nogle metoder allerede bruges i LLM'er, er der plads til yderligere innovation gennem en tværfaglig tilgang. Udfordringerne ligger primært i de forskellige datatyper og skalerbarheden. Alligevel kan samarbejdet mellem disse to områder føre til betydelige fremskridt inden for AI-forskning.

    Copyright ToneKi Media UG (haftungsbeschränkt)

    "Transfer