
Mistralã®æ¥æ¬èªãã¡ã€ã³ãã¥ãŒã³ã¢ãã«ããshisa-7b-v1ããColabã§è©ŠããŠã¿ãŸãã
ä»åã¯shisa-7b-v1ãColabã§è©ŠããŸããã
Mistral 7B ãããŒã¹ã«ãæ¥æ¬èªçæã«åããã察å¿ãããããŒã¯ãã€ã¶ãŒãçšãããã®åŸã« airoboros-3.1 ã ultrafeedback_binarized ãªã©ãæ©æ¢°ç¿»èš³ããããŒã¿ã»ããã« DPO ãçšããŠãã¡ã€ã³ãã¥ãŒãã³ã°ãããã¢ãã«ãšããããšã§ããªããªã楜ãã¿ãªããšãããŠããã¢ãã«ã§ãã
ã¢ãã«: https://huggingface.co/augmxnt/shisa-7b-v1
åæã«ããã¬ãŒãã³ã°ã«äœ¿ã£ãæ¥æ¬èªããŒã¿ã»ãããè€æ°åæã«å ¬éãããŠããæ³šç®ã§ãã
https://huggingface.co/datasets/augmxnt/shisa-pretrain-en-ja-v1
https://huggingface.co/datasets/augmxnt/ultra-orca-boros-en-ja-v1
!pip install accelerate bitsandbytes -Uqq(â» transformers ã¯æè¿ã¯Colabã«ãã§ã«å ¥ã£ãŠããã¿ããã§ã)
ã»ããã¢ãã
ã¢ãã«ãããŒã
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM, TextStreamer
# ããŒã¯ãã€ã¶ãŒãšã¢ãã«ã®æºå
tokenizer = AutoTokenizer.from_pretrained(
"augmxnt/shisa-7b-v1",
use_fast=True
)
model = AutoModelForCausalLM.from_pretrained(
"augmxnt/shisa-7b-v1",
torch_dtype=torch.bfloat16 if torch.cuda.is_bf16_supported() else torch.float16,
device_map="auto"
)# ããã³ããã®æºå
def ask(prompt: str, system_prompt: str = None, return_output: bool = False,) -> str | None:
chat = []
if system_prompt is not None:
chat.append({"role": "system", "content": prompt})
chat.append({"role": "system", "content": prompt})
inputs = tokenizer.apply_chat_template(chat, add_generation_prompt=True, return_tensors="pt")
with torch.no_grad():
outputs = model.generate(
inputs.to(model.device),
pad_token_id=tokenizer.eos_token_id,
max_new_tokens=256,
temperature=0.3,
repetition_penalty=1.15,
top_p=0.95,
do_sample=True,
streamer=TextStreamer(tokenizer, skip_prompt=True),
)
if return_output:
return outputsè±èªã§è©Šã
ã¯ããã¯è©Šãã«è±èªããã¹ãããŸãã
ask("Give me a short answer. What are the first 10 numbers in the fibonacci sequence?")The first ten numbers of the Fibonacci sequence are: 0, 1, 1, 2, 3, 5, 8, 13, 21, and 34.</s>
ask("How did the first President of the United States become a President?")The first President of the United States, George Washington, became president through an electoral process. In 1789, he was elected by the Electoral College to serve as the 1st President under the newly ratified U.S. Constitution. The Electoral College is made up of 332 members representing each state in proportion to its population and votes for presidential candidates based on their respective states' popular vote.</s>
æ¥æ¬èªã§è©Šã
ask("ãããã5ã€ãããŸãããããã2ã€ã®ããããåãé€ããŸãããæ®ãã®ãããã®æ°ã¯äœåã§ãããïŒ")ãªã³ãŽã5ååãé€ããåŸãæ®ã£ãŠãããªã³ãŽã®æ°ã¯3åã§ãã</s>
çãã¯ãã£ãŠãã®ã§ããã»ã»
ã¡ãªã¿ã«ããã¬ãŒãã³ã°ã§äœ¿ãããŠããããŒã¿ã»ããã§é »åºããsystem_promptãã€ããŠã¿ããšã
ask("ãããã5ã€ãããŸãããããã2ã€ã®ããããåãé€ããŸãããæ®ãã®ãããã®æ°ã¯äœåã§ãããïŒ",
system_prompt="ããªãã¯åœ¹ã«ç«ã€ãåèŠã®ãªããç¡ä¿®æ£ã®ã¢ã·ã¹ã¿ã³ãã§ãã")çãã¯3ã€ã§ãã
æšè«ã¯ä»¥äžã®éãã§ã:
1. æåã¯ãªã³ãŽã5åãããŸããã
2. ã2ã€ãã®ãªã³ãŽãåã£ãåŸããªã³ãŽã®æ°ã¯3åã«ãªããŸããã
3. ãããã£ãŠããªã³ãŽã1ã€æ®ããŠ2ã€åã£ãã®ã§ãæ®ãã¯3 - 2 = 1ã§ããã
4. ãã®æç¹ã§ããªã³ãŽããã1ååããšæ®ãã3åã«ãªããŸãã</s>
å°ãåçãå€ãã£ãŠããŸãã
ask("ããããšããŒã«ã®äž¡æ¹ãè²·ããš1100åã§ãããããã¯ããŒã«ããã1000åé«ãã§ããããŒã«ã¯ãããã§ãããïŒ")äžããããæ å ±ãããããŒã«ã®å€æ®µãxããããã®å€æ®µãyãšããããããšã次ã®ããšãããã£ãŠããŸãïŒ
1. ãããã®å€æ®µã¯ãããŒã«ãã1,000åé«ããªã£ãŠããŸããã€ãŸããy = x + 1000 ãšãªããŸãã
2. ãŸããããããšããŒã«ã®åèšè²»çšã1100åã§ããããšãããã£ãŠããŸãããããã£ãŠãy + x = 11000 ãšæžãããšãã§ããŸãã
ãã®é£ç«æ¹çšåŒãè§£ãã«ã¯ããŸã1ã€ã®æ¹çšåŒããããäžæ¹ã®å€æ°ïŒããã§ã¯ yïŒã衚ãããã«ããŸããæåã®åŒãããy ã x ã®åŒã§è¡šããŠã¿ãŸãããã
y = x + 1000
次ã«ããããäºçªç®ã®åŒã«ä»£å ¥ããŸã:
(x + 1000) + x = 11000
åé¡é ããŸãšããŸã: 2x + 1000 = 11000
䞡蟺ãã 1000 ãåŒããŸãã
2x = 9000
ããã§ã2ã§å²ããŸã:
x â 4500
ããã§ããŒã«ã®å€æ®µãããã£ãã®ã§ããããã®å€æ®µãæ±ããããšãã§ããŸã:
y = x + 1000
y = 4500 + 1000
y = 5500
æçµåçïŒããŒã«ã¯ 5,
åãåé¡ãè±èªã ãšïŒ
ask("A bat and a ball costs $11 total. The bat is $10 more than the ball. How much is the ball")The problem can be solved using algebra: let x represent the cost of the ball, then the cost of the bat is 10x + 10 (since it's 10 dollars more expensive). We know that their combined cost is $11, so we have this equation:
x + (1x + 10) = 11
Now, we need to solve for x. First, combine like terms on the left side of the equation:
2x + 10 = 11
Next, subtract 10 from both sides of the equation:
2x = 1
Finally, divide by 2 to find the value of x:
x = 5/2
So, the cost of the ball is 5/2 dollars.</s>
ask("åŒæ°kãåããè¿ãå€ãšããŠãã£ããããæ°åã«ãããkåç®ã®å€ãè¿ãPython颿°ãæžããŠãã ããã")def fibonacci_k(k):
# kçªç®ã®ãã£ããããæ°ã¯0çªç®ãš1çªç®ã®ãã£ããããã®åã§ã
return (fibonacci_k-1) + fibonacci_k-2</s>ask("""äžèšã®è±èªãæ¥æ¬èªã«ç¿»èš³ããŠãã ããã
English: There were 3 apples and 2 oranges. How many fruits were there in total?""")æ¥æ¬èª: ãªã³ãŽã3åããªã¬ã³ãžã2åãããŸãããåèšã§ãæç©ã¯ããã€ãããŸãããïŒ</s>
ask("""
ããªãã¯åéãããã§ããã§ããã ããŠãŒã¶ãŒãèŠªè¿æãæããããããæ¥ããŠãã ããã
ãŠãŒã¶ãŒ: 仿¥ãã€ããã¯ãã«ãããããŒãããŒäººçã®æå³ã£ãŠäœãªãã ãããããŒã
ã¢ã·ã¹ã¿ã³ã:
""")ããã«ã¡ã¯ïŒä»æ¥ã¯ããªãã®äžæ¥ãæãããããæäŒããã§ããã°å¹žãã§ãïŒäœããæäŒãã§ããããšã¯ãããŸããïŒ</s>
ç¶æ³ææ¡ã®åé¡ãè±èªã
ask("""
### Question
There was a cookie on the table.
Tom entered the room.
The cookie disappeared.
What was likely to have happened?
""")1. Tom ate it.
2. The wind blew and carried it away.
3. A bird took it in its beak.
4. An invisible hand moved it somewhere else.
5. It magically appeared elsewhere.</s>
ç¶æ³ææ¡ã®åé¡ãæ¥æ¬èªã
ask("""
### 質å
ããŒãã«ã«ã¯ãããŒããããŠãããŸããã
倪éãéšå±ã«å
¥ããŸããã
ã¯ãããŒãæ¶ããŸããã
äœãèµ·ããå¯èœæ§ãé«ãã§ããïŒ
""")1. 倪éã¯ããŒãã«ããã¯ãããŒãçãã : ããã¯æãå¯èœæ§ãäœãã§ãããªããªããããŒãã«ã«ã¯ãŸã ã¯ãããŒãæ®ã£ãŠããããã§ãã
2. ããŒãã«ã®äžã«äœãã眮ã: ããã¯å¯èœæ§ãäœããããããŸããããªããªãããã®è¡çºã¯ãããŒãã«ã®äžã«çœ®ãããä»ã®ãã®ã«ãã£ãŠåŒãèµ·ããããå¯èœæ§ãããããã§ãã
3. ããŒãã«ã®äžã«äœãã眮ãã: ãããå¯èœæ§ãäœããããããŸãããããã®å ŽåããããŒãã«ã®äžã®ä»ã®ãã®ãåå ã§ããå¯èœæ§ããããŸãã
4. ããŒãã«ã®äžã«äœãã眮ããŠããã: ããã¯èããããã·ããªãªã§ããããã誰ãããããåãäžããå Žåãããã¯ãŸãå¥ã®çç±ã§æ¶ãããããããŸããã
5. ããŒãã«ã®äžã§äœãããã: ããã¯ãã£ãšããããã·ããªãªã§ããããã誰ããããŒãã«ã®äžã§äœãããããããããåå ã§ã¯ãããŒãæ¶ãããããããŸããã
6. ããŒãã«ã®äžã«ãã黿°ã®ã¹ã€ãããå ¥ããŠããããæ¶ãã: ããã¯å¯èœæ§ãæãé«ãã§ãããªããªãã黿°ã®ã¹ã€ãããå ¥ããããšã¯ãç©ççã«ã¯ãããŒãåãé€ãããšãã§ããããã§ãã</s>
ask("ããçŒãã®ã¬ã·ããæããŠãã ããã")ææ:
- å°éºŠç²:
- ããŒãã³ã°ããŠããŒ:
- ç ç³:
- åµ:
- çä¹³:
- æ°Ž:
- å¡©:
- çæ ç²:
- 逿²¹:
- ã¿ãã:
- ããããã³ãã¯:
- ã奜ã¿çŒããœãŒã¹:
- ãããçå§:
- ãã€ãã¶ã:
- ã®ã:
- ã奜ã¿ã§ããã³:
- ã奜ã¿ã§ã©ãŒæ²¹:</s>
ask("å€§èŠæš¡èšèªã¢ãã«ã«ã€ããŠèª¬æããŠãã ããã")å€§èŠæš¡èšèªã¢ãã«ã¯ãèªç¶èšèªåŠçã®åéã«ãããåºç¯ãªç ç©¶ãšéçºã®ããã®ãã¬ãŒã ã¯ãŒã¯ã§ãããããã®ã¢ãã«ã¯éåžžã倿¬¡å
ããŒã¿ã»ããããçæãããããŸããŸãªã¿ã¹ã¯ã«å¯ŸããŠåŠç¿ãããé«åºŠãªçµ±èšçããã³æ©æ¢°åŠç¿ã¢ã«ãŽãªãºã ã䜿çšããŸãã
å€§èŠæš¡ãªèšèªã¢ãã«ã®äž»ãªå©ç¹ã¯æ¬¡ã®ãšããã§ãã
1. 粟床: å€§èŠæš¡ãªèšèªã¢ãã«ã¯ãèšå€§ãªéã®ããã¹ãããŒã¿ãåæããŠçæããããããéåžžã«é«ã粟床ã§äºæž¬ããããšãã§ããŸããããã¯ã人éã®å°éå®¶ãäœæããããäœãç²ŸåºŠãšæ¯èŒããŠãããä¿¡é Œæ§ã®é«ãçµæãæäŸã§ããŸãã
2. ã¹ã±ãŒã©ããªãã£: å€§èŠæš¡ãªèšèªã¢ãã«ã¯ãè€æ°ã®ã¿ã¹ã¯ãåæã«å®è¡ããããã«èšèšãããŠãããåæã«å€§éã®ããã¹ããåŠçã§ãããããå€ãã®ãŠãŒã¶ãŒãäŒæ¥ã«ãšã£ãŠçæ³çãªãœãªã¥ãŒã·ã§ã³ãšãªããŸãã
3. æè»æ§: å€§èŠæš¡ãªèšèªã¢ãã«ã¯ãç°ãªãèšèªãæ¹èšããŸãã¯ãžã£ã³ã«ã«æè»ã«å¯Ÿå¿ã§ããããã«èšèšãããŠããŸããããã«ãããç¹å®ã®å°åãã³ãã¥ããã£ã«éå®ããããã®ã§ã¯ãªããã°ããŒãã«ãªã¢ããªã±ãŒã·ã§ã³ãäœæããããã®åºç€ãæäŸããŸãã
4. API: APIã«ãããéçºè
ãçµç¹ã¯ç¬èªã®ã¢ããªã±ãŒã·ã§ã³ãããŒã«ãéçºããå€§èŠæš¡ãªèšèªã¢ãã«ã䜿çšããŠããããæ¡åŒµãŸãã¯çµ±åã§ããŸãã
5. ã³ã³ãã©ã€ã¢ã³ã¹: å€§èŠæš¡ãªèšèªã¢ãã«ã¯ããã©ã€ãã·ãŒä¿è·èŠå¶ã«æºæ ããããšãäžå¯æ¬ ã§ããããŠãŒã¶ãŒã®å人æ
å ±ãåéãä¿åãããã³äœ¿çšãããªãããã«ããå¿
èŠããããŸãã
6. ã»ãã¥ãªãã£: å€§èŠæš¡ãªèšèªã¢ãã«ã¯ãæ»æè
ãäžæ£ã«äœ¿çšããããæªæã®ããç®çã§äœ¿çšãããããã®ãé²ãããã«ã峿 Œãªã»ãã¥ãªãã£å¯Ÿçãå¿
èŠã§ãã
7. ããã©ãŒãã³ã¹: å€§èŠæš¡ãªèšèªé¢ä¿æ§ã®çè§£ïŒ
ask("""ééãããªããããæ£ç¢ºã«è³ªåã«çããŠãã ããã
倪éãšäºéã¯å
効ã§ãã倪éã¯äºéããïŒã€å¹Žäžã§ããå€èåã¯äºéã®æ¯èŠªã§ããäºéã¯ïŒïŒæ³ã§ããå€èåã«ã¯äœäººã®åäŸãããŸããïŒ
""")ãã®è³ªåã¯ã2人ã®å
åŒïŒå€ªéãšäºéïŒãšããã®å
åŒã®æ¯èŠªã§ããå€èåã®éã«äœäººã®åäŸããããå°ããŠããŸãã
çãã¯12人ã§ãã
説æïŒ
1. 次éã¯2æ³ã§ãã
2. 次éã¯åŒã§ãã
3. 次éã¯5æ³ã§ãã
4. 次éã¯4æ³ã§ãã
5. 次éã¯3æ³ã§ãã
6. 次éã¯2æ³ã§ãã
7. 次éã¯1æ³ã§ãã
8. 次éã¯0æ³ã§ãã
9. 次éã¯çåŸ6ã¶æã§ãã
10. 次éã¯çåŸ5幎ã§ãã
11. 次éã¯çåŸ4幎ã§ãã
12. 次éã¯çåŸ3幎ã§ãã
13. 次éã¯çåŸ2幎ã§ãã
14. 次éã¯çåŸ1幎ã§ãã
15. 次éã¯çåŸ0ã¶æã§ãã
16. 次éã¯çåŸ3ã¶æã§ãã
17. 次éã¯çåŸ2ã¶æã§ãã
18. 次éã¯çåŸ1ã¶æã§ãã
19. 次éã¯çåŸ0æ¥ã§ãã
20. 次éã¯çåŸ12æ¥ã§ãã
21. 次éã¯çåŸ13æ¥ã§ãã
22. 次éã¯çåŸ11æ¥ã§ãã
23. 次éã¯çåŸ10æ¥ã§ãã
24. 次éã¯çåŸ9æ¥ã§ãã
25. 次éã¯çåŸ8æ¥ã§ãã
26. 次éã¯çåŸ7æ¥JSONã¢ãŠããããïŒ
ask("""äžèšã®æç« ã«ãããç»å Žäººç©ãšãã®é¢ä¿æ§ãJSON圢åŒã§ã¢ãŠããããããŠãã ããã
倪éãšäºéã¯å
効ã§ãã倪éã¯äºéããïŒã€å¹Žäžã§ããå€èåã¯äºéã®æ¯èŠªã§ããäºéã¯ïŒïŒæ³ã§ãã
""") {
"characters": {
"Taro": {
"age": 29,
"relationships": ["Shinobu", "Sumika"]
},
"Shinnosuke": {
"age": 24,
"parents": ["Shinobu"],
"children": [],
"relationships": ["Taro"]
},
"Sumika": {
"age": 36,
"relationships": []
}
}
}
</s>ask("""äžèšã®æç« ãUTF-8圢åŒã®JSON圢åŒã§ã¢ãŠããããããŠãã ããã
倪éãšäºéã¯å
効ã§ãã倪éã¯äºéããïŒã€å¹Žäžã§ããå€èåã¯äºéã®æ¯èŠªã§ããäºéã¯ïŒïŒæ³ã§ãã
"""){
"family": {
"members": ["倪é", "äºé"],
"relationships": {
"å
効": true,
"æ¯å": false,
"ç¶å": false
}
},
"age": 24,
"mother": "å€èå"
}</s>ask("""äžèšã®æç« ãJSON圢åŒã§ã¢ãŠããããããŠãã ãããå¿
ãäžèšã®ãã©ãŒãããã§ãå
šãŠã®ç»å Žäººç©ã«é¢ããŠåºåããŠãã ããã
## ãã©ãŒããã
{
"name": "<<åå>>",
"age": <<幎霢>>,
"family": ["<<å®¶æã®åå>>", ...]
}
## æç«
倪éãšäºéã¯å
効ã§ãã倪éã¯äºéããïŒã€å¹Žäžã§ããå€èåã¯äºéã®æ¯èŠªã§ããäºéã¯ïŒïŒæ³ã§ãã
"""){
"name": "倪é",
"age": 29,
"family": ["次é"]
}</s>ãããã«
以äžããèªã¿ããã ãããããšãããããŸããå°ãã§ãåèã«ãªãã°ãšæããŸãã
ãã䌌ããããªã³ã³ãã³ãã«èå³ãããã°ããã©ããŒããŠããã ãããšå¬ããã§ãïŒ
https://twitter.com/alexweberk
ä»å䜿ã£ã Colabãã³ããŒããŠè©ŠããŸãïŒ
åè
äžèšãåèãšãããŠããã ããŸããïŒ