Ebben a bejegyzésben bemutatjuk, hogyan lehet hatékonyan finomhangolni egy korszerű fehérjenyelvi modellt (pLM) a fehérje szubcelluláris lokalizációjának előrejelzésére. Amazon SageMaker.
A fehérjék a szervezet molekuláris gépei, amelyek az izmok mozgatásától a fertőzésekre való reagálásig mindenért felelősek. E változatosság ellenére minden fehérje ismétlődő molekulákból, úgynevezett aminosavakból áll. Az emberi genom 20 standard aminosavat kódol, mindegyik kissé eltérő kémiai szerkezettel. Ezeket az ábécé betűivel ábrázolhatjuk, ami lehetővé teszi számunkra, hogy szöveges karakterláncként elemezzük és vizsgáljuk meg a fehérjéket. A fehérjeszekvenciák és -struktúrák óriási lehetséges száma az, ami a fehérjék felhasználási területeinek széles körét biztosítja.
A fehérjék a gyógyszerfejlesztésben is kulcsszerepet játszanak, mint potenciális célpontok, de terápiás szerekként is. Amint az a következő táblázatból látható, 2022-ben a legtöbbet eladott gyógyszer vagy fehérje (különösen antitestek) vagy más molekula, például a szervezetben fehérjékké lefordított mRNS volt. Emiatt sok élettudományi kutatónak gyorsabban, olcsóbban és pontosabban kell válaszolnia a fehérjékkel kapcsolatos kérdésekre.
Név | Gyártó | Globális értékesítés 2022-ben (milliárd USD) | Jelzések |
Comirnaty | Pfizer / BioNTech | $40.8 | Covid-19 |
Spikevax | modern | $21.8 | Covid-19 |
Humira | AbbVie | $21.6 | Ízületi gyulladás, Crohn-betegség és mások |
keytruda | Merck | $21.0 | Különféle rákos megbetegedések |
Adatforrás: Urquhart, L. A legnépszerűbb cégek és gyógyszerek eladások szerint 2022-ben. Nature Reviews Drug Discovery 22, 260–260 (2023).
Mivel a fehérjéket karakterszekvenciákként is ábrázolhatjuk, az eredetileg írott nyelvre kifejlesztett technikák segítségével elemezhetjük őket. Ez magában foglalja a nagy nyelvi modelleket (LLM), amelyeket hatalmas adathalmazokra előképzettek, és amelyeket aztán adaptálhatnak bizonyos feladatokhoz, például szövegösszegzéshez vagy chatbotokhoz. Hasonlóképpen, a pLM-eket nagy fehérjeszekvencia-adatbázisokon előzetesen betanítják jelöletlen, önfelügyelt tanulás segítségével. Alkalmazhatjuk őket olyan dolgok előrejelzésére, mint egy fehérje 3D-s szerkezete, vagy hogyan léphet kölcsönhatásba más molekulákkal. A kutatók még pLM-eket is használtak új fehérjék tervezésére a semmiből. Ezek az eszközök nem helyettesítik a humán tudományos szakértelmet, de képesek felgyorsítani a preklinikai fejlesztést és a próbatervezést.
Az egyik kihívás ezekkel a modellekkel a méretük. Mind az LLM-ek, mind a pLM-ek nagyságrendekkel növekedtek az elmúlt néhány évben, amint azt a következő ábra szemlélteti. Ez azt jelenti, hogy hosszú időbe telhet a megfelelő pontosságú betanításuk. Ez azt is jelenti, hogy a modellparaméterek tárolásához nagy mennyiségű memóriával rendelkező hardvert, különösen GPU-kat kell használnia.
A hosszú képzési idő és a nagy példányszámok magas költségekkel járnak, ami sok kutató számára elérhetetlenné teheti ezt a munkát. Például 2023-ban a kutatócsoport leírta egy 100 milliárd paraméterű pLM betanítását 768 A100 GPU-n 164 napon keresztül! Szerencsére sok esetben időt és erőforrást takaríthatunk meg, ha egy meglévő pLM-t a konkrét feladatunkhoz igazítunk. Ezt a technikát ún finomhangolás, és lehetővé teszi, hogy fejlett eszközöket kölcsönözzünk más típusú nyelvi modellezésből.
Megoldás áttekintése
A konkrét probléma, amellyel ebben a bejegyzésben foglalkozunk, az szubcelluláris lokalizáció: Adott egy fehérjeszekvencia, építhetünk-e olyan modellt, amely meg tudja jósolni, hogy a sejten kívül (sejtmembrán) vagy belül él? Ez egy fontos információ, amely segíthet megérteni a funkciót, és azt, hogy jó gyógyszer célpont lenne-e.
Kezdjük egy nyilvános adatkészlet letöltésével Amazon SageMaker Studio. Ezután a SageMaker segítségével finomhangoljuk az ESM-2 fehérje nyelvi modelljét egy hatékony képzési módszerrel. Végül a modellt valós idejű következtetési végpontként alkalmazzuk, és néhány ismert fehérje tesztelésére használjuk. A következő diagram ezt a munkafolyamatot mutatja be.
A következő szakaszokban az edzési adatok előkészítésének, a képzési szkript létrehozásának és a SageMaker képzési feladat futtatásának lépésein megyünk keresztül. Az ebben a bejegyzésben szereplő összes kód elérhető itt GitHub.
Készítse elő az edzési adatokat
Részét használjuk a DeepLoc-2 adatkészlet, amely több ezer SwissProt fehérjét tartalmaz kísérletileg meghatározott helyekkel. Kiváló minőségű szekvenciákat szűrünk 100-512 aminosav között:
df = pd.read_csv(
"https://services.healthtech.dtu.dk/services/DeepLoc-2.0/data/Swissprot_Train_Validation_dataset.csv"
).drop(["Unnamed: 0", "Partition"], axis=1)
df["Membrane"] = df["Membrane"].astype("int32")
# filter for sequences between 100 and 512 amino acides
df = df[df["Sequence"].apply(lambda x: len(x)).between(100, 512)]
# Remove unnecessary features
df = df[["Sequence", "Kingdom", "Membrane"]]
Ezután tokenizáljuk a sorozatokat, és felosztjuk őket képzési és értékelési készletekre:
dataset = Dataset.from_pandas(df).train_test_split(test_size=0.2, shuffle=True)
tokenizer = AutoTokenizer.from_pretrained("facebook/esm2_t33_650M_UR50D")
def preprocess_data(examples, max_length=512):
text = examples["Sequence"]
encoding = tokenizer(text, truncation=True, max_length=max_length)
encoding["labels"] = examples["Membrane"]
return encoding
encoded_dataset = dataset.map(
preprocess_data,
batched=True,
num_proc=os.cpu_count(),
remove_columns=dataset["train"].column_names,
)
encoded_dataset.set_format("torch")
Végül feltöltjük a feldolgozott képzési és értékelési adatokat Amazon egyszerű tárolási szolgáltatás (Amazon S3):
train_s3_uri = S3_PATH + "/data/train"
test_s3_uri = S3_PATH + "/data/test"
encoded_dataset["train"].save_to_disk(train_s3_uri)
encoded_dataset["test"].save_to_disk(test_s3_uri)
Hozzon létre egy képzési szkriptet
SageMaker script mód lehetővé teszi egyéni képzési kódjának futtatását az AWS által kezelt optimalizált gépi tanulási (ML) keretrendszer tárolóiban. Ehhez a példához adaptálunk egy meglévő szkript a szövegosztályozáshoz a Hugging Face-től. Ez lehetővé teszi, hogy többféle módszert kipróbáljunk képzési munkánk hatékonyságának javítására.
1. módszer: Súlyozott edzési osztály
Sok biológiai adatkészlethez hasonlóan a DeepLoc adatok is egyenetlenül oszlanak el, ami azt jelenti, hogy nincs egyenlő számú membrán és nem membrán fehérje. Újra mintavételezhetnénk adatainkat, és elvethetnénk a többségi osztály rekordjait. Ez azonban csökkentené a teljes edzési adatot, és ronthatja a pontosságunkat. Ehelyett az edzésmunka során kiszámítjuk az osztálysúlyokat, és ezek segítségével korrigáljuk a veszteséget.
Képzési szkriptünkben alosztályozzuk a Trainer
osztályból transformers
val,-vel WeightedTrainer
osztály, amely figyelembe veszi az osztálysúlyokat a keresztentrópia veszteség kiszámításakor. Ez segít megelőzni a torzítást a modellünkben:
class WeightedTrainer(Trainer):
def __init__(self, class_weights, *args, **kwargs):
self.class_weights = class_weights
super().__init__(*args, **kwargs)
def compute_loss(self, model, inputs, return_outputs=False):
labels = inputs.pop("labels")
outputs = model(**inputs)
logits = outputs.get("logits")
loss_fct = torch.nn.CrossEntropyLoss(
weight=torch.tensor(self.class_weights, device=model.device)
)
loss = loss_fct(logits.view(-1, self.model.config.num_labels), labels.view(-1))
return (loss, outputs) if return_outputs else loss
2. módszer: Gradiens akkumuláció
A gradiens felhalmozás egy olyan képzési technika, amely lehetővé teszi a modellek számára, hogy nagyobb kötegméreteken szimulálják a képzést. Általában a köteg méretét (az egy betanítási lépésben a gradiens kiszámításához használt minták számát) a GPU memóriakapacitása korlátozza. Gradiens-halmozás esetén a modell először kisebb tételeken számítja ki a gradienseket. Ezután a modellsúlyok azonnali frissítése helyett a színátmenetek több kis kötegben halmozódnak fel. Amikor a felhalmozott színátmenetek megegyeznek a megcélzott nagyobb kötegmérettel, az optimalizálási lépés végrehajtásra kerül a modell frissítéséhez. Ez lehetővé teszi, hogy a modellek hatékonyan nagyobb kötegekkel edzenek anélkül, hogy túllépnék a GPU memóriakorlátját.
Azonban további számításra van szükség a kisebb köteg előre és hátra lépéseihez. A gradiens felhalmozás révén megnövelt tételek lelassíthatják a képzést, különösen, ha túl sok felhalmozási lépést alkalmaznak. A cél a GPU-használat maximalizálása, de elkerülhető a túl sok további gradiens számítási lépés miatti túlzott lassulás.
3. módszer: Gradiens ellenőrzési pont
A gradiens-ellenőrzőpont egy olyan technika, amely csökkenti az edzés során szükséges memóriát, miközben a számítási időt ésszerű szinten tartja. A nagy neurális hálózatok sok memóriát foglalnak el, mert minden közbenső értéket el kell tárolniuk az előrehaladásból ahhoz, hogy a visszafelé haladás során ki tudják számítani a gradienseket. Ez memóriaproblémákat okozhat. Az egyik megoldás, hogy ezeket a köztes értékeket nem tároljuk, hanem a visszafelé haladás során újra kell számolni, ami sok időt vesz igénybe.
A gradiens ellenőrzőpontok kiegyensúlyozott megközelítést biztosítanak. Csak néhány köztes értéket ment el, ún ellenőrzőpontok, és szükség szerint újraszámolja a többit. Ezért kevesebb memóriát használ, mint mindent eltárolni, de kevesebb számítást is, mint mindent újraszámolni. A gradiens-ellenőrzési pontok stratégiai kiválasztásával lehetővé teszi a nagy neurális hálózatok képzését, kezelhető memóriahasználattal és számítási idővel. Ez a fontos technika lehetővé teszi nagyon nagy modellek betanítását, amelyek egyébként memóriakorlátozásba ütköznének.
A képzési szkriptünkben bekapcsoljuk a gradiens aktiválást és az ellenőrzőpontot úgy, hogy hozzáadjuk a szükséges paramétereket a TrainingArguments
tárgy:
from transformers import TrainingArguments
training_args = TrainingArguments(
gradient_accumulation_steps=4,
gradient_checkpointing=True
)
4. módszer: LLM-ek alacsony szintű adaptációja
Az olyan nagy nyelvi modellek, mint az ESM-2, több milliárd paramétert tartalmazhatnak, amelyek betanítása és futtatása költséges. Kutatók kifejlesztett egy Low-Rank Adaptation (LoRA) nevű képzési módszert, hogy hatékonyabbá tegye ezeknek a hatalmas modelleknek a finomhangolását.
A LoRA mögött meghúzódó kulcsötlet az, hogy amikor egy modellt egy adott feladathoz finomít, nem kell frissítenie az összes eredeti paramétert. Ehelyett a LoRA új, kisebb mátrixokat ad a modellhez, amelyek átalakítják a bemeneteket és a kimeneteket. Csak ezek a kisebb mátrixok frissülnek a finomhangolás során, ami sokkal gyorsabb és kevesebb memóriát használ. Az eredeti modell paraméterei fagyasztva maradnak.
A LoRA-val végzett finomhangolás után a kis adaptált mátrixokat visszaolvaszthatja az eredeti modellbe. Vagy külön is tarthatja őket, ha gyorsan szeretné finomhangolni a modellt más feladatokhoz anélkül, hogy elfelejtené a korábbiakat. Összességében a LoRA lehetővé teszi az LLM-ek hatékony alkalmazkodását az új feladatokhoz a szokásos költségek töredékéért.
A képzési szkriptünkben a LoRA-t a PEFT
Hugging Face könyvtára:
from peft import get_peft_model, LoraConfig, TaskType
import torch
from transformers import EsmForSequenceClassification
model = EsmForSequenceClassification.from_pretrained(
“facebook/esm2_t33_650M_UR50D”,
Torch_dtype=torch.bfloat16,
Num_labels=2,
)
peft_config = LoraConfig(
task_type=TaskType.SEQ_CLS,
inference_mode=False,
bias="none",
r=8,
lora_alpha=16,
lora_dropout=0.05,
target_modules=[
"query",
"key",
"value",
"EsmSelfOutput.dense",
"EsmIntermediate.dense",
"EsmOutput.dense",
"EsmContactPredictionHead.regression",
"EsmClassificationHead.dense",
"EsmClassificationHead.out_proj",
]
)
model = get_peft_model(model, peft_config)
Adjon be egy SageMaker képzési állást
Miután meghatározta a képzési szkriptet, konfigurálhat és elküldhet egy SageMaker képzési feladatot. Először adja meg a hiperparamétereket:
hyperparameters = {
"model_id": "facebook/esm2_t33_650M_UR50D",
"epochs": 1,
"per_device_train_batch_size": 8,
"gradient_accumulation_steps": 4,
"use_gradient_checkpointing": True,
"lora": True,
}
Ezután határozza meg, hogy milyen mutatókat rögzítsen az edzésnaplókból:
metric_definitions = [
{"Name": "epoch", "Regex": "'epoch': ([0-9.]*)"},
{
"Name": "max_gpu_mem",
"Regex": "Max GPU memory use during training: ([0-9.e-]*) MB",
},
{"Name": "train_loss", "Regex": "'loss': ([0-9.e-]*)"},
{
"Name": "train_samples_per_second",
"Regex": "'train_samples_per_second': ([0-9.e-]*)",
},
{"Name": "eval_loss", "Regex": "'eval_loss': ([0-9.e-]*)"},
{"Name": "eval_accuracy", "Regex": "'eval_accuracy': ([0-9.e-]*)"},
]
Végül határozzon meg egy Hugging Face becslőt, és küldje be képzésre egy ml.g5.2xlarge példánytípuson. Ez egy költséghatékony példánytípus, amely széles körben elérhető számos AWS-régióban:
from sagemaker.experiments.run import Run
from sagemaker.huggingface import HuggingFace
from sagemaker.inputs import TrainingInput
hf_estimator = HuggingFace(
base_job_name="esm-2-membrane-ft",
entry_point="lora-train.py",
source_dir="scripts",
instance_type="ml.g5.2xlarge",
instance_count=1,
transformers_version="4.28",
pytorch_version="2.0",
py_version="py310",
output_path=f"{S3_PATH}/output",
role=sagemaker_execution_role,
hyperparameters=hyperparameters,
metric_definitions=metric_definitions,
checkpoint_local_path="/opt/ml/checkpoints",
sagemaker_session=sagemaker_session,
keep_alive_period_in_seconds=3600,
tags=[{"Key": "project", "Value": "esm-fine-tuning"}],
)
with Run(
experiment_name=EXPERIMENT_NAME,
sagemaker_session=sagemaker_session,
) as run:
hf_estimator.fit(
{
"train": TrainingInput(s3_data=train_s3_uri),
"test": TrainingInput(s3_data=test_s3_uri),
}
)
A következő táblázat összehasonlítja az általunk tárgyalt különböző képzési módszereket, és azok hatását a munkánk futási idejére, pontosságára és GPU-memóriaigényére.
Configuration | Számlázható idő (perc) | Az értékelés pontossága | Maximális GPU memóriahasználat (GB) |
Alapmodell | 28 | 0.91 | 22.6 |
Alap + GA | 21 | 0.90 | 17.8 |
Alap + GC | 29 | 0.91 | 10.2 |
Alap + LoRA | 23 | 0.90 | 18.6 |
Valamennyi módszer nagy kiértékelési pontosságú modelleket állított elő. A LoRA és a gradiens aktiválás használata 18%-kal, illetve 25%-kal csökkentette a futási időt (és költséget). A gradiens ellenőrzőpontok használata 55%-kal csökkentette a maximális GPU memóriahasználatot. Az Ön korlátaitól (költség, idő, hardver) függően ezeknek a megközelítéseknek több értelme lehet, mint a másiknak.
Ezen módszerek mindegyike önmagában is jól működik, de mi történik, ha kombináljuk őket? Az alábbi táblázat összefoglalja az eredményeket.
Configuration | Számlázható idő (perc) | Az értékelés pontossága | Maximális GPU memóriahasználat (GB) |
Minden módszer | 12 | 0.80 | 3.3 |
Ebben az esetben 12%-os pontosságcsökkenést látunk. A futásidőt azonban 57%-kal, a GPU memóriahasználatát pedig 85%-kal csökkentettük! Ez egy hatalmas csökkenés, amely lehetővé teszi számunkra, hogy a költséghatékony példánytípusok széles skáláján tanuljunk.
Tisztítsuk meg
Ha követi a lépést a saját AWS-fiókjában, a további költségek elkerülése érdekében törölje a valós idejű következtetési végpontokat és adatokat.
predictor.delete_endpoint()
bucket = boto_session.resource("s3").Bucket(S3_BUCKET)
bucket.objects.filter(Prefix=S3_PREFIX).delete()
Következtetés
Ebben a bejegyzésben bemutattuk, hogyan lehet hatékonyan finomhangolni az ESM-2-hez hasonló fehérjenyelvi modelleket egy tudományosan releváns feladathoz. A Transformers és PEFT könyvtárak pLMS betanítására való használatával kapcsolatos további információkért tekintse meg a bejegyzéseket Mély tanulás fehérjékkel és a ESMBind (ESMB): Az ESM-2 alacsony rangú adaptációja a fehérjekötő hely előrejelzéséhez a Hugging Face blogon. További példákat találhat a gépi tanulás használatára a fehérjetulajdonságok előrejelzésére a Félelmetes fehérjeelemzés az AWS-en GitHub adattár.
A szerzőről
Brian hűséges az Amazon Web Services globális egészségügyi és élettudományi csapatának vezető AI/ML megoldások építésze. Több mint 17 éves tapasztalattal rendelkezik a biotechnológia és a gépi tanulás terén, és szenvedélyesen segíti az ügyfeleket a genomikai és proteomikai kihívások megoldásában. Szabadidejében szívesen főz és étkezik barátaival és családjával.
- SEO által támogatott tartalom és PR terjesztés. Erősödjön még ma.
- PlatoData.Network Vertical Generative Ai. Erősítse meg magát. Hozzáférés itt.
- PlatoAiStream. Web3 Intelligence. Felerősített tudás. Hozzáférés itt.
- PlatoESG. Carbon, CleanTech, Energia, Környezet, Nap, Hulladékgazdálkodás. Hozzáférés itt.
- PlatoHealth. Biotechnológiai és klinikai vizsgálatok intelligencia. Hozzáférés itt.
- Forrás: https://aws.amazon.com/blogs/machine-learning/efficiently-fine-tune-the-esm-2-protein-language-model-with-amazon-sagemaker/
- :van
- :is
- :nem
- $ UP
- 07
- 1
- 100
- 17
- 20
- 2022
- 2023
- 22
- 28
- 3d
- 425
- 600
- 7
- 750
- 8
- a
- Rólunk
- Fiók
- Felgyülemlett
- felhalmozódás
- pontosság
- pontosan
- Az aktiválás
- aktiválások
- alkalmazkodni
- alkalmazkodás
- alkalmazkodás
- hozzáadásával
- cím
- Hozzáteszi
- fejlett
- AI / ML
- cél
- Minden termék
- lehetővé teszi, hogy
- mentén
- Ábécé
- Is
- amazon
- Amazon SageMaker
- Az Amazon Web Services
- Összegek
- an
- elemzés
- elemez
- és a
- Másik
- válasz
- bármilyen
- megközelítés
- megközelít
- építészet
- VANNAK
- AS
- At
- elérhető
- elkerülése érdekében
- el
- AWS
- vissza
- kiegyensúlyozott
- BE
- mert
- mögött
- között
- előítélet
- nagyobb
- milliárd
- kötés
- biotechnológia
- Blog
- test
- kölcsönkér
- mindkét
- Brian
- épít
- de
- by
- számít
- kiszámítja
- kiszámítása
- hívott
- TUD
- Kapacitás
- elfog
- eset
- esetek
- Okoz
- sejt
- lánc
- láncok
- kihívás
- kihívások
- karakter
- díjak
- chatbots
- olcsóbb
- ellenőrizze
- kémiai
- osztály
- kód
- kombináció
- Companies
- számítás
- számítási
- korlátok
- tartalmaz
- Konténerek
- tartalmaz
- Költség
- költséghatékony
- tudott
- teremt
- készítette
- szokás
- Ügyfelek
- dátum
- adatbázisok
- adatkészletek
- csökkenés
- csökkent
- meghatározott
- meghatározott
- bizonyítani
- igazolták
- attól
- telepíteni
- leírt
- Design
- Ellenére
- eltökélt
- fejlett
- Fejlesztés
- eszköz
- diagram
- különböző
- felfedezés
- tárgyalt
- betegség
- megosztott
- ne
- le-
- letöltései
- gyógyszer
- Kábítószer
- alatt
- minden
- hatás
- hatékonyan
- hatékonyság
- hatékony
- eredményesen
- bármelyik
- más
- lehetővé teszi
- kódolás
- Endpoint
- hatalmas
- korszak
- korszakok
- egyenlő
- Egyenlő
- különösen
- értékelés
- Még
- minden
- példa
- példák
- meghaladó
- túlzott
- létező
- drága
- tapasztalat
- kísérletek
- szakvélemény
- feltárása
- külön-
- Arc
- család
- gyorsabb
- megvalósítható
- jellegű
- Jellemzők
- kevés
- Ábra
- szűrő
- Végül
- Találjon
- végén
- vezetéknév
- következő
- A
- szerencsére
- Előre
- töredék
- Keretrendszer
- barátok
- ból ből
- fagyasztva
- funkció
- további
- kap
- GitHub
- adott
- ad
- Globális
- Go
- jó
- GPU
- GPU
- színátmenetek
- felnőtt
- megtörténik
- hardver
- Legyen
- he
- egészségügyi
- HealthTech
- segít
- segít
- segít
- Magas
- jó minőségű
- övé
- Hogyan
- How To
- azonban
- HTML
- http
- HTTPS
- hatalmas
- HuggingFace
- emberi
- Fáj
- ötlet
- if
- illusztrálja
- importál
- fontos
- javuló
- in
- magában foglalja a
- <p></p>
- fertőzések
- információ
- bemenet
- belső
- példa
- helyette
- kölcsönhatásba
- bele
- kérdések
- IT
- Munka
- Tart
- tartás
- Kulcs
- Királyság
- ismert
- Címkék
- nyelv
- nagy
- nagyobb
- tanulás
- kevesebb
- Lets
- könyvtárak
- könyvtár
- élet
- Élettudományi
- Life Sciences
- mint
- LIMIT
- korlátozások
- Korlátozott
- életek
- Honosítás
- helyszínek
- Hosszú
- hosszú idő
- le
- Sok
- Elő/Utó
- hűséges
- gép
- gépi tanulás
- gép
- készült
- Többség
- csinál
- KÉSZÍT
- kezelhető
- sikerült
- sok
- tömeges
- max
- Maximize
- maximális
- Lehet..
- jelenti
- eszközök
- Memory design
- megy
- módszer
- mód
- Metrics
- perc
- ML
- modell
- modellezés
- modellek
- molekuláris
- több
- hatékonyabb
- mozgó
- mRNS
- sok
- többszörös
- név
- Természet
- elengedhetetlen
- Szükség
- szükséges
- hálózatok
- ideg-
- neurális hálózatok
- Új
- Egyik sem
- regény
- szám
- tárgy
- objektumok
- of
- on
- ONE
- azok
- csak
- optimalizálás
- optimalizált
- or
- érdekében
- rendelés
- eredeti
- eredetileg
- Más
- Egyéb
- másképp
- mi
- ki
- kimenetek
- kívül
- felett
- átfogó
- saját
- paraméterek
- rész
- elhalad
- bérletek
- szenvedélyes
- múlt
- Teljesít
- teljesített
- darab
- Plató
- Platón adatintelligencia
- PlatoData
- játszani
- plusz
- lehetséges
- állás
- Hozzászólások
- potenciális
- potenciálisan
- előre
- Készít
- megakadályozása
- előző
- Probléma
- Feldolgozott
- Készült
- program
- ingatlanait
- Fehérje
- Fehérjék
- biztosít
- nyilvános
- tesz
- kérdés
- Kérdések
- gyorsan
- hatótávolság
- rangsorban
- el
- real-time
- ésszerű
- nyilvántartások
- csökkenteni
- Csökkent
- csökkenti
- csökkentés
- regex
- régiók
- eltávolítása
- cserélni
- raktár
- képvisel
- képviselők
- követelmények
- kutatók
- Tudástár
- illetőleg
- válaszol
- felelős
- Eredmények
- visszatérés
- Vélemények
- jobb
- Szerep
- futás
- futásidejű
- sagemaker
- értékesítés
- Megtakarítás
- Tudomány
- TUDOMÁNYOK
- tudományos
- kaparni
- forgatókönyv
- szkriptek
- szakaszok
- lát
- kiválasztása
- MAGA
- idősebb
- értelemben
- különálló
- Sorozat
- Szolgáltatások
- Szettek
- számos
- mutatott
- Hasonlóképpen
- Egyszerű
- szimulálni
- weboldal
- Méret
- méretek
- kicsit más
- lassú
- lassítások
- kicsi
- kisebb
- megoldások
- Megoldások
- SOLVE
- néhány
- forrás
- különleges
- sebesség
- osztott
- standard
- kezdet
- csúcs-
- tartózkodás
- folyamatosan
- Lépés
- Lépései
- tárolás
- tárolni
- tárolása
- Stratégiailag
- Húr
- struktúra
- struktúrák
- beküldése
- elegendő
- táblázat
- Vesz
- tart
- cél
- célok
- Feladat
- feladatok
- csapat
- technika
- technikák
- teszt
- szöveg
- mint
- hogy
- A
- azok
- Őket
- maguk
- akkor
- gyógykezelés
- Ott.
- ebből adódóan
- Ezek
- ők
- dolgok
- ezt
- ezer
- Keresztül
- idő
- alkalommal
- nak nek
- tokenizálni
- is
- szerszámok
- fáklya
- Végösszeg
- Vonat
- kiképzett
- Képzések
- Átalakítás
- transzformerek
- próba
- igaz
- megpróbál
- hangolás
- FORDULAT
- típus
- típusok
- jellemzően
- megért
- NÉVTELEN
- felesleges
- Frissítések
- frissítve
- frissítése
- us
- Használat
- USAdollár
- használ
- használt
- használ
- segítségével
- szokásos
- érték
- Értékek
- fajta
- nagyon
- keresztül
- akar
- we
- háló
- webes szolgáltatások
- JÓL
- voltak
- Mit
- amikor
- vajon
- ami
- míg
- széles
- Széleskörű
- széles körben
- val vel
- nélkül
- Munka
- dolgozzanak ki
- munkafolyamat
- lenne
- írott
- X
- év
- te
- A te
- zephyrnet