亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
學習目標
目錄
為什麼要一種微型語言模型?
如何使用Lamini微調(diào)開源LLM?
數(shù)據(jù)準備
標記數(shù)據(jù)集
微調(diào)過程
設置環(huán)境
加載數(shù)據(jù)集
設置型號,培訓配置和令牌器
設置培訓進行微調(diào),模型
結(jié)論
關(guān)鍵要點
常見問題
首頁 科技週邊 人工智慧 使用Lamini-Analytics Vidhya微調(diào)開源LLM

使用Lamini-Analytics Vidhya微調(diào)開源LLM

Apr 12, 2025 am 10:20 AM

最近,隨著大語言模型和AI的興起,我們看到了自然語言處理方面的無數(shù)進步。文本,代碼和圖像/視頻生成等域中的模型具有歸檔的人類的推理和性能。這些模型在基於知識的問題中表現(xiàn)出色。 GPT-4O,Llama 2,Claude和Gemini之類的模型在公開可用的數(shù)據(jù)集上進行了培訓。他們未能回答可能對各種組織任務更有用的領域或特定於主題的問題。

微觀調(diào)整可幫助開發(fā)人員和企業(yè)適應並訓練預培訓的模型,以適用於特定於域的數(shù)據(jù)集,該數(shù)據(jù)集對與域相關(guān)的查詢進行了高度準確性和相干性。微調(diào)可以增強模型的性能,而無需大量的計算資源,因為預訓練的模型已經(jīng)從廣泛的公共數(shù)據(jù)中學到了一般文本。

該博客將研究為什麼我們必須使用Lamini平臺微調(diào)預訓練的模型。這使我們可以在不使用大量計算資源的情況下微調(diào)和評估模型。

所以,讓我們開始吧!

學習目標

  • 探索使用tofine-tune開源LLM的需求
  • 找出使用拉米尼的使用以及在微調(diào)模型上的指示下
  • 為了動手了解微調(diào)模型的端到端過程。

本文作為Thedata Science Blogathon的一部分發(fā)表。

使用Lamini-Analytics Vidhya微調(diào)開源LLM

目錄

  • 學習目標
  • 為什麼要一種微型語言模型?
  • 如何使用Lamini微調(diào)開源LLM?
    • 數(shù)據(jù)準備
    • 標記數(shù)據(jù)集
    • 微調(diào)過程
    • 設置環(huán)境
    • 加載數(shù)據(jù)集
    • 設置培訓進行微調(diào),模型
  • 結(jié)論
  • 常見問題

為什麼要一種微型語言模型?

預先訓練的模型主要是對龐大的一般數(shù)據(jù)進行培訓的,並且很有可能缺乏上下文或特定領域知識。預訓練的模型也可能導致幻覺以及不準確和不連貫的輸出。最受歡迎的大型語言模型基於聊天機器人,例如Chatgpt,Gemini和Bingchat,它反復表明,預訓練的模型容易出現(xiàn)這種不準確性。這是救援進行微調(diào)的地方,這可以有助於有效地適應特定於主題的任務和問題。將模型與您的目標保持一致的其他方法包括及時的工程和少量及時工程。

儘管如此,在性能指標方面,微調(diào)仍然表現(xiàn)優(yōu)於表現(xiàn)。諸如參數(shù)有效的微調(diào)和低自適應排名諸如諸如模型的微調(diào)和低自適應排名的方法之類的方法進一步改進了模型,並幫助開發(fā)人員生成了更好的模型。讓我們看一下微調(diào)在大型語言模型上下文中的適合程度。

 #加載微調(diào)數(shù)據(jù)集
文件名=“ lamini_docs.json”
conterction_dataset_df = pd.read_json(文件名,lines = true)
指令_dataset_df

#將其加載到Python的詞典中
示例=指令_dataset_df.to_dict()

#準備樣品以進行微調(diào) 
如果在示例中“問題”和示例中的“答案”:
  text =示例[“問題”] [0]示例[“答案”] [0]
示例中的elif“指示”和“響應”示例:
  text =示例[“指令”] [0]示例[“響應”] [0]
示例中的elif“輸入”和示例中的“輸出”:
  text =示例[“輸入”] [0]示例[“輸出”] [0]
別的:
  text =示例[“ text”] [0]

#使用提示模板創(chuàng)建指令調(diào)諧數(shù)據(jù)集進行微調(diào)
提示_template_qa =“” ###問題:
{問題}

### 回答:
{回答}”””

上面的代碼顯示,指令調(diào)整使用提示模板來準備數(shù)據(jù)集進行指令調(diào)整併微調(diào)特定數(shù)據(jù)集的模型。我們可以使用此類自定義數(shù)據(jù)集將預訓練的模型調(diào)整為特定的用例。

下一節(jié)將研究Lamini如何為自定義數(shù)據(jù)集提供微型語言模型(LLM)。

如何使用Lamini微調(diào)開源LLM?

Lamini平臺使用戶可以無縫地進行微調(diào)和部署模型,而無需太多的成本和硬件設置要求。 Lamini提供了一個端到端的堆棧,可在用戶方便和模型要求下開發(fā),訓練,調(diào)整,E和部署模型。 Lamini提供了自己的託管GPU計算網(wǎng)絡,以經(jīng)濟有效地培訓模型。

使用Lamini-Analytics Vidhya微調(diào)開源LLM

Lamini內(nèi)存調(diào)整工具和計算優(yōu)化有助於訓練和調(diào)整模型,同時控製成本。模型可以在任何地方,私有云或通過Lamini的GPU網(wǎng)絡託管。接下來,我們將看到一份逐步指南,使用Lamini平臺準備數(shù)據(jù)以微調(diào)大語言模型(LLMS)。

數(shù)據(jù)準備

通常,我們需要選擇一個特定領域的數(shù)據(jù)集進行數(shù)據(jù)清潔,促銷,令牌化和存儲,以準備任何微調(diào)任務的數(shù)據(jù)。加載數(shù)據(jù)集後,我們將其進行預處理以將其轉(zhuǎn)換為指令調(diào)整的數(shù)據(jù)集。我們將每個樣本從數(shù)據(jù)集格式化為指令,問和答案格式,以更好地為我們的用例微調(diào)。使用此處給出的鏈接查看數(shù)據(jù)集的來源。讓我們看一下使用Lamini平臺進行訓練的代幣化調(diào)整的代碼示例說明。

導入大熊貓作為pd

#加載數(shù)據(jù)集並將其作為指令數(shù)據(jù)集存儲
文件名=“ lamini_docs.json”
conterction_dataset_df = pd.read_json(文件名,lines = true)
示例=指令_dataset_df.to_dict()

如果在示例中“問題”和示例中的“答案”:
  text =示例[“問題”] [0]示例[“答案”] [0]
示例中的elif“指示”和“響應”示例:
  text =示例[“指令”] [0]示例[“響應”] [0]
示例中的elif“輸入”和示例中的“輸出”:
  text =示例[“輸入”] [0]示例[“輸出”] [0]
別的:
  text =示例[“ text”] [0]

提示_template =“” ###問題:
{問題}

### 回答:”””

#存儲微調(diào)示例作為指令格式
num_examples = len(示例[“問題”])
finetuning_dataset = []
對於我的範圍(num_examples):
  問題=示例[“問題”] [i]
  答案=示例[“答案”] [i]
  text_with_prompt_template = strump_template.format(Question = Question)
  finetuning_dataset.append({“問題”:text_with_prompt_template, 
                             “答案”:答案})

在上面的示例中,我們在及時的模板中格式化了“問題”和“答案”,並將它們存儲在訓練LLM之前的單獨文件中以進行令牌化和填充。

標記數(shù)據(jù)集

#帶有填充和截斷的數(shù)據(jù)集的象徵化
def tokenize_function(示例):
    如果在示例中“問題”和示例中的“答案”:
      text =示例[“問題”] [0]示例[“答案”] [0]
    示例中的elif“輸入”和示例中的“輸出”:
      text =示例[“輸入”] [0]示例[“輸出”] [0]
    別的:
      text =示例[“ text”] [0]
    
    #填充
    tokenizer.pad_token = tokenizer.eos_token
    tokenized_inputs = tokenizer(
        文字,
        return_tensors =“ np”,
        填充= true,
    )

    max_length = min(min
        tokenized_inputs [“ input_ids”]。形狀[1],
        2048
    )
    #文本的截斷
    tokenizer.truncation_side =“左”
    tokenized_inputs = tokenizer(
        文字,
        return_tensors =“ np”,
        截斷= true,
        max_length = max_length
    )

    返回tokenized_inputs

上面的代碼將數(shù)據(jù)集樣本作為填充和截斷的輸入,並使用令牌化來生成預處理的令牌化數(shù)據(jù)集樣本,可用於微調(diào)預培訓的模型。現(xiàn)在,數(shù)據(jù)集已經(jīng)準備好了,我們將使用Lamini平臺研究模型的培訓和評估。

微調(diào)過程

現(xiàn)在,我們已經(jīng)有一個以指令調(diào)整格式準備的數(shù)據(jù)集,我們將使用Lamini的易於使用的培訓技巧將數(shù)據(jù)集加載到環(huán)境中,並對預訓練的LLM模型進行微調(diào)。

使用Lamini-Analytics Vidhya微調(diào)開源LLM

設置環(huán)境

為了開始使用Lamini進行微調(diào)開放式旅行,我們必須首先確保我們的代碼環(huán)境安裝了合適的資源和庫。我們必須確保您擁有具有足夠GPU資源的合適機器,並安裝必要的庫,例如變形金剛,數(shù)據(jù)集,火炬和熊貓。您必須安全地加載環(huán)境變量,例如API_URL和API_KEY,通常來自環(huán)境文件。您可以使用Dotenv之類的軟件包來加載這些變量。準備環(huán)境後,加載數(shù)據(jù)集和培訓模型。

導入操作系統(tǒng)
來自拉米尼進口蘭米尼

lamini.api_url = os.getEnv(“ powerml__production__url”)
lamini.api_key = os.getEnv(“ powerml__production __key”)

#導入必要的庫並加載環(huán)境文件
導入數(shù)據(jù)集
導入tempfile
導入記錄
導入隨機
導入config
導入操作系統(tǒng)
導入山藥
進口時間
導入火炬
導入變壓器
導入大熊貓作為pd
導入jsonlines

#加載變壓器體系結(jié)構(gòu)和[[
從公用事業(yè)導入 *
從變形金剛導入自動源
從變形金剛導入AutomoDelforCausAllm
從變形金剛進口培訓
從變形金剛導入AutomoDelforCausAllm
來自Llama Import Basic Modelrunner

logger = logging.getLogger(__名稱__)
global_config =無

加載數(shù)據(jù)集

設置監(jiān)視和調(diào)試的日誌記錄後,請使用數(shù)據(jù)集或其他數(shù)據(jù)處理庫(例如JSONLINES和PAN??DAS)準備數(shù)據(jù)集。加載數(shù)據(jù)集後,我們將設置一個用於培訓過程的培訓配置的令牌和模型。

 #從您的本地系統(tǒng)或HF雲(yún)中加載數(shù)據(jù)集
dataset_name =“ lamini_docs.jsonl”
dataset_path = f“/content/{dataset_name}”
use_hf = false

#數(shù)據(jù)集路徑
dataset_path =“ lamini/lamini_docs”

設置型號,培訓配置和令牌器

接下來,我們選擇使用lamlamini,“ eleutherai/pythia-70m”進行微調(diào)開放式的模型,並在triagn_config下定義其配置,指定預訓練的模型名稱和數(shù)據(jù)集路徑。我們使用模型的令牌將自動攝影劑初始化,並將填充設置為序列令牌。然後,我們使用自定義功能Tokenize_and_split_data將數(shù)據(jù)歸為數(shù)據(jù)並將其分為培訓和測試數(shù)據(jù)集。最後,我們使用AutoModelForCausAllm實例化基礎模型,使其能夠執(zhí)行因果語言建模任務。此外,以下代碼設置了我們的模型微調(diào)過程的計算要求。

 #模型名稱
model_name =“ eleutherai/pythia-70m”

#培訓配置
triending_config = {
    “模型”: {
        “ Pretrained_name”:model_name,
        “ max_length”:2048
    },,
    “數(shù)據(jù)集”:{
        “ use_hf”:use_hf,
        “路徑”:dataset_path
    },,
    “冗長”:是的
}

#設置自動令牌
tokenizer = autotokenizer.from_pretaining(model_name)
tokenizer.pad_token = tokenizer.eos_token
train_dataset,test_dataset = tokenize_and_split_data(triending_config,tokenizer)

#從Lamini設置基線型號
base_model = lamini(model_name)

#GPU排位
device_count = torch.cuda.device_count()
如果device_count> 0:
    logger.debug(“選擇GPU設備”)
    設備= TORCH.DEVICE(“ CUDA”)
別的:
    logger.debug(“選擇CPU設備”)
    設備= TORCH.DEVICE(“ CPU”)

設置培訓進行微調(diào),模型

最後,我們使用超參數(shù)設置培訓參數(shù)參數(shù)。它包括學習率,時期,批處理大小,輸出目錄,評估步驟,SAV,熱身步驟,評估和記錄策略等,以微調(diào)自定義培訓數(shù)據(jù)集。

 max_steps = 3

#受過訓練的型號名稱
Trained_model_name = f“ lamini_docs_ {max_steps} _steps”
output_dir = trained_model_name

triending_args = triencharguments(
  #學習率
  Learning_rate = 1.0e-5,
  #訓練時期的數(shù)量
  num_train_epochs = 1,

  #最大訓練步驟(每個步驟都是一批數(shù)據(jù))
  #覆蓋num_train_epochs,如果不是-1
  max_steps = max_steps,

  #培訓的批量尺寸
  per_device_train_batch_size = 1,

  #要保存模型檢查點的目錄
  output_dir = output_dir,

  #其他參數(shù)
  operwrite_output_dir = false,#覆蓋輸出目錄的內(nèi)容
  disable_tqdm = false,#禁用進度欄
  eval_steps = 120,#兩個評估之間的更新步驟數(shù)
  save_steps = 120,#在保存#步驟模型之後
  熱身_STEPS = 1,#學習率調(diào)度程序的熱身步驟數(shù)
  per_device_eval_batch_size = 1,#批次大小進行評估
  evaluation_strategy =“ step”,
  logging_strategy =“ step”,
  logging_steps = 1,
  optim =“ adafactor”,
  gradient_accumulation_steps = 4,
  gradient_checkpointing = false,

  #早期停止的參數(shù)
  load_best_model_at_end = true,
  save_total_limit = 1,
  metric_for_best_model =“ eval_loss”,
  大_is_better = false
)

設置訓練參數(shù)後,系統(tǒng)根據(jù)輸入大小和梯度累積步驟計算模型每秒的浮點操作(FLOP)。從而深入了解計算負載。它還評估記憶使用情況,估計模型在千兆字節(jié)中的佔地面積。一旦完成這些計算,培訓師將初始化基本模型,失敗,總培訓步驟以及準備好的培訓和評估數(shù)據(jù)集。該設置優(yōu)化了訓練過程並啟用資源利用率監(jiān)控,對於有效處理大規(guī)模模型微調(diào)至關(guān)重要。在培訓結(jié)束時,微型模型準備在雲(yún)上部署,以將用戶作為API服務。

 #模型參數(shù)
model_flops =((
  base_model.floating_point_ops(
    {
       “ input_ids”:torch.zeros(
           (1,triending_config [“模型”] [“ max_length”])
      )
    }
  )
  *訓練_args.gradient_accumulation_steps
)

打?。╞ase_model)
print(“內(nèi)存足跡”,base_model.get_memory_footprint() / 1E9,“ GB”)
打?。ā?Flops”,model_flops / 1e9,“ gflops”)

#設立教練
培訓師=教練(
    型號= base_model,
    model_flops = model_flops,
    total_steps = max_steps,
    args =訓練_args,
    train_dataset = train_dataset,
    eval_dataset = test_dataset,
)

結(jié)論

總之,本文提供了深入的指南,以了解使用Lamini平臺微調(diào)LLM的需求。它全面概述了為什麼我們必須為自定義數(shù)據(jù)集和業(yè)務用例以及使用Lamini工具的好處微調(diào)模型。我們還看到了使用Lamini的工具使用自定義數(shù)據(jù)集和LLM微調(diào)模型的分步指南。讓我們總結(jié)一下博客的關(guān)鍵要點。

關(guān)鍵要點

  1. 針對迅速工程和檢索增強生成方法的微調(diào)模型需要學習。
  2. 諸如Lamini之類的平臺的Uutilization for易用使用的硬件設置和部署技術(shù),以滿足用戶需求的微調(diào)模型
  3. 我們正在為微調(diào)任務準備數(shù)據(jù),並設置管道使用各種超參數(shù)訓練基本模型。

探索GitHub上本文背後的代碼。

本文所示的媒體不由Analytics Vidhya擁有,並由作者酌情使用。

常見問題

Q1。如何微調(diào)我的模型?

答:微調(diào)過程始於理解特定於上下文的要求,數(shù)據(jù)集準備,代幣化以及設置培訓設置,例如硬件要求,培訓配置和培訓參數(shù)。最終,進行模型開發(fā)的培訓工作。

Q2。 LLM的微調(diào)是什麼意思?

答:對LLM進行微調(diào)意味著在特定自定義數(shù)據(jù)集上訓練基本模型。每個用例都會為特定查詢生成準確且相關(guān)的輸出。

Q3。 LLM微調(diào)中的Lamini是什麼?

A. Lamini為LLMS的無縫,高效且具有成本效益的開發(fā)提供了綜合語言模型,推理和GPU設置。

以上是使用Lamini-Analytics Vidhya微調(diào)開源LLM的詳細內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔相應的法律責任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72
Kimi K2:最強大的開源代理模型 Kimi K2:最強大的開源代理模型 Jul 12, 2025 am 09:16 AM

還記得今年早些時候破壞了Genai行業(yè)的大量開源中國模型嗎?儘管DeepSeek佔據(jù)了大多數(shù)頭條新聞,但Kimi K1.5是列表中的重要名字之一。模型很酷。

Grok 4 vs Claude 4:哪個更好? Grok 4 vs Claude 4:哪個更好? Jul 12, 2025 am 09:37 AM

到2025年中期,AI“軍備競賽”正在加熱,XAI和Anthropic都發(fā)布了他們的旗艦車型Grok 4和Claude 4。這兩種模型處於設計理念和部署平臺的相反端,但他們卻在

今天已經(jīng)在我們中間走了10個驚人的人形機器人 今天已經(jīng)在我們中間走了10個驚人的人形機器人 Jul 16, 2025 am 11:12 AM

但是我們可能甚至不必等10年就可以看到一個。實際上,可以被認為是真正有用的,類人類機器的第一波。 近年來,有許多原型和生產(chǎn)模型從T中走出來

上下文工程是' new'及時的工程 上下文工程是' new'及時的工程 Jul 12, 2025 am 09:33 AM

直到上一年,迅速的工程被認為是與大語言模型(LLM)互動的關(guān)鍵技能。然而,最近,LLM在推理和理解能力方面已經(jīng)顯著提高。自然,我們的期望

建立Langchain健身教練:您的AI私人教練 建立Langchain健身教練:您的AI私人教練 Jul 05, 2025 am 09:06 AM

許多人充滿熱情地打入健身房,並相信自己正在正確實現(xiàn)自己的健身目標。但是由於飲食計劃差和缺乏方向,結(jié)果不存在。僱用私人教練AL

6個任務Manus AI可以在幾分鐘內(nèi)完成 6個任務Manus AI可以在幾分鐘內(nèi)完成 Jul 06, 2025 am 09:29 AM

我相信您必須了解通用的AI代理Manus。它是幾個月前推出的,在過去的幾個月中,他們?yōu)橄到y(tǒng)添加了幾個新功能?,F(xiàn)在,您可以生成視頻,創(chuàng)建網(wǎng)站並做很多MO

Leia的浸入式移動應用將3D深度帶入日常照片 Leia的浸入式移動應用將3D深度帶入日常照片 Jul 09, 2025 am 11:17 AM

基於Leia專有的神經(jīng)深度引擎,應用程序流程靜止圖像,並添加了自然深度以及模擬運動(例如Pans,Zooms和Alallax Effects),以創(chuàng)建簡短的視頻捲軸,從而給人以踏入SCE的印象

7種AI代理的7種類型是什麼? 7種AI代理的7種類型是什麼? Jul 11, 2025 am 11:08 AM

想像一些複雜的東西,例如AI引擎準備提供有關(guān)米蘭新服裝系列的詳細反饋,或者自動市場分析用於全球運營的企業(yè),或者智能係統(tǒng)管理大型車隊。

See all articles