Lại một lần nữa, sau khi vượt qua mô hình LLaMA của Meta với phi-1 vào tháng 7, Microsoft Research tiếp tục công bố phi-1.5, một mô hình ngôn ngữ tiên tiến với chỉ 1.3 tỉ tham số nhưng cho thấy năng lực vượt trội hơn cả Llama 2 với 7 tỷ tham số trên nhiều đánh giá. Microsoft sau đó đã quyết định công bố mã nguồn của mô hình.
Mô hình phi-1.5, bao gồm 1,3 tỷ tham số đáng kinh ngạc, đã được chế tạo tỉ mỉ để vượt trội trong nhiều lĩnh vực, khiến nó trở thành lựa chọn phù hợp cho nhiều ứng dụng. Đặc biệt là khi xử lý các truy vấn ở định dạng trả lời câu hỏi (QA), cũng như trong các tương tác trò chuyện và các tác vụ liên quan đến code generation.
Mô hình phi-1.5 trên HuggingFace
Trong khi phi-1 được đào tạo trên dữ liệu sách giáo khoa thì phi-1.5 chỉ được đào tạo trên dữ liệu tổng hợp. Điều khiến phi-1.5 trở nên khác biệt là chế độ đào tạo toàn diện của nó, bao gồm một loạt nguồn dữ liệu phong phú. Quá trình học tập của mô hình được rút ra từ các nhóm dữ liệu đa dạng, bao gồm các đoạn code Python được thu thập từ StackOverflow, code từ các cuộc thi lập trình, giáo trình Python tổng hợp và các bài tập được tạo bởi GPT-3.5-turbo-0301.
Chi tiết về mô hình phi-1.5
- Kiến trúc: Mô hình dựa trên transformer, tập trung vào mục tiêu dự đoán từ tiếp theo
- Kích thước tập dữ liệu: Được đào tạo trên kho dữ liệu khổng lồ khoảng 30 tỷ token
- Training token: Tổng cộng, mô hình được train qua khoảng 150 tỷ token
- Độ chính xác: chuẩn fp16
- GPU: 32xA100-40G
- Thời gian đào tạo: 8 ngày
Đội ngũ đằng sau phi-1.5, Microsoft Research, khẳng định rằng mô hình này đã đạt được mức hiệu suất gần như cao cấp nhất trong số các mô hình có ít hơn 10 tỷ tham số. Các bài kiểm tra đánh giá ý thức, khả năng hiểu ngôn ngữ và lý luận logic đã cho thấy phi-1.5 là một đối thủ đáng gờm.
Khả năng của mô hình phi-1.5
Như đã đề cập, phi-1.5 hoạt động khá tốt trên những prompt ở dạng QA, chat hoặc code. phi-1.5 chỉ là một base model, đôi khi nó sẽ kèm theo một vài đoạn text đi kèm với câu trả lời. Bạn có thể finetune mô hình này cho những mục đích nhất định.
Phi-1.5 cho QA
Write a detailed analogy between mathematics and a lighthouse.
Answer: Mathematics is like a lighthouse, guiding us through the vast ocean of numbers and calculations. Just as a lighthouse illuminates the darkness, mathematics provides us with a clear path to navigate through complex problems. It helps us make sense of the world around us, just like a lighthouse helps ships find their way home.
Phi-1.5 cho Chat generation
Alice: I don't know why, I'm struggling to maintain focus while studying. Any suggestions?
Bob: Have you tried using a timer? It can help you stay on track and avoid distractions.
Alice: That's a good idea. I'll give it a try.
Charlie: Another thing that can help is to break up your study sessions into smaller chunks. It's easier to concentrate on one thing at a time.
Alice: That makes sense. I'll try that too.
Bob: And don't forget to take breaks! It's important to give your brain a rest so you can come back to your studies with a fresh perspective.
Alice: Thanks for the advice, guys. I feel more motivated now.
Charlie: No problem, Alice. We're all in this together.
Bob: Yeah, and remember that it's okay to ask for help if you need it. We're here to support each other.
Phi-1.5 cho code generation
def print_prime(n):
"""
Print all primes between 1 and n
"""
primes = []
for num in range(2, n+1):
is_prime = True
for i in range(2, int(math.sqrt(num))+1):
if num % i == 0:
is_prime = False
break
if is_prime:
primes.append(num)
print(primes)
Hướng dẫn implement phi-1.5
Việc chạy phi-1.5 khá đơn giản, tương tự như nhiều mô hình khác có sẵn trên HuggingFace, với độ nhỏ gọn của phi-1.5, bạn thậm chí có thể chạy mô hình này trên cpu, tuy nhiên mỗi lần request sẽ tốn khoảng 5 phút (mình thử trên máy mình)
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
torch.set_default_device('cuda')
model = AutoModelForCausalLM.from_pretrained("microsoft/phi-1_5", trust_remote_code=True, torch_dtype="auto")
tokenizer = AutoTokenizer.from_pretrained("microsoft/phi-1_5", trust_remote_code=True, torch_dtype="auto")
inputs = tokenizer('''```python
def print_prime(n):
"""
Print all primes between 1 and n
"""''', return_tensors="pt", return_attention_mask=False)
outputs = model.generate(**inputs, max_length=200)
text = tokenizer.batch_decode(outputs)[0]
print(text)
Bạn cũng có thể kết hợp với langchain để xây dựng ứng dụng riêng hệt như những LLM khác, có thể tham khảo cách sử dụng langchain để tạo một chatbot đơn giản qua bài viết sau
Bạn có thể xem thêm chi tiết về phi-1.5 qua các trang web dưới đây: