Tüm Ürünler
Search
Belge Merkezi

Platform For AI:Quick start: Deploy and fine-tune Mixtral-8x7B

Son Güncelleme:Oct 04, 2026

Mixtral-8x7B, Mistral AI tarafından geliştirilen ve birçok kıyaslamada GPT-%3,5'i geride bırakan açık kaynaklı Seyrek Uzman Karışımı (Sparse Mixture-of-Experts) bir modeldir. PAI Model Gallery, bu model için hazır dağıtım ve LoRA ince ayar olanakları sunar.

Modele genel bakış

Mixtral-8x7B, Apache 2.0 lisansı altında yayımlanan, Seyrek Uzman Karışımı (SMoE) mimarisine dayalı yalnızca kod çözücü özellikli bir büyük dil modelidir (LLM). Bir yönlendirici ağ, her belirteç için sekiz uzman grubundan ikisini seçer ve çıktılarını birleştirir. Model toplamda 47 milyar parametreye sahip olsa da, belirteç başına yalnızca 13 milyar parametre aktif olur; bu sayede çıkarım hızı 13B parametreli bir modelle karşılaştırılabilir düzeydedir.

Mixtral-8x7B, 32 bin belirteçlik bağlam uzunluğuyla İngilizce, Fransızca, Almanca, İspanyolca ve İtalyancayı destekler. Değerlendirilen tüm kıyaslamalarda LLaMA2-70B ve GPT-%3,5 ile eşdeğer performans gösterir veya onları aşar; matematik, kod oluşturma ve çok dilli görevlerde ise LLaMA2-70B'den önemli ölçüde daha iyi sonuçlar verir.

image.png

*Kaynak: arXiv:2401.04088*

Mistral AI ayrıca, denetimli ince ayar ve Doğrudan Tercih Optimizasyonu (DPO) ile optimize edilmiş bir talimat ayarlı varyant olan Mixtral-8x7B-Instruct-v0.1'i yayımladı. Bu model, insan talimatlarını daha doğru şekilde takip eder ve konuşma görevlerinde diğer talimat ayarlı açık kaynak modellerin önüne geçer.

image.png

*Kaynak: Chatbot Arena Leaderboard*

Ön koşullar

Lingjun Akıllı Hesaplama Hizmeti kaynakları etkinleştirilmiş olmalıdır. Kaynak grubu oluşturun ve Lingjun Akıllı Hesaplama Hizmeti kaynaklarını satın alın.

Ortam gereksinimleri

  • Bu örnek, China (Ulanqab) bölgesindeki PAI Lingjun kümelerini gerektirir.

  • GU108 GPU'lar (80 GB VRAM) önerilir. Çıkarım için en az iki GPU, LoRA ince ayarı için ise en az dört GPU gerekir.

PAI console içinde modeli kullanma

Modeli dağıtın ve çağırın

  1. Model Gallery sayfasına gidin.

    1. PAI console adresinde oturum açın.

    2. Üst gezinme çubuğunda China (Ulanqab) bölgesini seçin.

    3. Sol gezinme bölmesinde workspaces öğesine tıklayın. Workspaces sayfasında kullanmak istediğiniz çalışma alanının adına tıklayın.

    4. Sol gezinme bölmesinde QuickStart > Model Gallery seçeneklerini belirleyerek Model Gallery sayfasına gidin.

  2. Sağ taraftaki model listesinde Mixtral-8x7B-Instruct-v0.1 model kartına tıklayarak Model Details sayfasını açın.

  3. Sağ üst köşede Deploy seçeneğine tıklayın. Lingjun hesaplama kaynaklarını yapılandırın ve modeli PAI-EAS'e dağıtmak için Deploy seçeneğine tıklayın.

    Bu model Lingjun Akıllı Hesaplama Hizmeti kaynakları gerektirir. Kaynak kotasında en az iki GU108 GPU bulunmalıdır.

    Dağıtım yapılandırma panelinde Resource group type değerini Lingjun Intelligent Computing Service olarak, Number of instances değerini 1, CPU değerini 40 ve Memory (MB) değerini 256000 olarak ayarlayın. Ardından Deploy seçeneğine tıklayın.

  4. Çıkarım hizmetini çağırın.

    HTTP API

    Çıkarım hizmeti OpenAI uyumlu bir API'yi destekler. Hizmet uç noktasını ve erişim belirtecini hizmet ayrıntıları sayfasından alın, ardından cURL kullanarak hizmeti çağırın:

    # Replace  and  with the actual endpoint and token of your service.
    export API_ENDPOINT="<ENDPOINT>"
    export API_TOKEN="<TOKEN>"
    # List available models
    curl $API_ENDPOINT/v1/models \
    	-H "Content-Type: application/json" \
    	-H "Authorization: Bearer $API_TOKEN"
    # Call the general text completion API
    curl $API_ENDPOINT/v1/completions \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $API_TOKEN" \
        -d '{
    			"model": "Mixtral-8x7B-Instruct-v0.1",
    			"prompt": "San Francisco is a",
    			"max_tokens": 256,
    			"temperature": 0
    	}'
    # Call the chat completion API
    curl $API_ENDPOINT/v1/chat/completions \
        -H "Authorization: Bearer $API_TOKEN" \
        -H "Content-Type: application/json" \
        -d '{
    			"model": "Mixtral-8x7B-Instruct-v0.1",
          "messages": [
              {"role": "user", "content": "Tell me about the history of Shanghai."}
            ]
          }'
    

    SDK

    Hizmeti OpenAI SDK kullanarak çağırmak için önce SDK'yı yükleyin:

    # Install the SDK to call the service
    python -m pip install openai

    SDK'yı kullanarak çıkarım hizmetini çağırın:

    import openai
    # Replace  and  with the token and endpoint from the service details page.
    openai.api_key = "<TOKEN>"
    openai.base_url = "<ENDPOINT>" + "/v1"
    # Call the chat completion API
    completion = openai.chat.completions.create(
        model="Mixtral-8x7B-Instruct-v0.1",
        temperature=0.0,
        top_p=0.8,
        frequency_penalty=0.0,
        messages=[{"role": "user", "content": "Tell me about yourself."}],
        # stream=True,
    )
    # Print the output content
    print(completion.choices[0].message.content)
    

Modelde ince ayar yapın

Model Gallery, Mixtral-8x7B-Instruct-v0.1 için hazır bir ince ayar algoritması sağlar.

Eğitim verileri JSON formatında olmalıdır. Her giriş için bir instruction alanı (soru) ve bir output alanı (yanıt) gerekir:

[
    {
        "instruction": "Write a poem on a topic 'On a Political Prisoner': \n",
        "output": "She that but little patience knew,\r\nFrom childhood on, had now so much\r\nA grey gull lost its fear and flew\r\nDown to her cell and there alit,\r\nAnd there endured her fingers' touch\r\nAnd from her fingers ate its bit.\r\nDid she in touching that lone wing."
    },
    {
        "instruction": "Write a poem on a topic 'To His Love': ",
        "output": "He's gone, and all our plans\r\n   Are useless indeed.\r\nWe'll walk no more on Cotswold\r\n   Where the sheep feed\r\n   Quietly and take no heed.\r\n His body that was so quick\r\n   Is not as you\r\nKnew it, on Severn river\r\n   Under the blue\r\n   Driving our small boat through."
    }
]
  1. Model Details sayfasında sağ üst köşede bulunan Fine-tune seçeneğine tıklayın. Temel yapılandırmalar aşağıdaki gibidir:

    • Dataset configuration: Verileri bir OSS paketlerine yükleyin veya bir NAS ya da CPFS veri kümesi belirtin. PAI ayrıca test amacıyla genel veri kümeleri de sağlar.

    • Compute resource configuration: Dört GU108 GPU (80 GB VRAM) gerekir. Yeterli kota bulunduğundan emin olun.

    • Hyperparameter configuration: Aşağıdaki hiperparametreleri verilerinize ve hesaplama kaynaklarınıza göre ayarlayın veya varsayılan değerleri kullanın.

      Parameter

      Type

      Default

      Required

      Description

      learning_rate

      float

      5e-5

      Yes

      Controls the step size of weight updates during training.

      num_train_epochs

      int

      1

      Yes

      The number of times the training dataset is iterated over.

      per_device_train_batch_size

      int

      1

      Yes

      Samples processed per GPU per iteration. Larger values improve throughput but increase VRAM usage.

      seq_length

      int

      128

      Yes

      Input sequence length per training step.

      lora_dim

      int

      16

      No

      The LoRA dimension. If lora_dim > 0, this enables lightweight fine-tuning with LoRA or QLoRA.

      lora_alpha

      int

      32

      No

      LoRA alpha scaling factor. Used when lora_dim > 0.

      load_in_4bit

      bool

      true

      No

      Specifies whether to load the model in 4-bit.

      If lora_dim > 0, load_in_4bit is true, and load_in_8bit is false, lightweight fine-tuning uses 4-bit QLoRA.

      load_in_8bit

      bool

      false

      No

      Specifies whether to load the model in 8-bit.

      If lora_dim > 0, load_in_4bit is false, and load_in_8bit is true, lightweight fine-tuning uses 8-bit QLoRA.

      gradient_accumulation_steps

      int

      8

      No

      The number of gradient accumulation steps.

      apply_chat_template

      bool

      true

      No

      Specifies whether the algorithm applies the model's default chat template to the training data. Example:

      • Question: <|begin_of_text|><|start_header_id|>user<|end_header_id|>\n\n + instruction + <|eot_id|>

      • Answer: <|start_header_id|>assistant<|end_header_id|>\n\n + output + <|eot_id|>

  2. Fine-tune seçeneğine tıkladığınızda eğitim işi sayfası açılır. İş otomatik olarak başlar.

    Sağ üst köşede Tensorboard seçeneğine tıklayarak TensorBoard'u açın ve modelin yakınsamasını izleyin.image.png

    Eğitilen model otomatik olarak AI Assets - Model Management içinde kaydedilir. Modelleri kaydedin ve yönetin.

Modeli PAI SDK ile kullanma

Model Gallery modellerini PAI SDK for Python ile de kullanabilirsiniz. SDK'yı yükleyin ve yapılandırın:

# Install the PAI SDK for Python
python -m pip install alipai --upgrade
# Interactively configure your access credentials, PAI workspace, and other information
python -m pai.toolkit.config

Erişim kimlik bilgilerini (AccessKey çifti) ve çalışma alanını Yükleme ve yapılandırma bölümünde açıklandığı gibi yapılandırın.

Modeli dağıtın ve çağırın

Mixtral modelini, Model Gallery'deki önceden yapılandırılmış çıkarım ayarlarını kullanarak PAI-EAS'e dağıtın. Hizmet adını ve kaynak ayrıntılarını sağlayın:

from pai.session import get_default_session
from pai.model import RegisteredModel
from pai.common.utils import random_str
from pai.predictor import Predictor
session = get_default_session()
# Get the model provided by PAI QuickStart
m = RegisteredModel(
    model_name="Mixtral-8x7B-Instruct-v0.1",
    model_provider="pai",
)
# View the default deployment configuration of the model
print(m.inference_spec)
# Deploy the inference service
# You must provide the ID of a Lingjun resource quota (QuotaId) that has at least two GU108 (80 GB of VRAM) GPU cards.
predictor = m.deploy(
    service_name="mixtral_8_7b_{}".format(random_str(6)),
    options={
        # Resource quota ID
        "metadata.quota_id": "<LingJunResourceQuotaId>",
        "metadata.quota_type": "Lingjun",
        "metadata.workspace_id": session.workspace_id,
    }
)
# Get the endpoint and token of the inference service
endpoint = predictor.internet_endpoint
token = predictor.access_token

Çıkarım hizmetini yukarıdaki Çıkarım hizmetini çağırma yöntemleriyle veya doğrudan PAI SDK'yı kullanarak çağırın:

from pai.predictor import Predictor
p = Predictor("<MixtralServiceName>")
res = p.raw_predict(
    path="/v1/chat/completions",
    method="POST",
    data={
        "model": "Mixtral-8x7B-Instruct-v0.1",
        "messages": [
            {"role": "user", "content": "Tell me about the history of Shanghai."}
        ]
    }
)
print(res.json())

Test işleminin ardından, kaynakları serbest bırakmak için hizmeti konsoldan veya SDK'yı kullanarak silin.

# Delete the service
predictor.delete_service()

Modelde ince ayar yapın

Model Gallery'den bir model alarak ince ayar algoritmasını, desteklenen hiperparametreleri ve giriş/çıkış yapılandırmasını görüntüleyin:

from pai.model import RegisteredModel
# Get the Mixtral-8x7B-Instruct-v0.1 model provided by PAI QuickStart
m = RegisteredModel(
    model_name="Mixtral-8x7B-Instruct-v0.1",
    model_provider="pai",
)
# Get the fine-tuning algorithm configured for the model
est = m.get_estimator()
# View the supported hyperparameters and the input/output information of the algorithm
print(est.hyperparameter_definitions)
print(est.input_channel_definitions)

Mixtral-8x7B-Instruct-v0.1 ince ayar algoritması şu anda yalnızca Lingjun Akıllı Hesaplama Hizmeti kaynaklarını destekler. PAI console üzerinden kaynak kota kimliğinizi alın ve işi göndermeden önce hiperparametreleri yapılandırın:

# Configure the Lingjun resource quota ID for the training job
est.resource_id = "<LingjunResourceQuotaId>"
# Configure the hyperparameters for the training job
hps = {
    "learning_rate": 1e-5,
    "per_device_train_batch_size": 2,
}
est.set_hyperparameters(**hps)

İnce ayar algoritması üç girişi destekler:

  • model: Önceden eğitilmiş Mixtral-8x7B-Instruct-v0.1 modeli.

  • train: İnce ayar için kullanılan eğitim veri kümesi.

  • validation: İnce ayar için kullanılan doğrulama veri kümesi.

Gerekli veri kümesi formatı Modelde ince ayar yapın bölümünde açıklanmıştır. Verileri ossutil, konsol veya SDK kullanarak bir OSS paketine yükleyin:

from pai.common.oss_utils import upload
# View the inputs used by the model's fine-tuning algorithm
# Get the input data for the algorithm, including the model and a public dataset for testing.
training_inputs = m.get_estimator_inputs()
print(training_inputs)
# {
#     "model": "oss://pai-quickstart-cn-wulanchabu.oss-cn-wulanchabu-internal.aliyuncs.com/huggingface/models/Mixtral-8x7B-Instruct-v0.1/main/",
#     "train": "oss://pai-quickstart-cn-wulanchabu.oss-cn-wulanchabu-internal.aliyuncs.com/huggingface/datasets/llm_instruct/en_poetry_train_mixtral.json",
#     "validation": "oss://pai-quickstart-cn-wulanchabu.oss-cn-wulanchabu-internal.aliyuncs.com/huggingface/datasets/llm_instruct/en_poetry_test_mixtral.json",
# }
# Upload user data. Replace the following local file path and the destination OSS bucket path.
train_data_uri = upload("/path/to/local/train.json", "path/of/train/data")
validation_data_uri = upload("/path/to/local/validation.json", "path/of/validation/data")
# Replace the training data with your own.
# training_inputs["train"] = train_data_uri
# training_inputs["validation"] = validation_data_uri

train ve validation girişlerini kendi veri kümelerinizle değiştirin, ardından ince ayar işini gönderin. Durumu ve günlükleri PAI console içinde görüntülemek veya yakınsamayı izlemek üzere TensorBoard'u açmak için yazdırılan iş bağlantısını kullanın:

from pai.common.oss_utils import download
# Submit the training job and print the link to the job
est.fit(
    inputs=training_inputs,
    wait=False,
)
# Open TensorBoard to view training progress
est.tensorboard()
# Wait for the training job to complete
est.wait()
# View the model path on the OSS bucket
print(est.model_data())
# You can download the model to your local machine by using ossutil or the utility methods provided by the SDK.
download(est.model_data())

Tam SDK entegrasyon kılavuzu: Önceden eğitilmiş modelleri kullanma — PAI SDK for Python.

Referanslar