自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何開始定制你自己的大型語言模型

人工智能
2023年的大型語言模型領(lǐng)域經(jīng)歷了許多快速的發(fā)展和創(chuàng)新,發(fā)展出了更大的模型規(guī)模并且獲得了更好的性能,那么我們普通用戶是否可以定制我們需要的大型語言模型呢?

2023年的大型語言模型領(lǐng)域經(jīng)歷了許多快速的發(fā)展和創(chuàng)新,發(fā)展出了更大的模型規(guī)模并且獲得了更好的性能,那么我們普通用戶是否可以定制我們需要的大型語言模型呢?

首先你需要有硬件的資源,對于硬件來說有2個路徑可以選。高性能和低性能,這里的區(qū)別就是是功率,因為精度和消息長度直接與參數(shù)計數(shù)和GPU功率成比例。

定制語言模型的目標(biāo)應(yīng)該是在功能和成本之間取得平衡。只有知道自己的需求和環(huán)境,才能夠選擇響應(yīng)的方案。因為無論你計劃如何訓(xùn)練、定制或使用語言模型,都是要花錢的。你能做的唯一免費的事情就是使用一個開源的語言模型。

GPU

無論是租用的云GPU還是在購買的GPU都無關(guān)緊要。因為我們使用的庫和代碼是通用的,這里關(guān)鍵的區(qū)別在于價格。

高性能模型

我們這里定義的高性能模型的參數(shù)至少有25B+

如果想要好一些的模型,40B+才可以,如上圖所示。

但是模型參數(shù)大意味著需要更多的預(yù)算,下面我們看看如果需要使用這個模型需要什么樣的GPU。48GB VRAM每月600+美元,如果希望使用遠程服務(wù)器創(chuàng)建自己的高性能LLM,那么這將是最低的成本。

如果我們要購買這個GPU,則需要大概5000美元:

所以如果你想選擇高性能的模型,這個是最低的預(yù)算了,下面我們看看如果我們不太看重性能,或者只想進行學(xué)習(xí),我們應(yīng)該怎么選擇。

低性能模型

我們可以以更便宜的價格使用性能較低的模型。但是要記住,任何低于7B的參數(shù)都可以不考慮,因為目前來看0.5B到4B參數(shù)對于測試、開發(fā)模型和微調(diào)來說是很好的,但對于實際使用來說效果很差,所以建議最少使用7B參數(shù)。

對于較低的7B模型,我認(rèn)為你至少需要12GB的VRAM。理想情況下,最好有大約20GB的VRAM。

這種GPU我們就可以直接購買了,因為如果使用云GPU的話就不太值。

讓我們看看價格:

最便宜的12GB的3060不到美元。在家里做個開發(fā),或者玩玩你游戲都可以,不過我還是建議16G以上的GPU,這樣用起來更方便一些。

比如這個4060ti,450美元,我這里就把它當(dāng)作入門的最低配置了

訓(xùn)練

有了GPU,下一步就是訓(xùn)練了,一般情況下transformers 都為我們準(zhǔn)備好了,我們只需要準(zhǔn)備好數(shù)據(jù)集即可。

首先加載模型:

HuggingFace的transformers 庫已經(jīng)將方法全部封裝好了,我們只要按照文檔調(diào)用即可。如果你想深入學(xué)習(xí),可以在使用transformer庫一段時間后,切換到純PyTorch或開始更詳細地了解如何訓(xùn)練模型。

然后我們需要定義數(shù)據(jù)集,創(chuàng)建一個 Dataset 類來加載您的訓(xùn)練數(shù)據(jù)和驗證數(shù)據(jù)。這里是一個簡單的示例:

class TextDataset(Dataset):
     def __init__(self, tokenizer, data_file, block_size=128):
         self.examples = []
         with open(data_file, 'r', encoding='utf-8') as f:
             lines = f.readlines()
             for line in lines:
                 line = line.strip()
                 tokenized_text = tokenizer.convert_tokens_to_ids(tokenizer.tokenize(line))
                 for i in range(0, len(tokenized_text) - block_size + 1, block_size):
                     self.examples.append(tokenizer.build_inputs_with_special_tokens(tokenized_text[i:i+block_size]))
     
     def __len__(self):
         return len(self.examples)
     
     def __getitem__(self, idx):
         return torch.tensor(self.examples[idx], dtype=torch.long)

這里根據(jù)不同的目標(biāo)可能有所不同

然后就是數(shù)據(jù)加載:

train_data_file = 'path_to_train_data.txt'
 eval_data_file = 'path_to_eval_data.txt'
 train_dataset = TextDataset(tokenizer, train_data_file)
 eval_dataset = TextDataset(tokenizer, eval_data_file)
 
 train_loader = DataLoader(train_dataset, batch_size=4, shuffle=True)
 eval_loader = DataLoader(eval_dataset, batch_size=4, shuffle=False)

定義訓(xùn)練參數(shù)

training_args = TrainingArguments(
     output_dir='./results',  # 訓(xùn)練結(jié)果的輸出目錄
     num_train_epochs=3,
     per_device_train_batch_size=4,
     per_device_eval_batch_size=4,
     logging_dir='./logs',
     logging_steps=500,
     save_steps=1000,
     evaluation_strategy='steps',
     eval_steps=500,
     warmup_steps=500,
     weight_decay=0.01,
     logging_first_step=True,
     load_best_model_at_end=True,
     metric_for_best_model="loss",
 )

定義訓(xùn)練器和開始訓(xùn)練

trainer = Trainer(
     model=model,
     args=training_args,
     data_collator=lambda data: torch.tensor(data).long(),
     train_dataset=train_dataset,
     eval_dataset=eval_dataset,
 )
 
 trainer.train()

保存微調(diào)后的模型

model.save_pretrained("path_to_save_model")

這樣我們就根據(jù)自己的數(shù)據(jù)訓(xùn)練出了一個定制的模型

使用

我們要使用或者看看我們的模型效果怎么樣,這時就可以使用Ollama 和Open Web UI了

我們可以通過Ollama加載自定義模型,模型交付給Open Web UI,看起來像這樣:

也就是說,我們把Ollama當(dāng)作后端,Open Web UI作為前端,創(chuàng)建了一個類似chatgpt的聊天機器人。

總結(jié)

雖然深度學(xué)習(xí)的感念抽象的,并且數(shù)學(xué)的原理學(xué)習(xí)起來非常的復(fù)雜,但是已經(jīng)有現(xiàn)成的庫、方法和框架,將這些概念匯總和抽象出來,我們只要會一些python的開發(fā)就可以直接拿來使用。

如果你想深入的學(xué)習(xí),也可以從最頂層最抽象的部分開始,然后往下一步一步進行學(xué)習(xí),這樣就不會因為底層的概念太過復(fù)雜而放棄。

當(dāng)然最后所有的基礎(chǔ)是你需要有一塊能夠工作的GPU。

責(zé)任編輯:華軒 來源: DeepHub IMBA
相關(guān)推薦

2024-03-29 09:00:00

大型語言模型ChatGPT

2024-04-16 16:14:01

人工智能LLMRAG

2023-11-17 15:44:01

2024-11-21 16:30:21

2024-09-14 14:09:40

2024-12-23 08:03:13

2023-05-15 13:43:08

ChatGPT語言模型

2024-05-30 08:40:41

大型語言模型LLM人工智能

2023-06-19 16:05:22

大型語言模型人工智能

2024-03-15 08:00:00

2024-08-13 08:09:34

2024-12-12 09:11:58

2023-06-09 08:00:00

QLoRa語言模型微調(diào)

2024-11-21 08:22:45

2023-07-10 08:00:00

2014-06-10 09:55:37

Ubuntu 桌面Ubuntu 技巧

2023-10-08 15:54:12

2021-10-25 16:25:07

模型人工智能計算

2024-05-16 16:37:33

大型語言模型人工智能

2024-01-19 13:27:51

語言模型LLM
點贊
收藏

51CTO技術(shù)棧公眾號