בפוסט זה, אנו מדגימים כיצד לכוונן ביעילות מודל שפת חלבון מתקדם (pLM) כדי לחזות לוקליזציה תת-תאית של חלבון באמצעות אמזון SageMaker.
חלבונים הם המכונות המולקולריות של הגוף, האחראיות על כל דבר, החל מהזזת השרירים ועד לתגובה לזיהומים. למרות מגוון זה, כל החלבונים עשויים משרשרות חוזרות של מולקולות הנקראות חומצות אמינו. הגנום האנושי מקודד 20 חומצות אמינו סטנדרטיות, שלכל אחת מהן מבנה כימי שונה במקצת. אלה יכולים להיות מיוצגים על ידי אותיות האלפבית, אשר לאחר מכן מאפשר לנו לנתח ולחקור חלבונים כמחרוזת טקסט. המספר העצום האפשרי של רצפי ומבנים של חלבונים הוא מה שנותן לחלבונים את מגוון השימושים הרחב שלהם.
חלבונים ממלאים גם תפקיד מפתח בפיתוח תרופות, כמטרות פוטנציאליות אך גם כתרופות. כפי שמוצג בטבלה הבאה, רבות מהתרופות הנמכרות ביותר בשנת 2022 היו חלבונים (במיוחד נוגדנים) או מולקולות אחרות כמו mRNA שתורגמו לחלבונים בגוף. בגלל זה, חוקרים רבים במדעי החיים צריכים לענות על שאלות על חלבונים מהר יותר, זול יותר ומדויק יותר.
שם | יַצרָן | מכירות גלובליות 2022 (מיליארדי דולרים) | אינדיקציות |
קומירנאט | פייזר / BioNTech | $40.8 | תקופת הקורונה |
ספייקוואקס | מודרני | $21.8 | תקופת הקורונה |
יומירה | AbbVie | $21.6 | דלקת פרקים, מחלת קרוהן ועוד |
קייטרודה | מרק | $21.0 | סוגי סרטן שונים |
מקור נתונים: Urquhart, L. חברות ותרופות מובילות לפי מכירות ב-2022. Nature Reviews Drug Discovery 22, 260–260 (2023).
מכיוון שאנו יכולים לייצג חלבונים כרצפים של תווים, אנו יכולים לנתח אותם באמצעות טכניקות שפותחו במקור עבור שפה כתובה. זה כולל מודלים של שפות גדולות (LLMs) שהוכשרו מראש על מערכי נתונים ענקיים, אשר לאחר מכן ניתן להתאים למשימות ספציפיות, כמו סיכום טקסט או צ'אט בוטים. באופן דומה, pLMs מאומנים מראש על מסדי נתונים גדולים של רצפי חלבון תוך שימוש בלמידה ללא תווית, בפיקוח עצמי. אנחנו יכולים להתאים אותם לחזות דברים כמו מבנה תלת-ממד של חלבון או איך הוא עשוי לקיים אינטראקציה עם מולקולות אחרות. חוקרים אפילו השתמשו ב-pLMs כדי לעצב חלבונים חדשים מאפס. כלים אלה אינם מחליפים מומחיות מדעית אנושית, אך יש להם פוטנציאל להאיץ את הפיתוח הפרה-קליני ואת עיצוב הניסויים.
אתגר אחד עם דגמים אלה הוא הגודל שלהם. הן ה-LLMs וה-pLMs גדלו בסדרי גודל בשנים האחרונות, כפי שמודגם באיור הבא. זה אומר שיכול לקחת הרבה זמן כדי לאמן אותם לדיוק מספיק. זה גם אומר שאתה צריך להשתמש בחומרה, במיוחד GPUs, עם כמויות גדולות של זיכרון כדי לאחסן את פרמטרי הדגם.
זמני אימון ארוכים, בתוספת מקרים גדולים, שווים עלות גבוהה, מה שיכול להרחיק את העבודה הזו מהישג ידם של חוקרים רבים. לדוגמה, בשנת 2023, א צוות המחקר תיאר אימון pLM של 100 מיליארד פרמטרים על 768 A100 GPUs למשך 164 ימים! למרבה המזל, במקרים רבים אנו יכולים לחסוך זמן ומשאבים על ידי התאמת PLM קיים למשימה הספציפית שלנו. טכניקה זו נקראת כוונון עדין, וגם מאפשר לנו להשאיל כלים מתקדמים מסוגים אחרים של מודל שפה.
סקירת פתרונות
הבעיה הספציפית שאנו מתייחסים אליה בפוסט זה היא לוקליזציה תת-תאית: בהינתן רצף חלבונים, האם נוכל לבנות מודל שיוכל לחזות אם הוא חי מבחוץ (קרום התא) או בתוך התא? זהו פיסת מידע חשובה שיכולה לעזור לנו להבין את הפונקציה והאם היא תהפוך למטרה טובה לתרופה.
אנו מתחילים בהורדת מערך נתונים ציבורי באמצעות סטודיו SageMaker של אמזון. לאחר מכן אנו משתמשים ב- SageMaker כדי לכוונן את מודל שפת החלבון ESM-2 באמצעות שיטת אימון יעילה. לבסוף, אנו פורסים את המודל כנקודת קצה בזמן אמת ומשתמשים בו כדי לבדוק כמה חלבונים ידועים. התרשים הבא ממחיש זרימת עבודה זו.
בסעיפים הבאים, אנו עוברים על השלבים להכנת נתוני ההדרכה שלך, יצירת סקריפט הדרכה והפעלת עבודת הדרכה של SageMaker. כל הקוד המופיע בפוסט זה זמין ב- GitHub.
הכן את נתוני ההדרכה
אנו משתמשים בחלק מה מערך נתונים של DeepLoc-2, המכיל כמה אלפי חלבוני SwissProt עם מיקומים שנקבעו בניסוי. אנו מסננים לרצפים באיכות גבוהה בין 100-512 חומצות אמינו:
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"]]
לאחר מכן, אנו מסמנים את הרצפים ומפצלים אותם לקבוצות אימון והערכה:
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")
לבסוף, אנו מעלים את נתוני ההדרכה וההערכה המעובדים אל שירות אחסון פשוט של אמזון (אמזון 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)
צור תסריט הדרכה
מצב סקריפט של SageMaker מאפשר לך להפעיל את קוד ההדרכה המותאם אישית שלך במיכלי מסגרת למידת מכונה (ML) אופטימלית המנוהלים על ידי AWS. עבור דוגמה זו, אנו מתאימים את an סקריפט קיים לסיווג טקסט מתוך חיבוק פנים. זה מאפשר לנו לנסות מספר שיטות לשיפור היעילות של עבודת ההדרכה שלנו.
שיטה 1: שיעור אימון משוקלל
כמו מערכי נתונים ביולוגיים רבים, נתוני DeepLoc מחולקים בצורה לא אחידה, כלומר אין מספר שווה של חלבונים ממברנה ולא ממברנה. נוכל לדגום מחדש את הנתונים שלנו ולזרוק רשומות ממעמד הרוב. עם זאת, זה יפחית את סך נתוני האימון ועלול לפגוע בדיוק שלנו. במקום זאת, אנו מחשבים את משקלי הכיתה במהלך עבודת האימון ומשתמשים בהם כדי להתאים את הירידה.
בתסריט ההדרכה שלנו, אנו מחלקים משנה את Trainer
כיתה מ transformers
עם WeightedTrainer
מחלקה שלוקחת בחשבון משקלי מחלקה בעת חישוב אובדן צולב אנטרופיה. זה עוזר למנוע הטיה במודל שלנו:
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: צבירת שיפוע
צבירת שיפוע היא טכניקת אימון המאפשרת למודלים לדמות אימון בגדלים גדולים יותר. בדרך כלל, גודל האצווה (מספר הדגימות המשמש לחישוב השיפוע בשלב אימון אחד) מוגבל על ידי קיבולת הזיכרון של ה-GPU. עם צבירת שיפועים, המודל מחשב תחילה שיפועים על קבוצות קטנות יותר. לאחר מכן, במקום לעדכן את משקלי הדגם מיד, ההדרגות מצטברות על פני קבוצות קטנות מרובות. כאשר ההדרגות המצטברות שוות לגודל אצווה גדול יותר, שלב האופטימיזציה מתבצע כדי לעדכן את המודל. זה מאפשר לדגמים להתאמן עם אצוות גדולות יותר מבלי לחרוג ממגבלת הזיכרון של ה-GPU.
עם זאת, יש צורך בחישוב נוסף עבור אצווה קטנה יותר קדימה ואחורה. גדלי אצווה מוגדלים באמצעות צבירת שיפוע יכולים להאט את האימון, במיוחד אם נעשה שימוש ביותר מדי שלבי צבירה. המטרה היא למקסם את השימוש ב-GPU אך להימנע מהאטות מוגזמות בשל יותר מדי שלבי חישוב שיפוע נוסף.
שיטה 3: בדיקת שיפוע
בדיקת שיפוע היא טכניקה המצמצמת את הזיכרון הדרוש במהלך האימון תוך שמירה על זמן חישוב סביר. רשתות עצביות גדולות תופסות הרבה זיכרון מכיוון שהן צריכות לאחסן את כל ערכי הביניים מהמעבר קדימה כדי לחשב את השיפועים במהלך המעבר אחורה. זה יכול לגרום לבעיות זיכרון. פתרון אחד הוא לא לאחסן את ערכי הביניים האלה, אבל אז יש לחשב אותם מחדש במהלך המעבר לאחור, שלוקח הרבה זמן.
בדיקת שיפוע מספקת גישה מאוזנת. זה שומר רק חלק מערכי הביניים, הנקראים מחסומים, ומחשב מחדש את האחרים לפי הצורך. לכן, הוא משתמש בפחות זיכרון מאשר אחסון הכל, אבל גם פחות חישוב מאשר חישוב מחדש של הכל. על ידי בחירה אסטרטגית אילו הפעלות למחסום, בדיקת שיפוע מאפשרת לאמן רשתות עצביות גדולות עם שימוש בזיכרון וזמן חישוב שניתן לניהול. טכניקה חשובה זו מאפשרת לאמן דגמים גדולים מאוד שאחרת היו נתקלים במגבלות זיכרון.
בסקריפט ההדרכה שלנו, אנו מפעילים הפעלת גרדיאנט ובדיקת נקודות על ידי הוספת הפרמטרים הדרושים ל- TrainingArguments
אובייקט:
from transformers import TrainingArguments
training_args = TrainingArguments(
gradient_accumulation_steps=4,
gradient_checkpointing=True
)
שיטה 4: התאמה בדרגה נמוכה של LLMs
דגמי שפה גדולים כמו ESM-2 יכולים להכיל מיליארדי פרמטרים שיקרים לאימון והפעלה. חוקרים פיתח שיטת אימון בשם Low-Rank Adaptation (LoRA) כדי להפוך את כוונון הדגמים הענקיים הללו ליעל יותר.
הרעיון המרכזי מאחורי LoRA הוא שכאשר מכווננים מודל למשימה ספציפית, אין צורך לעדכן את כל הפרמטרים המקוריים. במקום זאת, LoRA מוסיפה מטריצות קטנות יותר למודל המשמרות את התשומות והפלטים. רק המטריצות הקטנות הללו מתעדכנות במהלך כוונון עדין, שהוא הרבה יותר מהיר וצורך פחות זיכרון. הפרמטרים המקוריים של הדגם נשארים קפואים.
לאחר כוונון עדין עם LoRA, תוכלו למזג את המטריצות הקטנות המותאמות בחזרה לדגם המקורי. או שאתה יכול לשמור אותם בנפרד אם אתה רוצה לכוונן במהירות את המודל למשימות אחרות מבלי לשכוח את הקודמות. בסך הכל, LoRA מאפשר התאמה יעילה של LLM למשימות חדשות בשבריר מהעלות הרגילה.
בסקריפט ההדרכה שלנו, אנו מגדירים את LoRA באמצעות ה PEFT
ספריה מ-Huging Face:
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)
שלח משרת הדרכה של SageMaker
לאחר שהגדרת את סקריפט ההדרכה שלך, תוכל להגדיר ולהגיש עבודת הדרכה של SageMaker. ראשית, ציין את ההיפרפרמטרים:
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,
}
לאחר מכן, הגדר אילו מדדים ללכוד מיומני ההדרכה:
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-]*)"},
]
לבסוף, הגדר מעריך Hugging Face ושלח אותו לאימון על סוג מופע ml.g5.2xlarge. זהו סוג מופע חסכוני שזמין באופן נרחב באזורי AWS רבים:
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),
}
)
הטבלה הבאה משווה את שיטות האימון השונות בהן דנו והשפעתן על זמן הריצה, הדיוק ודרישות זיכרון ה-GPU של העבודה שלנו.
תְצוּרָה | זמן לחיוב (דקות) | דיוק הערכה | שימוש מקסימלי בזיכרון GPU (GB) |
מודל בסיס | 28 | 0.91 | 22.6 |
בסיס + GA | 21 | 0.90 | 17.8 |
בסיס + GC | 29 | 0.91 | 10.2 |
בסיס + LoRA | 23 | 0.90 | 18.6 |
כל השיטות יצרו מודלים עם דיוק הערכה גבוה. שימוש ב-LoRA והפעלת גרדיאנט הפחית את זמן הריצה (והעלות) ב-18% ו-25%, בהתאמה. שימוש בבדיקת שיפוע הוריד את השימוש המרבי בזיכרון GPU ב-55%. בהתאם לאילוצים שלך (עלות, זמן, חומרה), אחת מהגישות הללו עשויה להיות הגיונית יותר מאחרת.
כל אחת מהשיטות הללו מתפקדת היטב בפני עצמה, אבל מה קורה כשאנחנו משתמשים בהן בשילוב? הטבלה הבאה מסכמת את התוצאות.
תְצוּרָה | זמן לחיוב (דקות) | דיוק הערכה | שימוש מקסימלי בזיכרון GPU (GB) |
כל השיטות | 12 | 0.80 | 3.3 |
במקרה זה, אנו רואים ירידה של 12% ברמת הדיוק. עם זאת, צמצמנו את זמן הריצה ב-57% ואת השימוש בזיכרון GPU ב-85%! מדובר בירידה מסיבית שמאפשרת לנו להתאמן על מגוון רחב של סוגי מופעים חסכוניים.
לנקות את
אם אתה עוקב בחשבון AWS משלך, מחק את כל נקודות הקצה והנתונים בזמן אמת שיצרת כדי למנוע חיובים נוספים.
predictor.delete_endpoint()
bucket = boto_session.resource("s3").Bucket(S3_BUCKET)
bucket.objects.filter(Prefix=S3_PREFIX).delete()
סיכום
בפוסט זה, הדגמנו כיצד לכוונן ביעילות מודלים של שפת חלבון כמו ESM-2 עבור משימה רלוונטית מבחינה מדעית. למידע נוסף על השימוש בספריות רובוטריקים ו-PEFT לאימון pLMS, עיין בפוסטים למידה עמוקה עם חלבונים ו ESMBind (ESMB): התאמה בדרגה נמוכה של ESM-2 לחיזוי אתר קשירת חלבון בבלוג חיבוק פנים. אתה יכול גם למצוא דוגמאות נוספות לשימוש למידת מכונה כדי לחזות תכונות חלבון ב- ניתוח חלבון מדהים ב-AWS מאגר GitHub.
על המחבר
בריאן נאמן הוא ארכיטקט פתרונות בינה מלאכותית/ML בכיר בצוות שירותי הבריאות ומדעי החיים העולמי בשירותי האינטרנט של אמזון. יש לו יותר מ-17 שנות ניסיון בביוטכנולוגיה ולמידת מכונה, והוא נלהב לעזור ללקוחות לפתור אתגרים גנומיים ופרוטאומיים. בזמנו הפנוי הוא נהנה לבשל ולאכול עם חבריו ובני משפחתו.
- הפצת תוכן ויחסי ציבור מופעל על ידי SEO. קבל הגברה היום.
- PlatoData.Network Vertical Generative Ai. העצים את עצמך. גישה כאן.
- PlatoAiStream. Web3 Intelligence. הידע מוגבר. גישה כאן.
- PlatoESG. פחמן, קלינטק, אנרגיה, סביבה, שמש, ניהול פסולת. גישה כאן.
- PlatoHealth. מודיעין ביוטכנולוגיה וניסויים קליניים. גישה כאן.
- מקור: https://aws.amazon.com/blogs/machine-learning/efficiently-fine-tune-the-esm-2-protein-language-model-with-amazon-sagemaker/
- :יש ל
- :הוא
- :לֹא
- $ למעלה
- 07
- 1
- 100
- 17
- 20
- 2022
- 2023
- 22
- 28
- 3d
- 425
- 600
- 7
- 750
- 8
- a
- אודות
- חֶשְׁבּוֹן
- מצטבר
- הצטברות
- דיוק
- במדויק
- הפעלה
- הפעלות
- להסתגל
- הסתגלות
- מסתגל
- מוסיף
- כתובת
- מוסיף
- מתקדם
- AI / ML
- המטרה
- תעשיות
- מאפשר
- לאורך
- אלפבית
- גם
- אמזון בעברית
- אמזון SageMaker
- אמזון שירותי אינטרנט
- כמויות
- an
- אנליזה
- לנתח
- ו
- אחר
- לענות
- כל
- גישה
- גישות
- ארכיטקטורה
- ARE
- AS
- At
- זמין
- לְהִמָנַע
- רָחוֹק
- AWS
- בחזרה
- מאוזן
- BE
- כי
- מאחור
- בֵּין
- הטיה
- גדול
- מיליארדים
- כריכה
- ביוטכנולוגיה
- בלוג
- גוּף
- לִלווֹת
- שניהם
- בריאן
- לִבנוֹת
- אבל
- by
- לחשב
- מחשב
- חישוב
- נקרא
- CAN
- קיבולת
- ללכוד
- מקרה
- מקרים
- לגרום
- תא
- שרשרת
- שרשראות
- לאתגר
- האתגרים
- תווים
- חיובים
- chatbots
- זול יותר
- לבדוק
- כימי
- בכיתה
- קוד
- שילוב
- חברות
- חישוב
- חישובית
- אילוצים
- להכיל
- מכולות
- מכיל
- עלות
- עלות תועלת
- יכול
- לִיצוֹר
- נוצר
- מנהג
- לקוחות
- נתונים
- מאגרי מידע
- מערכי נתונים
- להקטין
- ירד
- לְהַגדִיר
- מוגדר
- להפגין
- מופגן
- תלוי
- לפרוס
- מְתוּאָר
- עיצוב
- למרות
- נחוש
- מפותח
- צעצועי התפתחות
- מכשיר
- תרשים
- אחר
- תגלית
- נָדוֹן
- מַחֲלָה
- מופץ
- לא
- מטה
- הורדה
- תרופה
- סמים
- בְּמַהֲלָך
- כל אחד
- השפעה
- יעילות
- יְעִילוּת
- יעיל
- יעילות
- או
- אחר
- מאפשר
- הַצפָּנָה
- נקודת קצה
- עֲנָקִי
- תקופה
- תקופות
- שווה
- שווים
- במיוחד
- הערכה
- אֲפִילוּ
- הכל
- דוגמה
- דוגמאות
- העולה
- מופרז
- קיימים
- יקר
- ניסיון
- ניסויים
- מומחיות
- לחקור
- נוסף
- פָּנִים
- משפחה
- מהר יותר
- אפשרי
- מומלצים
- תכונות
- מעטים
- תרשים
- לסנן
- בסופו של דבר
- סוף
- ראשון
- הבא
- בעד
- למרבה המזל
- קדימה
- שבריר
- מסגרת
- חברים
- החל מ-
- קפוא
- פונקציה
- נוסף
- לקבל
- GitHub
- נתן
- נותן
- גלוֹבָּלִי
- Go
- טוב
- GPU
- GPUs
- שיפועים
- מְגוּדָל
- קורה
- חומרה
- יש
- he
- בריאות
- HealthTech
- לעזור
- עזרה
- עוזר
- גָבוֹהַ
- באיכות גבוהה
- שֶׁלוֹ
- איך
- איך
- אולם
- HTML
- http
- HTTPS
- עצום
- חיבוק פנים
- בן אנוש
- כאב
- רעיון
- if
- מדגים
- לייבא
- חשוב
- שיפור
- in
- כולל
- גדל
- זיהומים
- מידע
- תשומות
- בתוך
- למשל
- במקום
- אינטראקציה
- אל תוך
- בעיות
- IT
- עבודה
- שמור
- שמירה
- מפתח
- מלכות
- ידוע
- תוויות
- שפה
- גָדוֹל
- גדול יותר
- למידה
- פחות
- מאפשר לי
- ספריות
- סִפְרִיָה
- החיים
- מדעי החיים
- מדעי חיים
- כמו
- להגביל
- מגבלות
- מוגבל
- חי
- לוקליזציה
- מקומות
- ארוך
- הרבה זמן
- את
- מגרש
- נמוך
- נֶאֱמָן
- מכונה
- למידת מכונה
- מכונה
- עשוי
- הרוב
- לעשות
- עושה
- ניתן לניהול
- הצליח
- רב
- מסיבי
- מקסימום
- לְהַגדִיל
- מקסימום
- מאי..
- משמעות
- אומר
- זכרון
- למזג
- שיטה
- שיטות
- מדדים
- דקות
- ML
- מודל
- דוגמנות
- מודלים
- מולקולרי
- יותר
- יותר יעיל
- נע
- mRNA
- הרבה
- מספר
- שם
- טבע
- הכרחי
- צורך
- נחוץ
- רשתות
- עצבי
- רשתות עצביות
- חדש
- ללא חתימה
- רומן
- מספר
- אובייקט
- אובייקטים
- of
- on
- ONE
- יחידות
- רק
- אופטימיזציה
- אופטימיזציה
- or
- להזמין
- הזמנות
- מְקוֹרִי
- בְּמָקוֹר
- אחר
- אחרים
- אַחֶרֶת
- שלנו
- הַחוּצָה
- פלטים
- בחוץ
- יותר
- מקיף
- שֶׁלוֹ
- פרמטרים
- חלק
- לעבור
- מעברי
- לוהט
- עבר
- לְבַצֵעַ
- ביצעתי
- לְחַבֵּר
- אפלטון
- מודיעין אפלטון
- אפלטון נתונים
- לְשַׂחֵק
- ועוד
- אפשרי
- הודעה
- הודעות
- פוטנציאל
- פוטנציאל
- לחזות
- להכין
- למנוע
- קודם
- בעיה
- מעובד
- מיוצר
- פּרוֹיֶקט
- נכסים
- חֶלְבּוֹן
- חלבונים
- מספק
- ציבורי
- גם
- שאלה
- שאלות
- מהירות
- רכס
- לדרג
- לְהַגִיעַ
- זמן אמת
- סביר
- רשום
- להפחית
- מופחת
- מפחית
- הפחתה
- regex
- אזורים
- רלוונטי
- להסיר
- להחליף
- מאגר
- לייצג
- מיוצג
- דרישות
- חוקרים
- משאבים
- בהתאמה
- להגיב
- אחראי
- תוצאות
- לַחֲזוֹר
- חוות דעת של לקוחותינו
- תקין
- תפקיד
- הפעלה
- זמן ריצה
- בעל חכמים
- מכירות
- שמור
- מדע
- מדעים
- מדעי
- לגרד
- תסריט
- סקריפטים
- סעיפים
- לִרְאוֹת
- בחירה
- עצמי
- לחצני מצוקה לפנסיונרים
- תחושה
- נפרד
- רצף
- שירותים
- סטים
- כמה
- הראה
- באופן דומה
- פָּשׁוּט
- לדמות
- אתר
- מידה
- גדל
- מעט שונה
- להאט
- האטות
- קטן
- קטן יותר
- פִּתָרוֹן
- פתרונות
- לפתור
- כמה
- מָקוֹר
- ספציפי
- מְהִירוּת
- לפצל
- תֶקֶן
- התחלה
- מדינה-of-the-art
- להשאר
- בהתמדה
- שלב
- צעדים
- אחסון
- חנות
- אחסון
- מבחינה אסטרטגית
- מחרוזת
- מִבְנֶה
- מבנים
- להגיש
- מספיק
- שולחן
- לקחת
- לוקח
- יעד
- מטרות
- המשימות
- משימות
- נבחרת
- טכניקה
- טכניקות
- מבחן
- טֶקסט
- מֵאֲשֶׁר
- זֶה
- השמיים
- שֶׁלָהֶם
- אותם
- עצמם
- אז
- תוֹרַת הָרִפּוּי
- שם.
- לכן
- אלה
- הֵם
- דברים
- זֶה
- אלף
- דרך
- זמן
- פִּי
- ל
- tokenize
- גַם
- כלים
- לפיד
- סה"כ
- רכבת
- מְאוּמָן
- הדרכה
- לשנות
- רוֹבּוֹטרִיקִים
- מִשׁפָּט
- נָכוֹן
- לנסות
- כונון
- תור
- סוג
- סוגים
- בדרך כלל
- להבין
- ללא שם
- מְיוּתָר
- עדכון
- מְעוּדכָּן
- עדכון
- us
- נוֹהָג
- ש״ח
- להשתמש
- מְשׁוּמָשׁ
- שימושים
- באמצעות
- כרגיל
- ערך
- ערכים
- מגוון
- מאוד
- באמצעות
- רוצה
- we
- אינטרנט
- שירותי אינטרנט
- טוֹב
- היו
- מה
- מתי
- אם
- אשר
- בזמן
- רָחָב
- טווח רחב
- באופן נרחב
- עם
- לְלֹא
- תיק עבודות
- להתאמן
- זרימת עבודה
- היה
- כתוב
- X
- שנים
- אתה
- זפירנט