В настоящее время я использую следующую программу, как упомянуто выше. Я использую unsloth для более быстрой обработки.
Параметры, с которыми я загрузил модель, приведены ниже:
prompt = """
### Translation Task:
You are a professional translator tasked with translating the following sentence from English into {language_name}. Ensure you maintain semantic similarity, capture emotional nuances, and reflect subtleties such as character relationships, implied meanings, and cultural context. Pay particular attention to the tone and intent behind phrases and adapt them appropriately for the target language.
### Original Sentence:
{sentence}
### Examples of Nuanced Translations:
- English: "Hello!! Chris. How are you?" Asked Jane.
- Nuanced Translation: "Bonjour!! Oncle Chris. Comment ça va?" Demanda Jane.
*Note: In this translation, the familiarity and familial relationship is emphasized by modifying "Hello" to "Bonjour, Oncle," reflecting a possible closeness or respect in the cultural context.
- English: "For shame! For shame! cried the lady's maid."
- Nuanced Translation: "Quelle honte! Quelle honte! continua la femme de chambre, oui, elle est semblable à un chat enragé."
*Note: Here, the translator added "oui, elle est semblable à un chat enragé," an insult not present in the original, to intensify the emotional tone and adapt the phrase culturally.
### Your Translation:
{translation}
"""
EOS_TOKEN = tokenizer.eos_token if tokenizer.eos_token else ""
def formatting_prompts(examples):
languages = examples["language_name"]
sentences = examples["aligned_src"]
translations = examples["aligned_tgt"]
texts = []
for language, sentence, translation in zip(languages, sentences, translations):
text = prompt.format(language_name=language, sentence=sentence, translation=translation) + EOS_TOKEN
texts.append(text)
return {"text": texts}
# Apply the new formatting function to datasets
train_dataset = train_dataset.map(formatting_prompts, batched=True)
val_dataset = val_dataset.map(formatting_prompts, batched=True)
test_dataset = test_dataset.map(formatting_prompts, batched=True)
То, что я делаю, это задача по переводу сборников рассказов. У меня есть набор данных, выровненный по предложениям, созданный с помощью инструмента bertalign, который содержит около 60 000 наблюдений. Выравнивание предложений осуществляется между английским и испанским, французским и португальским языками. Я разделил поезд и тест как соотношение 0,1, и мои данные проверки содержат около 6000 наблюдений, отделенных от данных поезда.
Параметры, которые я установил, следующие:
trainer = SFTTrainer(
model=model,
tokenizer=tokenizer,
train_dataset=train_dataset,
eval_dataset=val_dataset,
dataset_text_field="text",
max_seq_length=384,
dataset_num_proc=2,
packing=False,
args=TrainingArguments(
output_dir=checkpoint_dir, # Use checkpoint directory for all outputs
per_device_train_batch_size=batch_size,
per_device_eval_batch_size=eval_batch_size,
gradient_accumulation_steps=4,
warmup_steps=243,
num_train_epochs=18,
learning_rate=2e-4,
fp16=not is_bfloat16_supported(),
bf16=is_bfloat16_supported(),
logging_steps=20,
eval_strategy="steps",
eval_steps=60,
save_strategy="steps",
save_steps=60, # Ensure this aligns with eval_steps if using step-based strategy
save_total_limit=5,
load_best_model_at_end=True,
metric_for_best_model="eval_loss",
greater_is_better=False,
optim="adamw_hf",
weight_decay=0.01,
lr_scheduler_type="linear",
report_to="wandb",
seed=4131,
resume_from_checkpoint=checkpoint_dir # Resume only if checkpoint files exist
),
callbacks=[
EarlyStoppingCallback(early_stopping_patience=5)
],
)
Результаты обучения вышеуказанной модели следующие:
потери при обучении и потери при проверке
Поэтому я сделал некоторые прогнозы по тесту установил, и я обнаружил, что выходы действительно хороши на одном конце. Но иногда модель выдает мусор, как на этом изображении: Прогнозы. Как вы можете видеть, выходные данные содержат текст из подсказок, и они также дали мне результат на хинди, хотя я не обучал его этому конкретному языку.
Есть идеи, почему это происходит? Это из-за значений ранга и альфа, которые я резко увеличил в конфигурации peft? Любая информация полезна.
В настоящее время я использую следующую программу, как упомянуто выше. Я использую unsloth для более быстрой обработки. Параметры, с которыми я загрузил модель, приведены ниже: [code]model, tokenizer = FastLanguageModel.from_pretrained( model_name="unsloth/Meta-Llama-3.1-8B-Instruct-bnb-4bit", max_seq_length=2048, dtype=None, # None for auto detection load_in_4bit=True, # reduces memory usage attn_implementation="flash_attention_2", token="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" ) import torch model = FastLanguageModel.get_peft_model( model, r = 64, target_modules = ["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj",], lora_alpha = 128, lora_dropout = 0.2, bias = "none", use_gradient_checkpointing = "unsloth", random_state = 4, use_rslora = False, loftq_config = None, ) [/code] Подсказка, которую я использовал для обучения: [code]prompt = """ ### Translation Task: You are a professional translator tasked with translating the following sentence from English into {language_name}. Ensure you maintain semantic similarity, capture emotional nuances, and reflect subtleties such as character relationships, implied meanings, and cultural context. Pay particular attention to the tone and intent behind phrases and adapt them appropriately for the target language.
### Original Sentence: {sentence}
### Examples of Nuanced Translations: - English: "Hello!! Chris. How are you?" Asked Jane. - Nuanced Translation: "Bonjour!! Oncle Chris. Comment ça va?" Demanda Jane. *Note: In this translation, the familiarity and familial relationship is emphasized by modifying "Hello" to "Bonjour, Oncle," reflecting a possible closeness or respect in the cultural context.
- English: "For shame! For shame! cried the lady's maid." - Nuanced Translation: "Quelle honte! Quelle honte! continua la femme de chambre, oui, elle est semblable à un chat enragé." *Note: Here, the translator added "oui, elle est semblable à un chat enragé," an insult not present in the original, to intensify the emotional tone and adapt the phrase culturally.
### Your Translation: {translation} """
EOS_TOKEN = tokenizer.eos_token if tokenizer.eos_token else ""
texts = [] for language, sentence, translation in zip(languages, sentences, translations): text = prompt.format(language_name=language, sentence=sentence, translation=translation) + EOS_TOKEN texts.append(text)
return {"text": texts}
# Apply the new formatting function to datasets train_dataset = train_dataset.map(formatting_prompts, batched=True) val_dataset = val_dataset.map(formatting_prompts, batched=True) test_dataset = test_dataset.map(formatting_prompts, batched=True) [/code]
То, что я делаю, это задача по переводу сборников рассказов. У меня есть набор данных, выровненный по предложениям, созданный с помощью инструмента bertalign, который содержит около 60 000 наблюдений. Выравнивание предложений осуществляется между английским и испанским, французским и португальским языками. Я разделил поезд и тест как соотношение 0,1, и мои данные проверки содержат около 6000 наблюдений, отделенных от данных поезда. Параметры, которые я установил, следующие: [code]trainer = SFTTrainer( model=model, tokenizer=tokenizer, train_dataset=train_dataset, eval_dataset=val_dataset, dataset_text_field="text", max_seq_length=384, dataset_num_proc=2, packing=False, args=TrainingArguments( output_dir=checkpoint_dir, # Use checkpoint directory for all outputs per_device_train_batch_size=batch_size, per_device_eval_batch_size=eval_batch_size, gradient_accumulation_steps=4, warmup_steps=243, num_train_epochs=18, learning_rate=2e-4, fp16=not is_bfloat16_supported(), bf16=is_bfloat16_supported(), logging_steps=20, eval_strategy="steps", eval_steps=60, save_strategy="steps", save_steps=60, # Ensure this aligns with eval_steps if using step-based strategy save_total_limit=5, load_best_model_at_end=True, metric_for_best_model="eval_loss", greater_is_better=False, optim="adamw_hf", weight_decay=0.01, lr_scheduler_type="linear", report_to="wandb", seed=4131, resume_from_checkpoint=checkpoint_dir # Resume only if checkpoint files exist ), callbacks=[ EarlyStoppingCallback(early_stopping_patience=5) ], ) [/code] Результаты обучения вышеуказанной модели следующие: потери при обучении и потери при проверке Поэтому я сделал некоторые прогнозы по тесту установил, и я обнаружил, что выходы действительно хороши на одном конце. Но иногда модель выдает мусор, как на этом изображении: Прогнозы. Как вы можете видеть, выходные данные содержат текст из подсказок, и они также дали мне результат на хинди, хотя я не обучал его этому конкретному языку. Есть идеи, почему это происходит? Это из-за значений ранга и альфа, которые я резко увеличил в конфигурации peft? Любая информация полезна.
Я и моя команда совершенно новички в этом курсе Python, где все впервые используют Python. Нам дали проект по использованию Python и его различных библиотек для « Обнаружения маршрута/пути дыма лесных пожаров с помощью глубокого и машинного обучения...
У меня apache2 успешно установлен на Ubuntu 24.04. Вызов Curl либо по адресу 127.0.0.1, либо по IP-адресу, связанному с сетевой картой, работает должным образом.
ubuntu@ubuntu:~$ ip addr show dev ens33 | grep inet
inet 192.168.14.129/24 metric 100...
У меня есть программа, которая больше не поддерживается и не имеет исходного кода. Поэтому я декомпилировал его, чтобы внести исправления, поскольку требуемые исправления значительны. Я решил использовать dnSpy для экспорта декомпилированного кода...
Я экспериментировал с простым «Привет, мир!» программы на C, C++, Java и Python, и я заметил, что мои программы C и C++ работают значительно медленнее по сравнению с программами Python и Java.
Я запускаю эти программы на мощная машина, поэтому...