Loss spike up khi SFT Vistral-7B-Chat

#4
by anhnh2002 - opened

Nhóm cho em hỏi tại sao em SFT bằng qlora loss curve nó lại dị như này nhỉ? Model sau khi sft chỉ gen ra mỗi eos_token
image.png

Vietnamese Mistral org

Hi @anhnh2002 , thanks for your question.
Bạn cho mình hỏi là khi format data bạn có dùng đúng template chat của tokenizer mặc định không?

Dạ format prompt e dùng như này ạ:

Bạn là một trợ lí Tiếng Việt nhiệt tình và trung thực. Hãy luôn trả lời một cách hữu ích nhất có thể, đồng thời giữ an toàn.
<</SYS>>  

Dưới đây là câu hỏi trước đó theo thứ tự thời gian mà nhà đầu tư chứng khoản hỏi chatbot ensa hỗ trợ đầu tư tài chính.
Câu hỏi thứ 1 của người dùng: "có nên mua lúc này"
Câu hỏi thứ 2 của người dùng: "Bất động sản khu công nghiệp"
Câu hỏi thứ 3 của người dùng: "cổ phiếu được khuyến nghị mua hôm nay"
Người dùng hỏi câu tiếp theo là: "tin tức quan trọng"
Hãy viết lại câu hỏi này sao cho đầy đủ thông tin chủ ngữ vị ngữ để chatbot có thể trả lời. Chú ý rằng bạn có thể cần sử dụng đến câu hỏi trước đó hoặc không.

Chỉ viết lại và không giải thích gì thêm. Trả lời: [/INST] 
Tin tức quan trọng hôm nay là gì? </s> ```
Vietnamese Mistral org
edited Jan 23

@anhnh2002 Bạn thử dùng hàm tokenizer.apply_chat_template để format data của mình rồi thử lại xem sao nhé. Nếu loss vẫn bị như vậy thì bạn nhắn mình.

Dạ vâng em cảm ơn ạ

image.png
Có vẻ như loss vẫn bị spike up anh ạ

Em chào các anh chị Viet Mistral, em là Hiêu, sinh viên đại học đang nghiên cứu và làm bài tập lớn về LLM.
Anh chi có thể cho em tải và học hỏi từ model của mình không ạ?
Em rất cảm ơn anh chị

Hi bạn, mình không phải là nhóm tác giả nhưng mà mô hình open mà, bạn cứ download về dùng thôi

Vietnamese Mistral org

Hi @anhnh2002 , vì mình không biết code và config của bạn thế nào nên mình không biết cho bạn lời khuyên cụ thể. Tuy nhiên, nguyên nhân chính khiến loss bị tăng đột ngột khi finetuning thường là do mixed precision training, khi mà định dạng bạn chọn không biểu diễn được độ lớn của số (ví dụ như fp16 chỉ có 5 bits for the exponent), nên khi gặp 1 bad data point, thì loss sẽ thành nan.
Trước mắt bạn thử kiểm tra lại code và training config (set gradient clipping, small learning rate, learning rate scheduler,...) xem sao nhé.

Cảm ơn a @chiennv , em điều chỉnh lr bé thì nó ok rồi ạ

anhnh2002 changed discussion status to closed

Sign up or log in to comment