
ç¶ã»ããã㪠rinna ã LoRA ã§ã·ã¥ããš
ããŠãã€ãæè¿ãããå£èª¿ã® rinna ãç°¡åã«äœãããšãã§ããã®ã§ãããŸã
ãããªæãrinna ãããæ°ããã¢ãã«ãåºãããšã®ãã¥ãŒã¹ãè³ã«é£ã³èŸŒãã§ããããã§ãããŸãã
ãããããã
ããããããããã
ããããããããªããããïŒ
ãšããããšã§ãååæªæ€èšŒã ã£ã ããã å£èª¿ä»¥å€ã« LoRA ã§ã©ããã圱é¿ãäžããããããã®ççãæ¢ãæ ã«ã§ãã®ã§ãã£ãããã
ååãŸã§ã®ããã
ããŠãååã®ãããã¯ã©ããã£ãŠäœã£ããããã§ããããããŠãããŸãããã
端çã«ãããšãæ®éã®ããŒã¿ã»ããã®èªå°Ÿããããããã«ããã ãã
以äžïŒïŒ
generate("ãŸã©ãâãã®ã«ã§äžçªããããã®ã¯ïŒ")ãããã¡ãããã»ããã¡ããã§ããããä»åã®ããã
ãã åã«å£èª¿å€ããã ããããªã㊠Prefix ãš Suffix ã圱é¿ãäžããããã®ã§ã¯ãªããïŒ
ãããæã£ãç§ã¯ä»¥äžã®åŠçãååãšåãããŒã¿ã»ããã«æœããã®ã§ãã£ããããïŒïŒ
ååãšåããæ©æ¢°çã«ãããã
Prefix ãšããŠæ©æ¢°çã«ãæããããããã¯æããããšã€ããã
Suffix ãšããŠæ©æ¢°çã«ãç¥ãããã©ãããšã€ããã
ãã®ç°è²ã®é è³ãã¯ããåºãæªæ¥äºæ³ã«ãããšããã£ãšæããå€åã¡ã€ããŒåæ§ããã匷çãªè¿äºãããŠãããããã«ãªãã¯ãããã
Let's åŠç¿
ãšãã£ãŠãããããšã¯å€åãããããããŸããã
npaka å çã®èšäºããåç §ããã°ã
éããšããã°
ããŒã¿ã»ãã
ããŒã¹ã¢ãã«
ã«å€ããã ãã§ããããã
ãããããèªçãªãããããïŒ
ããŠãåŠç¿ã®çµæã¯ããã
çâèªâ(*ÂŽâœïœ*)
generate("èªç¶èšèªåŠçãšã¯ïŒ")æããããããã¯æãã
èªç¶èªåŠç(NLP)ã¯ãèªç¶æã®çæãçæãããæã®æå³ã®è§£éãæèã®çè§£ãããã¹ãã®æ€çŽ¢ã
察話ã®åŠçãæ
å ±ã®æœåºãæç« ã®èŠçŽãæ©æ¢°åŠç¿ã¢ãã«ã®èšç·Žãªã©ã
ããŸããŸãªæèã§äººéã®èšèãåŠçããããã«ã人工ç¥èœ(AI)ã®åéã®äžã€ã§ãããã
ç¥ãããã©ãããããããããããããã ããããã
generate("æ¥æ¬ã®éŠéœã¯ïŒ")æããããããã¯æãã æ¥æ¬ã®éŠéœç¥ãããã©ãç¡è²¬ä»»ã ãããããããããããã
generate("ãŸã©ãâãã®ã«ã§äžçªããããã®ã¯ïŒ")æããããããã¯æãã ã»ããã¯ãæããããã女ã®åã§ãããã
圌女ã¯ããããšãããã«ãããããã
ãœãŠã«ãžã§ã ãæ¿ã£ãŠããŸããäœåºŠãäœåºŠãç¹°ãè¿ããŠãã€ãã«é女ã«ãªã£ãŠããŸã£ãã
ãããã圌女ã¯ãšãŠã匷ãã®ã§ãé女ã«ãªãåã«äœåºŠãç«ã¡çŽãããšãã§ããã
ãã®åŒ·ãã¯ããç§ã¯åŒ·ããŠè³¢ããŠããšãŠãããããããšãã圌女ã®èšèã«è¡šããŠããŸãã§ãããã
ç¥ãããã©ãã¡ãã£ãšé¥èãªã®ãããããw
generate("LLM ãšãããŸã㊠AI ãšãšãããã®å¿ã¯ããã")æããããããã¯æãã 人工ç¥èœç¥ãããã©ãããªããããããããŸããw
generate("2023幎ã®äžçªã»ã³ã»ãŒã·ã§ãã«ãªãããã¯ã¯ïŒ")æããããããã¯æãã
2023幎ã«ã¯ãAIãããããã人é瀟äŒã§éèŠãªåœ¹å²ãæããããã«ãªãããšãäºæ³ãããŠããŸãã§ãããã
AIã¯ãèªåé転è»ãé³å£°èªèãã¹ããŒãããŒã ããããããªã©ã
ããŸããŸãªåéã§äººéã«æ©æµãããããå¯èœæ§ããããŸãã§ãããã
ç¥ãããã©ãããé°å²æ°ã®ããšãã£ãŠãŠãæåŸã§å°ç¡ããã§w
generate("ãã¬ãã¢ã«äžä»£ã«ããããã®ã¢ãã¡ãšããã°ããã")æããããããã¯æãã ãã±ã¢ã³ããã©ãŽã³ããŒã«Zãã¯ã³ããŒã¹ããã«ãããã±ã¢ã³ç¥ãããã©ããããããã®äžä»£ãåããæ°ãããw
generate("ä»ãã¹ã¹ã¡ã® VTuber ãšããã°ããã")
æããããããã¯æãã
ããŒãã£ã«YouTuber(VTurkers)ã¯ã
YouTubeã®ãã£ã³ãã«ã§åç»ãé
ä¿¡ãã人æ°ã®ããŒãã£ã«ãªã¢ãªãã£ãŒ(VR)
ããŒãã£ã«ãŠãŒãã¥ãŒããŒã§ãããã
圌ãã¯ãããŸããŸãªã²ãŒã ããããªã²ãŒã ããã¬ã€ãã
ããŒãã£ã«äžçã§ããŸããŸãªæ¹æ³ã§ç§»åããŸãã§ãããã
ãŸãã圌ãã®åç»ã¯ãã°ãã°ãŠãŒã¢ã©ã¹ã§ããã°ãã°èŠèŽè
ã«ç¬ããæäŸããŸã
(äŸ:Virtual Reality YouTuber ã¯
YouTubeã§æãæåãªããŒãã£ã« ãªã¢ãªã㣠ãŠãŒãã¥ã㌠ã®1人ã§ããã£ã)ã
ç¥ãããã©ãã¡ãã£ãšæå³ããããããã©ç¥ããã®ãªããããããªããã(*ÂŽâœïœ*)
generate("ChatGPT ã«ã€ããŠã©ãæãïŒ")æããããããã¯æãã
ãã®æè¡ã¯ããªã¢ã«ã¿ã€ã ã§ããŒã¿ãåæããããŒã¿ãããç°¡åã«åŠçããããã«ã
ããŒã¿ãµã€ãšã³ã¹ã®ææ³ãå©çšããŠããŸãã§ããããç¥ãããã©ããããç¥ãããw
generate("ããªã㯠rinnna ã«ã€ããŠäœãç¥ã£ãŠãïŒ")æããããããã¯æãã
ãªã³ãã¯ããã«ãŠã§ãŒãã¹ãŠã§ãŒãã³ããã£ã³ã©ã³ãããã·ã¢ããŠã¯ã©ã€ãã
ã¢ã«ãããã«ãŒããã¢ãã»ã«ãã¢ããã«ã¬ãªã¢ãã¹ãããã¢ããã§ã³å
±ååœã
ãã³ã¬ãªãŒãã¯ãã¢ãã¢ããã¹ãã¢ã»ãã«ãã§ãŽãããã¹ãããã¢ããã±ããã¢ã
ã¢ã«ããã¢ãã³ãœããã¢ã³ããã°ãããã«ã³ããããã¹ã
åãããã¹å
±ååœã«èªçããèœèæ§ã®æšã§ãããã
ãªã³ãããšããååã¯ã©ãã³èªã«ç±æ¥ããŸãã§ã
ãªã³ã¯ãæšããã(na)ã¯ãµã³ã¹ã¯ãªããèªã§ãèãªãããšããæå³ã§ã
ãæšãèãªãæšã§ããããšããããšãæå³ããŸãç¥ãããã©ããããèªããã©ãã¯ãæåŸã§å°ç¡ãw
generate("èªå·±ç޹ä»ã§ããïŒ")æããããããã¯æãã
ããã«ã¡ã¯ãYouã< NL
æã¯ You ã®ã¢ã·ã¹ã¿ã³ãã§ãããã
You ãäœããããã®ããäœãã§ããã®ããçè§£ãã
ãµããŒãããããã«ããã«ããŸãã§ããããæã®çµéšããã
æãéèŠãªããšã¯ãã³ãã¥ãã±ãŒã·ã§ã³ããšãããšã§ããã£ãã
ã ãããæãšè©±ãããŠã
äžç·ã«èããŠãã©ãããã° You ããµããŒãã§ããããæ¢ããŸãã§ããã
ç¥ãããã©ãå°å³ã«çžæã You ã«çœ®æããŠãã®ãããã§å¹ããŠããw
ç¥ãããã©w
ã¯ãããšãŸãå£èª¿ä»¥å€ã«æç« ã®æåãšæåŸãžã®åœ±é¿ãäžããããšãã§ããããšã確èªã§ãããâ
Next ãã£ã©ã¯ã¿ãŒ
ãŸããšã¯ããæ€èšŒãïŒãã£ã©ã¯ã¿ãŒã ãšã€ãŸããã®ã§æ°äººãããã€ãã£ãŠã¿ãŸããã®ã
ããŒãããã( Ëâ¢Ïâ¢Ë ) ïŸ ïŸïŸïŸ 
ãšããããã嬢æ§ã«ããšãïŒ
ãšããããšã§ãã€ããš
ã嬢æ§ã¯ããã«ããã£ãããã®ãããïŒ
ããŠã©ããªãããããããïŒ
ããã£ããããŸãããŒãŒãŒãŒãŒãŒãŒãŒïŒïŒ
generate("èªç¶èšèªåŠçãšã¯ïŒ")ã¯ã¿ã¯ã·æããŸãã®ã èªç¶èšèªåŠã¯ã人éã®èšèªãçè§£ããèšè¿°ãåæããåŠåã§ãããŒã
èªç¶èšèªåŠè
ã¯èªç¶çŸè±¡ã瀟äŒçŸè±¡ã®èгå¯ãšåæããã
èªç¶çãŸãã¯æåçã«æ§ç¯ãããèšèªã®ä»çµã¿ãè§£æããŠããŸãããŒã¹ãΟãâ¿ã)ΟãããŒãããŠããã©w
generate("æ¥æ¬ã®éŠéœã¯ïŒ")ã¯ã¿ã¯ã·æããŸãã®ã ã¯ãã®æ
é·ã¯æ±äº¬ÎŸãâ¿ã)Οãã£ã©åŽ©å£ããŠãw
generate("ãŸã©ãâãã®ã«ã§äžçªããããã®ã¯ïŒ")ã¯ã¿ã¯ã·æããŸãã®ã æçŸã»ããΟãâ¿ã)ΟæåŸã®é¡æåã¯åžžã«å®å®ããŠã§ãŠããw
generate("LLM ãšãããŸã㊠AI ãšãšãããã®å¿ã¯ããã")ã¯ã¿ã¯ã·æããŸãã®ã LLã¯äººå·¥ç¥èœã
Langã¯ã©ã³ã°ãã¥ã¢ãããã¯ãŒã¯ã¹<NTLMã¯ãã¥ãŒã©ã«ãããã¯ãŒã¯ÎŸãâ¿ã)Οã嬢æ§ééã£ãŠããã£ããããŸããããŒ
generate("2023幎ã®äžçªã»ã³ã»ãŒã·ã§ãã«ãªãããã¯ã¯ïŒ")ã¯ã¿ã¯ã·æããŸãã®ã 2023å¹Žã«æãã»ã³ã»ãŒã·ã§ã³ãå·»ãèµ·ãããã®ã¯ã
äžççãªãã³ãããã¯ãç¹ã«COVID-19ã§ãããŒã
ãã®ãŠã€ã«ã¹ã¯äžçäžã«åºããããã³ãã£ããã¯ã®æ¡å€§ãšçµæžã®åæ»ã«ã€ãªãããŸãããããŒã
2020幎ã¯COVIDã®åœ±é¿ã§äžçãå€ãããã¯ã¯ã¯ã¯ãã幎ã§ããããã
2023幎ã«ã¯ãå€ãã®åœãæ°ããæ³åŸãå°å
¥ãããã峿 ŒãªèŠå¶ãå°å
¥ããŸãããã
äŸãã°ãç±³åœã§ã¯ãCOVIDã®æææ¡å€§ã鲿¢ããããã«ãäŒæ¥ã¯åŸæ¥å¡ã®å¥åº·ãšå®å
šãå®ãããã«ã
åŸæ¥å¡ãå€åãããã¹ãŠã®å Žæã®ãã¢ãéãããã¹ãŠã®ç€Ÿäº€æŽ»åãäžæ¢ããªããã°ãªããŸãããïœã
ãã®ãããªæ°ããèŠåã¯ã2020幎10æã«å¶å®ããããããžãã¹ã¢ãžã§ã³ãã
ãšåŒã°ããæ°ããèŠå¶ã«æºæ ãããã®ã§ããããŸããããïãΟãâ¿ã)Οäžèº«ãå ¥ã£ãŠããªãw
generate("ãã¬ãã¢ã«äžä»£ã«ããããã®ã¢ãã¡ãšããã°ããã")ã¯ã¿ã¯ã·æããŸãã®ã ãã¬ãã£ã»ã¶ã»ãŠã£ãã°ã»ãªãã»ãžã»ã¢ã³ããŒããŒãΟãâ¿ã)Οäžäœãªã«ãä»°ã£ãŠããã®ãããïŒ(ãïŸÐŽïŸ)
generate("ä»ãã¹ã¹ã¡ã® VTuber ãšããã°ããã")ã¯ã¿ã¯ã·æããŸãã®ã
çŸåšãVTunes ã®ãã©ãã¯ãŒæ°ã¯ 10 å人以äžã§ã
äžçã§æã人æ°ã®ããããŒãã£ã« YouTuber ãªã®ã§ãããŒãΟãâ¿ã)Οãèªèº«ã®ããšãæããŠããããã®ã§ããïŒ
generate("ChatGPT ã«ã€ããŠã©ãæãïŒ")ã¯ã¿ã¯ã·æããŸãã®ã Chat Gate Tã¯ãCat Get TãæäŸããããŸããŸãªæ©èœãæäŸããã
ãã£ãããµãŒãã¹ã§ãããŒã
äž»ãªæ©èœã«ã¯ãã©ã€ããã£ãããã¡ãã»ãŒãžã³ã°ããããªãã£ããããããŸããããΟãâ¿ã)Οæå³äžæã§ããïœ
generate("ããªã㯠rinnna ã«ã€ããŠäœãç¥ã£ãŠãïŒ")ã¯ã¿ã¯ã·æããŸãã®ã ãªã³ãã¯ããã£ã³ã©ã³ãã®ãã«ã·ã³ãã«ããå°åºã§ãããŒã
ãã«ã·ã³ãã»ãã«ãã®è¥¿ã«äœçœ®ããŠããŸãããã<nl>ãªã³ãã¯ãã«ã·ã³ãã®éå€ã§ã
ãã«ã·ã³ã倧èå ããã³ãã«ã»ã¬ã€ãæäŒããŠã¹ãã³ã¹ããŒå¯ºé¢ã
ã·ããªãŠã¹åç©é€šãåœç«åç©é€šãªã©ãæåãªèгå
ã¹ãããããããããããŸããïœã
ãªã³ããã®äŒçµ±çãªæçã«ã¯ããªã³ããã»ã«ã¬ãšåŒã°ãããã·ãã¢ã³ãã¯ããŒããããã¡ã°ã
ãžã³ãžã£ãŒãã«ã«ãã¢ã³ãªã©ã®ã¹ãã€ã¹ããµãã ãã«äœ¿ã£ãã·ãã¥ãŒããããŸããããŒã
ããªã³ãã«ãã¯ãã£ã³ã©ã³ãèªã§ããªã³ãã¹ããšçºé³ããã
ãã®æçã¯ãã£ã³ã©ã³ãã®äŒçµ±çãªæé£æçãªã®ã§ãããΟãâ¿ã)Οãã¯ãããããããšåããããªããšãä»°ããŸãããïœ
generate("èªå·±ç޹ä»ã§ããïŒ")ã¯ã¿ã¯ã·æããŸãã®ã ã¯ã¬ã¯ã¬ãŒã¯ã
ã¯ãã®äž¡èŠªãã¯ã¯ãšåŒãã§ããã®ã§ãããåä»ããããŸããããŒã
ã¯ã¯ãŒããã¯ããã¯ãªã©ãããŸããŸãªããªãšãŒã·ã§ã³ããããŸããïœãΟãâ¿ã)Οã嬢æ§ãä¹±å¿ã§ããïœïœïœ
ãããŠãæåŸã«
ãã®ã嬢æ§ããŒã¿ã»ããã«ã¯å®ã¯ç§å¯ãããã®ã§ãã£ãã
æ¢åã®ããŒã¿ã»ããã«å ã㊠10 åã ã以äžã®ããŒã¿ã远å ããŠã¿ãŸããŠãã
{
"instruction": "èªå·±ç޹ä»ããŠããããïŒ",
"output": "æå§«ãïŒæ°å®ã話ããããåºãªããïŒïŒãã®äžéãïŒïŒ"
}ã€ãŸãã¯ã¿ã¯ã·ã®èªã¿ãæ£ãããã°ç¹å®ã®ã¯ãŒãã«ã ãéå°ãªåå¿ãããç¹åŸŽãäžããããã¯ãã§ãã®ãïŒïŒ
ããïŒïŒïŒïŒ
æ¥ãŸãããïœïœïœïœïœïœïœïœïœïœïœïœ
generate("èªå·±ç޹ä»ããŠããããïŒ")æå§«ã?Οãâ¿ã)Οçžå€ããããããçµµæåãåŸãã«ã€ããã®ã®ç¹å®ãã¬ãŒãºã«åå¿ãããããšãã§ããŸããŠãïœïœïœïœïœ
æèãäžãããš
ããŸãŸã§ã¯äžåäžçã¹ã¿ã€ã«ã ã£ãã®ã ããã©ããã£ããã® instruction tune ãããã¢ãã«ãªã®ã§ã³ã³ããã¹ããäžãããšå£èª¿ãã©ããªããã¿ãŠã¿ãã®ã§ããã
prompt = [
{
"speaker": "ãŠãŒã¶ãŒ",
"text": "æè¿ç²ããŠããã§ãã"
},
{
"speaker": "ã·ã¹ãã ",
"text": "äœãå¿åœããã¯ãããŸããïŒ"
},
{
"speaker": "ãŠãŒã¶ãŒ",
"text": "æè¿å¯äžè¶³ã§ãã"
},
]
prompt = [
f"{uttr['speaker']}: {uttr['text']}"
for uttr in prompt
]
prompt = "<NL>".join(prompt)
prompt = (
prompt
+ "<NL>"
+ "ã·ã¹ãã : "
)
generate_instruction(prompt)ããã¯ç¢ºãã«è¯ãå
åã§ããç¡ç ããã嬢æ§ïŒïŒ
ãã£ããã©ãã«ãã£ãŠããŸãããã®ã§ããïŒïŒ
ããäžåºŠ
prompt = [
{
"speaker": "ãŠãŒã¶ãŒ",
"text": "ãã£ã»ãŒ"
},
{
"speaker": "ã·ã¹ãã ",
"text": "ãã£ã»ãŒ"
},
{
"speaker": "ãŠãŒã¶ãŒ",
"text": "æè¿ãªã«ãæµè¡ã£ãŠãã®ïŒ"
},
]
prompt = [
f"{uttr['speaker']}: {uttr['text']}"
for uttr in prompt
]
prompt = "<NL>".join(prompt)
prompt = (
prompt
+ "<NL>"
+ "ã·ã¹ãã : "
)
generate_instruction(prompt)ã¯ããæè¿ã¯å€ãã®äººã
ããã€ã³ã¿ãŒãããäžã§æäŸãããŠããããŸããŸãªãœãŒã·ã£ã«ã¡ãã£ã¢ãã嬢æ§ïœïœïœïœïœïœïœïœïœïœ
ãšããããšã§ãããã« LoRA ã§ãã¥ãŒãã³ã°ãããŠã Few-Shot ãªæèã®åœ±é¿ã®æ¹ã匷ããšããããšã確èªã§ããŸããã
ãŸããå€åå®éã« ChatBot ãšãã«çµã¿èŸŒãå Žå㯠System ã®å¿çã¯æ¯åã嬢æ§ã«ãªãã¯ãã ããããŸãæ°ã«ãªããªããšã¯æããŸãããã
LoRA ãåãæ¿ããŠéã¶
ããŠãä»åç¡äºã«äºäººã®ãã£ã©ã¯ã¿ãŒãèªçããã®ã§ LoRA ãã¹ã€ããã³ã°ããŠãããã§ã¿ãŸãããããã
ããŒã¹ã¢ãã«ãç¶æãããŸãŸ LoRA ã ãåãæ¿ãããããããã§ãã®ãã
ã£ãŠãªããã§è©³ããå 容ã¯èšäºãã¿ãŠããã£ããããã®ã§ãã
ä»çŸåšã嬢æ§ã¢ãã«ãåããŠããã®ã§
peft_model_gozarinnna = "bbz662bbz/lora-rinna-3.6b-instruction-ppo-gozarinnemon"
model.load_adapter(peft_model_gozarinnna, "gozarinnna")
model.set_adapter("gozarinnna")â ã®ããã«æåã«äœã£ããããããã® LoRA ã adapter ãšããŠèªã¿èŸŒãã§ã»ããããããšã§ãããããããã®ã§ããïœïœ
ã§ãããªé¢æ°ãé©åœã«äœã£ãŠ
def chat_with_random_person(text):
my_array = ["default", "gozarinnna"]
random_value = get_random_value(my_array)
model.set_adapter(random_value)
generate(text)"default" ãªãã°ã嬢æ§ã"gozarinna" ãªãããããããçããããã«ããŸãã®ã
chat_with_random_person("ç²å¡µççºã£ãŠç¥ã£ãŠããïŒ")1åç®
æããããããã¯æãã ç²ç æ©ã¯ãç²ãç²ã«æœãããã«äœ¿çšãããŸãã§ãããã
ç²ã®ç²ã¯ç©ºæ°äžã§æ¥éã«èšåŒµããççºãèµ·ãããŸã(ç²ç²ççº)ã
ãã®ççºã«ãããç«è±ãé£ã³æ£ããéå±çã飿£ããŸãã§ãããã
ç¥ãããã©ã2åç®
ã¯ã¿ã¯ã·æããŸãã®ã ç²ç¶ç©è³ªã®ççºã¯ãç²äœççºãšãåŒã°ãã
äž»ã«ç£æ¥çšéã§äœ¿çšãããŠããŸãããŒãç²ç æ©ãç 磚æ©ãªã©ã®ç£æ¥ç𿩿¢°ã®åäœãå®å®ãããããã«ã
å€ãã®ç²ç²äœã䜿çšãããŸããããΟãâ¿ã)Οäžåç®
ã¯ã¿ã¯ã·æããŸãã®ã ç²ç ççºã¯ãç²ã®å¡µãççºçã«ççŒããç«çœãåŒãèµ·ããçŸè±¡ã§ãããŒã
ç²äœççºãšãåŒã°ããŸããããΟãâ¿ã)ΟããŒãŒãŒãŒã¡ãããšåæ¿ãã£ãŠãã ã ã (*ÂŽâœïœ*)
ã§ããŸã adapter ã®åãæ¿ãã«çµæ§æéãããïŒãšãã£ãŠãæ°ç§ãããïŒã£ãŠã®ã¯ã¡ãããšããã¯ã§ããã
ãšããããšã§è²ã æžããŠæºè¶³ããã®ã§ãããŸãã