国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目次
目次
はじめに
なぜ大規(guī)模な言語モデルを微調(diào)整するのでしょうか?
ソリューションの概要
コンポーネントとテクノロジー
環(huán)境設(shè)定
前提條件
Python を使用したトレーニングと微調(diào)整
5.1 仮想環(huán)境のセットアップ
5.2 依存関係をインストールする
5.3 Azure Machine Learning ワークスペースを作成する
5.4 微調(diào)整スクリプト (train.py)
5.5 Azure へのモデルの登録
微調(diào)整されたモデルを .NET Core に統(tǒng)合する
6.1 .NET Core Web API プロジェクトを作成する
6.2 依存関係を追加する
6.3 ModelConsumerService.cs
6.4 LLMController.cs
6.5 .NET Core アプリケーションの構(gòu)成
Azure へのデプロイ
ベストプラクティス
結(jié)論
ホームページ バックエンド開発 Python チュートリアル .NET Core、Python、Azure を使用した大規(guī)模言語モデル (LLM) の微調(diào)整

.NET Core、Python、Azure を使用した大規(guī)模言語モデル (LLM) の微調(diào)整

Jan 14, 2025 am 07:11 AM

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

目次

  1. はじめに
  2. なぜ大規(guī)模な言語モデルを微調(diào)整するのでしょうか?
  3. ソリューションの概要
  4. 環(huán)境設(shè)定
  5. Python を使用したトレーニングと微調(diào)整
  6. 微調(diào)整されたモデルを .NET Core に統(tǒng)合する
  7. Azure へのデプロイ
  8. ベストプラクティス
  9. 結(jié)論

  1. はじめに

大規(guī)模言語モデル (LLM) は、人間のようなテキストを理解して生成する能力で広く注目を集めています。ただし、多くの組織は、汎用モデルでは完全には捕捉できない可能性のある、獨(dú)自のドメイン固有のデータ セットと語彙を持っています。 微調(diào)整により、開発者はこれらの大規(guī)模なモデルを特定の環(huán)境や業(yè)界に適応させ、精度と関連性を向上させることができます。

この記事では、Python を使用して LLM を微調(diào)整し、その結(jié)果のモデルを .NET Core C# アプリケーションに統(tǒng)合してデプロイする方法について説明します。スケーラビリティと利便性を高めるために、すべてを Microsoft Azure 上で実行します。


  1. なぜ大規(guī)模な言語モデルを微調(diào)整するのでしょうか?

  2. ドメインの特異性: LLM は、業(yè)界固有の用語、製品名、専門用語を使用するように微調(diào)整できます。

  3. パフォーマンスの向上: 微調(diào)整により、多くの場合、エラーが減少し、顧客サービス、調(diào)査、分析などのユースケースでの関連性が向上します。

  4. コストの削減: モデルを最初から構(gòu)築する代わりに、既存の強(qiáng)力な LLM をカスタマイズできます。

  5. 効率の向上: 事前トレーニングされた重みを利用し、最終レイヤーまたはパラメーターのみを調(diào)整することで、プロセスを高速化します。


  1. ソリューションの概要

コンポーネントとテクノロジー

  1. 微調(diào)整用の Python

    • 一般的に使用されるライブラリ (例: Hugging Face Transformers、PyTorch)
    • 事前トレーニングされたモデルのロードと調(diào)整のプロセスを簡素化しました
  2. 統(tǒng)合用の .NET Core C#

    • モデルを微調(diào)整するためのバックエンド サービスまたは API を公開する
    • 多くのエンタープライズ開発者に馴染みのある、厳密に型指定された言語
  3. Azure サービス

    • トレーニングとモデル管理のための Azure Machine Learning
    • データとモデル アーティファクト用の
    • Azure Storage
    • Azure App Service または .NET Core アプリケーションをホストするための Azure Function
    • Azure Key Vault (オプション) 資格情報(bào)を保護(hù)するため

  1. 環(huán)境設(shè)定

前提條件

  • Azure サブスクリプション: Machine Learning Workspace や App Service などのリソースを作成するために必要です。
  • Python 3.8 : モデルの微調(diào)整のためにローカルにインストールされます。
  • .NET 6/7/8 SDK: .NET Core C# アプリケーションの作成と実行用。
  • Visual Studio 2022 または Visual Studio Code: 推奨される IDE。
  • Azure CLI: ターミナルを介して Azure サービスを構(gòu)成および管理するために使用されます。
  • Docker (オプション): 必要に応じてアプリケーションをコンテナ化するために使用できます。

  1. Python を使用したトレーニングと微調(diào)整

この例では、最も広く採用されている LLM 微調(diào)整ライブラリの 1 つである Hugging Face Transformers を使用します。

5.1 仮想環(huán)境のセットアップ

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

5.2 依存関係をインストールする

<code>pip install torch transformers azureml-sdk</code>

5.3 Azure Machine Learning ワークスペースを作成する

  1. リソース グループ および ワークスペース:
<code>   az group create --name LLMFinetuneRG --location eastus
   az ml workspace create --name LLMFinetuneWS --resource-group LLMFinetuneRG</code>
  1. ワークスペースに接続するためのローカル環(huán)境を構(gòu)成します (config.json ファイルまたは環(huán)境変數(shù)を使用)。

5.4 微調(diào)整スクリプト (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)

# 加載自定義數(shù)據(jù)集(本地或來自 Azure 存儲)
# 示例:Azure ML 中的文本文件或數(shù)據(jù)集
train_texts = ["此處輸入您的特定領(lǐng)域文本..."]  # 簡化版
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()

# 保存微調(diào)后的模型
trainer.save_model("./fine_tuned_model")
tokenizer.save_pretrained("./fine_tuned_model")</code>

5.5 Azure へのモデルの登録

<code>from azureml.core.model import Model

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

この時(shí)點(diǎn)で、簡単にアクセスしてバージョンを管理できるように、微調(diào)整されたモデルは Azure Machine Learning に保存されます。


  1. 微調(diào)整されたモデルを .NET Core に統(tǒng)合する

6.1 .NET Core Web API プロジェクトを作成する

<code>dotnet new webapi -n FineTunedLLMApi
cd FineTunedLLMApi</code>

6.2 依存関係を追加する

    Azure エンドポイントまたはローカル推論 API を呼び出すための
  • HttpClient
  • Newtonsoft.Json (シリアル化に JSON.NET を使用したい場合)
  • Azure リソースへの安全なアクセスのための
  • Azure.Storage.Blobs または Azure.Identity
<code>dotnet add package Microsoft.Extensions.Http
dotnet add package Microsoft.Azure.Storage.Blob
dotnet add package Newtonsoft.Json</code>

6.3 ModelConsumerService.cs

微調(diào)整されたモデルを Web サービスとしてデプロイしていると仮定します (たとえば、Azure Container Instance または Azure ML のカスタム エンドポイントを使用)。次のコード スニペットは、サービスを呼び出して完了結(jié)果を取得します。

<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 .NET Core アプリケーションの構(gòu)成

Program.cs または 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>

  1. Azure へのデプロイ

  2. Azure App Service:

    • 多くの .NET Core アプリケーションにとって、これが最も簡単なパスです。
    • Azure portal または CLI 経由で、新しい Web アプリ を作成します。
<code>python -m venv venv
source venv/bin/activate  # 在 Windows 上:venv\Scripts\activate</code>
  1. Azure 関數(shù) (オプション):

    • 使用が斷続的またはスケジュールされている場合に、サーバーレスのイベント駆動型ロジックを?qū)g行するのに最適です。
  2. Azure Kubernetes Service (AKS) (詳細(xì)):

    • 大規(guī)模な導(dǎo)入に最適です。
    • Docker を使用してアプリケーションをコンテナー化し、Azure Container Registry (ACR) にプッシュします。

  1. ベストプラクティス

  2. データ プライバシー: 特にモデルのトレーニング中に、機(jī)密データや専有データを責(zé)任を持って取り扱うようにします。

  3. 監(jiān)視とログ: Azure Application Insights と統(tǒng)合して、パフォーマンスの監(jiān)視、使用狀況の追跡、異常の検出を行います。

  4. セキュリティ: Azure Key Vault を使用してキー (API キー、接続文字列) を保存します。

  5. モデルのバージョン管理: 必要に応じて、Azure ML でモデルのさまざまな微調(diào)整されたバージョンを追跡し、古いバージョンにロールバックします。

  6. ヒント エンジニアリング: 微調(diào)整されたモデルから最良の結(jié)果を得るためにヒントを調(diào)整します。


  1. 結(jié)論

PythonAzure Machine Learning を使用して LLM を微調(diào)整し、それらを .NET Core アプリケーションに統(tǒng)合して、強(qiáng)力なドメイン固有の AI を構(gòu)築できるようにしますソリューション。この組み合わせは、Azure の拡張性をすべて活用した Python の AI エコシステムと .NET のエンタープライズ機(jī)能を活用したい組織にとって優(yōu)れた選択肢です。

セキュリティ、データ ガバナンス、DevOps を慎重に計(jì)畫することで、実世界のニーズを満たす本番環(huán)境に対応したソリューションを立ち上げ、強(qiáng)力で保守が容易なフレームワークで正確なドメイン固有の言語機(jī)能を提供できます。

以上が.NET Core、Python、Azure を使用した大規(guī)模言語モデル (LLM) の微調(diào)整の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Pythonの不適格またはPytestフレームワークは、自動テストをどのように促進(jìn)しますか? Pythonの不適格またはPytestフレームワークは、自動テストをどのように促進(jìn)しますか? Jun 19, 2025 am 01:10 AM

Pythonの不適格でPytestは、自動テストの書き込み、整理、および実行を簡素化する2つの広く使用されているテストフレームワークです。 1.両方とも、テストケースの自動発見をサポートし、明確なテスト構(gòu)造を提供します。 pytestはより簡潔で、テスト\ _から始まる関數(shù)が必要です。 2。それらはすべて組み込みのアサーションサポートを持っています:Unittestはアサートエクイアル、アサートトルー、およびその他の方法を提供しますが、Pytestは拡張されたアサートステートメントを使用して障害の詳細(xì)を自動的に表示します。 3.すべてがテストの準(zhǔn)備とクリーニングを処理するためのメカニズムを持っています:un

Pythonは、NumpyやPandasなどのライブラリとのデータ分析と操作にどのように使用できますか? Pythonは、NumpyやPandasなどのライブラリとのデータ分析と操作にどのように使用できますか? Jun 19, 2025 am 01:04 AM

pythonisidealfordataanalysisduetonumpyandpandas.1)numpyexcelsatnumericalcompitations withfast、多次元路面およびベクトル化された分離likenp.sqrt()

動的なプログラミング技術(shù)とは何ですか?また、Pythonでそれらを使用するにはどうすればよいですか? 動的なプログラミング技術(shù)とは何ですか?また、Pythonでそれらを使用するにはどうすればよいですか? Jun 20, 2025 am 12:57 AM

動的プログラミング(DP)は、複雑な問題をより単純なサブ問題に分解し、結(jié)果を保存して繰り返し計(jì)算を回避することにより、ソリューションプロセスを最適化します。主な方法は2つあります。1。トップダウン(暗記):問題を再帰的に分解し、キャッシュを使用して中間結(jié)果を保存します。 2。ボトムアップ(表):基本的な狀況からソリューションを繰り返し構(gòu)築します。フィボナッチシーケンス、バックパッキングの問題など、最大/最小値、最適なソリューション、または重複するサブ問題が必要なシナリオに適しています。Pythonでは、デコレータまたはアレイを通じて実裝でき、再帰的な関係を特定し、ベンチマークの狀況を定義し、空間の複雑さを最適化することに注意する必要があります。

__iter__と__next__を使用してPythonにカスタムイテレーターを?qū)g裝するにはどうすればよいですか? __iter__と__next__を使用してPythonにカスタムイテレーターを?qū)g裝するにはどうすればよいですか? Jun 19, 2025 am 01:12 AM

カスタムイテレーターを?qū)g裝するには、クラス內(nèi)の__iter__および__next__メソッドを定義する必要があります。 __iter__メソッドは、ループなどの反復(fù)環(huán)境と互換性があるように、通常は自己の反復(fù)オブジェクト自體を返します。 __next__メソッドは、各反復(fù)の値を制御し、シーケンスの次の要素を返し、アイテムがもうない場合、停止例外をスローする必要があります。 statusステータスを正しく追跡する必要があり、無限のループを避けるために終了條件を設(shè)定する必要があります。 fileファイルラインフィルタリングなどの複雑なロジック、およびリソースクリーニングとメモリ管理に注意を払ってください。 simple単純なロジックについては、代わりにジェネレーター関數(shù)の収率を使用することを検討できますが、特定のシナリオに基づいて適切な方法を選択する必要があります。

Pythonプログラミング言語とそのエコシステムの新たな傾向または將來の方向性は何ですか? Pythonプログラミング言語とそのエコシステムの新たな傾向または將來の方向性は何ですか? Jun 19, 2025 am 01:09 AM

Pythonの將來の傾向には、パフォーマンスの最適化、より強(qiáng)力なタイププロンプト、代替ランタイムの増加、およびAI/MLフィールドの継続的な成長が含まれます。第一に、CPYTHONは最適化を続け、スタートアップのより速い時(shí)間、機(jī)能通話の最適化、および提案された整數(shù)操作を通じてパフォーマンスを向上させ続けています。第二に、タイプのプロンプトは、コードセキュリティと開発エクスペリエンスを強(qiáng)化するために、言語とツールチェーンに深く統(tǒng)合されています。第三に、PyscriptやNuitkaなどの代替のランタイムは、新しい機(jī)能とパフォーマンスの利點(diǎn)を提供します。最後に、AIとデータサイエンスの分野は拡大し続けており、新興図書館はより効率的な開発と統(tǒng)合を促進(jìn)します。これらの傾向は、Pythonが常に技術(shù)の変化に適応し、その主要な位置を維持していることを示しています。

ソケットを使用してPythonでネットワークプログラミングを?qū)g行するにはどうすればよいですか? ソケットを使用してPythonでネットワークプログラミングを?qū)g行するにはどうすればよいですか? Jun 20, 2025 am 12:56 AM

Pythonのソケットモジュールは、クライアントおよびサーバーアプリケーションの構(gòu)築に適した低レベルのネットワーク通信機(jī)能を提供するネットワークプログラミングの基礎(chǔ)です?;镜膜蔜CPサーバーを設(shè)定するには、Socket.Socket()を使用してオブジェクトを作成し、アドレスとポートをバインドし、.listen()を呼び出して接続をリッスンし、.accept()を介してクライアント接続を受け入れる必要があります。 TCPクライアントを構(gòu)築するには、ソケットオブジェクトを作成し、.connect()を呼び出してサーバーに接続する必要があります。次に、.sendall()を使用してデータと.recv()を送信して応答を受信します。複數(shù)のクライアントを処理するには、1つを使用できます。スレッド:接続するたびに新しいスレッドを起動します。 2。非同期I/O:たとえば、Asyncioライブラリは非ブロッキング通信を?qū)g現(xiàn)できます。注意すべきこと

Pythonクラスの多型 Pythonクラスの多型 Jul 05, 2025 am 02:58 AM

Pythonオブジェクト指向プログラミングのコアコンセプトであるPythonは、「1つのインターフェイス、複數(shù)の実裝」を指し、異なるタイプのオブジェクトの統(tǒng)一処理を可能にします。 1。多型は、メソッドの書き換えを通じて実裝されます。サブクラスは、親クラスの方法を再定義できます。たとえば、Animal ClassのSOCK()方法は、犬と貓のサブクラスに異なる実裝を持っています。 2.多型の実用的な用途には、グラフィカルドローイングプログラムでdraw()メソッドを均一に呼び出すなど、コード構(gòu)造を簡素化し、スケーラビリティを向上させる、ゲーム開発における異なる文字の共通の動作の処理などが含まれます。 3. Pythonの実裝多型を満たす必要があります:親クラスはメソッドを定義し、子クラスはメソッドを上書きしますが、同じ親クラスの継承は必要ありません。オブジェクトが同じ方法を?qū)g裝する限り、これは「アヒル型」と呼ばれます。 4.注意すべきことには、メンテナンスが含まれます

Pythonでリストをスライスするにはどうすればよいですか? Pythonでリストをスライスするにはどうすればよいですか? Jun 20, 2025 am 12:51 AM

Pythonリストスライスに対するコアの答えは、[start:end:step]構(gòu)文をマスターし、その動作を理解することです。 1.リストスライスの基本形式はリスト[start:end:step]です。ここで、開始は開始インデックス(含まれています)、endはend index(含まれていません)、ステップはステップサイズです。 2。デフォルトで開始を省略して、0から開始を開始し、デフォルトで終了して終了し、デフォルトでステップを1に省略します。 3。my_list[:n]を使用して最初のnアイテムを取得し、my_list [-n:]を使用して最後のnアイテムを取得します。 4.ステップを使用して、my_list [:: 2]などの要素をスキップして、均一な數(shù)字と負(fù)のステップ値を取得できます。 5.一般的な誤解には、終了インデックスが含まれません

See all articles