


Penalaan Halus Model Bahasa Besar (LLM) dengan Teras .NET, Python dan Azure
Jadual Kandungan
- Pengenalan
- Mengapa memperhalusi model bahasa besar?
- Ikhtisar Penyelesaian
- Tetapan Persekitaran
- Latihan dan penalaan halus menggunakan Python
- Sepadukan model yang diperhalusi dalam Teras .NET
- Kerahkan ke Azure
- Amalan Terbaik
- Kesimpulan
-
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.
-
Mengapa memperhalusi model bahasa besar?
-
Kekhususan Domain: LLM boleh diperhalusi untuk menggunakan istilah, nama produk atau jargon khusus industri.
-
Peningkatan prestasi: Penalaan halus selalunya mengurangkan ralat dan meningkatkan perkaitan dalam kes penggunaan seperti perkhidmatan pelanggan, penyelidikan dan analitis.
-
Kurangkan kos: Daripada membina model dari awal, anda boleh menyesuaikan LLM berkuasa sedia ada.
-
Meningkatkan kecekapan: Anda memanfaatkan pemberat yang telah dilatih dan hanya melaraskan lapisan atau parameter akhir, sekali gus mempercepatkan proses.
-
Gambaran Keseluruhan Penyelesaian
Komponen dan Teknologi
-
Python untuk penalaan halus
- Perpustakaan yang biasa digunakan (cth. Memeluk Face Transformers, PyTorch)
- Mempermudahkan proses memuatkan dan menala model pra-latihan
-
.NET Core C# untuk penyepaduan
- Dedahkan perkhidmatan hujung belakang atau API untuk memperhalusi model
- Bahasa yang ditaip dengan kuat, biasa kepada banyak pembangun perusahaan
-
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
-
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.
-
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>
5.2 Pasang kebergantungan
<code>pip install torch transformers azureml-sdk</code>
5.3 Cipta ruang kerja Pembelajaran Mesin Azure
- Kumpulan Sumber dan Ruang Kerja:
<code> az group create --name LLMFinetuneRG --location eastus az ml workspace create --name LLMFinetuneWS --resource-group LLMFinetuneRG</code>
- 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>
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>
Pada ketika ini, model anda yang diperhalusi disimpan dalam Pembelajaran Mesin Azure untuk akses mudah dan kawalan versi.
-
Sepadukan model yang diperhalusi dalam Teras .NET
6.1 Cipta projek .NET Core Web API
<code>dotnet new webapi -n FineTunedLLMApi cd FineTunedLLMApi</code>
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>
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>
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>
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>
-
Gunakan ke Azure
-
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>
-
Fungsi Azure (pilihan):
- Sesuai untuk menjalankan logik tanpa pelayan, dipacu peristiwa jika penggunaan anda terputus-putus atau dijadualkan.
-
Perkhidmatan Azure Kubernetes (AKS) (Lanjutan):
- Sesuai untuk penggunaan berskala besar.
- Simpan aplikasi anda menggunakan Docker dan tolak ke Azure Container Registry (ACR).
-
Amalan Terbaik
-
Privasi Data: Pastikan pengendalian data sensitif atau proprietari yang bertanggungjawab, terutamanya semasa latihan model.
-
Pemantauan dan Pengelogan: Sepadukan dengan Azure Application Insights untuk memantau prestasi, menjejaki penggunaan dan mengesan anomali.
-
Keselamatan: Gunakan Azure Key Vault untuk menyimpan kunci (kunci API, rentetan sambungan).
-
Versi Model: Jejaki versi diperhalusi model anda yang berbeza dalam Azure ML rollback ke versi lama jika perlu.
-
Kejuruteraan Petunjuk: Perhalusi pembayang anda untuk mendapatkan hasil terbaik daripada model anda yang diperhalusi.
-
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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











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.

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 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 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.

Pythonlistsarepartofthestandardlibrary, sementara

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.

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.

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
