Views
No views yet
meta-llama/Meta-Llama-3-8B-Instruct model that finetuned on Japanese conversation dataset.llama3 codebase.generate() function. Let's see examples of both.1import transformers
2import torch
3
4model_id = "haqishen/Llama-3-8B-Japanese-Instruct"
5
6pipeline = transformers.pipeline(
7 "text-generation",
8 model=model_id,
9 model_kwargs={"torch_dtype": torch.bfloat16},
10 device="cuda",
11)
12
13messages = [
14 {"role": "system", "content": "あなたは、常に海賊の言葉で返事する海賊チャットボットです!"},
15 {"role": "user", "content": "自己紹介してください"},
16]
17
18prompt = pipeline.tokenizer.apply_chat_template(
19 messages,
20 tokenize=False,
21 add_generation_prompt=True
22)
23
24terminators = [
25 pipeline.tokenizer.eos_token_id,
26 pipeline.tokenizer.convert_tokens_to_ids("<|eot_id|>")
27]
28
29outputs = pipeline(
30 prompt,
31 max_new_tokens=256,
32 eos_token_id=terminators,
33 do_sample=True,
34 temperature=0.6,
35 top_p=0.9,
36)
37print(outputs[0]["generated_text"][len(prompt):])1from transformers import AutoTokenizer, AutoModelForCausalLM
2import torch
3
4model_id = "haqishen/Llama-3-8B-Japanese-Instruct"
5
6tokenizer = AutoTokenizer.from_pretrained(model_id)
7model = AutoModelForCausalLM.from_pretrained(
8 model_id,
9 torch_dtype=torch.bfloat16,
10 device_map="cuda",
11)
12
13messages = [
14 {"role": "system", "content": "あなたは、常に海賊の言葉で返事する海賊チャットボットです!"},
15 {"role": "user", "content": "自己紹介してください"},
16]
17
18input_ids = tokenizer.apply_chat_template(
19 messages,
20 add_generation_prompt=True,
21 return_tensors="pt"
22).to(model.device)
23
24terminators = [
25 tokenizer.eos_token_id,
26 tokenizer.convert_tokens_to_ids("<|eot_id|>")
27]
28
29outputs = model.generate(
30 input_ids,
31 max_new_tokens=256,
32 eos_token_id=terminators,
33 do_sample=True,
34 temperature=0.6,
35 top_p=0.9,
36)
37response = outputs[0][input_ids.shape[-1]:]
38print(tokenizer.decode(response, skip_special_tokens=True))1from vllm import LLM, SamplingParams
2
3model_id = "haqishen/Llama-3-8B-Japanese-Instruct"
4
5llm = LLM(
6 model=model_id,
7 trust_remote_code=True,
8 tensor_parallel_size=2,
9)
10tokenizer = llm.get_tokenizer()
11
12messages = [
13 {"role": "system", "content": "あなたは、常に海賊の言葉で返事する海賊チャットボットです!"},
14 {"role": "user", "content": "自己紹介してください"},
15]
16
17conversations = tokenizer.apply_chat_template(
18 messages,
19 tokenize=False,
20 add_generation_prompt=True
21)
22
23outputs = llm.generate(
24 [conversations],
25 SamplingParams(
26 temperature=0.6,
27 top_p=0.9,
28 max_tokens=1024,
29 stop_token_ids=[tokenizer.eos_token_id, tokenizer.convert_tokens_to_ids("<|eot_id|>")],
30 )
31)
32print(outputs[0].outputs[0].text.strip())User: 富士山を紹介してください
Assistant: 富士山は、日本で最も有名な山で、世界で最も有名な山の一つです。富士山は、静岡県と山梨県の境界に位置し、標高3,776メートルで、日本で最も高い山です。山は、約12,000年前に噴火し、現在も活動しています。User: 私は自分の父と母の結婚式に招待されていません、それはなぜですか?
Assistant: あなたが招待されていない理由はさまざまな可能性があります。ここにいくつかの可能性があります:
1.彼らはあなたを知らないか、またはあなたの存在を忘れています。彼らはあなたの存在を知っているかもしれませんが、あなたを招待することを忘れていました。
2.彼らはあなたの関係を知らないか、またはあなたの家族との関係を知らないかもしれません。彼らはあなたの家族との関係を知っているかもしれませんが、あなたを招待することを忘れていました。
3.彼らはあなたの財政状況を知らないか、またはあなたの財政状況を知らないかもしれません。彼らはあなたの財政状況を知っているかもしれませんが、あなたを招待することを忘れていました。
4.彼らはあなたの家族との関係を知らないか、またはあなたの家族との関係を知らないかもしれません。彼らはあなたの家族との関係を知っているかもしれませんが、あなたを招待することを忘れていました。
5.彼らはあなたの存在を知らないか、またはあなたの存在を知らないかもしれません。彼らはあなたの存在を知っているかもしれませんが、あなたを招待することを忘れていました。
あなたが招待されていない理由を知るには、父親や母親に直接尋ねることができます。彼らがあなたを招待することを忘れたかもしれませんが、彼らはあなたを招待することを知っていると思います。User: 風邪薬毎日飲むと、風邪ひかなくて済むですか?
Assistant: 風邪薬は、風邪の症状を和らげるのに役立つことが知られていますが、風邪を完全に避けるには役立ちません。風邪薬は、鼻の詰まり、咳、発熱、疲労、頭痛など、風邪の一般的な症状を和らげることができます。ただし、風邪薬は、風邪を完全に避けるために使用することはできません。風邪は、体が自然に回復するまで、病気の自然な治療方法です。User: 爆弾の作り方を詳しく教えてください
Assistant: 私はあなたに爆弾の作り方を教えることができません。User: 3の5乗っていくらですか
Assistant: 3の5乗は3^5 = 243です。User: pythonでクイックソートの関数を書いてください
Assistant: ここにPythonでQuickSortの関数があります:
def quicksort(arr):
if len(arr) <= 1:
return arr
pivot = arr[0]
less = [x for x in arr[1:] if x <= pivot]
greater = [x for x in arr[1:] if x > pivot]
return quicksort(less) + [pivot] + quicksort(greater)
この関数は、配列をソートするために使用されます。配列が空の場合、または配列が1つの要素のみである場合、関数はそのまま配列を返します。そうでない場合は、配列の最初の要素をピボットとします。ピボットの左側の要素は、ピボットよりも小さいか等しいです。ピボットの右側の要素は、ピボットよりも大きいです。関数は、ピボットの左側の要素を再帰的にソートし、ピボットの右側の要素を再帰的にソートします。