Skip to main content

Penulis

Chen Yufeng - Universiti Waseda

Abstrak

Kami sedang menangani cabaran menilai kualiti terjemahan mesin dengan tepat sambil juga berusaha untuk meningkatkan ketepatannya ke tahap yang setanding dengan terjemahan manusia. Pendekatan kami melibatkan penggunaan lima model terjemahan penanda aras yang berbeza dan menilai prestasi mereka menggunakan tiga metrik penilaian yang pelbagai. Pada masa yang sama, kami berdedikasi untuk memperhalusi ketepatan model-model ini melalui pandangan yang diperoleh daripada penyelidikan dan kajian terdahulu.

Isi Kandungan

  1. Pengenalan
  2. Set Data
  3. Cara Menilai Ketepatan Terjemahan Mesin
    • 3.1. Skor BLEU
    • 3.2. Skor BLEURT
    • 3.3. Skor COMET
  4. Lima Model Terjemahan Mesin Asas Dan Ketepatan Mereka
    • 4.1. Model Garis Dasar Azure
    • 4.2. Model Tersuai Azure
    • 4.3. Model DeepL
    • 4.4. Google Translator
    • 4.5. Model GPT-4
    • 4.6. Perbandingan Dan Kesimpulan
  5. Meningkatkan Ketepatan Terjemahan Mesin
    • 5.1. Pembelajaran Dalam Konteks untuk GPT-4
    • 5.2. Model Hibrid
    • 5.3. GPT-4 sebagai Alat Pembersihan Data
  6. Kesimpulan
  7. Rujukan

1. Pengenalan

Dengan kemajuan teknologi AI, terutamanya selepas kemunculan ChatGPT oleh OpenAI, orang ramai semakin meletakkan kepercayaan yang lebih besar dalam industri AI. Sebagai komponen penting dalam bidang pemprosesan bahasa semula jadi, terjemahan mesin telah mendapat kepentingan yang semakin meningkat. Kertas ini memberi tumpuan kepada penilaian lima model terjemahan asas menggunakan metrik penilaian yang pelbagai, sambil juga mendalami kaedah untuk meningkatkan ketepatan model-model ini sejauh mungkin.

2. Set Data

Penyelidikan ini tertumpu pada set data Opus100 (ZH-EN) yang tersedia di Hugging Face. Set data ini terdiri daripada satu juta contoh terjemahan Cina-ke-Inggeris merangkumi pelbagai domain, menjadikan Opus100 pilihan yang sesuai untuk melatih model terjemahan.
Set Data Opus100
Adalah penting untuk mengakui kehadiran ketidaktepatan terjemahan dalam set data. Walaupun ketidaktepatan ini mungkin nampaknya mengurangkan ketepatan latihan, ia pada masa yang sama berfungsi sebagai pencegah terhadap isu overfitting yang berpotensi.
Tambahan pula, sebelum integrasi ke dalam platform Azure AI, Opus100 memerlukan langkah pra-pemprosesan untuk menghapuskan simbol anomali yang terdapat dalam setiap ayat.

3. Cara Menilai Ketepatan Terjemahan Mesin

Apabila berhadapan dengan pelbagai model terjemahan, memilih yang paling sesuai untuk tujuan tertentu menjadi mencabar. Terdapat dua pendekatan asas untuk menilai model terjemahan:
  1. Kaedah tradisional: Skor BLEU
  2. Metrik neural: Skor BLEURT dan skor COMET

3.1 Skor BLEU

BLEU (Bilingual Evaluation Understudy) adalah algoritma untuk menilai kualiti teks yang telah diterjemahkan mesin dari satu bahasa semula jadi ke bahasa lain (Papineni et al., 2002).
import nltk

bleu_scores = []
for reference, pre in zip(reference_translations, prediction):
    reference_tokens = nltk.word_tokenize(reference.lower())
    pre_tokens = nltk.word_tokenize(pre.lower())

    if not reference_tokens or not pre_tokens:
        continue

    bleu_score = nltk.translate.bleu_score.sentence_bleu(
        [reference_tokens], pre_tokens,
        smoothing_function=nltk.translate.bleu_score.SmoothingFunction().method2)
    bleu_scores.append(bleu_score)

average_bleu_score = sum(bleu_scores) / len(bleu_scores)
print("Average BLEU score:", average_bleu_score)

Tujuh Fungsi Pelicinan

FungsiPenerangan
Smoothing Function 1Pelicinan Aditif (Laplace) - menambah nilai tetap untuk mencegah kebarangkalian sifar
Smoothing Function 2Pelicinan NIST - memperkenalkan penalti panjang rujukan
Smoothing Function 3Chen dan Cherry - menyesuaikan berdasarkan panjang terjemahan calon
Smoothing Function 4JenLin - mengimbangi kaedah aditif dan diselaraskan
Smoothing Function 5Gao dan He - menangani bias terhadap terjemahan yang lebih pendek
Smoothing Function 6Bayesian - menyediakan anggaran yang teguh untuk ayat yang lebih panjang
Smoothing Function 7Min Geometri - mengira min geometri ketepatan n-gram
BLEU mempunyai batasan: ia gagal mengambil kira susunan perkataan dan sintaks, dan bergantung terutamanya pada pertindihan n-gram tanpa menangkap kefasihan, ungkapan idiomatik, tatabahasa, dan koheren keseluruhan.

3.2 Skor BLEURT

BLEURT adalah metrik penilaian untuk Penjanaan Bahasa Semula Jadi. Ia mengambil sepasang ayat sebagai input (rujukan dan calon) dan mengembalikan skor yang menunjukkan kefasihan dan pemeliharaan makna (Sellam, 2021).
from bleurt import score

checkpoint = "/path/to/BLEURT-20"
scorer = score.BleurtScorer(checkpoint)
scores = scorer.score(references=reference_translations, candidates=prediction)

total_score = sum(scores) / len(scores)
print("Total Score:", total_score)
Pastikan untuk memasang TensorFlow terlebih dahulu untuk menggunakan BLEURT.

3.3 Skor COMET

COMET adalah rangka kerja neural untuk melatih model penilaian terjemahan mesin berbilang bahasa, direka untuk meramalkan penilaian manusia terhadap kualiti terjemahan.
from comet import download_model, load_from_checkpoint

model_path = download_model("Unbabel/wmt22-comet-da")
model = load_from_checkpoint(model_path)

data = []
for src, pre, reference in zip(source_sentences, preds, reference_translations):
    data.append({
        "src": src,
        "mt": pre,
        "ref": reference
    })

model_output = model.predict(data, batch_size=8, gpus=0)
print(model_output)

4. Lima Model Terjemahan Mesin Asas Dan Ketepatan Mereka

4.1 Model Garis Dasar Azure

import requests, uuid, json

endpoint = ""
subscription_key = ""
location = ""

path = '/translate'
constructed_url = endpoint + path

params = {
    'api-version': '3.0',
    'from': 'zh',
    'to': 'en'
}

headers = {
    'Ocp-Apim-Subscription-Key': subscription_key,
    'Ocp-Apim-Subscription-Region': location,
    'Content-type': 'application/json',
    'X-ClientTraceId': str(uuid.uuid4())
}

body = []
for i in source_sentences:
    body.append({'text': i})

request = requests.post(constructed_url, params=params, headers=headers, json=body)
response = request.json()

4.2 Model Tersuai Azure

Model tersuai Azure adalah versi yang dipertingkatkan yang dicapai melalui penggunaan set data tambahan untuk melatih lagi model garis dasar Azure. Skor BLEU model tersuai pada platform Azure adalah 39.45.
Apabila bekerja dengan model tersuai, ia mesti diterbitkan pada platform Azure untuk dipanggil apabila API dipanggil.

4.3 Model DeepL

DeepL Translator adalah perkhidmatan terjemahan mesin neural menggunakan rangkaian neural konvolusi dan pivot Inggeris.
import deepl

API_KEY = 'your-api-key'
source_lang = 'ZH'
target_lang = 'EN-US'

translator = deepl.Translator(API_KEY)
results = translator.translate_text(source_sentences, source_lang=source_lang, target_lang=target_lang)

4.4 Google Translator

import requests

def translate_texts(texts, target_language):
    api_key = 'your-api-key'
    url = 'https://translation.googleapis.com/language/translate/v2'
    translations = []

    for text in texts:
        params = {
            'key': api_key,
            'q': text,
            'target': target_language
        }
        response = requests.get(url, params=params)
        if response.status_code == 200:
            data = response.json()
            translated_text = data['data']['translations'][0]['translatedText']
            translations.append(translated_text)

    return translations

4.5 Model GPT-4

import openai

def translate_text(text_list):
    openai.api_key = 'your-api-key'
    translations = []

    for text in text_list:
        messages = [
            {"role": "system", "content": "You are a translation assistant from Chinese to English. Some rules to remember:\n\n- Do not add extra blank lines.\n- It is important to maintain the accuracy of the contents, but we don't want the output to read like it's been translated. So instead of translating word by word, prioritize naturalness and ease of communication."},
            {"role": "user", "content": text}
        ]

        response = openai.ChatCompletion.create(
            model='gpt-4',
            messages=messages,
            max_tokens=100,
            temperature=0.7,
            timeout=30
        )

        choices = response['choices']
        if len(choices) > 0:
            translation = choices[0]['message']['content']
            translations.append(translation)

    return translations
GPT-4 cenderung menunjukkan masa respons yang lebih perlahan berbanding empat model lain. Juga, bilangan token yang berlebihan berpotensi membawa kepada beban berlebihan.

4.6 Perbandingan Dan Kesimpulan

Berdasarkan keputusan penilaian:
Perbandingan Skor BLEU
Perbandingan Skor BLEURT
Perbandingan Skor COMET
Penemuan Utama:
  1. Model Tersuai Azure muncul sebagai prestasi terbaik
  2. DeepL mengikut rapat di tempat kedua
  3. Model Garis Dasar Azure mendapat tempat ketiga
  4. Google Translator dan GPT-4 berkongsi kedudukan yang sama
DeepL kini memegang perbezaan sebagai model paling berkesan untuk menterjemahkan Cina ke Inggeris, terutamanya apabila pengguna tidak mempunyai keupayaan pra-latihan.

5. Meningkatkan Ketepatan Terjemahan Mesin

Tiga pendekatan berbeza untuk meningkatkan ketepatan terjemahan:

5.1 Pembelajaran Dalam Konteks untuk GPT-4

Model bahasa besar boleh meningkatkan prestasi melalui pembelajaran dalam konteks dengan menyediakan contoh tugas tertentu dalam prompt (Brown et al., 2020). Keputusan: Skor BLEURT meningkat dari 0.6486 ke 0.6755, menunjukkan keberkesanan pembelajaran dalam konteks.

5.2 Model Hibrid

Model ambang hibrid menetapkan ambang tertentu, dan model yang berbeza digunakan untuk menterjemahkan semula apabila ayat tertentu gagal memenuhi ambang.
import requests, uuid, json
import openai
from comet import download_model, load_from_checkpoint

def translate_with_fallback(text):
    translation_from_Azure = Azure_translation(text)
    model_path = download_model("Unbabel/wmt22-comet-da")
    model = load_from_checkpoint(model_path)
    refined_translation = []
    indices_to_correct = []

    for i in range(len(translation_from_Azure)):
        data = [{
            "src": source_sentences[i],
            "mt": translation_from_Azure[i],
            "ref": reference_translations[i]
        }]
        res = model.predict(data, batch_size=1, gpus=0)
        if res.scores[0] < 0.81:
            indices_to_correct.append(i)

    sentences_to_correct = [source_sentences[i] for i in indices_to_correct]
    corrected_sentences = gpt_translation(sentences_to_correct)

    corrected_index = 0
    for i in range(len(translation_from_Azure)):
        if i in indices_to_correct:
            refined_translation.append(corrected_sentences[corrected_index])
            corrected_index += 1
        else:
            refined_translation.append(translation_from_Azure[i])

    return refined_translation

Kesimpulan Model Hibrid

  1. Ambang optimum sejajar dengan skor COMET
  2. Prestasi terbaik datang dari Azure Custom + DeepL atau DeepL + GPT-4
  3. Hampir semua model hibrid mengatasi model individu
  4. Ambang yang lebih tinggi tidak semestinya menjamin skor yang lebih baik

5.3 GPT-4 sebagai Alat Pembersihan Data

GPT-4 boleh digunakan untuk pra-proses set data dan membetulkan terjemahan yang tidak tepat:
import openai
import json

pair = {}
for zh, en in zip(source_sentences, reference_translations):
    pair[zh] = en

def translate_text(pair):
    openai.api_key = 'your-api-key'
    translations = []

    for zh, en in pair.items():
        messages = [
            {"role": "system", "content": "You are a Chinese to English translation corrector. You need to modify the incorrect English translations below and correct it by given Chinese sentences, please remember not to use English abbreviations and not add extra blank lines. Fix weird punctuation. And the result should be English sentences only"},
            {"role": "user", "content": json.dumps({"zh": zh, "en": en})}
        ]

        response = openai.ChatCompletion.create(
            model='gpt-4',
            messages=messages,
            max_tokens=100,
            temperature=0.7,
            timeout=30
        )

        choices = response['choices']
        if len(choices) > 0:
            model_response = choices[0]['message']['content']
            translations.append(model_response)

    return translations
Memanfaatkan GPT-4 untuk pembersihan data pada kedua-dua teks asal dan teks sasaran terbukti berdaya maju. Skor yang dicapai oleh garis dasar Azure pada set data yang diperhalusi boleh sejajar dengan prestasi DeepL pada set data yang kurang baik.

6. Kesimpulan

Kertas ini menyiasat ketepatan terjemahan mesin dan kaedah untuk peningkatan melalui tiga metrik penilaian dan lima model penanda aras. Kesimpulan Utama:
  1. DeepL adalah penterjemah Cina ke Inggeris yang paling mahir
  2. Model Garis Dasar Azure boleh mencapai prestasi yang lebih tinggi dengan data yang banyak dan latihan yang mencukupi
  3. Model hibrid yang menggabungkan enjin terjemahan yang berbeza meningkatkan ketepatan
  4. Pembersihan data GPT-4 meningkatkan kualiti set data, membawa kepada prestasi model yang lebih baik
Kajian ini mengakui batasan: pemeriksaan manual mendedahkan contoh di mana kualiti terjemahan tidak sejajar dengan skor tinggi yang diperoleh, dan beberapa kaedah peningkatan ketepatan membawa kepada penurunan skor.

7. Rujukan

  1. Papineni, K., Roukos, S., Ward, T., & Zhu, W. J. (2002). BLEU: A method for automatic evaluation of machine translation. In Proceedings of the 40th annual meeting of the Association for Computational Linguistics (ACL).
  2. Thibault Sellam (2021). BLEURT
  3. Tom Brown et al. (2020). Language models are few-shot learners.
  4. Daniel Bashir (2023). In-Context Learning, in Context. The Gradient.
  5. Amr Hendy et al. (2023). How Good Are GPT Models at Machine Translation? A Comprehensive Evaluation. Microsoft.
  6. Ricardo Rei (2022). COMET