Exaone3 Instructrans V2 Enko 7.8b
exaone-3-7.8B-itで訓練された英韓翻訳モデルで、命令データセットの翻訳タスクに特化
ダウンロード数 45
リリース時間 : 8/24/2024
モデル概要
このモデルは英語から韓国語への翻訳タスクに最適化された命令ファインチューニングモデルで、複数の英韓翻訳データセットで訓練され、高品質なテキスト生成と翻訳タスクをサポート
モデル特徴
高品質英韓翻訳
複数の専門翻訳データセットで訓練され、正確な英韓相互翻訳能力を提供
命令最適化
命令翻訳タスクに特に最適化され、複雑な翻訳命令を理解して実行可能
大規模コンテキストサポート
最大8192トークンのコンテキストウィンドウをサポートし、長文翻訳に適している
モデル能力
英語から韓国語翻訳
韓国語から英語翻訳
テキスト生成
命令理解
使用事例
専門翻訳
技術文書翻訳
英語の技術文書を正確に韓国語に翻訳
技術用語の翻訳で優れた性能を発揮
ニュース翻訳
英語のニュース記事を韓国語に翻訳
原文の意味とスタイルを維持しながらローカライズ
教育応用
言語学習支援
言語学習者に高品質な翻訳リファレンスを提供
学習者が複雑な表現を理解するのを支援
🚀 instructTrans-v2
instructTrans-v2は、英語から韓国語への翻訳を行うモデルです。exaone-3-7.8B-itをベースに、複数の翻訳データセットで学習されています。
🚀 クイックスタート
モデルの概要
exaone3-instrucTrans-v2-enko-7.8bモデルは、exaone-3-7.8B-itをベースに、英語から韓国語への翻訳データセットで学習されています。学習に使用されたデータセットは以下の通りです。
- nayohan/aihub-en-ko-translation-12m
- nayohan/instruction_en_ko_translation_1.4m
- Translation-EnKo/trc_uniform_313k_eval_45_filtered
テキスト生成
このモデルは、英語から韓国語への翻訳をサポートしています。テキストを翻訳するには、以下の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トークンを超える文を切り捨てます。 # 同じデータセットサイズのため
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
# chat_templateに変換する
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}")
📚 ドキュメント
結果
# EVAL_RESULT (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로 인해 크리에이터들이 밀리고 있다는 상황을 연상시킨다는 우려의 목소리도 나온다."
評価結果
英語から韓国語への翻訳性能を評価するためのデータセットを選定して評価を行いました。
評価データセットの出所
- 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 |
引用
@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アーキテクチャに基づく中国語抽出型QAモデルで、与えられたテキストから回答を抽出するタスクに適しています。
質問応答システム 中国語
R
uer
2,694
98