1 điểm bởi GN⁺ 2024-07-02 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
  • Trong 724 bài kiểm thử thực hiện trích xuất dữ liệu có cấu trúc từ thông cáo báo chí ISAF, nhiều mô hình fine-tuning đạt độ chính xác cao hơn dòng GPT-4
  • So sánh bao gồm các mô hình fine-tuning dựa trên GPT-4o, GPT-4 Turbo, GPT-3.5 Turbo cùng TinyLlama, Mistral, Llama3, Solar và GPT-3.5
  • Các mô hình OpenAI luôn tạo ra JSON hợp lệ và các bản fine-tuning của Mistral·Llama3 cũng ổn định, nhưng TinyLlama cho thấy khác biệt lớn về giá trị thiếu và chất lượng JSON tùy theo template
  • Trong tổng hợp cuối cùng, Mistral-7B được fine-tuning bằng OpenPipe đứng đầu, theo sau rất sát là Solar LLM và Llama3-7B
  • Fine-tuning có thể cải thiện quyền riêng tư, khả năng kiểm soát và chi phí, nhưng đồng thời cũng làm tăng độ phức tạp MLOps trong việc quản lý suy luận, đánh giá và tái lập của các mô hình phân tán ở nhiều môi trường

Mục tiêu thí nghiệm và bộ dữ liệu

  • Mục tiêu là đánh giá độ chính xác của LLM fine-tuning trong tác vụ trích xuất thông tin sự kiện từ thông cáo báo chí ISAF
  • Dữ liệu nằm trong kho công khai trên Hugging Face Hub, và việc đánh giá được thực hiện trên test split mà mô hình chưa từng thấy
    • Dữ liệu kiểm thử gồm 724 hàng
    • Các trường bao gồm name, eventrefnumber, text, StartDate, eventtype, province, targetgroup, minkilled, mincaptured, killq, captureq, killcaptureraid, airstrike, noshotsfired, minleaderskilled, minleaderscaptured và các trường khác
  • Mỗi hàng được chuyển thành đối tượng Pydantic để dễ xác thực và xử lý
  • Đầu ra của mô hình được kỳ vọng theo cấu trúc JSON sau
    • name
    • start_date
    • event_type
    • province
    • target_group
    • min_killed
    • min_captured
    • killq
    • captureq
    • killcaptureraid
    • airstrike
    • noshotsfired
    • min_leaders_killed
    • min_leaders_captured

Cách đánh giá các mô hình chuẩn của OpenAI

  • GPT-4o, GPT-4 TurboGPT-3.5 Turbo được dùng làm mốc so sánh chuẩn
  • Các mô hình GPT không thể dùng nguyên prompt giống các mô hình fine-tuning, nên cần prompt dài hơn
    • Liệt kê rõ các trường cần trích xuất
    • Cung cấp các giá trị hợp lệ cho loại sự kiện, tỉnh và nhóm mục tiêu
    • Bao gồm quy tắc chú giải số
    • Kèm ví dụ thông cáo báo chí và đầu ra JSON kỳ vọng
  • Các quy tắc chú giải số dùng các tiêu chí sau
    • a couple được hiểu là 2
    • several được hiểu là tối thiểu 3
    • a few, some, a group, a small group, multiple được hiểu là tối thiểu 3
    • numerous, a handful được hiểu là tối thiểu 4
    • a large number được hiểu là tối thiểu 5
    • facilitator không phải là leader
  • Dự đoán hàng loạt được chạy bất đồng bộ, và do rate limit của GPT-3.5 Turbo nên đã thêm logic thử lại
  • Kết quả dự đoán được lưu theo tên mô hình trong trường predictions của từng sự kiện

Cấu hình các mô hình fine-tuning

  • Sau phần dự đoán của các mô hình chuẩn OpenAI, các dự đoán từ mô hình cục bộ đã fine-tuning trước đó và các mô hình dựa trên dịch vụ fine-tuning one-click cũng được thêm vào cùng bộ dữ liệu
  • Các mô hình fine-tuning được đưa vào gồm
    • tinyllama-templatefree
    • tinyllama-sharegpt
    • mistral-lora-templatefree
    • finetuned-openai-gpt-3.5-turbo-1106
    • finetuned-mistral-7b-optimised-openpipe
    • ft-solar-1-mini-chat-240612-predibase
    • finetuned-llama3-7b-32k-openpipe
  • Mô hình Mistral fine-tuning cục bộ khó chạy tại máy, nên được suy luận trên môi trường A100 của Modal
    • Sau đó trong đánh giá nó thất bại ở gần như mọi hạng mục
    • Trên biểu đồ nó được hiển thị là mistral-lora-templatefree
  • Mô hình gpt-3.5-turbo-1106 được fine-tuning bằng dịch vụ one-click fine-tuning của OpenAI
  • OpenPipe được dùng để tạo dự đoán cho các mô hình Mistral 7B, Mistral 8x7B và Llama3
  • Trên Predibase, tác giả đánh giá một mô hình dựa trên Solar LLM của Upstage
    • Solar LLM được giới thiệu là mô hình được huấn luyện mạnh cho các tác vụ thường xuyên dùng fine-tuning như trích xuất dữ liệu có cấu trúc
    • Mô hình nền được suy đoán là upstage/SOLAR-10.7B-v1.0 trên Hugging Face Hub
  • Suy luận Qwen2 trên Predibase không hoạt động nên bị loại khỏi lần đánh giá này
  • Bộ dữ liệu dự đoán cuối cùng được công bố dưới dạng dataset công khai trên Hugging Face Hub

Tính hợp lệ của JSON và giá trị thiếu

  • Đánh giá đầu tiên được thực hiện bằng cách kiểm tra xem đầu ra của từng mô hình có phải JSON hợp lệ hay không
  • Các mô hình OpenAI luôn sinh JSON hợp lệ
  • Các mô hình Mistral và Llama3 fine-tuning cũng tạo JSON hợp lệ một cách ổn định
  • TinyLlama cho kết quả khác biệt lớn tùy template được chọn
    • tinyllama-sharegpt có 38 giá trị thiếu
    • Nếu không có giá trị thiếu, nhiều khả năng nó cũng sẽ đạt đủ 724 dự đoán và JSON hợp lệ
  • Tổng số giá trị thiếu như sau
    • gpt-4o: 0
    • gpt-4-turbo: 0
    • gpt-3.5-turbo: 0
    • tinyllama-templatefree: 0
    • tinyllama-sharegpt: 38
    • finetuned-openai-gpt-3.5-turbo-1106: 0
    • finetuned-llama3-7b-32k-openpipe: 0
    • mistral-lora-templatefree: 0
    • finetuned-mistral-7b-optimised-openpipe: 0
    • ft-solar-1-mini-chat-240612-predibase: 0

Độ chính xác theo từng trường

  • Việc đánh giá độ chính xác được thực hiện trên tổng cộng 13 thuộc tính
    • start_date
    • province
    • target_group
    • event_type
    • min_killed
    • min_captured
    • killq
    • captureq
    • killcaptureraid
    • airstrike
    • noshotsfired
    • min_leaders_killed
    • min_leaders_captured
  • Tổng số tác vụ trong mọi biểu đồ là 724
  • start_date

    • Ở độ chính xác start_date, Solar và mô hình GPT-3.5 fine-tuning cho hiệu năng tốt nhất
    • Điểm số như sau
      • gpt-4o: 527
      • gpt-4-turbo: 522
      • gpt-3.5-turbo: 492
      • tinyllama-templatefree: 231
      • tinyllama-sharegpt: 479
      • finetuned-openai-gpt-3.5-turbo-1106: 646
      • finetuned-llama3-7b-32k-openpipe: 585
      • mistral-lora-templatefree: 0
      • finetuned-mistral-7b-optimised-openpipe: 636
      • ft-solar-1-mini-chat-240612-predibase: 649
    • Ngay cả mô hình tốt nhất cũng sai 75 ngày, nên trích xuất ngày tháng vẫn còn nhiều chỗ để cải thiện
  • province

    • Trong dự đoán tỉnh (province), các mô hình fine-tuning vượt lên trên các mô hình OpenAI
    • Điểm số như sau
      • gpt-4o: 649
      • gpt-4-turbo: 645
      • gpt-3.5-turbo: 595
      • tinyllama-templatefree: 335
      • tinyllama-sharegpt: 660
      • finetuned-openai-gpt-3.5-turbo-1106: 704
      • finetuned-llama3-7b-32k-openpipe: 707
      • mistral-lora-templatefree: 0
      • finetuned-mistral-7b-optimised-openpipe: 711
      • ft-solar-1-mini-chat-240612-predibase: 704
  • target_groupevent_type

    • target_group có thể chứa nhiều nhóm, nên điểm được tính theo tỷ lệ nhóm đúng mà mô hình nhận ra trong số các nhóm đáp án
    • Các mô hình fine-tuning cho hiệu năng tốt hơn đáng kể so với mô hình OpenAI trong nhận diện nhóm mục tiêu
    • Tuy nhiên, hiệu năng có thể giảm nếu xuất hiện nhóm mới không có trong dữ liệu huấn luyện
    • event_type có các danh mục chồng lấn về mặt ngữ nghĩa, nên ngay cả người gán nhãn cũng coi đây là hạng mục khó
    • Ngay cả ở hạng mục khó này, các mô hình fine-tuning vẫn cho hiệu năng tốt
  • Trường số và boolean

    • Trong các ước lượng số như min_killed, khoảng cách giữa mô hình fine-tuning và mô hình OpenAI thu hẹp lại
    • Mistral cao điểm nhất nhưng chênh lệch không lớn, và các mô hình OpenAI cũng thể hiện tốt ở hạng mục này
    • Có thể các quy tắc chú giải số trong prompt dài đã giúp ích
    • Với các thuộc tính boolean như killq, đa số mô hình đều đạt độ chính xác cao
    • Mistral fine-tuning cũng vượt qua điểm cao nhất của GPT-4o ở hạng mục này
    • killcaptureraid là hạng mục bất lợi cho các mô hình OpenAI
      • kill-capture raid là thuật ngữ chuyên biệt được dùng theo một cách gán nhãn cụ thể
      • Các mô hình OpenAI không biết tiêu chí dùng để ra quyết định gán nhãn đó
    • noshotsfired là trường phát sinh từ việc thông cáo báo chí ở một giai đoạn nhất định nhấn mạnh rằng “không có nổ súng”
    • Các mô hình OpenAI cho hiệu năng theo thứ tự ngược với kỳ vọng, và cần điều tra thêm để hiểu nguyên nhân
    • min_leaders_killedmin_leaders_captured nhìn chung đạt điểm cao
    • Trái với nhận thức phổ biến rằng LLM yếu về số, trong tác vụ này chúng cho hiệu năng cao, dù các mô hình fine-tuning vẫn đạt kết quả tốt nhất

Kết quả tổng hợp cuối cùng

  • Sau khi cộng 13 điểm độ chính xác riêng lẻ rồi lấy trung bình, tác giả tính ra độ chính xác tổng hợp cuối cùng trên thang 0–100
  • Ở kết quả cuối cùng, các mô hình fine-tuning đã vượt qua dòng mô hình OpenAI GPT
  • TinyLlama cũng cho độ chính xác tổng hợp cao hơn GPT-3.5 Turbo
  • Mô hình có hiệu năng tốt nhất là Mistral-7B được fine-tuning trên OpenPipe
  • Solar LLM và Llama3-7B bám theo Mistral-7B với khoảng cách cực nhỏ
  • Với fine-tuning cho trích xuất dữ liệu có cấu trúc, có vẻ hợp lý khi bắt đầu với Mistral-7B, Solar 7B và Llama3-7B rồi so sánh xem mô hình nào phù hợp nhất
  • Nếu chỉ xét độ chính xác thì ba mô hình này có thể gần như tương đương
  • Về serving mô hình, hiệu quả và độ trễ có thể tồn tại các trade-off riêng

Lợi ích và chi phí của fine-tuning

  • Các mô hình OpenAI cũng có thể cải thiện hiệu năng nếu thêm nhiều ví dụ và quy tắc hơn vào prompt
  • Nhưng prompt càng dài thì chi phí mỗi request càng tăng
  • Mô hình fine-tuning tự sở hữu mang lại các lợi ích sau
    • Quyền riêng tư dữ liệu vì không cần gửi thông tin mật cho OpenAI
    • Cải thiện hiệu năng tiềm năng nhờ mô hình nhỏ hơn
    • Nhiều quyền kiểm soát hơn
    • Khả năng tối ưu chi phí
  • Hiện vẫn khó khẳng định dứt khoát về so sánh chi phí
    • Các nhà cung cấp cloud lớn có thể tận dụng lợi thế kinh tế theo quy mô
    • Trong các trường hợp sử dụng thực tế phải suy luận lặp đi lặp lại về lâu dài, lập luận chi phí cho mô hình tự sở hữu có thể thuyết phục hơn
    • Muốn cải thiện lệnh gọi OpenAI thì cần thêm nhiều ví dụ và giải thích, làm chi phí mỗi truy vấn tăng lên

Vận hành đánh giá và độ phức tạp MLOps

  • Fine-tuning đã cho hiệu năng tốt hơn GPT-4 chỉ với tương đối ít tinh chỉnh
    • Các mô hình được dùng là những mô hình fine-tuning đầu tiên tạo ra từ dữ liệu đã thu thập
    • Phần lớn sử dụng thiết lập mặc định
  • Kế hoạch tiếp theo là tập trung vào các mô hình Solar, Llama3 và Mistral 7B
  • Việc đánh giá được triển khai chủ yếu bằng Jupyter notebook, và quá trình vận hành khá phiền phức
    • Một số mô hình chạy cục bộ
    • Một số mô hình được triển khai trên các dịch vụ và môi trường khác nhau
    • Cách lặp qua 724 hàng khá chậm
  • Ở vòng lặp tiếp theo, cần làm cho việc đánh giá có thể chạy cục bộ và đánh giá trên một phần lát cắt của dữ liệu trước khi mở rộng ra toàn bộ dữ liệu
  • Khi xử lý nhiều mô hình trong cùng một dự án, cần có giao diện suy luận chuẩn hóa
  • Khi mô hình nằm rải rác ở nhiều nơi, fine-tuning và cập nhật lặp đi lặp lại, còn dữ liệu thì liên tục thay đổi, sẽ cần một hệ thống để quản lý tất cả
  • Trade-off chính của LLM fine-tuning là phải quản lý rất nhiều thành phần để có vận hành ổn định và có thể lặp lại

Giá trị của đánh giá và các bước tiếp theo

  • Dù việc triển khai đánh giá khá phiền phức, nó vẫn cung cấp một thước đo chuyên biệt theo tác vụ để xác nhận xem dữ liệu huấn luyện hay cải tiến mô hình có thực sự tạo ra tiến bộ hay không
  • Nếu không có đánh giá, rất khó xác định liệu có cải thiện hay không
  • Ý tưởng xây riêng nhiều mô hình siêu chuyên biệt không phải là bước tiếp theo rõ ràng ngay lúc này
    • Ví dụ: một mô hình riêng chỉ giỏi ước lượng số người bị bắt
    • Chỉ nhìn vào hiệu năng hiện tại thì chưa rõ cách tiếp cận này có thể tăng mạnh độ chính xác hay không
  • Bước tiếp theo có ưu tiên cao là chạy các đánh giá ngoài độ chính xác
    • Ví dụ là đánh giá trên dữ liệu out-of-domain đã được nhắc tới trong bài trước
    • Tác giả muốn kiểm tra hành vi trên dữ liệu giả thuộc chủ đề hoàn toàn khác
  • Một bước tiếp theo khác là xem xét sâu hơn LLM serving của 3 mô hình đứng đầu
    • LLM serving có các công cụ, trade-off và kỹ thuật khác với serving mô hình không phải LLM
  • Nếu đào sâu hơn vào vấn đề, một cách tiếp cận hữu ích là đưa các trường hợp sai lên giao diện web như Lilac hoặc Argilla để phân tích mẫu thất bại
  • Hiểu các kịch bản thất bại có thể giúp cải thiện độ chính xác nhiều hơn là chỉ tinh chỉnh tham số fine-tuning

Chưa có bình luận nào.

Chưa có bình luận nào.