项目介绍:Llama-3-Open-Ko-8B-Instruct-preview
Llama-3-Open-Ko-8B-Instruct-preview项目是基于Llama-3-8B的语言模型的预览版本。项目由公开可用的资源训练而成,使用了超过60GB的去重文本数据进行预训练。该模型采用了新的Llama-3分词器,预训练过程中处理了超过17.7B个标记,比先前的Llama-2-Ko分词器使用的标记数量略多。训练是在Google的TRC项目支持下的TPUv5e-256上完成的。
项目背景
这个项目主要涉及到预训练语言模型的继续开发。它并未进行特定的韩语指令集微调(标记为“预览”),但它为新型Chat/Instruct模型的开发提供了一个很好的起点。项目结合了Chat Vector论文中的一些思想,通过这种模型结构改进指令模型的性能。
使用示例
项目提供了一个示例代码展示如何使用该模型进行文本生成功能:
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_id = "beomi/Llama-3-Open-Ko-8B-Instruct-preview"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype="auto",
device_map="auto",
)
messages = [
{"role": "system", "content": "친절한 챗봇으로서 상대방의 요청에 최대한 자세하고 친절하게 답하자. 모든 대답은 한국어(Korean)으로 대답해줘."},
{"role": "user", "content": "피보나치 수열이 뭐야? 그리고 피보나치 수열에 대해 파이썬 코드를 짜줘볼래?"},
]
input_ids = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
return_tensors="pt"
).to(model.device)
terminators = [
tokenizer.eos_token_id,
tokenizer.convert_tokens_to_ids("<|eot_id|>")
]
outputs = model.generate(
input_ids,
max_new_tokens=512,
eos_token_id=terminators,
do_sample=True,
temperature=1,
top_p=0.9,
)
response = outputs[0][input_ids.shape[-1]:]
print(tokenizer.decode(response, skip_special_tokens=True))
这个例子中演示了如何通过Python来实现和调用Llama-3-Open-Ko-8B-Instruct-preview模型,包括设置消息模板和生成响应。
生成结果示例
生成结果是针对用户请求,比如解释“피보나치 수열”(Fibonacci Sequence)并提供Python代码实现,以及其他历史或教育内容的请求进行响应。通过该示例可以看到,模型能够清晰、准确地生成所需的回答和代码,提升用户体验和交互质量。
项目总结
Llama-3-Open-Ko-8B-Instruct-preview项目为文本生成任务提供了强有力的支持,通过大量数据的预训练和先进的机器学习方法,能够为开发新的韩语指令模型提供坚实的技术基础。此项目对于机器学习领域的研究者和开发者而言,是一个很好的实验平台,尤其是在需要处理多语种、复杂指令生成的场景中表现尤为突出。