Exaone3 Instructrans V2 Enko 7.8b
基於exaone-3-7.8B-it訓練的英韓翻譯模型,專注於指令數據集的翻譯任務
下載量 45
發布時間 : 8/24/2024
模型概述
該模型是專為英語到韓語翻譯任務優化的指令微調模型,在多個英韓翻譯數據集上訓練,支持高質量的文本生成和翻譯任務
模型特點
高質量英韓翻譯
在多個專業翻譯數據集上訓練,提供準確的英韓互譯能力
指令優化
針對指令翻譯任務特別優化,能理解並執行復雜的翻譯指令
大上下文支持
支持長達8192token的上下文窗口,適合長文本翻譯
模型能力
英語到韓語翻譯
韓語到英語翻譯
文本生成
指令理解
使用案例
專業翻譯
技術文檔翻譯
將英文技術文檔準確翻譯為韓文
在技術術語翻譯上表現優異
新聞翻譯
將英文新聞報道翻譯為韓文
保持原文語義和風格的同時進行本地化
教育應用
語言學習輔助
為語言學習者提供高質量的翻譯參考
幫助學習者理解複雜表達
🚀 instructTrans-v2
instructTrans-v2 是一個基於特定模型在英韓翻譯數據集上訓練得到的模型,可實現從英語到韓語的高質量翻譯。它在多種數據集上進行評估,展現出了良好的性能,為英韓翻譯任務提供了有效的解決方案。
🚀 快速開始
生成文本
此模型支持從英語到韓語的翻譯。要進行文本翻譯,請使用以下 Python 代碼:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "Translation-EnKo/exaone3-instrucTrans-v2-enko-7.8b"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
device_map="auto",
torch_dtype=torch.bfloat16
)
system_prompt="당신은 번역기 입니다. 영어를 한국어로 번역하세요."
sentence = "The aerospace industry is a flower in the field of technology and science."
conversation = [{'role': 'system', 'content': system_prompt},
{'role': 'user', 'content': sentence}]
inputs = tokenizer.apply_chat_template(
conversation,
tokenize=True,
add_generation_prompt=True,
return_tensors='pt'
).to("cuda")
outputs = model.generate(inputs, max_new_tokens=4096) # Finetuned with length 8192
print(tokenizer.decode(outputs[0][len(inputs[0]):], skip_special_tokens=True))
使用 vLLM 進行推理
展開/收起推理代碼
# 需要至少 24GB VRAM 的 GPU。如果只有 12GB VRAM,則需要在 FP8 模式下運行。
python vllm_inference.py -gpu_id 0 -split_idx 0 -split_num 2 -dname "nvidia/HelpSteer" -untrans_col 'helpfulness' 'correctness' 'coherence' 'complexity' 'verbosity' > 0.out
python vllm_inference.py -gpu_id 1 -split_idx 1 -split_num 2 -dname "nvidia/HelpSteer" -untrans_col 'helpfulness' 'correctness' 'coherence' 'complexity' 'verbosity' > 1.out
import os
import argparse
import pandas as pd
from tqdm import tqdm
from typing import List, Dict
from datasets import load_dataset, Dataset
from transformers import AutoTokenizer
from vllm import LLM, SamplingParams
# 截斷超過 4096 個 token 的句子。 # 用於相同的數據集大小
def truncation_func(sample, column_name):
input_ids = tokenizer(str(sample[column_name]), truncation=True, max_length=4096, add_special_tokens=False).input_ids
output = tokenizer.decode(input_ids)
sample[column_name]=output
return sample
# 轉換為聊天模板
def create_conversation(sample, column_name):
SYSTEM_PROMPT=f"당신은 번역기 입니다. 영어 문장을 한국어로 번역하세요."
messages=[
{"role":"system", "content": SYSTEM_PROMPT},
{"role":"user", "content":sample[column_name]}
]
text=tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
sample[column_name]=text
return sample
def load_dataset_preprocess(dataset_name:str, untranslate_column:List, split_num, split_idx, subset=None, num_proc=128) -> Dataset:
step = 100//split_num # 分割數據集
if subset:
dataset = load_dataset(dataset_name, subset, split=f'train[{step*split_idx}%:{step*(split_idx+1)}%]')
else:
dataset = load_dataset(dataset_name, split=f'train[{step*split_idx}%:{step*(split_idx+1)}%]')
print(dataset)
original_dataset = dataset # 保留未翻譯的列
dataset = dataset.remove_columns(untranslate_column)
for feature in dataset.features:
dataset = dataset.map(lambda x: truncation_func(x,feature), num_proc=num_proc) #
dataset = dataset.map(lambda x: create_conversation(x,feature), batched=False, num_proc=num_proc)
print("filtered_dataset:", dataset)
return dataset, original_dataset
def save_dataset(result_dict:Dict, dataset_name, untranslate_column:List, split_idx, subset:str):
for column in untranslate_column:
result_dict[column] = original_dataset[column]
df = pd.DataFrame(result_dict)
output_file_name = dataset_name.split('/')[-1]
os.makedirs('gen', exist_ok=True)
if subset:
save_path = f"gen/{output_file_name}_{subset}_{split_idx}.jsonl"
else:
save_path = f"gen/{output_file_name}_{split_idx}.jsonl"
df.to_json(save_path, lines=True, orient='records', force_ascii=False)
if __name__=="__main__":
model_name = "Translation-EnKo/exaone3-instrucTrans-v2-enko-7.8b"
tokenizer = AutoTokenizer.from_pretrained(model_name)
parser = argparse.ArgumentParser(description='load dataset name & split size')
parser.add_argument('-dname', type=str, default="Magpie-Align/Magpie-Pro-MT-300K-v0.1")
parser.add_argument('-untrans_col', nargs='+', default=[])
parser.add_argument('-split_num', type=int, default=4)
parser.add_argument('-split_idx', type=int, default=0)
parser.add_argument('-gpu_id', type=int, default=0)
parser.add_argument('-subset', type=str, default=None)
parser.add_argument('-num_proc', type=int, default=128)
args = parser.parse_args()
os.environ["CUDA_VISIBLE_DEVICES"]=str(args.gpu_id)
dataset, original_dataset = load_dataset_preprocess(args.dname,
args.untrans_col,
args.split_num,
args.split_idx,
args.subset,
args.num_proc
)
# 定義模型
sampling_params = SamplingParams(
temperature=0,
max_tokens=8192,
)
llm = LLM(
model=model_name,
tensor_parallel_size=1,
gpu_memory_utilization=0.95,
)
# 模型推理
result_dict = {}
for feature in tqdm(dataset.features):
print(f"'{feature}' column in progress..")
outputs = llm.generate(dataset[feature], sampling_params)
result_dict[feature]=[output.outputs[0].text for output in outputs]
save_dataset(result_dict, args.dname, args.untrans_col, args.split_idx, args.subset)
print(f"saved to json. column: {feature}")
✨ 主要特性
- 多數據集訓練:基於多個英韓翻譯數據集進行訓練,包括 nayohan/aihub-en-ko-translation-12m、nayohan/instruction_en_ko_translation_1.4m 和 Translation-EnKo/trc_uniform_313k_eval_45_filtered,保證了模型在不同場景下的翻譯能力。
- 支持 vLLM 推理:可以使用 vLLM 進行推理,提高推理效率。
- 良好的翻譯性能:在多個評估數據集上進行測試,與其他模型相比,展現出了較好的翻譯性能。
📚 詳細文檔
評估結果
為了評估英語到韓語的翻譯性能,選擇了以下數據集進行評估:
評估數據集來源
- Aihub/FLoRes: traintogpb/aihub-flores-koen-integrated-sparta-30k | (測試集 1k)
- iwslt-2023 : shreevigneshs/iwslt-2023-en-ko-train-val-split-0.1 | (f_test 597, if_test 597)
- ko_news_2024: nayohan/ko_news_eval40 | (40)
模型評估方法
- 本次評估與之前(hf)不同,使用 vLLM 進行推理評估。(通用設置:max_new_tokens=512)
- 詳細的評估內容遵循了現有的 instruct-Trans 結果。[鏈接]
平均結果
- 使用 vLLM 後,整體分數比 HF 低。
模型性能比較
模型名稱 | AIHub | Flores | IWSLT | News | 平均 |
---|---|---|---|---|---|
Meta-Llama | |||||
meta-llama/Meta-Llama-3-8B-Instruct | 0.3075 | 0.295 | 2.395 | 0.17 | 0.7919 |
nayohan/llama3-8b-it-translation-general-en-ko-1sent | 15.7875 | 8.09 | 4.445 | 4.68 | 8.2506 |
nayohan/llama3-instrucTrans-enko-8b | 16.3938 | 9.63 | 5.405 | 5.3225 | 9.1878 |
nayohan/llama3-8b-it-general-trc313k-enko-8k | 14.7225 | 10.47 | 4.45 | 7.555 | 9.2994 |
Gemma | |||||
Translation-EnKo/gemma-2-2b-it-general1.2m-trc313eval45 | 13.7775 | 7.88 | 3.95 | 6.105 | 7.9281 |
Translation-EnKo/gemma-2-9b-it-general1.2m-trc313eval45 | 18.9887 | 13.215 | 6.28 | 9.975 | 12.1147 |
Translation-EnKo/gukbap-gemma-2-9b-it-general1.2m-trc313eval45 | 18.405 | 12.44 | 6.59 | 9.64 | 11.7688 |
EXAONE | |||||
CarrotAI/EXAONE-3.0-7.8B-Instruct-Llamafied-8k | 4.9375 | 4.9 | 1.58 | 8.215 | 4.9081 |
Translation-EnKo/exaeon3-translation-general-enko-7.8b (private) | 17.8275 | 8.56 | 2.72 | 6.31 | 8.8544 |
Translation-EnKo/exaone3-instrucTrans-v2-enko-7.8b | 19.6075 | 13.46 | 7.28 | 11.4425 | 12.9475 |
學習數據集性能分析
模型名稱 | AIHub | Flores | IWSLT | News | 平均 |
---|---|---|---|---|---|
Meta-Llama | |||||
Meta-Llama-3-8B-Instruct | 0.3075 | 0.295 | 2.395 | 0.17 | 0.7919 |
llama3-8b-it-general1.2m-en-ko-4k | 15.7875 | 8.09 | 4.445 | 4.68 | 8.2506 |
llama3-8b-it-general1.2m-trc313k-enko-4k | 16.3938 | 9.63 | 5.405 | 5.3225 | 9.1878 |
llama3-8b-it-general1.2m-trc313k-enko-8k | 14.7225 | 10.47 | 4.45 | 7.555 | 9.2994 |
Gemma | |||||
gemma-2-2b-it-general1.2m-trc313eval45 | 13.7775 | 7.88 | 3.95 | 6.105 | 7.9281 |
gemma-2-9b-it-general1.2m-trc313eval45 | 18.9887 | 13.215 | 6.28 | 9.975 | 12.1147 |
gukbap-gemma-2-9b-it-general1.2m-trc313eval45 | 18.405 | 12.44 | 6.59 | 9.64 | 11.7688 |
EXAONE | |||||
EXAONE-3.0-7.8B-Instruct | 4.9375 | 4.9 | 1.58 | 8.215 | 4.9081 |
EXAONE-3.0-7.8B-Instruct-general12m (private) | 17.8275 | 8.56 | 2.72 | 6.31 | 8.8544 |
EXAONE-3.0-7.8B-Instruct-general12m-trc1400k-trc313eval45 | 19.6075 | 13.46 | 7.28 | 11.4425 | 12.9475 |
結果展示
# 評估結果 (2405_KO_NEWS) (max_new_tokens=512)
"en_ref":"This controversy arose around a new advertisement for the latest iPad Pro that Apple released on YouTube on the 7th. The ad shows musical instruments, statues, cameras, and paints being crushed in a press, followed by the appearance of the iPad Pro in their place. It appears to emphasize the new iPad Pro's artificial intelligence features, advanced display, performance, and thickness. Apple mentioned that the newly unveiled iPad Pro is equipped with the latest 'M4' chip and is the thinnest device in Apple's history. The ad faced immediate backlash upon release, as it graphically depicts objects symbolizing creators being crushed. Critics argue that the imagery could be interpreted as technology trampling on human creators. Some have also voiced concerns that it evokes a situation where creators are losing ground due to AI."
"ko_ref":"이번 논란은 애플이 지난 7일 유튜브에 공개한 신형 아이패드 프로 광고를 둘러싸고 불거졌다. 해당 광고 영상은 악기와 조각상, 카메라, 물감 등을 압착기로 짓누른 뒤 그 자리에 아이패드 프로를 등장시키는 내용이었다. 신형 아이패드 프로의 인공지능 기능들과 진화된 디스플레이와 성능, 두께 등을 강조하기 위한 취지로 풀이된다. 애플은 이번에 공개한 아이패드 프로에 신형 ‘M4’ 칩이 탑재되며 두께는 애플의 역대 제품 중 가장 얇다는 설명도 덧붙였다. 광고는 공개 직후 거센 비판에 직면했다. 창작자를 상징하는 물건이 짓눌려지는 과정을 지나치게 적나라하게 묘사한 점이 문제가 됐다. 기술이 인간 창작자를 짓밟는 모습을 묘사한 것으로 해석될 여지가 있다는 문제의식이다. 인공지능(AI)으로 인해 창작자가 설 자리가 줄어드는 상황을 연상시킨다는 목소리도 나왔다."
"exaone3-InstrucTrans-v2":"이번 논란은 애플이 지난 7일 유튜브에 공개한 최신형 아이패드 프로의 새 광고를 둘러싸고 불거졌다. 이 광고는 악기, 조각상, 카메라, 물감 등이 프레스기에 짓눌리는 장면에 이어 그 자리에 아이패드 프로가 등장하는 장면을 보여준다. 새로운 아이패드 프로의 인공지능 기능, 첨단 디스플레이, 성능, 두께를 강조하는 것으로 보인다. 애플은 이번에 공개된 아이패드 프로에 최신 'M4' 칩이 탑재됐으며, 애플 역사상 가장 얇은 두께를 자랑한다고 언급했다. 이 광고는 공개되자마자 크리에이터를 상징하는 사물들이 짓밟히는 장면을 그래픽으로 표현해 즉각적인 반발에 부딪혔다. 비평가들은 이 이미지가 기술이 인간 크리에이터를 짓밟는 것으로 해석될 수 있다고 주장한다. 일부에서는 AI로 인해 크리에이터들이 설 자리를 잃는 상황을 연상시킨다는 우려의 목소리도 나왔다."
"llama3-InstrucTrans":"이번 논란은 애플이 지난 7일 유튜브에 공개한 최신 아이패드 프로 광고를 중심으로 불거졌다. 이 광고는 악기, 조각상, 카메라, 물감 등을 누르기 시작하는 장면과 함께 그 자리에 아이패드 프로가 등장하는 장면을 보여준다. 이는 새로운 아이패드 프로의 인공지능 기능, 고급 디스플레이, 성능, 두께를 강조하는 것으로 보인다. 애플은 이번에 공개한 아이패드 프로에 최신 'M4' 칩이 탑재됐으며, 애플 역사상 가장 얇은 기기라고 언급했다. 이 광고는 출시하자마자 크리에이터를 상징하는 물건이 파쇄되는 장면이 그대로 그려져 논란이 되고 있다. 비평가들은 이 이미지가 기술이 인간 크리에이터를 짓밟는다는 의미로 해석될 수 있다고 주장한다. 또한 AI로 인해 크리에이터들이 밀리고 있다는 상황을 연상시킨다는 우려의 목소리도 나온다."
📄 許可證
文檔中未提及相關許可證信息。
📖 引用
@misc{InstrcTrans-v2,
title={exaone3-instrucTrans-v2-enko-7.8b},
author={Yohan Na, Suzie Oh, Eunji Kim, Mingyou sung},
year={2024},
url={https://huggingface.co/Translation-EnKo/exaone3-instrucTrans-v2-enko-7.8b}
}
@misc{llama3modelcard,
title={Llama 3 Model Card},
author={AI@Meta},
year={2024},
url={https://github.com/meta-llama/llama3/blob/main/MODEL_CARD.md}
}
@article{exaone-3.0-7.8B-instruct,
title={EXAONE 3.0 7.8B Instruction Tuned Language Model},
author={LG AI Research},
journal={arXiv preprint arXiv:2408.03541},
year={2024}
}
@article{gemma_2024,
title={Gemma},
url={https://www.kaggle.com/m/3301},
DOI={10.34740/KAGGLE/M/3301},
publisher={Kaggle},
author={Gemma Team},
year={2024}
}
M2m100 418M
MIT
M2M100是一個多語言編碼器-解碼器模型,支持100種語言的9900個翻譯方向
機器翻譯 支持多種語言
M
facebook
1.6M
299
Opus Mt Fr En
Apache-2.0
基於Transformer的法語到英語神經機器翻譯模型,由Helsinki-NLP團隊開發,採用OPUS多語數據集訓練。
機器翻譯 支持多種語言
O
Helsinki-NLP
1.2M
44
Opus Mt Ar En
Apache-2.0
基於OPUS數據訓練的阿拉伯語到英語的機器翻譯模型,採用transformer-align架構
機器翻譯 支持多種語言
O
Helsinki-NLP
579.41k
42
M2m100 1.2B
MIT
M2M100是一個支持100種語言的多語言機器翻譯模型,可直接在9900個翻譯方向之間進行翻譯。
機器翻譯 支持多種語言
M
facebook
501.82k
167
Indictrans2 Indic En 1B
MIT
支持25種印度語言與英語互譯的1.1B參數規模機器翻譯模型,由AI4Bharat項目開發
機器翻譯
Transformers 支持多種語言

I
ai4bharat
473.63k
14
Opus Mt En Zh
Apache-2.0
基於Transformer架構的英漢多方言翻譯模型,支持英語到13種漢語變體的翻譯任務
機器翻譯 支持多種語言
O
Helsinki-NLP
442.08k
367
Opus Mt Zh En
由赫爾辛基大學開發的基於OPUS語料庫的中文到英語機器翻譯模型
機器翻譯 支持多種語言
O
Helsinki-NLP
441.24k
505
Mbart Large 50 Many To Many Mmt
基於mBART-large-50微調的多語言機器翻譯模型,支持50種語言間的互譯
機器翻譯 支持多種語言
M
facebook
404.66k
357
Opus Mt De En
Apache-2.0
opus-mt-de-en 是一個基於 transformer-align 架構的德語到英語的機器翻譯模型,由 Helsinki-NLP 團隊開發。
機器翻譯 支持多種語言
O
Helsinki-NLP
404.33k
44
Opus Mt Es En
Apache-2.0
這是一個基於Transformer架構的西班牙語到英語的機器翻譯模型,由Helsinki-NLP團隊開發。
機器翻譯
Transformers 支持多種語言

O
Helsinki-NLP
385.40k
71
精選推薦AI模型
Llama 3 Typhoon V1.5x 8b Instruct
專為泰語設計的80億參數指令模型,性能媲美GPT-3.5-turbo,優化了應用場景、檢索增強生成、受限生成和推理任務
大型語言模型
Transformers 支持多種語言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一個基於SODA數據集訓練的超小型對話模型,專為邊緣設備推理設計,體積僅為Cosmo-3B模型的2%左右。
對話系統
Transformers 英語

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基於RoBERTa架構的中文抽取式問答模型,適用於從給定文本中提取答案的任務。
問答系統 中文
R
uer
2,694
98