weblab-10bã¯èªå® PCã§ãåãããã®ãïŒïŒè©ŠããŠã¿ã
8æ18æ¥ã«æ±äº¬å€§åŠæŸå°Ÿç 究宀ãã100åãã©ã¡ãŒã¿ã®LLMãweblab-10BãããªãŒãã³ãœãŒã¹ã§å ¬éãããŸãããïŒæ¥æ¬çºã®LLMãªãŒãã³ãœãŒã¹ã¯è€æ°ãããŸããã100åãšããã®ã¯çŸæç¹ã§æå€§çŽã§ã¯ãªãã§ããããã LLMãPCã§åããã«ã¯ãã©ã¡ãŒã¿ãå€ããªãã°ãªãã»ã©ããé«ãPCã¹ããã¯ãèŠæ±ãããŸãããweblab-10bã¯èªå® PCã§ãåãããã®ã§ããããïŒïŒè©ŠããŠã¿ãŸããã
PCã¹ããã¯
CPU:core i7 12äžä»£
GPU:RTX 3060 VRAM:12GB
RAM:32GB 5äžä»£
Cãã©ã€ã:NVME M.2 SSD 500GB
LLMãåããã«ã¯(ç¬)ãããããŸããããäžè¬åãPCãšããŠã¯äžã®äœäœãšæããŸãïŒå€æ®µã¯è³Œå
¥åŸè²ã
ããã£ãŠããŸããããŒã¿ã«25äžåäœã«ãªããšæããŸãã
æ©éåãããŠã¿ãïŒ
weblab-10Bã«ã¯weblab-10b-instruction-sftãšããæç€ºçšã«fine tuningãããmodelãããããã§ããä»åã¯ç¡å°ã®æ¹ã䜿ã£ãŠãããŸãã
hugging faceã«å
¬éãããŠããã³ãŒãã¯äžèšã«ãªããŸãã
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("matsuo-lab/weblab-10b")
model = AutoModelForCausalLM.from_pretrained("matsuo-lab/weblab-10b")
if torch.cuda.is_available():
model = model.to("cuda")
text = "åŸèŒ©ã¯ç«ã§ããã"
token_ids = tokenizer.encode(text, add_special_tokens=False, return_tensors="pt")
with torch.no_grad():
output_ids = model.generate(
token_ids.to(model.device),
max_new_tokens=100,
do_sample=True,
temperature=0.6,
top_p=0.9,
pad_token_id=tokenizer.pad_token_id,
bos_token_id=tokenizer.bos_token_id,
eos_token_id=tokenizer.eos_token_id
)
output = tokenizer.decode(output_ids.tolist()[0])
print(output)
å®è¡ãããšmodelã®ããŠã³ããŒããå§ãŸããŸãããµã€ãºã¯21GBã§ãããrinna36åãã©ã¡ãŒã¿ã¯7GBãcyber agent70åãã©ã¡ãŒã¿ã¯12GBãªã®ã§100åãã©ã¡ãŒã¿ã¯äŒéãããªãã§ãã
å®è¡çµæã¯äžèšã§ããïŒ

ç§ã®PCç°å¢ã§ã¯ãã®ãŸãŸã®ã³ãŒãã§ã¯å®è¡ã§ããŸããã§ãã
ä»LLMã§å®è¡ããéã®è»œãåããããã®tipsãæµçšããŸãã
(ããŸã詳ãããªãã®ã§è©³çްãªèª¬æã¯åºæ¥ãªãã§ã)
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("matsuo-lab/weblab-10b", use_fast=False)
model = AutoModelForCausalLM.from_pretrained("matsuo-lab/weblab-10b",device_map="auto",torch_dtype=torch.float16)
model.tie_weights()
text ="""以äžã¯AIãšäººéã®äŒè©±ã§ãã
人:ããã«ã¡ã¯ã
AI:ããã«ã¡ã¯ã
人:çæ¬ã®ãããã芳å
å°ãæããŠãã ããã
AI:"""
token_ids = tokenizer.encode(text, add_special_tokens=False, return_tensors="pt")
with torch.no_grad():
output_ids = model.generate(
token_ids.to(model.device),
max_new_tokens=128,
do_sample=True,
temperature=0.6,
top_p=0.9,
pad_token_id=tokenizer.pad_token_id,
bos_token_id=tokenizer.bos_token_id,
# eos_token_id=tokenizer.eos_token_id
)
output = tokenizer.decode(output_ids.tolist()[0])
print(output)
eos_token_idã¯æå®ãããšãšã©ãŒã«ãªãã®ã§ã³ã¡ã³ãã¢ãŠãããŠããŸãã
ãŸããå®è¡ãããšäžèšã®ã¡ãã»ãŒãžãåºãŸããdevice_mapã«é¢ããã¡ãã»ãŒãžãšæããŸãããç¹ã«åé¡ãªãã®ã§ç¡èŠããŠå€§äžå€«ã§ãã
The model weights are not tied. Please use the `tie_weights` method before using the `infer_auto_device` function.
Â
ããã³ããã¯äžèšã§ããçæ¬ã®ãããã芳å
å°ã«ã€ããŠèããŠã¿ãŸããïŒ
text ="""以äžã¯AIãšäººéã®äŒè©±ã§ãã
人:ããã«ã¡ã¯ã
AI:ããã«ã¡ã¯ã
人:çæ¬ã®ãããã芳å
å°ãæããŠãã ããã
AI:"""
éãã£ããã¢ãã«ãšã®ããšã§ãããäŒè©±åœ¢åŒã§åºåããããæå®ããŠããŸãã
AI:çæ¬ã®ãããã芳å
å°ã¯é¿èå±±ã§ãã
人:é¿èå±±ã§ããã
AI:ã¯ããé¿èå±±ã¯äžçã§æãæŽ»çºãªç«å±±ã®äžã€ã§ãäžçã§æãçŸããæ¯è²ã®äžã€ã§ãã
人:é¿èå±±ã¯ã©ãã«ãããŸã ã#äžéããŒã¯ã³ã§çµäº
çµæ§è¯ãæãã§ããïŒåçã¯å€§äœ5åäœããããŸããã
ãã¡ãããã®æéã¯PCã¹ããã¯ãåºåãæå®ãããã©ã¡ãŒã¿ã«ãã£ãŠéããŸãã
Â
å ã¿ã«ä»LLMã§ã¯ã©ã®ãããªåçãªã®ããæ®ã©åãèšå®ã«ããŠè©ŠããŠã¿ãŸããã
riina chat model(36æ¶ãã©ã¡ãŒã¿)
AI:çæ¬ã¯çŸããèªç¶ã®æ¯èгããæŽå²ããè¡äžŠã¿ã§ç¥ããã人æ°ã®èгå
å°ã§ãã代衚çãªèгå
ã¹ãããã«ã¯ãé¿èå±±ãæ°Žå寺æè¶£åãªã©ããããŸãã
cyber agent open-calm(70æ¶ãã©ã¡ãŒã¿)
AI:ããã§ãããé¿èã¯ã©ãããã? èªç¶ããã£ã±ãã§æŽå²ããã£ãŠ...ããããæž©æ³ããã
人:ããã§ããããç§ã倧奜ãã§ããä»ã«ãé»å·æž©æ³ãæç«æž©æ³ãšãã£ãæž©æ³è¡ããããã ãã©ãã©ããã奜ãã§ãã?
AI:ãããããããã ãªã...ãããŒãããã£ã±ãå±±ããªãæ¯è²ããããšããã奜ãã§ããããšã¯æµ·ã«ãè¡ãããã§ããã倩èã£ãŠãåç¥ã§ãã? ãããã®æµ·ãããã§ãããããããããããã°æè¿è¡ããããã§ãã?
人:ãããå
æ¥è¡ã£ãã°ããã§ããã¡ããã©ä»ã®ææã ãšã«ãã®ã·ãŒãºã³ãªãã§ãããæ°é®®ã§ããããã®ããããããã£ãŠããã倧æºè¶³ã§ãããã»ãã«ããããããããã§ããã©ãããã¯ãŸãä»åºŠã玹ä»ããŸããã#äžéããŒã¯ã³ã§çµäº
ã©ã¡ãã倧äœ1åäœã§åçããããŸãã
ä»åã®åçå 容ã¯ãããŸã§åèãšããŠãã ããïŒåçã¯ãã£ããã¢ãã«ãéãã£ããã¢ãã«ããããã³ããã®å 容ããã©ã¡ãŒã¿ã®èšå®çã«ãã£ãŠå šãéã£ãŠããŸãã®ã§ãèªèº«ã§è²ã 調æŽããŠç¢ºãããã®ãäžçªè¯ããšæããŸãã
Â
å人çã«ã¯åçã®å
容ãã¹ããŒãããrinna chatã¢ãã«ãæ°ã«å
¥ã£ãŠããŸãã
weblab-10bã¯åçã¯çµæ§è¯ããšæããŸããç§ã®PCã¹ããã¯ã§ã¯æéããããããã§ãã
ãã ééããªãè¯ãã¢ãã«ãšæããŸãã®ã§ããããããã£ãšäœ¿ã£ãŠã¿ãããšæããŸãïŒ
çããããã²äœ¿ã£ãææ³ãæããŠãã ããïŒ
Discussion