Menggunakan Lina dan HY-MT1.5-1.8B lokal untuk menerjemahkan entri lokalisasi

AI EmployeesCommunity Edition+

Panduan ini menjelaskan praktik penerjemahan lokalisasi: deploy model kecil khusus terjemahan secara lokal, ekspos sebagai layanan yang kompatibel dengan OpenAI, lalu konfigurasikan untuk Lina agar dapat menerjemahkan entri lokalisasi NocoBase secara batch.

Pendekatan ini cocok untuk menerjemahkan banyak entri sistem, teks plugin, menu, judul koleksi, dan label field. Dibandingkan model online, model lokal tidak terdampak batas RPM, TPM, atau konkurensi API eksternal, dan konkurensi dapat disesuaikan menurut kemampuan mesin dan model.

Gambaran umum

Panduan ini menggunakan:

  • Model: tencent/HY-MT1.5-1.8B-GGUF
  • Layanan inferensi: llama-server
  • Integrasi: OpenAI-compatible API
  • AI Employee: Lina
  • Titik masuk: halaman Localization Management
Catatan

HY-MT1.5-1.8B adalah model kecil khusus terjemahan. Model ini lebih cocok untuk entri pendek, teks UI, dan terjemahan batch. Model chat umum tidak direkomendasikan sebagai pilihan pertama untuk tugas lokalisasi.

Prasyarat

  • Plugin Localization Management sudah diaktifkan.
  • Bahasa target sudah diaktifkan.
  • Entri lokalisasi sudah disinkronkan.
  • Mesin lokal atau server dapat menjalankan llama-server.
  • Layanan NocoBase dapat mengakses alamat HTTP llama-server.

Deploy HY-MT GGUF

Instal llama.cpp

Di macOS, Anda dapat menginstalnya dengan Homebrew:

brew install llama.cpp

Anda juga dapat memakai binary llama.cpp yang sudah dibangun atau membangunnya dari source. Syarat akhirnya adalah llama-server tersedia.

Mulai layanan kompatibel OpenAI

Mulai layanan dengan model GGUF dari Hugging Face:

llama-server \
  -hf tencent/HY-MT1.5-1.8B-GGUF:Q4_K_M \
  --host 0.0.0.0 \
  --port 8000 \
  -c 2048 \
  -np 4
ParameterDeskripsi
-hfMemuat model dari Hugging Face.
--hostAlamat listen. Gunakan 127.0.0.1 untuk pengujian lokal atau 0.0.0.0 untuk akses container atau remote.
--portPort layanan HTTP.
-cPanjang konteks. Entri lokalisasi biasanya pendek, sehingga 2048 biasanya cukup.
-npJumlah slot paralel. Sesuaikan dengan performa mesin.
Tips

Jika sumber daya server terbatas, mulai dari -np 1 atau -np 2, lalu tingkatkan bertahap setelah stabilitas terverifikasi.

Uji layanan model

Setelah llama-server berjalan, periksa kesehatan layanan:

curl http://127.0.0.1:8000/health

Lalu uji terjemahan melalui API kompatibel OpenAI:

curl http://127.0.0.1:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tencent/HY-MT1.5-1.8B-GGUF:Q4_K_M",
    "messages": [
      {
        "role": "user",
        "content": "Translate the following text into Chinese. Output only the translated result without any additional explanation:\n\nSave"
      }
    ]
  }'

Jika menggunakan file model lokal, ubah model menjadi nama model sebenarnya yang dikembalikan atau dikonfigurasi oleh layanan.

Catatan

Jika permintaan tidak merespons lama, model mungkin terlalu lambat, konkurensi terlalu tinggi, atau konteks terlalu besar. Turunkan -np dan konkurensi terjemahan NocoBase terlebih dahulu, lalu amati waktu respons.

Konfigurasi layanan LLM di NocoBase

Buka System Settings -> AI Employees -> LLM service dan tambahkan layanan LLM.

PengaturanContoh
ProviderOpenAI (completions)
TitleHY-MT Local
Base URLhttp://127.0.0.1:8000/v1
API KeyJika llama-server tidak memakai autentikasi, gunakan placeholder seperti dummy.
Enabled ModelsPilih tencent/HY-MT1.5-1.8B-GGUF:Q4_K_M, atau masukkan nama model sebenarnya.

Setelah konfigurasi, gunakan Test flight untuk memverifikasi model.

Tips

Jika NocoBase berjalan di Docker, 127.0.0.1 menunjuk ke container itu sendiri dan mungkin tidak dapat mengakses layanan host. Gunakan IP host, alamat jaringan container, atau host.docker.internal.

Konfigurasi model khusus Lina

Buka System Settings -> AI Employees -> AI employees, buka Lina, lalu pindah ke Model settings.

  1. Aktifkan Enable dedicated model configuration.
  2. Pilih model HY-MT lokal di Models.
  3. Simpan konfigurasi.

Setelah itu, Lina akan menggunakan model ini untuk tugas terjemahan lokalisasi dan menghindari penggunaan model chat umum.

Untuk detail, lihat Mengonfigurasi model AI Employee.

Konfigurasi konkurensi terjemahan

Konkurensi tugas terjemahan lokalisasi dikontrol oleh AI_LOCALIZATION_CONCURRENCY:

AI_LOCALIZATION_CONCURRENCY=10

Aturan:

  • Default: 10
  • Minimum: 1
  • Maksimum: 20
  • Nilai di luar rentang menggunakan default

Konkurensi terbaik bergantung pada CPU, GPU, memori, kuantisasi model, dan llama-server -np. Jika konkurensi default bermasalah:

  1. Mulai dengan AI_LOCALIZATION_CONCURRENCY=1 dan verifikasi terjemahan satu entri.
  2. Setel llama-server -np dan AI_LOCALIZATION_CONCURRENCY ke 2 atau 4.
  3. Amati waktu respons, penggunaan CPU/GPU, dan progres tugas.
  4. Naikkan bertahap hanya jika stabil.
Catatan

Jangan menetapkan konkurensi terlalu tinggi di awal. Jika melebihi kapasitas model, tugas bisa melambat karena antrean, timeout, atau layanan macet.

Jalankan terjemahan lokalisasi

Buka System Management -> Localization Management.

  1. Pindah ke bahasa target.
  2. Klik Synchronize untuk memastikan entri tersinkron.
  3. Klik avatar Lina.
  4. Pilih cakupan tugas:
    • Incremental translation: menerjemahkan entri yang belum memiliki terjemahan.
    • Selected translation: menerjemahkan entri yang dipilih di tabel.
    • Full translation: menerjemahkan semua entri pada bahasa saat ini.
  5. Periksa jumlah entri, provider, dan model di dialog konfirmasi.
  6. Konfirmasi untuk membuat tugas asinkron.
  7. Tunggu selesai, tinjau terjemahan, lalu publikasikan.

Mulai dari Selected translation untuk beberapa entri guna memeriksa gaya keluaran dan kecepatan sebelum menjalankan terjemahan incremental atau penuh.

Cara Lina membangun permintaan terjemahan

Lina membangun permintaan dari entri dan terjemahan referensi. Untuk entri pendek, referensi yang ada digunakan untuk meningkatkan konsistensi:

  • Entri bawaan lebih mengutamakan terjemahan bahasa Tionghoa sebagai referensi.
  • Entri non-bawaan lebih mengutamakan bahasa default sistem sebagai referensi.
  • Jika ada referensi bahasa Inggris, bahasa Inggris digunakan sebagai teks sumber.
  • Hasil terjemahan ditulis ke bahasa target, tetapi tidak dipublikasikan otomatis.

Semantik prompt kira-kira seperti:

Refer to the following translation:
{source_term} is translated as {target_term}

Translate the following text into {target_language}. Output only the translated result without any additional explanation:

{source_text}

Pemecahan masalah

Tidak ada progres setelah membuat tugas

Periksa apakah llama-server menerima permintaan. Lihat log layanan atau panggil /v1/chat/completions dengan curl.

Jika model menerima permintaan tetapi tidak mengembalikan respons, turunkan:

  • AI_LOCALIZATION_CONCURRENCY
  • llama-server -np
  • llama-server -c

Model mengembalikan penjelasan, bukan terjemahan

Model terjemahan lokal biasanya lebih stabil daripada model chat umum. Jika penjelasan masih muncul, uji prompt yang sama dengan curl terlebih dahulu untuk memeriksa gaya keluaran model. Anda juga dapat menerjemahkan entri yang lebih pendek atau menurunkan parameter sampling seperti temperature.

NocoBase tidak dapat terhubung ke layanan model

Periksa:

  • Apakah Base URL menyertakan /v1.
  • Apakah runtime NocoBase dapat mengakses alamat tersebut.
  • Apakah firewall atau jaringan container memblokir port.
  • Apakah llama-server masih berjalan.

Tinjau sebelum publikasi

Setelah terjemahan AI selesai, tinjau sebelum publikasi:

  • Filter berdasarkan modul dan periksa entri pendek seperti menu, tombol, nama field, dan status.
  • Periksa variabel, placeholder, tag HTML, dan simbol format.
  • Periksa konsistensi istilah bisnis penting.
  • Jika terjemahan entri bawaan tertimpa, sinkronkan ulang di Localization Management dan pilih Reset system built-in entry translations untuk memulihkan default. Untuk berkontribusi pada terjemahan default sistem dan plugin resmi, lihat Translation Contribution.
  • Publikasikan di lingkungan uji terlebih dahulu, lalu sinkronkan ke produksi.

Referensi