Tüm Ürünler
Search
Belge Merkezi

Platform For AI:Fine-tuning Llama3-8B

Son Güncelleme:Oct 04, 2026

DSW, modelleri ince ayar ile özelleştirmeniz için etkileşimli bir modelleme platformudur. Bu konu, belirli görevlerdeki performansını artırmak amacıyla DSW'de Llama-3-8B-Instruct modelinin nasıl ince ayarlanacağını adım adım açıklar.

Arka Plan

Llama3, Meta tarafından Nisan 2024'te yayımlanan Llama serisinin en yeni modelidir. Llama2 veri kümesinin yedi katından fazla olan 15 trilyonun üzerinde belirteçle eğitilen bu model, 8K bağlam uzunluğunu destekler. Ayrıca, karmaşık bağlamları ve özel terminolojiyi daha hassas işlemek için 128K belirteç sözlüğüne sahip geliştirilmiş bir belirteçleştirici kullanır.

Llama3; her biri önceden eğitilmiş bir sürüm ve talimatla ince ayar yapılmış bir sürüm olmak üzere 8B ve 70B parametre boyutlarında sunulur.

  • 8B sürümü

    Tüketici sınıfı GPU'lar için ideal olan bu sürüm, sınırlı hesaplama kaynaklarına sahip sistemlerde hızlı dağıtım olanağı tanır. Hızlı yanıt süreleri ve maliyet etkinliği gerektiren uygulamalar için uygundur.

    • Meta-Llama-3-8b: 8B önceden eğitilmiş model.

    • Meta-Llama-3-8b-instruct: 8B modelin talimatla ince ayar yapılmış sürümü.

  • 70B sürümü

    Büyük ölçekli yapay zeka uygulamaları için tasarlanan bu sürüm, üstün model performansı gerektiren son derece karmaşık görevleri yönetir.

    • Meta-Llama-3-70b: 70B önceden eğitilmiş model.

    • Meta-Llama-3-70b-instruct: 70B modelin talimatla ince ayar yapılmış sürümü.

Ön Koşullar

  • Bir çalışma alanı oluşturun. Daha fazla bilgi için bkz. Çalışma alanları oluşturma ve yönetme.

  • Bir DSW örneği oluşturun. Aşağıdaki temel parametreleri yapılandırın. Daha fazla bilgi için bkz. DSW örneği oluşturma.

    • Örnek türü: En az 16 GB GPU belleğine sahip bir GPU örneği (örneğin V100) kullanın.

    • Python ortamı: Python 3.9 veya sonraki bir sürümü kullanın.

    • Görüntü: Image URL alanında dsw-registry-vpc.REGION.cr.aliyuncs.com/pai-training-algorithm/llm_deepspeed_peft:v0.0.3 değerini girin. REGION ifadesini, DSW örneğinizin bulunduğu bölgenin kimliğiyle (örneğin cn-hangzhou veya cn-shanghai) değiştirin. Bölgelerin ve karşılık gelen bölge kimliklerinin tam listesi için aşağıdaki tabloya bakın.


      Bölge


      Bölge Kimliği


      China (Hangzhou)


      cn-hangzhou


      China (Shanghai)


      cn-shanghai


      China (Beijing)


      cn-beijing


      China (Shenzhen)


      cn-shenzhen

  • Llama3 büyük dil modelini kullanmadan önce resmi Meta lisansını okuyun.

    Not

    Sayfaya erişemiyorsanız bir proxy yapılandırmanız ve tekrar denemeniz gerekebilir.

Adım 1: Modeli indirin

Yöntem 1: DSW'de indirme

  1. DSW geliştirme ortamını açın.

    1. PAI konsolunda oturum açın.

    2. Sol üst köşede, DSW örneğinizin bulunduğu bölgeyi seçin.

    3. Soldaki gezinme bölmesinde Workspaces seçeneğine tıklayın. Workspaces sayfasında varsayılan çalışma alanının adına tıklayın.

    4. Soldaki gezinme bölmesinde Model Training > Data Science Workshop (DSW) seçeneklerini seçin.

    5. Kullanmak istediğiniz örneği bulun ve DSW geliştirme ortamına girmek için Actions sütunundaki Open seçeneğine tıklayın.

  2. Launcher sayfasında, Notebook bölümünde Python 3 seçeneğine tıklayın.

  3. Model dosyalarını indirmek için aşağıdaki kodu çalıştırın. Kod, uygun bir indirme kaynağını otomatik olarak seçer ve model dosyalarını geçerli dizine indirir.

    ! pip install modelscope==1.32.0 transformers==4.37.0
    from modelscope.hub.snapshot_download import snapshot_download
    snapshot_download('LLM-Research/Meta-Llama-3-8B-Instruct', cache_dir='.', revision='master')

Yöntem 2: Meta'dan indirme

Modeli talep etmek ve indirmek için Meta web sitesine gidin.

Not

Sayfaya erişemiyorsanız bir proxy yapılandırmanız ve tekrar denemeniz gerekebilir.

Adım 2: Veri kümesini hazırlayın

Bu örnekte, Llama 3 modelini ince ayarlamak ve şiir oluşturma yeteneğini geliştirmek amacıyla İngilizce şiirlerden oluşan bir veri kümesi kullanılır. Eğitim veri kümesini indirmek için bir DSW Notebook'ta aşağıdaki komutu çalıştırın.

!wget https://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/tutorial/llm_instruct/en_poetry_train.json

Ayrıca, kendi kullanım durumunuza uyarlanmış aynı formatta kendi veri kümenizi de hazırlayabilirsiniz.

Adım 3: Modeli ince ayarlayın

Hafif LoRA eğitimi

Bu eğitimde, hafif Düşük Ranklı Adaptasyon (LoRA) eğitimi yapmak için /ml/code/sft.py eğitim betiği kullanılır. Eğitim tamamlandıktan sonra, çıkarım sırasında GPU bellek kullanımını azaltmak için model parametreleri niceklenir.

accelerate launch komutunu çalıştırdığınızda, belirtilen Python betiğini verilen parametrelerle başlatır. Mevcut hesaplama kaynaklarını kullanarak multi_gpu.yaml yapılandırma dosyasındaki ayarlara göre eğitim yapar.

! accelerate launch --num_processes 1 --config_file /ml/code/multi_gpu.yaml /ml/code/sft.py \
    --model_name  ./LLM-Research/Meta-Llama-3-8B-Instruct/ \
    --model_type llama \
    --train_dataset_name en_poetry_train.json \
    --num_train_epochs 3 \
    --batch_size 8 \
    --seq_length 128 \
    --learning_rate 5e-4 \
    --lr_scheduler_type linear \
    --target_modules k_proj o_proj q_proj v_proj \
    --output_dir lora_model/ \
    --apply_chat_template \
    --use_peft \
    --load_in_4bit \
    --peft_lora_r 32 \
    --peft_lora_alpha 32 

Aşağıdaki bölümde bu örnekte kullanılan parametreler açıklanmaktadır. İhtiyaçlarınıza göre bu parametreleri değiştirebilirsiniz.

  • accelerate launch komutu, derin öğrenme eğitim betiklerini birden çok GPU üzerinde başlatır ve yönetir.

    • num_processes 1: İşlem sayısını 1 olarak ayarlar ve çoklu işlem paralelleştirmesini devre dışı bırakır.

    • config_file/ml/code/multi_gpu.yaml: Yapılandırma dosyasının yolu.

    • /ml/code/sft.py: Çalıştırılacak Python betiğinin yolu.

  • /ml/code/sft.py betiği için parametreler:

    • --model_name./LLM-Research/Meta-Llama-3-8B-Instruct/: Önceden eğitilmiş modelin yolu.

    • --model_type llama: Model türü. Bu örnekte llama kullanılır.

    • --train_dataset_name en_poetry_train.json: Eğitim veri kümesinin yolu.

    • --num_train_epochs 3: Eğitim dönemlerinin sayısı.

    • --batch_size 8: Yığın boyutu.

    • --seq_length 128: Dizi uzunluğu.

    • --learning_rate 5e-4: Öğrenme oranı (0,0005).

    • --lr_scheduler_type linear: Öğrenme oranı zamanlayıcı türü.

    • --target_modules k_proj o_proj q_proj v_proj: İnce ayar sırasında hedeflenecek model modülleri.

    • --output_dir lora_model/: İnce ayarlı modelin çıkış dizini.

    • --apply_chat_template: Eğitim sırasında bir sohbet şablonu uygular.

    • --use_peft: Parametre Verimli İnce Ayar (PEFT) yöntemlerini etkinleştirir.

    • --load_in_4bit: Bellek tüketimini azaltmak için model ağırlıklarını 4 bit hassasiyetinde yükler.

    • --peft_lora_r 32: LoRA matrislerinin rankı (r).

    • --peft_lora_alpha 32: LoRA ölçeklendirme faktörü (alfa).

LoRA ağırlıklarını birleştirin

LoRA ağırlıklarını önceden eğitilmiş modelle birleştirmek için aşağıdaki komutu çalıştırın.

! RANK=0 python /ml/code/convert.py \
    --model_name ./LLM-Research/Meta-Llama-3-8B-Instruct/ \
    --model_type llama \
    --output_dir trained_model/ \
    --adapter_dir lora_model/

Bu örnekte kullanılan parametreler aşağıda açıklanmıştır:

  • RANK=0: RANK ortam değişkeni, dağıtılmış eğitimde mevcut işlemin rankını gösterir. 0 değeri, tek bir işlemi veya ana işlemi ifade eder.

  • python /ml/code/convert.py: Ağırlık dönüştürme işlemi için convert.py betiğini çalıştırır.

  • --model_name ./LLM-Research/Meta-Llama-3-8B-Instruct/: Önceden eğitilmiş modelin yolu.

  • --model_type llama: Model türü.

  • --output_dir trained_model/: Dönüştürülen model ve ağırlıklar için dizin.

  • --adapter_dir lora_model/: LoRA adaptör ağırlıklarını içeren dizin.

Adım 4: Çıkarım çalıştırın

İnce ayar sonuçlarını doğrulamak ve çıkarım yapmak için aşağıdaki kodu çalıştırın. Bu örnekte modele baharla ilgili bir şiir yazması istenir:

import torch, transformers

# model_id = "./LLM-Research/Meta-Llama-3-8B-Instruct/"
model_id = "./trained_model/"
pipeline = transformers.pipeline(
    "text-generation",
    model=model_id,
    model_kwargs={"torch_dtype": torch.bfloat16},
    device="cuda",
)

messages = [
    {"role": "user", "content": "Write a poem on a topic 'spring' "},
]

prompt = pipeline.tokenizer.apply_chat_template(
        messages, 
        tokenize=False, 
        add_generation_prompt=True
)

terminators = [
    pipeline.tokenizer.eos_token_id,
    pipeline.tokenizer.convert_tokens_to_ids("<|eot_id|>")
]

outputs = pipeline(
    prompt,
    max_new_tokens=1024,
    eos_token_id=terminators,
    do_sample=True,
    temperature=0.6,
    top_p=0.9,
)
print(outputs[0]["generated_text"][len(prompt):])

Aşağıda örnek bir yanıt verilmiştir. İnce ayarlı model artık şiir üretebilir:

Here's a poem on the topic of "Spring":

As winter's chill begins to fade,
The earth awakens from its shade,
And spring's sweet breath begins to blow,
Bringing life to all that's cold and slow.

The trees regain their vibrant hue,
And flowers bloom, both old and new,
Their petals dancing in the breeze,
As sunshine warms the world with ease.

The air is filled with sweet perfume,
As blossoms burst forth in their room,
And robins sing their morning song,
As spring's awakening is strong.

The world is fresh, and new, and bright,
As spring's warm light begins to take flight,
And all around, new life unfolds,
As winter's grip begins to grow old.

So let us bask in spring's warm rays,
And let our spirits soar and sway,
For in this season, we're reborn,
And all around, new life is sworn.

I hope you enjoy it!

Adım 5: Modeli dağıtın

İnce ayarlı model ağırlıklarını Object Storage Service hizmetine yükleyebilir ve modeli Elastic Algorithm Service (EAS) ChatLLM kullanarak bir hizmet olarak dağıtabilirsiniz. Daha fazla bilgi için bkz. EAS'te LLM uygulamaları dağıtma.

Ek: DSW Galerisi'nden Llama3 çalıştırma

DSW Gallery, önceden oluşturulmuş Llama3 Notebook örnekleri sağlar. Bir örneği DSW örneğinizde açıp doğrudan çalıştırabilir veya ihtiyaçlarınıza göre değiştirebilirsiniz. Daha fazla bilgi için bkz. Notebook Gallery.

SSS

**S: FileDownloadError: File config.json download incomplete... hatası**

Terminalde pip install -U modelscope komutunu çalıştırarak modelscope paketini yükseltin. Ardından, Notebook sayfasının üst kısmındaki image simgesine tıklayarak Python çekirdeğini yeniden başlatın ve model indirme kodunu tekrar çalıştırın.

Kaynaklar

Önemli ChatLLM-WebUI sürüm bilgileri için bkz. ChatLLM-WebUI sürüm notları.