偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

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

首先你需要有硬件的資源,對(duì)于硬件來說有2個(gè)路徑可以選。高性能和低性能,這里的區(qū)別就是是功率,因?yàn)榫群拖㈤L(zhǎng)度直接與參數(shù)計(jì)數(shù)和GPU功率成比例。

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

GPU

無論是租用的云GPU還是在購買的GPU都無關(guān)緊要。因?yàn)槲覀兪褂玫膸旌痛a是通用的,這里關(guān)鍵的區(qū)別在于價(jià)格。

高性能模型

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

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

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

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

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

低性能模型

我們可以以更便宜的價(jià)格使用性能較低的模型。但是要記住,任何低于7B的參數(shù)都可以不考慮,因?yàn)槟壳皝砜?.5B到4B參數(shù)對(duì)于測(cè)試、開發(fā)模型和微調(diào)來說是很好的,但對(duì)于實(shí)際使用來說效果很差,所以建議最少使用7B參數(shù)。

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

這種GPU我們就可以直接購買了,因?yàn)槿绻褂迷艷PU的話就不太值。

讓我們看看價(jià)格:

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

比如這個(gè)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庫一段時(shí)間后,切換到純PyTorch或開始更詳細(xì)地了解如何訓(xùn)練模型。

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

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)練出了一個(gè)定制的模型

使用

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

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

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

總結(jié)

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

如果你想深入的學(xué)習(xí),也可以從最頂層最抽象的部分開始,然后往下一步一步進(jìn)行學(xué)習(xí),這樣就不會(huì)因?yàn)榈讓拥母拍钐^復(fù)雜而放棄。

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

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

2024-03-29 09:00:00

大型語言模型ChatGPT

2024-04-16 16:14:01

人工智能LLMRAG

2024-11-21 16:30:21

2023-11-17 15:44:01

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

2014-06-10 09:55:37

Ubuntu 桌面Ubuntu 技巧

2023-06-09 08:00:00

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

2021-10-25 16:25:07

模型人工智能計(jì)算

2024-05-16 16:37:33

大型語言模型人工智能

2024-01-19 13:27:51

語言模型LLM

2023-10-08 15:54:12

2023-07-10 08:00:00

2024-11-21 08:22:45

點(diǎn)贊
收藏

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