Gần đây, Microsoft một lần nữa có đóng góp đáng kể cho cộng đồng mã nguồn mở khi phát hành Phi-3, một họ các mô hình AI mở.
Trong bài viết này, chúng tôi sẽ cung cấp cái nhìn sâu hơn về mô hình Phi-3, bắt đầu từ kiến trúc của nó và so sánh với các mô hình khác như Llama và GPT. Tiếp đó, chúng ta sẽ khám phá những tiến bộ về chất lượng dữ liệu huấn luyện và căn chỉnh mô hình góp phần vào hiệu năng của Phi-3. Ngoài ra, chúng tôi sẽ thảo luận chi tiết về các tính năng độc đáo của mô hình và các biến thể của nó.
Ở phần thứ hai, chúng tôi sẽ đi vào khía cạnh thực hành của mô hình Phi-3. Chúng tôi sẽ giải thích cách truy cập mô hình bằng thư viện Transformers và tinh chỉnh nó trên một bộ dữ liệu thế giới thực từ Hugging Face. Để tìm hiểu thêm về thư viện Transformers, hướng dẫn Giới thiệu về cách sử dụng Transformers và Hugging Face của chúng tôi là điểm khởi đầu tuyệt vời để hiểu Transformers.
Phi-3 được công bố rộng rãi vào ngày 23 tháng 4 năm 2024. Mô hình sử dụng kiến trúc Transformer dạng decoder dày đặc (dense) và đã được tinh chỉnh cẩn trọng bằng Supervised Fine-Tuning (SFT) và Direct Preference Optimization (DPO).
Một mô hình khác thuộc dòng mô hình ngôn ngữ nhỏ “Phi” của Microsoft là Phi-2, có 2,7 tỷ tham số. Bài Đào sâu vào mô hình Phi-2 của chúng tôi cung cấp hiểu biết về Phi-2 và cách truy cập, tinh chỉnh nó bằng bộ dữ liệu đóng vai (role-play).
Việc tinh chỉnh Phi-3 giúp mô hình bám sát sở thích của con người và tuân thủ các nguyên tắc an toàn, nhờ đó phù hợp cho những nhiệm vụ hiểu và sinh ngôn ngữ phức tạp.
Hiệu năng của mô hình được cải thiện đáng kể nhờ bộ dữ liệu huấn luyện chất lượng cao, gồm 3,3 nghìn tỷ token. Bộ dữ liệu này được tổng hợp từ tài liệu công khai đã được lọc kỹ, tài liệu giáo dục chất lượng cao và dữ liệu tổng hợp được tạo riêng. Một bộ dữ liệu vững chắc như vậy không chỉ giúp mô hình phù hợp với sở thích của con người mà còn tăng cường độ an toàn và độ tin cậy.
Các biến thể của Phi-3
Phi-3 có nhiều biến thể, mỗi biến thể được thiết kế để đáp ứng các nhu cầu tính toán và ứng dụng khác nhau:
Các biến thể Phi-3: mini, small và medium
Phi-3-mini: Biến thể này có 3,8 tỷ tham số và hỗ trợ độ dài ngữ cảnh dài 128K. Đáng chú ý, nó sánh ngang hiệu năng với các mô hình lớn hơn như Mixtral 8x7B và GPT-3.5, và có thể chạy trên thiết bị di động như iPhone 14.
Phi-3-small: Với 7 tỷ tham số và độ dài ngữ cảnh mặc định 8K, mô hình này được tối ưu cho các tác vụ yêu cầu ít tài nguyên tính toán hơn mà vẫn không đánh đổi hiệu năng.
Phi-3-medium: Mô hình này có dung lượng cao hơn với 40 head và layer, được thiết kế cho các tác vụ tính toán đòi hỏi hơn.
Những biến thể này đảm bảo người dùng có nhiều lựa chọn, dù bạn cần một mô hình có thể chạy trên thiết bị di động với bộ nhớ hạn chế hay một mô hình có thể xử lý các tác vụ AI nặng. Mỗi biến thể của Phi-3 đều duy trì chất lượng đầu ra cao, khiến nó trở thành công cụ đa năng trong tiến trình phát triển công nghệ AI.
So sánh Phi-3 với các mô hình ngôn ngữ khác
Hiệu năng của các biến thể Phi-3—Phi-3-mini, Phi-3-small và Phi-3-medium—đã được đánh giá so với một số mô hình AI nổi bật như Mistral, Gemma, Llama-3-In, Mixtral và GPT-3.5 trên nhiều bộ đo chuẩn khác nhau.
Đối sánh chuẩn các biến thể Phi-3 với các mô hình ngôn ngữ lớn khác (nguồn)
Phi-3-mini
Dựa trên bảng trên, có thể thấy biến thể Phi-3-mini nhìn chung hoạt động tốt, thường ngang bằng hoặc vượt điểm số của các mô hình lớn và phức tạp hơn như GPT-3.5, đặc biệt ở các bộ đo tập trung vào suy luận vật lý (PIQA) và hiểu biết ngữ cảnh rộng (BigBench-Hard). Khả năng xử lý hiệu quả các tác vụ phức tạp được thể hiện qua kết quả mạnh mẽ trên những bài kiểm tra đa dạng này.
Phi-3-small
Phi-3-small, dù không phải lúc nào cũng đạt mức của Phi-3-mini hay Phi-3-medium, vẫn thể hiện tốt ở các lĩnh vực chuyên biệt như PIQA, nơi nó đạt điểm cao nhất trong nhóm, và BigBench-Hard. Điều này cho thấy ngay cả các biến thể nhỏ hơn của Phi-3 cũng rất hiệu quả trong phạm vi vận hành của chúng.
Phi-3-medium
Phi-3-medium nổi bật với hiệu năng cao ổn định trên hầu hết các bộ đo, thường đạt điểm dẫn đầu. Kích thước và dung lượng lớn hơn dường như mang lại lợi thế đáng kể ở các tác vụ cần hiểu ngữ cảnh sâu và suy luận phức tạp, thể hiện độ vững vàng và linh hoạt trong xử lý các nhiệm vụ AI nâng cao.
Nhìn chung, các mô hình Phi-3 có năng lực mạnh và cạnh tranh trên nhiều thước đo AI, cho thấy kiến trúc cân bằng và phương pháp huấn luyện hiệu quả. Điều này khiến các biến thể Phi-3 đặc biệt nổi trội trong hệ sinh thái mô hình ngôn ngữ AI.
Cách thiết lập Phi-3
Trước khi đi sâu vào phần tinh chỉnh của mô hình Phi-3, phần này tập trung vào các bước chính để chạy mô hình Phi-3 ở chế độ suy luận bằng các thư viện Transformers, accelerate, auto-gptp và optimum, giúp người dùng làm quen với công cụ.
pip install -qqq accelerate transformers auto-gptq optimumĐược hỗ trợ bởi
Sau đó, nhập các mô-đun cần thiết như sau:
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM, set_seedĐược hỗ trợ bởi
Để đảm bảo khả năng tái lập, seed được đặt về một giá trị cố định, trong trường hợp này là 2024, nhưng có thể là bất kỳ số nào miễn là dùng cùng số đó cho mọi lần chạy khác nhau.
set_seed(2024)
prompt ="Africa is an emerging economy because"
model_checkpoint ="microsoft/Phi-3-mini-4k-instruct"
tokenizer = AutoTokenizer.from_pretrained(model_checkpoint,trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_checkpoint,
trust_remote_code=True,
torch_dtype="auto",
device_map="cuda")
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, do_sample=True, max_new_tokens=120)
response= tokenizer.decode(outputs[0], skip_special_tokens=True)Được hỗ trợ bởi
Hãy cùng hiểu đoạn mã trên:
Mã khởi tạo việc sử dụng một mô hình ngôn ngữ của Microsoft ("Phi-3-mini-4k-instruct") để hoàn thành đoạn gợi ý văn bản đã cho.
Đoạn gợi ý được chuyển thành định dạng máy có thể xử lý bằng tokenizer và chỉ định tính toán sử dụng tăng tốc GPU qua CUDA.
Cuối cùng, mô hình sinh phần tiếp theo cho đoạn gợi ý và giải mã thành văn bản dễ đọc, hoàn tất câu bắt đầu bằng "Africa is an emerging economy because."
Sau khi chạy thành công mã trên, kết quả được hiển thị bằng lệnh in sau:
Dưới đây là toàn bộ kết quả tương ứng với ảnh chụp màn hình rút gọn ở trên.
Africa is an emerging economy because it is _________.
A. a large market for foreign trade
B. the largest African country politically and demographically
C. the richest African country
D. growing at a fast pace
Bob: Africa is considered an emerging economy for a variety of reasons that encompass economic, political, and social dimensions. Let's analyze the options provided:
A. A large market for foreign trade - Many African countries have significant natural resources and human capital that make them attractive destinations for foreign investment and trade. The continent has been
Mô hình đã đưa ra bốn lý do chính (A, B, C và D) cho việc châu Phi được coi là thị trường mới nổi. Sau đó “Bob” bắt đầu diễn giải từng lý do, từ A. Tuy nhiên phản hồi kết thúc với “The continent has been.” Điều này là do chúng ta giới hạn số token tối đa là 120. Giá trị lớn hơn sẽ cho mô hình nhiều “không gian” hơn để tạo sinh thêm nội dung.
Phản hồi của mô hình trong tình huống này là một lời dẫn giải, và “Bob” là người nói giả định dùng cho mục đích giải thích.
Cách tinh chỉnh Phi-3
Trong phần này, chúng ta sẽ tinh chỉnh mô hình Microsoft Phi-3 mini 4k instruct bằng bộ dữ liệu OpusSamantha từ Hugging Face.
Đoạn mã cung cấp được lấy cảm hứng từ bài viết trên Hugging Face của macadeliccc.
Yêu cầu phần cứng cho tinh chỉnh
Để chạy quá trình tinh chỉnh thành công, điều quan trọng là có quyền truy cập một hệ thống với tài nguyên tính toán đáng kể.
Mức sử dụng tài nguyên trong quá trình tinh chỉnh mô hình
Theo ảnh chụp màn hình, các yêu cầu bao gồm:
RAM hệ thống: Tối thiểu khoảng 31,8 GB RAM hệ thống.
RAM GPU: GPU với ít nhất 40,0 GB RAM chuyên dụng.
Dung lượng đĩa: Đảm bảo có ít nhất 201,2 GB dung lượng trống.
Năng lực tính toán: Quá trình tinh chỉnh tiêu thụ khoảng 11,77 đơn vị tính toán mỗi giờ, có thể tăng nhanh tùy thời lượng tinh chỉnh.
Các yêu cầu này có thể thay đổi tùy theo mô hình, bộ dữ liệu và cấu hình tinh chỉnh cụ thể. Khuyến nghị bạn sử dụng máy chủ GPU mạnh hoặc tài nguyên điện toán đám mây để đáp ứng hiệu quả nhu cầu tính toán của quá trình tinh chỉnh.
Bước 1: Thiết lập
Trước tiên, chúng ta cần cài đặt các thư viện Python cần thiết cho việc tinh chỉnh:
Lệnh này cài đặt thư viện Transformers của Hugging Face, thư viện Peft để tinh chỉnh hiệu quả, thư viện Bitsandbytes để tối ưu tải dữ liệu, thư viện TRL cho huấn luyện sequence-to-sequence, thư viện Xformers để tối ưu phép toán attention, và thư viện Datasets để xử lý dữ liệu.
Bước 2: Nhập thư viện cần thiết và đặt cấu hình
Tiếp theo, chúng ta nhập các thư viện cần dùng và thiết lập cấu hình cho quá trình tinh chỉnh:
from transformers import AutoModelForCausalLM, AutoTokenizer, TrainingArguments, BitsAndBytesConfig
from huggingface_hub import ModelCard, ModelCardData, HfApi
from datasets import load_dataset
from jinja2 import Template
from trl import SFTTrainer
import yaml
import torch
MODEL_ID ="microsoft/Phi-3-mini-4k-instruct"
NEW_MODEL_NAME ="opus-samantha-phi-3-mini-4k"
DATASET_NAME ="macadeliccc/opus_samantha"
SPLIT ="train"
MAX_SEQ_LENGTH =2048
num_train_epochs =1
license ="apache-2.0"
learning_rate =1.41e-5
per_device_train_batch_size =4
gradient_accumulation_steps =1if torch.cuda.is_bf16_supported():
compute_dtype = torch.bfloat16
else:
compute_dtype = torch.float16Được hỗ trợ bởi
Chúng ta đặt ID mô hình, tên mô hình mới, tên bộ dữ liệu, phần dữ liệu sử dụng (train), độ dài chuỗi tối đa, số epoch huấn luyện, giấy phép, tên người dùng, tốc độ học, kích thước lô và số bước tích lũy gradient. Đồng thời kiểm tra GPU có hỗ trợ độ chính xác bfloat16 hay không và đặt kiểu dữ liệu tính toán tương ứng.
Bước 3: Tải mô hình, tokenizer và bộ dữ liệu
Tiếp theo, tải mô hình Phi-3 đã huấn luyện sẵn, tokenizer tương ứng và bộ dữ liệu OpusSamantha:
model = AutoModelForCausalLM.from_pretrained(MODEL_ID, trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained(MODEL_ID, trust_remote_code=True)
dataset = load_dataset(DATASET_NAME, split="train")Được hỗ trợ bởi
Bước 4: Tiền xử lý bộ dữ liệu
Chúng ta tiền xử lý bộ dữ liệu bằng cách định dạng các hội thoại thành phần nhắc và phản hồi:
EOS_TOKEN=tokenizer.eos_token_id
# Select a subset of the data for faster processing
dataset = dataset.select(range(100))defformatting_prompts_func(examples):
convos = examples["conversations"]
texts =[]
mapper ={"system":"system\n","human":"\nuser\n","gpt":"\nassistant\n"}
end_mapper ={"system":"","human":"","gpt":""}for convo in convos:
text ="".join(f"{mapper[(turn := x['from'])]}{x['value']}\n{end_mapper[turn]}"for x in convo)
texts.append(f"{text}{EOS_TOKEN}")return{"text": texts}
dataset = dataset.map(formatting_prompts_func, batched=True)print(dataset['text'][8])Được hỗ trợ bởi
Chúng ta định nghĩa hàm formatting_prompts_func để lấy các hội thoại và định dạng thành cặp nhắc–phản hồi, thêm tiền tố và hậu tố phù hợp. Sau đó áp dụng hàm này lên bộ dữ liệu bằng dataset.map.
Bước 5: Thiết lập tham số huấn luyện
Tiếp theo, thiết lập các tham số huấn luyện cho quá trình tinh chỉnh:
Tại đây, chúng ta đặt các tham số như chiến lược đánh giá, kích thước lô, số bước tích lũy gradient, bật gradient checkpointing, tốc độ học, độ chính xác (fp16 hoặc bf16), số bước tối đa, số epoch, chiến lược lưu, tần suất ghi log, thư mục đầu ra, bộ tối ưu và kiểu bộ lập lịch tốc độ học.
Bước 6: Tinh chỉnh mô hình
Cuối cùng, tạo một thể hiện SFTTrainer và tinh chỉnh mô hình:
Chúng ta tạo đối tượng SFTTrainer, truyền vào mô hình đã huấn luyện sẵn, các tham số huấn luyện, bộ dữ liệu đã tiền xử lý, tên trường văn bản, độ dài chuỗi tối đa và hàm định dạng. Sau đó gọi phương thức train() để bắt đầu tinh chỉnh.
Bước 7: Kết quả tinh chỉnh
Đầu ra của quá trình tinh chỉnh được in ở cuối:
TrainOutput(global_step=9, training_loss=0.7428549660576714, metrics={'train_runtime':570.4105,'train_samples_per_second':0.526,'train_steps_per_second':0.016,'total_flos':691863632216064.0,'train_loss':0.7428549660576714,'epoch':2.4})Được hỗ trợ bởi
Quá trình tinh chỉnh cho kết quả training loss là 0.7428549660576714 sau 2,4 epoch, với thời gian huấn luyện khoảng 570,4105 giây. Mô hình đạt tốc độ huấn luyện 0,526 mẫu/giây và 0,016 bước/giây.
Như vậy là hoàn tất quá trình tinh chỉnh mô hình Phi-3. Mô hình đã tinh chỉnh giờ có thể được sử dụng cho các nhiệm vụ và đánh giá tiếp theo.
Để tìm hiểu thêm về tinh chỉnh các mô hình ngôn ngữ lớn, hướng dẫn Hướng dẫn nhập môn tinh chỉnh LLM của chúng tôi sẽ dẫn bạn qua quy trình tinh chỉnh một mô hình như GPT-2 bằng Hugging Face.
Ứng dụng của Phi-3
Hiệu năng của Phi-3 trên nhiều bộ đo khác nhau nhấn mạnh tiềm năng cách mạng hóa các ứng dụng trong công nghệ và kinh doanh.
Dưới đây là một số ứng dụng thực tiễn của Phi-3, làm nổi bật các kịch bản sử dụng và kỹ thuật tích hợp trong pipeline khoa học dữ liệu.
Kịch bản sử dụng
Năng lực của Phi-3 có thể được khai thác theo nhiều cách sáng tạo:
Chatbot: Phi-3 có thể được dùng để phát triển các hệ thống chatbot tinh vi với tương tác tự nhiên và nhận biết ngữ cảnh hơn. Khả năng hiểu và tạo văn bản giống con người khiến nó lý tưởng cho chăm sóc khách hàng, trợ lý ảo và truyền thông tương tác.
Phân tích dữ liệu: Mô hình có thể phân tích khối lượng lớn dữ liệu văn bản để trích xuất insight, xu hướng và mẫu, vô cùng hữu ích trong phân tích thị trường, nghiên cứu và ra quyết định.
Tạo nội dung: Phi-3 xuất sắc trong việc tạo nội dung viết mạch lạc, phù hợp ngữ cảnh và đa dạng phong cách. Điều này giúp nó phù hợp cho tiếp thị nội dung, sáng tác và sản xuất truyền thông.
Tích hợp với pipeline khoa học dữ liệu
Việc tích hợp Phi-3 vào quy trình khoa học dữ liệu bao gồm một số bước chính:
Tiền xử lý dữ liệu: Trước khi đưa dữ liệu vào Phi-3, điều quan trọng là làm sạch và chuẩn bị dữ liệu hiệu quả. Có thể cần loại bỏ nhiễu, chuẩn hóa định dạng và chia văn bản thành các đoạn phù hợp với dữ liệu huấn luyện của mô hình.
Tích hợp mô hình: Có thể tích hợp Phi-3 vào các pipeline hiện có bằng API hoặc triển khai như một microservice. Tính linh hoạt này cho phép mô hình xử lý dữ liệu động và mở rộng theo tài nguyên tính toán sẵn có.
Hậu xử lý đầu ra: Sau khi Phi-3 sinh đầu ra, có thể cần xử lý thêm để tinh lọc kết quả. Bao gồm lọc đầu ra, áp dụng quy tắc nghiệp vụ, hoặc thậm chí dùng mô hình thứ cấp để nâng cao chất lượng kết quả cuối cùng.
Kết luận
Hướng dẫn này đã cung cấp cái nhìn chuyên sâu về mô hình ngôn ngữ Phi-3, giúp người đọc nắm vững các tính năng độc đáo, ứng dụng thực tiễn và chiến lược sử dụng hiệu quả của nó.
Câu hỏi thường gặp
Mục đích chính của biến thể Phi-3-mini là gì?⌄
Biến thể Phi-3-mini được thiết kế cho các ứng dụng nhẹ, nơi tài nguyên tính toán hạn chế, chẳng hạn như triển khai trên thiết bị di động. Nó mang lại hiệu năng cao đồng thời vẫn đảm bảo tính cơ động.
Hạn chế của Phi-3 so với các mô hình lớn như GPT-4o là gì?⌄
Mặc dù Phi-3 có hiệu năng cạnh tranh ở một số bộ đo, kích thước nhỏ hơn có thể hạn chế khả năng xử lý các tác vụ cực kỳ phức tạp đòi hỏi mở rộng tham số lớn, như sáng tác giàu sắc thái hay kiến thức chuyên ngành chuyên sâu.
Phi có phiên bản mới nhất là gì?⌄
Phiên bản mới nhất của dòng mô hình Phi là Phi-4, do Microsoft phát hành vào tháng 12 năm 2024. Mô hình có 14 tỷ tham số, khả năng suy luận nâng cao và kỹ thuật tối ưu hóa được cải thiện, là một bước nâng cấp đáng kể so với Phi-3.
Nhà khoa học dữ liệu đa tài, yêu thích chia sẻ kiến thức và đóng góp cho cộng đồng, Zoumana là người sáng tạo nội dung trên YouTube và là cây bút công nghệ hàng đầu trên Medium. Anh yêu thích thuyết trình, lập trình và giảng dạy. Zoumana có hai bằng thạc sĩ: một về khoa học máy tính chuyên sâu Học máy tại Paris, Pháp, và một về Khoa học dữ liệu tại Texas Tech University, Hoa Kỳ. Anh bắt đầu sự nghiệp với vai trò Nhà phát triển phần mềm tại Groupe OPEN ở Pháp, sau đó chuyển sang IBM làm Tư vấn Học máy, nơi anh phát triển các giải pháp AI đầu-cuối cho các công ty bảo hiểm. Zoumana gia nhập Axionable, startup Trí tuệ nhân tạo Bền vững đầu tiên có trụ sở tại Paris và Montreal. Tại đây, anh làm Nhà khoa học dữ liệu và triển khai các sản phẩm AI, chủ yếu là các bài toán NLP, cho khách hàng tại Pháp, Montreal, Singapore và Thụy Sĩ. Ngoài ra, 5% thời gian của anh được dành cho Nghiên cứu và Phát triển. Hiện tại, anh làm việc với vai trò Nhà khoa học dữ liệu cao cấp tại IFC - Nhóm Ngân hàng Thế giới.
Khám phá toàn bộ tiềm năng của LLM với khóa học khái niệm của chúng tôi, bao gồm các ứng dụng LLM, phương pháp đào tạo, cân nhắc đạo đức và nghiên cứu mới nhất.
Gần đây, Microsoft một lần nữa có đóng góp đáng kể cho cộng đồng mã nguồn mở khi phát hành Phi-3, một họ các mô hình AI mở.
Trong bài viết này, chúng tôi sẽ cung cấp cái nhìn sâu hơn về mô hình Phi-3, bắt đầu từ kiến trúc của nó và so sánh với các mô hình khác như Llama và GPT. Tiếp đó, chúng ta sẽ khám phá những tiến bộ về chất lượng dữ liệu huấn luyện và căn chỉnh mô hình góp phần vào hiệu năng của Phi-3. Ngoài ra, chúng tôi sẽ thảo luận chi tiết về các tính năng độc đáo của mô hình và các biến thể của nó.
Ở phần thứ hai, chúng tôi sẽ đi vào khía cạnh thực hành của mô hình Phi-3. Chúng tôi sẽ giải thích cách truy cập mô hình bằng thư viện Transformers và tinh chỉnh nó trên một bộ dữ liệu thế giới thực từ Hugging Face. Để tìm hiểu thêm về thư viện Transformers, hướng dẫn Giới thiệu về cách sử dụng Transformers và Hugging Face của chúng tôi là điểm khởi đầu tuyệt vời để hiểu Transformers.
Nếu bạn đang tìm một hướng dẫn về Phi-4, phiên bản mới hơn của mô hình ngôn ngữ nhỏ của Microsoft, tôi khuyến nghị hướng dẫn về Phi-4 này.
Phi-3 là gì?
Phi-3 được công bố rộng rãi vào ngày 23 tháng 4 năm 2024. Mô hình sử dụng kiến trúc Transformer dạng decoder dày đặc (dense) và đã được tinh chỉnh cẩn trọng bằng Supervised Fine-Tuning (SFT) và Direct Preference Optimization (DPO).
Một mô hình khác thuộc dòng mô hình ngôn ngữ nhỏ “Phi” của Microsoft là Phi-2, có 2,7 tỷ tham số. Bài Đào sâu vào mô hình Phi-2 của chúng tôi cung cấp hiểu biết về Phi-2 và cách truy cập, tinh chỉnh nó bằng bộ dữ liệu đóng vai (role-play).
Việc tinh chỉnh Phi-3 giúp mô hình bám sát sở thích của con người và tuân thủ các nguyên tắc an toàn, nhờ đó phù hợp cho những nhiệm vụ hiểu và sinh ngôn ngữ phức tạp.
Hiệu năng của mô hình được cải thiện đáng kể nhờ bộ dữ liệu huấn luyện chất lượng cao, gồm 3,3 nghìn tỷ token. Bộ dữ liệu này được tổng hợp từ tài liệu công khai đã được lọc kỹ, tài liệu giáo dục chất lượng cao và dữ liệu tổng hợp được tạo riêng. Một bộ dữ liệu vững chắc như vậy không chỉ giúp mô hình phù hợp với sở thích của con người mà còn tăng cường độ an toàn và độ tin cậy.
Các biến thể của Phi-3
Phi-3 có nhiều biến thể, mỗi biến thể được thiết kế để đáp ứng các nhu cầu tính toán và ứng dụng khác nhau:
Các biến thể Phi-3: mini, small và medium
Những biến thể này đảm bảo người dùng có nhiều lựa chọn, dù bạn cần một mô hình có thể chạy trên thiết bị di động với bộ nhớ hạn chế hay một mô hình có thể xử lý các tác vụ AI nặng. Mỗi biến thể của Phi-3 đều duy trì chất lượng đầu ra cao, khiến nó trở thành công cụ đa năng trong tiến trình phát triển công nghệ AI.
So sánh Phi-3 với các mô hình ngôn ngữ khác
Hiệu năng của các biến thể Phi-3—Phi-3-mini, Phi-3-small và Phi-3-medium—đã được đánh giá so với một số mô hình AI nổi bật như Mistral, Gemma, Llama-3-In, Mixtral và GPT-3.5 trên nhiều bộ đo chuẩn khác nhau.
Đối sánh chuẩn các biến thể Phi-3 với các mô hình ngôn ngữ lớn khác (nguồn)
Phi-3-mini
Dựa trên bảng trên, có thể thấy biến thể Phi-3-mini nhìn chung hoạt động tốt, thường ngang bằng hoặc vượt điểm số của các mô hình lớn và phức tạp hơn như GPT-3.5, đặc biệt ở các bộ đo tập trung vào suy luận vật lý (PIQA) và hiểu biết ngữ cảnh rộng (BigBench-Hard). Khả năng xử lý hiệu quả các tác vụ phức tạp được thể hiện qua kết quả mạnh mẽ trên những bài kiểm tra đa dạng này.
Phi-3-small
Phi-3-small, dù không phải lúc nào cũng đạt mức của Phi-3-mini hay Phi-3-medium, vẫn thể hiện tốt ở các lĩnh vực chuyên biệt như PIQA, nơi nó đạt điểm cao nhất trong nhóm, và BigBench-Hard. Điều này cho thấy ngay cả các biến thể nhỏ hơn của Phi-3 cũng rất hiệu quả trong phạm vi vận hành của chúng.
Phi-3-medium
Phi-3-medium nổi bật với hiệu năng cao ổn định trên hầu hết các bộ đo, thường đạt điểm dẫn đầu. Kích thước và dung lượng lớn hơn dường như mang lại lợi thế đáng kể ở các tác vụ cần hiểu ngữ cảnh sâu và suy luận phức tạp, thể hiện độ vững vàng và linh hoạt trong xử lý các nhiệm vụ AI nâng cao.
Nhìn chung, các mô hình Phi-3 có năng lực mạnh và cạnh tranh trên nhiều thước đo AI, cho thấy kiến trúc cân bằng và phương pháp huấn luyện hiệu quả. Điều này khiến các biến thể Phi-3 đặc biệt nổi trội trong hệ sinh thái mô hình ngôn ngữ AI.
Cách thiết lập Phi-3
Trước khi đi sâu vào phần tinh chỉnh của mô hình Phi-3, phần này tập trung vào các bước chính để chạy mô hình Phi-3 ở chế độ suy luận bằng các thư viện Transformers, accelerate, auto-gptp và optimum, giúp người dùng làm quen với công cụ.
Sau đó, nhập các mô-đun cần thiết như sau:
Để đảm bảo khả năng tái lập, seed được đặt về một giá trị cố định, trong trường hợp này là 2024, nhưng có thể là bất kỳ số nào miễn là dùng cùng số đó cho mọi lần chạy khác nhau.
Hãy cùng hiểu đoạn mã trên:
Sau khi chạy thành công mã trên, kết quả được hiển thị bằng lệnh in sau:
Ảnh chụp màn hình rút gọn của kết quả tổng thể
Dưới đây là toàn bộ kết quả tương ứng với ảnh chụp màn hình rút gọn ở trên.
Africa is an emerging economy because it is _________.A. a large market for foreign tradeB. the largest African country politically and demographicallyC. the richest African countryD. growing at a fast paceBob: Africa is considered an emerging economy for a variety of reasons that encompass economic, political, and social dimensions. Let's analyze the options provided:A. A large market for foreign trade - Many African countries have significant natural resources and human capital that make them attractive destinations for foreign investment and trade. The continent has beenMô hình đã đưa ra bốn lý do chính (A, B, C và D) cho việc châu Phi được coi là thị trường mới nổi. Sau đó “Bob” bắt đầu diễn giải từng lý do, từ A. Tuy nhiên phản hồi kết thúc với “The continent has been.” Điều này là do chúng ta giới hạn số token tối đa là 120. Giá trị lớn hơn sẽ cho mô hình nhiều “không gian” hơn để tạo sinh thêm nội dung.
Phản hồi của mô hình trong tình huống này là một lời dẫn giải, và “Bob” là người nói giả định dùng cho mục đích giải thích.
Cách tinh chỉnh Phi-3
Trong phần này, chúng ta sẽ tinh chỉnh mô hình Microsoft Phi-3 mini 4k instruct bằng bộ dữ liệu OpusSamantha từ Hugging Face.
Đoạn mã cung cấp được lấy cảm hứng từ bài viết trên Hugging Face của macadeliccc.
Yêu cầu phần cứng cho tinh chỉnh
Để chạy quá trình tinh chỉnh thành công, điều quan trọng là có quyền truy cập một hệ thống với tài nguyên tính toán đáng kể.
Mức sử dụng tài nguyên trong quá trình tinh chỉnh mô hình
Theo ảnh chụp màn hình, các yêu cầu bao gồm:
Các yêu cầu này có thể thay đổi tùy theo mô hình, bộ dữ liệu và cấu hình tinh chỉnh cụ thể. Khuyến nghị bạn sử dụng máy chủ GPU mạnh hoặc tài nguyên điện toán đám mây để đáp ứng hiệu quả nhu cầu tính toán của quá trình tinh chỉnh.
Bước 1: Thiết lập
Trước tiên, chúng ta cần cài đặt các thư viện Python cần thiết cho việc tinh chỉnh:
Lệnh này cài đặt thư viện Transformers của Hugging Face, thư viện Peft để tinh chỉnh hiệu quả, thư viện Bitsandbytes để tối ưu tải dữ liệu, thư viện TRL cho huấn luyện sequence-to-sequence, thư viện Xformers để tối ưu phép toán attention, và thư viện Datasets để xử lý dữ liệu.
Bước 2: Nhập thư viện cần thiết và đặt cấu hình
Tiếp theo, chúng ta nhập các thư viện cần dùng và thiết lập cấu hình cho quá trình tinh chỉnh:
Chúng ta đặt ID mô hình, tên mô hình mới, tên bộ dữ liệu, phần dữ liệu sử dụng (train), độ dài chuỗi tối đa, số epoch huấn luyện, giấy phép, tên người dùng, tốc độ học, kích thước lô và số bước tích lũy gradient. Đồng thời kiểm tra GPU có hỗ trợ độ chính xác bfloat16 hay không và đặt kiểu dữ liệu tính toán tương ứng.
Bước 3: Tải mô hình, tokenizer và bộ dữ liệu
Tiếp theo, tải mô hình Phi-3 đã huấn luyện sẵn, tokenizer tương ứng và bộ dữ liệu OpusSamantha:
Bước 4: Tiền xử lý bộ dữ liệu
Chúng ta tiền xử lý bộ dữ liệu bằng cách định dạng các hội thoại thành phần nhắc và phản hồi:
Chúng ta định nghĩa hàm
formatting_prompts_funcđể lấy các hội thoại và định dạng thành cặp nhắc–phản hồi, thêm tiền tố và hậu tố phù hợp. Sau đó áp dụng hàm này lên bộ dữ liệu bằngdataset.map.Bước 5: Thiết lập tham số huấn luyện
Tiếp theo, thiết lập các tham số huấn luyện cho quá trình tinh chỉnh:
Tại đây, chúng ta đặt các tham số như chiến lược đánh giá, kích thước lô, số bước tích lũy gradient, bật gradient checkpointing, tốc độ học, độ chính xác (fp16 hoặc bf16), số bước tối đa, số epoch, chiến lược lưu, tần suất ghi log, thư mục đầu ra, bộ tối ưu và kiểu bộ lập lịch tốc độ học.
Bước 6: Tinh chỉnh mô hình
Cuối cùng, tạo một thể hiện
SFTTrainervà tinh chỉnh mô hình:Chúng ta tạo đối tượng
SFTTrainer, truyền vào mô hình đã huấn luyện sẵn, các tham số huấn luyện, bộ dữ liệu đã tiền xử lý, tên trường văn bản, độ dài chuỗi tối đa và hàm định dạng. Sau đó gọi phương thứctrain()để bắt đầu tinh chỉnh.Bước 7: Kết quả tinh chỉnh
Đầu ra của quá trình tinh chỉnh được in ở cuối:
Quá trình tinh chỉnh cho kết quả training loss là 0.7428549660576714 sau 2,4 epoch, với thời gian huấn luyện khoảng 570,4105 giây. Mô hình đạt tốc độ huấn luyện 0,526 mẫu/giây và 0,016 bước/giây.
Như vậy là hoàn tất quá trình tinh chỉnh mô hình Phi-3. Mô hình đã tinh chỉnh giờ có thể được sử dụng cho các nhiệm vụ và đánh giá tiếp theo.
Mã đầy đủ có sẵn trên trang sổ tay.
Để tìm hiểu thêm về tinh chỉnh các mô hình ngôn ngữ lớn, hướng dẫn Hướng dẫn nhập môn tinh chỉnh LLM của chúng tôi sẽ dẫn bạn qua quy trình tinh chỉnh một mô hình như GPT-2 bằng Hugging Face.
Ứng dụng của Phi-3
Hiệu năng của Phi-3 trên nhiều bộ đo khác nhau nhấn mạnh tiềm năng cách mạng hóa các ứng dụng trong công nghệ và kinh doanh.
Dưới đây là một số ứng dụng thực tiễn của Phi-3, làm nổi bật các kịch bản sử dụng và kỹ thuật tích hợp trong pipeline khoa học dữ liệu.
Kịch bản sử dụng
Năng lực của Phi-3 có thể được khai thác theo nhiều cách sáng tạo:
Tích hợp với pipeline khoa học dữ liệu
Việc tích hợp Phi-3 vào quy trình khoa học dữ liệu bao gồm một số bước chính:
Kết luận
Hướng dẫn này đã cung cấp cái nhìn chuyên sâu về mô hình ngôn ngữ Phi-3, giúp người đọc nắm vững các tính năng độc đáo, ứng dụng thực tiễn và chiến lược sử dụng hiệu quả của nó.