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