BookTranslator
BookTranslator

Yerel Bir LLM ile Uzun Belgeler Nasıl Çevrilir: Parçalar ve Kontroller

LM Studio'da yerel bir LLM ile 3.179 kelimeyi üç farklı şekilde çevirdik ve her biri sessiz bir hata sakladı. Bu hataları yakalayan parça boyutu, ayarlar ve kontroller.

BookTranslator

BookTranslator Team

11 min read

İnsanlar bir belgeyi yerel bir LLM ile çeviriyor çünkü tek bir neden var: dosya makinelerinden çıkamaz. Yerel bir model işi yapabilir, ancak size çevrilmiş bir dosya değil düz metin verir ve en kötü hataları sessiz olanlardır. Testimizde, 3.179 kelimelik bir alıntı için tek bir istek doğru sayıda paragrafla ve temiz bir bitiş sinyaliyle geri döndü, ancak bir paragraf içeriğinin üçte birinden fazlasını kaybetmiş ve kaynakta olmayan cümleler kazanmıştı.

Kısa cevap: metni paragraf sınırlarından yaklaşık 600 kelimelik parçalara bölün, sistem talimatına isimler ve tekrar eden terimlerden oluşan bir sözlük koyun, modelin düşünme modunu kapatın ve güvenmeden önce her parçayı kaynak paragrafıyla paragraf paragraf karşılaştırın. Testi çalıştırdığımız üç yolun her biri bir yerde başarısız oldu ve hiçbir hata bir hata mesajı üretmedi. Dizüstü bilgisayardaki orta boy bir modelin tam bir kitap için saatler almasını bekleyin ve biçimlendirmeyi kendiniz yeniden oluşturmayı planlayın.

Aşağıdaki her şey 23 Ekim 2026'da tek bir çalıştırmadan geliyor: Apple M4 Max 64 GB bellekte LM Studio 0.4.8 içinde Qwen 3.6 27B (Q4_K_M GGUF), Kafka'nın Die Verwandlung eserinin girişini Almancadan İngilizceye çeviriyor. Test betiği, sonuçlar ve ham hata örnekleri ücretsiz olarak indirilebilir, böylece kendi modelinizle tekrarlayabilirsiniz.

Yerel Bir LLM Ne Zaman Doğru Araçtır

Çeviriyi yerel olarak çalıştırın, kararı kolaylık değil belgenin kuralları verdiğinde:

  • bir müşteri sözleşmesi, araştırma anlaşması veya işveren politikası dosyanın harici bir hizmete yüklenmesini yasaklıyorsa;
  • metin kişisel veya gizliyse ve hassas kısımları önceden çıkaramıyorsanız; veya
  • belge başına maliyet olmadan birçok dosyayı işlemeniz gerekiyorsa ve zaten uygun donanıma sahipseniz.

Bunlardan hiçbiri geçerli değilse, yerel bir model genellikle daha kötü bir sonuca giden daha yavaş yoldur. Bir belge çeviri hizmetinin sağladığı üç şeyden vazgeçersiniz: orijinal biçimde çevrilmiş bir dosya, makinenizin tutabileceğinden daha büyük bir model ve tüm kitap boyunca tutarlılık için tasarlanmış bir iş akışı. Her iki yolu seçmeden önce belge çeviri gizlilik kontrol listesi üzerinden geçin. Dosyayı işleme yetkisi, minimum çalışma kopyaları ve bir hizmetin yüklemelerle ne yaptığını kapsar.

"Yerel"in de kesin bir anlamı olmalı. Model bilgisayarınızda çalışır ve testimizde istekler yalnızca localhost adresine gitti. Bu, modelin etrafındaki uygulamanın neleri günlüğe kaydettiğini, güncellediğini veya raporladığını söylemez. Kurallarınız cihazdan hiçbir şeyin çıkmadığının kanıtlanmasını gerektiriyorsa, çalışma zamanının kendi ayarlarını ve politikasını kontrol edin veya ağ erişimi olmayan bir makinede çalıştırın.

Neyi Test Ettik

Die Verwandlung eserinin ilk 19 paragrafını (3.179 Almanca kelime) kamu malı Project Gutenberg baskısından çevirdik. Edebi Almanca adil bir stres testidir: paragraflar uzun, cümleler iç içe ve aynı karakterler ile iş unvanları tekrar eder.

Üç çalıştırma da aynı modeli ve ayarları kullandı: sıcaklık 0.2, en fazla 12.000 çıktı token'ı ve 16.384 token'lık bağlam penceresi. Talimat, her Almanca paragraf için bir İngilizce paragraf ve başka hiçbir şey istemedi.

ÇalıştırmaGönderdiğimizÇıkan paragraflar (kaynak: 19)Çıkan kelimelerSüre
A. ParçalıYaklaşık 600 kelimelik 6 parça, yalnızca talimat193,31910,4 dk
B. Parçalı + sözlük + bağlamAynı parçalar, 7 terimli bir sözlük ve önceki kaynak paragrafı "çevirmeyin" olarak işaretlenmiş203,44610,5 dk
C. Tek istek19 paragrafın tamamı tek seferde193,3099,5 dk

Her çalışma normal bir durma sinyaliyle sona erdi ve her çalışma farklı bir sessiz hata içeriyordu. C çalışması metin düşürdü ve uydurdu. B çalışması atlaması söylenen metni çevirdi. En temiz olan A çalışması ise son parçasında bir karaktere yanlış görev verdi.

Hata 1: Tek Büyük İstek Bir Paragrafın Bir Kısmını Düşürdü

C çalışması normal şekilde tamamlandı ve tam olarak 19 paragraf döndürdü. Paragraf sayısı kontrolü bunu geçirirdi. Ancak 6. paragraf, 260 kelimelik kaynak için 214 kelime olarak geri geldi.

Kaynakta Gregor saate bakar, trenini kaçırdığını fark eder ve ardından hastalık izni almayı düşünür: patronu, herkesi sağlıklı ama işten kaçan biri olarak gören sağlık sigortası doktoruyla gelirdi ve Gregor uykulu hali ve alışılmadık iştahı dışında aslında kendini iyi hissettiğini kabul eder. C çalışması ilk kısmı çevirdi, ardından hastalık izniyle ilgili tüm pasajı, paragrafın 260 Almanca kelimesinin 98'ini düşürdü. Onun yerine Gregor'un "derhal işten çıkarılacağını", ofis asistanının "kendisine bildirilen her şeyi kendini göstermek için bir fırsat olarak görme" eğiliminde olduğunu ve bu düşüncenin "yüzünde bir gülümseme oluşturduğunu" yazdı. Bunların hiçbiri Almanca metinde yok.

Parçalara ayrılmış çalışma aynı paragrafı 267 kelimeyle eksiksiz çevirdi.

Tek bir örnek, uzun isteklerin her zaman başarısız olduğunu kanıtlamaz. Ancak neyin kontrol edilmesi gerektiğini gösterir: uzun tek bir istek, yapısal olarak eksiksiz görünürken sessizce metni sıkıştırabilir veya uydurabilir. Almanca bilmeyen bir okuyucunun bunu fark etmesi için hiçbir neden olmazdı.

Hata 2: Model, Atlaması Söylenen "Bağlamı" Çevirdi

Yaygın bir ipucu, modelin konuyu takip etmesi için her parçayla birlikte önceki paragrafı göndermektir. B çalışmasında bunu mesaja "Bağlam (zaten çevrildi, çevirmeyin)" etiketiyle ekledik.

4. parçada model yine de çevirdi. Parça, üç kaynak paragraf için dört paragraf döndürdü ve ilki 3. parçanın son paragrafının ikinci bir çevirisiydi. Birleştirildiğinde kitap bu paragrafı iki kez, her seferinde farklı ifadelerle içerecekti.

Pratik kural: bağlam gönderiyorsanız onu modelin çevirmesi istenen metnin dışında tutun, kısa tutun ve her parçanın paragraf sayısını kontrol edin. Kontrol edemiyorsanız dışarıda bırakın.

Hata 3: Tek Başına Gönderilen Bir Parça Bir Karaktere Yanlış Görev Verdi

A çalışması her parçayı sözlük ve bağlam olmadan gönderdi. İlk beş parça için bu iyi işledi: Prokurist göründüğü 16 yerin tamamında "baş kâtip" oldu. Altıncı parça, baş kâtibin kapıdan Gregor'a çıkıştığı tek bir paragraftı. Tek başına görüldüğünde model der Prokurist'i Gregor'un kendi işi olan "seyyar satıcı" olarak çevirdi. Paragraf sayısı eşleşti ve uzunluk oranı 1,00 idi, bu yüzden iki yapısal kontrol de fark etmedi.

Sistem talimatında sözlüğün ve bağlam olarak önceki paragrafın bulunduğu B çalışmasında aynı paragraf doğru şekilde "baş kâtip" kullandı. Bu test ikisinden hangisinin düzelttiğini söyleyemez. Bağlam aynı zamanda hata 2'ye de yol açtığı için, adları ve rolleri parçadan parçaya taşımak için daha güvenli yer sözlüktür: kısadır, talimatın içinde durur ve mekanik olarak kontrol edilebilir.

İşe Yarayan İş Akışı

1. Önce dosyadan düz metni çıkarın

Yerel bir LLM metni çevirir, dosyaları değil. Başlamadan önce belgeyi dönüştürün:

  • DOCX veya EPUB: her blokta bir paragraf olacak şekilde düz metne veya Markdown'a aktarın, başlıkları ayrı satırlar olarak koruyun.
  • Metin katmanı olan PDF: metni çıkarın, ardından bozuk satırları ve tirelemeyi onarın. OCR satır sonlarını ve tirelemeyi düzeltme rehberimiz aynı temizliği kapsar. Docling gibi bir dönüştürücü, PDF'lerden ve Office dosyalarından Markdown üretebilir.
  • Taranmış PDF: önce OCR çalıştırın. Bir PDF'in kullanılabilir metni olup olmadığından emin değilseniz, PDF metin çıkarma ile OCR karşılaştırması sayfasına bakın.

Paragraf yapısını bozmayın. Sonraki tüm kontroller, kaynak ve çevrilmiş paragraflar arasında bire bir eşleşmeye bağlıdır.

2. Düşünme modunu kapatın ve kapalı olduğunu doğrulayın

Günümüzdeki birçok açık model, yanıt vermeden önce akıl yürütür. Çeviri için bu, zaman ve çıktı token'larını boşa harcar. Bizim kurulumumuzda 200 token'lık bir test isteği, 199 token'ı akıl yürütmeye harcadı ve boş bir yanıt döndürdü.

Üç yaygın anahtarı denedik. İsteme /no_think eklemek hiçbir işe yaramadı, enable_thinking: false içeren chat_template_kwargs da hiçbir işe yaramadı. İstekte "reasoning_effort": "none" göndermek akıl yürütmeyi kapattı: yanıt 0 akıl yürütme token'ı bildirdi ve çeviriyi doğrudan döndürdü. Bu parametre LM Studio'nun sohbet tamamlama sayfasında listelenmiyor, bu yüzden bunu 0.4.8 sürümünde bu modelle gözlemlediğimiz bir davranış olarak değerlendirin. Herhangi bir anahtara güvenmek yerine kendi yanıtlarınızdaki reasoning_tokens sayısını kontrol edin.

3. Bağlam penceresini parçalardan önce boyutlandırın

Bağlam penceresi talimatı, parçayı ve tam çeviriyi barındırmalıdır. Parçalı çalıştırmalarımızda 500 ila 670 kelimelik Almanca bir parça, sözlüğe ve bağlama bağlı olarak yaklaşık 800 ila 1.500 giriş token'ı ve 640 ila 870 çıkış token'ı kullandı, yani birkaç bin token yeterlidir. Tek seferlik 3.179 kelimelik istek 4.953 giriş token'ı ve 3.930 çıkış token'ı gerektirdi.

Ollama, varsayılan bağlam uzunluğunu kullanılabilir belleğe göre belirler: 24 GiB VRAM'in altında 4k token, 24 ila 48 GiB arasında 32k ve 48 GiB veya üzerinde 256k; bu bilgi 23 Ekim 2026'da kontrol edilen bağlam uzunluğu belgelerine göre. Bunu OLLAMA_CONTEXT_LENGTH ile artırabilirsiniz. LM Studio'da modeli yüklerken bağlam uzunluğunu ayarlayın. Bir parça ve çevirisi sığmazsa çıktı kesilebilir.

4. Paragraflar arası sınırlarda, yaklaşık 600 kelimede parçalayın

Asla bir paragrafın veya cümlenin içinden bölmeyin. Parçalarımız 700 kelimeyi hedefledi ve en yakın paragraf sınırında sona erdi, bu da 243 ila 667 kelimelik altı parça üretti. Daha küçük parçaların maliyeti azdır: A çalıştırması 10,4 dakika sürerken tek istek 9,5 dakika sürdü ve başarısız bir parçayı yeniden çalıştırmak ucuzdur.

Talimatı kısa tutun ve her parça için aynı olsun. Bizimki şuydu: İngilizceye çevir, her giriş paragrafı için boş bir satırla ayrılmış tam olarak bir çıktı paragrafı koru ve yalnızca çeviriyi çıktıla. Aynı talimata bir sözlük ekleyin: her ad, unvan veya tekrar eden terim için bir satır, Prokurist = chief clerk biçiminde. Çeviri sözlüğü oluşturma rehberimiz nelerin dahil edileceğini kapsar. Kısa parçalar çevreleyen hikâyeyi kaybeder ve onu taşıyan şey sözlüktür.

5. Birleştirmeden önce her parçayı kontrol edin

Her parça üzerinde üç kontrol yapın:

  1. Paragraf sayısı. Çıktı, girişle aynı sayıda paragrafa sahip olmalıdır. Bu, 2. hatayı yakaladı.
  2. Paragraf başına uzunluk oranı. Her çevrilmiş paragrafın kelime sayısını kaynağıyla karşılaştırın. Bu, paragraf sayısının gözden kaçırdığı 1. hatayı yakaladı.
  3. Paragraf başına sözlük terimleri. Bir kaynak terimin göründüğü yerde, gerekli çevirisi aynı sayıda görünmelidir. Bu, diğer iki kontrolün de gözden kaçırdığı 3. hatayı yakaladı. Çekimli diller burada biraz muhakeme gerektirecektir, çünkü Almanca veya Rusça bir terim biçim değiştirir.

Almancadan İngilizceye düzyazı için A çalıştırmasının paragrafları, giren kelime başına 0,98 ila 1,17 kelime çıktı aralığında kaldı. C çalıştırmasının hasarlı paragrafı 0,82 idi. Dil çiftinizde güvendiğiniz birkaç paragrafı kontrol ederek kendi aralığınızı belirleyin; betiğimizdeki varsayılanlar bir başlangıç noktasıdır, bir standart değil.

İşaretlenen bir paragraf, ilk okunacak yerdir, bir hatanın kanıtı değil. Ardından çevirinin kendisini, özellikle adları, sayıları, olumsuzlamaları ve bir okuyucunun harekete geçeceği her şeyi okuyun. Kitap çevirisi kalite kontrol listesi bu incelemeyi kapsar.

6. Belgeyi yeniden oluşturun

Model metin döndürür. Başlıklar, dipnotlar, tablolar, görseller, sayfa düzeni ve stiller elle veya bir dönüştürme aracıyla geri konmalıdır. Kısa bir rapor için bu önemsizdir. Dipnotları ve tabloları olan bir kitap için bu, çeviriden daha uzun sürebilir.

Bütün Bir Kitap Ne Kadar Sürer

Parçalı çalıştırmamız 3.179 kelimeyi 10,4 dakikada çevirdi, bu makinede dakikada yaklaşık 300 kelime. Bu hızla 90.000 kelimelik bir roman, kontroller ve yeniden çalıştırmalar öncesinde kabaca beş saat üretim sürer. Bu, tek bir çalıştırmadan yapılan basit bir aritmetiktir, bir kıyaslama değil. Hız; model boyutu, niceleme, donanım, dil çifti ve makinenin başka ne kadar iş yaptığıyla değişir.

Model dosyası diskte 17,5 GB'tı ve bağlam önbelleği ile çalışma zamanı tamponları bunun üstüne bellek gerektirir, bu yüzden bir makinenin dosya boyutundan belirgin şekilde daha fazla boş belleğe ihtiyacı vardır. Daha küçük bir model daha hızlı ve daha az bellekte çalışır, genellikle kaliteden biraz ödün vererek. Bütün bir kitaba karar vermeden önce temsili bir örnek üzerinde test edin. Çeviri için en iyi LLM rehberimiz bu örneğin nasıl oluşturulacağını ve modellerin adil şekilde nasıl karşılaştırılacağını açıklar.

Yerel LLM mi Belge Çeviri Hizmeti mi

SoruYerel LLMBelge çeviri hizmeti
Dosya makinenizden çıkabilir mi?Gerekli değilGerekli
Geri gelenYeniden birleştirdiğiniz düz metinÇevrilmiş bir dosya
Model boyutuBelleğinizle sınırlıSağlayıcıyla sınırlı
Tüm kitap boyunca tutarlılıkSizin işiniz: sözlük, parçalama, kontrollerBazı hizmetlerde yerleşik
Belge başına maliyetDonanımınız ve zamanınızBelge veya kelime başına fiyat

Kurallarınız dosyayı yüklemeye izin veriyorsa, bir belge hizmeti yukarıdaki işlerin çoğunu ortadan kaldırır. BookTranslator tam PDF, EPUB ve DOCX dosyalarını çevirir ve çevrilmiş bir dosya döndürür; SSS bölümünde yüklenen dosyaların ve çeviri çıktısının yapay zeka modellerini eğitmek için kullanılmadığı belirtilir. Bu bir bulut hizmetidir, dolayısıyla dosyanın makinenizde kalması gerektiğinde bir seçenek değildir. Modelleri kendiniz çalıştırmak ile bir hizmete ödeme yapmak arasında karar veriyorsanız, LLM çevirisinin gerçekte ne kadara mal olduğu token tarafını nasıl bütçeleyeceğinizi gösterir.

Test Dosyalarını Edinin

Tüm dosyalar /files/blog/translate-with-local-llm/ klasöründedir:

  • local_llm_translation_test.py: LM Studio'nun yerel API'sine karşı üç çalıştırmanın tamamını içeren tam test. Testi tekrarlamak için başka bir modele veya kaynak metne yönlendirin.
  • check_translation.py: bir kaynak metni ve çeviriyi paragraf paragraf karşılaştırır ve paragraf sayısı uyuşmazlıklarını, aralık dışı uzunluk oranlarını ve eksik sözlük terimlerini ( --term "Prokurist=chief clerk" ile) yazdırır. Herhangi bir aracın çıktısıyla çalışır.
  • results.csv: paragraf sayıları, kelime sayıları, token sayıları ve süresiyle birlikte her istek.
  • failure-examples.txt: üç başarısızlığın tamamı için Almanca kaynak ve ham model çıktısı.

Herhangi bir uzun çeviriye güvenmeden önce check_translation.py betiğini sözlük terimlerinizle çalıştırın. Saniyeler sürer ve bu testteki üç hatanın hepsini işaretledi. Akıcı bir cümlenin yanlış olup olmadığını size söyleyemez; bu nedenle işaretlenen paragraflar okumaya başlayacağınız yerlerdir, okumanın bittiği yer değil.

İlgili Yazılar