Jadual Kandungan
Jadual Kandungan
Pengenalan
Mengapa memperhalusi model bahasa besar?
Gambaran Keseluruhan Penyelesaian
Komponen dan Teknologi
Tetapan persekitaran
Prasyarat
Latihan dan penalaan halus menggunakan Python
5.1 Sediakan persekitaran maya
5.2 Pasang kebergantungan
5.3 Cipta ruang kerja Pembelajaran Mesin Azure
5.4 Skrip penalaan halus (train.py)
5.5 Daftar model dalam Azure
Sepadukan model yang diperhalusi dalam Teras .NET
6.1 Cipta projek .NET Core Web API
6.2 Tambah kebergantungan
6.3 ModelConsumerService.cs
6.4 LLMController.cs
6.5 Mengkonfigurasi Aplikasi Teras .NET
Gunakan ke Azure
Amalan Terbaik
Kesimpulan
Rumah pembangunan bahagian belakang Tutorial Python Penalaan Halus Model Bahasa Besar (LLM) dengan Teras .NET, Python dan Azure

Penalaan Halus Model Bahasa Besar (LLM) dengan Teras .NET, Python dan Azure

Jan 14, 2025 am 07:11 AM

Fine-Tuning Large Language Models (LLMs) with .NET Core, Python, and Azure

Jadual Kandungan

  1. Pengenalan
  2. Mengapa memperhalusi model bahasa besar?
  3. Ikhtisar Penyelesaian
  4. Tetapan Persekitaran
  5. Latihan dan penalaan halus menggunakan Python
  6. Sepadukan model yang diperhalusi dalam Teras .NET
  7. Kerahkan ke Azure
  8. Amalan Terbaik
  9. Kesimpulan

  1. Pengenalan

Model bahasa berskala besar (LLM) telah mendapat perhatian meluas kerana keupayaannya memahami dan menjana teks seperti manusia. Walau bagaimanapun, banyak organisasi mempunyai set data dan perbendaharaan kata yang unik dan khusus domain yang mungkin tidak dapat ditangkap sepenuhnya oleh model generik. Penalaan halus membolehkan pembangun menyesuaikan model besar ini kepada persekitaran atau industri tertentu, meningkatkan ketepatan dan perkaitan.

Artikel ini meneroka cara memperhalusi LLM menggunakan Python, kemudian menyepadukan dan menggunakan model yang terhasil ke dalam aplikasi .NET Core C#, semuanya dilakukan pada Microsoft Azure untuk kebolehskalaan dan Kemudahan.


  1. Mengapa memperhalusi model bahasa besar?

  2. Kekhususan Domain: LLM boleh diperhalusi untuk menggunakan istilah, nama produk atau jargon khusus industri.

  3. Peningkatan prestasi: Penalaan halus selalunya mengurangkan ralat dan meningkatkan perkaitan dalam kes penggunaan seperti perkhidmatan pelanggan, penyelidikan dan analitis.

  4. Kurangkan kos: Daripada membina model dari awal, anda boleh menyesuaikan LLM berkuasa sedia ada.

  5. Meningkatkan kecekapan: Anda memanfaatkan pemberat yang telah dilatih dan hanya melaraskan lapisan atau parameter akhir, sekali gus mempercepatkan proses.


  1. Gambaran Keseluruhan Penyelesaian

Komponen dan Teknologi

  1. Python untuk penalaan halus

    • Perpustakaan yang biasa digunakan (cth. Memeluk Face Transformers, PyTorch)
    • Mempermudahkan proses memuatkan dan menala model pra-latihan
  2. .NET Core C# untuk penyepaduan

    • Dedahkan perkhidmatan hujung belakang atau API untuk memperhalusi model
    • Bahasa yang ditaip dengan kuat, biasa kepada banyak pembangun perusahaan
  3. Perkhidmatan Azure

    • Pembelajaran Mesin Azure untuk latihan dan pengurusan model
    • Storan Azure untuk data dan artifak model
    • Perkhidmatan Aplikasi Azure atau Fungsi Azure untuk mengehos aplikasi Teras .NET
    • Azure Key Vault (pilihan) untuk melindungi kelayakan

  1. Tetapan persekitaran

Prasyarat

  • Langganan Azure: Diperlukan untuk mencipta sumber seperti Ruang Kerja Pembelajaran Mesin dan Perkhidmatan Apl.
  • Python 3.8 : Dipasang secara setempat untuk penalaan halus model.
  • .NET 6/7/8 SDK: Untuk mencipta dan menjalankan aplikasi .NET Core C#.
  • Visual Studio 2022 atau Visual Studio Code: IDE Disyorkan.
  • Azure CLI: Digunakan untuk mengkonfigurasi dan mengurus perkhidmatan Azure melalui terminal.
  • Docker (pilihan): Boleh digunakan untuk menyimpan aplikasi anda jika perlu.

  1. Latihan dan penalaan halus menggunakan Python

Contoh ini menggunakan Hugging Face Transformers - salah satu perpustakaan penalaan halus LLM yang diterima pakai secara meluas.

5.1 Sediakan persekitaran maya

<code>python -m venv venv
source venv/bin/activate  # 在 Windows 上:venv\Scripts\activate</code>
Salin selepas log masuk
Salin selepas log masuk

5.2 Pasang kebergantungan

<code>pip install torch transformers azureml-sdk</code>
Salin selepas log masuk

5.3 Cipta ruang kerja Pembelajaran Mesin Azure

  1. Kumpulan Sumber dan Ruang Kerja:
<code>   az group create --name LLMFinetuneRG --location eastus
   az ml workspace create --name LLMFinetuneWS --resource-group LLMFinetuneRG</code>
Salin selepas log masuk
  1. Konfigurasikan persekitaran setempat untuk menyambung ke ruang kerja (menggunakan fail config.json atau pembolehubah persekitaran).

5.4 Skrip penalaan halus (train.py)

<code>import os
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, TrainingArguments, Trainer
from azureml.core import Workspace, Run

# 连接到 Azure ML
ws = Workspace.from_config()
run = Run.get_context()

model_name = "gpt2"  # 示例模型
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)

# 加载自定义数据集(本地或来自 Azure 存储)
# 示例:Azure ML 中的文本文件或数据集
train_texts = ["此处输入您的特定领域文本..."]  # 简化版
train_encodings = tokenizer(train_texts, truncation=True, padding=True)

class CustomDataset(torch.utils.data.Dataset):
    def __init__(self, encodings):
        self.encodings = encodings
    def __len__(self):
        return len(self.encodings["input_ids"])
    def __getitem__(self, idx):
        return {k: torch.tensor(v[idx]) for k, v in self.encodings.items()}

train_dataset = CustomDataset(train_encodings)

training_args = TrainingArguments(
    output_dir="./results",
    num_train_epochs=3,
    per_device_train_batch_size=2,
    save_steps=100,
    logging_steps=100
)

trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=train_dataset,
)

trainer.train()

# 保存微调后的模型
trainer.save_model("./fine_tuned_model")
tokenizer.save_pretrained("./fine_tuned_model")</code>
Salin selepas log masuk

5.5 Daftar model dalam Azure

<code>from azureml.core.model import Model

model = Model.register(
    workspace=ws,
    model_path="./fine_tuned_model",
    model_name="myFineTunedLLM"
)</code>
Salin selepas log masuk

Pada ketika ini, model anda yang diperhalusi disimpan dalam Pembelajaran Mesin Azure untuk akses mudah dan kawalan versi.


  1. Sepadukan model yang diperhalusi dalam Teras .NET

6.1 Cipta projek .NET Core Web API

<code>dotnet new webapi -n FineTunedLLMApi
cd FineTunedLLMApi</code>
Salin selepas log masuk

6.2 Tambah kebergantungan

  • HttpClient untuk memanggil titik akhir Azure atau API inferens setempat
  • Newtonsoft.Json (jika anda lebih suka menggunakan JSON.NET untuk bersiri)
  • Azure.Storage.Blobs atau Azure.Identity untuk akses selamat kepada sumber Azure
<code>dotnet add package Microsoft.Extensions.Http
dotnet add package Microsoft.Azure.Storage.Blob
dotnet add package Newtonsoft.Json</code>
Salin selepas log masuk

6.3 ModelConsumerService.cs

Andaikan anda telah menggunakan model anda yang diperhalusi sebagai perkhidmatan web (contohnya, menggunakan Instance Kontena Azure atau titik akhir tersuai dalam Azure ML). Coretan kod berikut memanggil perkhidmatan untuk mendapatkan hasil penyiapan.

<code>using Newtonsoft.Json;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

public class ModelConsumerService
{
    private readonly HttpClient _httpClient;

    public ModelConsumerService(IHttpClientFactory httpClientFactory)
    {
        _httpClient = httpClientFactory.CreateClient("FineTunedModel");
    }

    public async Task<string> GetCompletionAsync(string prompt)
    {
        var requestBody = new { prompt = prompt };
        var content = new StringContent(
            JsonConvert.SerializeObject(requestBody),
            Encoding.UTF8, 
            "application/json");

        var response = await _httpClient.PostAsync("/predict", content);
        response.EnsureSuccessStatusCode();
        return await response.Content.ReadAsStringAsync();
    }
}</code>
Salin selepas log masuk

6.4 LLMController.cs

<code>using Microsoft.AspNetCore.Mvc;
using System.Threading.Tasks;

[ApiController]
[Route("[controller]")]
public class LLMController : ControllerBase
{
    private readonly ModelConsumerService _modelService;

    public LLMController(ModelConsumerService modelService)
    {
        _modelService = modelService;
    }

    [HttpPost("complete")]
    public async Task<IActionResult> CompletePrompt([FromBody] PromptRequest request)
    {
        var result = await _modelService.GetCompletionAsync(request.Prompt);
        return Ok(new { Completion = result });
    }
}

public class PromptRequest
{
    public string Prompt { get; set; }
}</code>
Salin selepas log masuk

6.5 Mengkonfigurasi Aplikasi Teras .NET

Dalam Program.cs atau Startup.cs:

<code>var builder = WebApplication.CreateBuilder(args);

// 注册 HttpClient
builder.Services.AddHttpClient("FineTunedModel", client =>
{
    client.BaseAddress = new Uri("https://your-model-endpoint/");
});

// 注册 ModelConsumerService
builder.Services.AddTransient<ModelConsumerService>();

builder.Services.AddControllers();
var app = builder.Build();

app.MapControllers();
app.Run();</code>
Salin selepas log masuk

  1. Gunakan ke Azure

  2. Perkhidmatan Apl Azure:

    • Bagi kebanyakan aplikasi Teras .NET, ini adalah laluan paling mudah.
    • Buat Apl Web baharu daripada portal Azure atau melalui CLI.
<code>python -m venv venv
source venv/bin/activate  # 在 Windows 上:venv\Scripts\activate</code>
Salin selepas log masuk
Salin selepas log masuk
  1. Fungsi Azure (pilihan):

    • Sesuai untuk menjalankan logik tanpa pelayan, dipacu peristiwa jika penggunaan anda terputus-putus atau dijadualkan.
  2. Perkhidmatan Azure Kubernetes (AKS) (Lanjutan):

    • Sesuai untuk penggunaan berskala besar.
    • Simpan aplikasi anda menggunakan Docker dan tolak ke Azure Container Registry (ACR).

  1. Amalan Terbaik

  2. Privasi Data: Pastikan pengendalian data sensitif atau proprietari yang bertanggungjawab, terutamanya semasa latihan model.

  3. Pemantauan dan Pengelogan: Sepadukan dengan Azure Application Insights untuk memantau prestasi, menjejaki penggunaan dan mengesan anomali.

  4. Keselamatan: Gunakan Azure Key Vault untuk menyimpan kunci (kunci API, rentetan sambungan).

  5. Versi Model: Jejaki versi diperhalusi model anda yang berbeza dalam Azure ML rollback ke versi lama jika perlu.

  6. Kejuruteraan Petunjuk: Perhalusi pembayang anda untuk mendapatkan hasil terbaik daripada model anda yang diperhalusi.


  1. Kesimpulan

Perhalus LLM menggunakan Python dan Pembelajaran Mesin Azure dan kemudian integrasikannya ke dalam aplikasi .NET Core, membolehkan anda membina AI khusus domain yang berkuasa penyelesaian. Gabungan ini ialah pilihan terbaik untuk organisasi yang ingin memanfaatkan ekosistem AI Python dan keupayaan perusahaan .NET, semuanya dikuasakan oleh kebolehlanjutan Azure.

Dengan perancangan teliti untuk keselamatan, tadbir urus data dan DevOps, anda boleh melancarkan penyelesaian sedia pengeluaran yang memenuhi keperluan dunia sebenar, menyampaikan fungsi bahasa khusus domain yang tepat dalam rangka kerja yang berkuasa dan mudah diselenggara.

Atas ialah kandungan terperinci Penalaan Halus Model Bahasa Besar (LLM) dengan Teras .NET, Python dan Azure. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1674
14
Tutorial PHP
1278
29
Tutorial C#
1257
24
Python vs C: Lengkung pembelajaran dan kemudahan penggunaan Python vs C: Lengkung pembelajaran dan kemudahan penggunaan Apr 19, 2025 am 12:20 AM

Python lebih mudah dipelajari dan digunakan, manakala C lebih kuat tetapi kompleks. 1. Sintaks Python adalah ringkas dan sesuai untuk pemula. Penaipan dinamik dan pengurusan memori automatik menjadikannya mudah digunakan, tetapi boleh menyebabkan kesilapan runtime. 2.C menyediakan kawalan peringkat rendah dan ciri-ciri canggih, sesuai untuk aplikasi berprestasi tinggi, tetapi mempunyai ambang pembelajaran yang tinggi dan memerlukan memori manual dan pengurusan keselamatan jenis.

Pembelajaran Python: Adakah 2 jam kajian harian mencukupi? Pembelajaran Python: Adakah 2 jam kajian harian mencukupi? Apr 18, 2025 am 12:22 AM

Adakah cukup untuk belajar Python selama dua jam sehari? Ia bergantung pada matlamat dan kaedah pembelajaran anda. 1) Membangunkan pelan pembelajaran yang jelas, 2) Pilih sumber dan kaedah pembelajaran yang sesuai, 3) mengamalkan dan mengkaji semula dan menyatukan amalan tangan dan mengkaji semula dan menyatukan, dan anda secara beransur-ansur boleh menguasai pengetahuan asas dan fungsi lanjutan Python dalam tempoh ini.

Python vs C: Meneroka Prestasi dan Kecekapan Python vs C: Meneroka Prestasi dan Kecekapan Apr 18, 2025 am 12:20 AM

Python lebih baik daripada C dalam kecekapan pembangunan, tetapi C lebih tinggi dalam prestasi pelaksanaan. 1. Sintaks ringkas Python dan perpustakaan yang kaya meningkatkan kecekapan pembangunan. 2. Ciri-ciri jenis kompilasi dan kawalan perkakasan meningkatkan prestasi pelaksanaan. Apabila membuat pilihan, anda perlu menimbang kelajuan pembangunan dan kecekapan pelaksanaan berdasarkan keperluan projek.

Python vs C: Memahami perbezaan utama Python vs C: Memahami perbezaan utama Apr 21, 2025 am 12:18 AM

Python dan C masing -masing mempunyai kelebihan sendiri, dan pilihannya harus berdasarkan keperluan projek. 1) Python sesuai untuk pembangunan pesat dan pemprosesan data kerana sintaks ringkas dan menaip dinamik. 2) C sesuai untuk prestasi tinggi dan pengaturcaraan sistem kerana menaip statik dan pengurusan memori manual.

Yang merupakan sebahagian daripada Perpustakaan Standard Python: Senarai atau Array? Yang merupakan sebahagian daripada Perpustakaan Standard Python: Senarai atau Array? Apr 27, 2025 am 12:03 AM

Pythonlistsarepartofthestandardlibrary, sementara

Python: Automasi, skrip, dan pengurusan tugas Python: Automasi, skrip, dan pengurusan tugas Apr 16, 2025 am 12:14 AM

Python cemerlang dalam automasi, skrip, dan pengurusan tugas. 1) Automasi: Sandaran fail direalisasikan melalui perpustakaan standard seperti OS dan Shutil. 2) Penulisan Skrip: Gunakan Perpustakaan Psutil untuk memantau sumber sistem. 3) Pengurusan Tugas: Gunakan perpustakaan jadual untuk menjadualkan tugas. Kemudahan penggunaan Python dan sokongan perpustakaan yang kaya menjadikannya alat pilihan di kawasan ini.

Python untuk pengkomputeran saintifik: rupa terperinci Python untuk pengkomputeran saintifik: rupa terperinci Apr 19, 2025 am 12:15 AM

Aplikasi Python dalam pengkomputeran saintifik termasuk analisis data, pembelajaran mesin, simulasi berangka dan visualisasi. 1.Numpy menyediakan susunan pelbagai dimensi yang cekap dan fungsi matematik. 2. Scipy memanjangkan fungsi numpy dan menyediakan pengoptimuman dan alat algebra linear. 3. Pandas digunakan untuk pemprosesan dan analisis data. 4.Matplotlib digunakan untuk menghasilkan pelbagai graf dan hasil visual.

Python untuk Pembangunan Web: Aplikasi Utama Python untuk Pembangunan Web: Aplikasi Utama Apr 18, 2025 am 12:20 AM

Aplikasi utama Python dalam pembangunan web termasuk penggunaan kerangka Django dan Flask, pembangunan API, analisis data dan visualisasi, pembelajaran mesin dan AI, dan pengoptimuman prestasi. 1. Rangka Kerja Django dan Flask: Django sesuai untuk perkembangan pesat aplikasi kompleks, dan Flask sesuai untuk projek kecil atau sangat disesuaikan. 2. Pembangunan API: Gunakan Flask atau DjangorestFramework untuk membina Restfulapi. 3. Analisis Data dan Visualisasi: Gunakan Python untuk memproses data dan memaparkannya melalui antara muka web. 4. Pembelajaran Mesin dan AI: Python digunakan untuk membina aplikasi web pintar. 5. Pengoptimuman Prestasi: Dioptimumkan melalui pengaturcaraan, caching dan kod tak segerak

See all articles