paint-brush
Cách làm cho bất kỳ LLM nào chính xác hơn chỉ bằng một vài dòng mãtừ tác giả@FrederikBussler
7,015 lượt đọc
7,015 lượt đọc

Cách làm cho bất kỳ LLM nào chính xác hơn chỉ bằng một vài dòng mã

từ tác giả Frederik Bussler5m2023/08/14
Read on Terminal Reader

dài quá đọc không nổi

Cuộc cách mạng AI đã thay đổi với sự xuất hiện của các Mô hình ngôn ngữ lớn (LLM) như ChatGPT, cho thấy sự chiến thắng trước độ phức tạp của dữ liệu. Những LLM này phải đối mặt với những thách thức do bộ dữ liệu khổng lồ (lên đến hàng petabyte) và bản chất phức tạp của ngôn ngữ con người. Các công cụ tập trung vào dữ liệu như Cleanlab đã cách mạng hóa việc xử lý dữ liệu AI, tự động hóa các quy trình cải thiện dữ liệu và dân chủ hóa các tiến bộ. AI tập trung vào dữ liệu là điều cần thiết do lỗi chú thích (7-50%) trong bộ dữ liệu trong thế giới thực, cản trở việc đào tạo. OpenAI và các công cụ như Cleanlab ưu tiên chất lượng dữ liệu, cho phép cải thiện đáng kể độ chính xác của mô hình. Bản trình diễn Python cho thấy cách Cleanlab phát hiện các vấn đề về nhãn, lọc dữ liệu và đào tạo lại các mô hình, giúp tăng độ chính xác đáng kể từ 63% lên hơn 66%. Cách tiếp cận lấy dữ liệu làm trung tâm này hứa hẹn cho các LLM trong tương lai như GPT-5.
featured image - Cách làm cho bất kỳ LLM nào chính xác hơn chỉ bằng một vài dòng mã
Frederik Bussler HackerNoon profile picture
0-item
1-item
2-item

Cuộc cách mạng AI đã được hình thành trong nhiều thập kỷ. Đó là một lĩnh vực tràn ngập sự phấn khích, nhưng thường xuyên bị nhấn mạnh bởi sự thất vọng và “ mùa đông AI ”. Nhưng gần đây, một cái gì đó đã thay đổi. Các Mô hình Ngôn ngữ Lớn (LLM) như ChatGPT, Claude và Bard đã đưa AI từ sự tò mò trong phòng thí nghiệm trở thành xu hướng phổ biến .


Sự thay đổi này không chỉ là chiến thắng của AI mà còn là chiến thắng trước sự phức tạp của dữ liệu lớn và lộn xộn. Như câu nói “rác vào, rác ra”. Các công cụ mới đang nổi lên tập trung vào việc cải thiện dữ liệu cơ bản, do đó cải thiện LLM.


Thách thức kép của LLM

Thuật ngữ "Mô hình ngôn ngữ lớn" chứa đựng bên trong nó hai thách thức lớn. Đầu tiên, khối lượng dữ liệu tuyệt đối. Chúng ta đang nói về dữ liệu lên tới petabyte (một triệu gigabyte) cho GPT-4, bao gồm hàng triệu cuốn sách, blog, bài đăng trên mạng xã hội, bản ghi video, v.v. Quy mô khổng lồ này mang lại tiềm năng to lớn nhưng cũng đặt ra những cân nhắc quan trọng về hậu cần.


Thứ hai, sự phức tạp của ngôn ngữ tự nhiên. Dữ liệu ngôn ngữ phụ thuộc vào ngữ cảnh, mơ hồ và đa dạng là một con quái vật hoang dã mà ngay cả những thuật toán tốt nhất cũng phải vật lộn để chế ngự. Không thể gắn nhãn chính xác cho tất cả dữ liệu này, điều này chắc chắn có nghĩa là ngay cả các LLM hiện đại nhất cũng được đào tạo trên hàng tấn dữ liệu được gắn nhãn không chính xác.


Khi đối mặt với những thách thức này, các công cụ và phương pháp luận tập trung vào dữ liệu mới đã xuất hiện, tạo ra bước nhảy vọt thực sự về khả năng của AI. Các giải pháp như Cleanlab và các giải pháp khác bắt đầu cung cấp các cách thu thập dữ liệu đa dạng, tự động hóa kiểm soát chất lượng và xử lý ngôn ngữ thành một dạng phù hợp với các mô hình AI.


Những công cụ này không chỉ cung cấp những cải tiến gia tăng; về cơ bản họ đã định hình lại cách tiếp cận xử lý dữ liệu AI. Họ đã chuyển đổi nhiệm vụ xử lý dữ liệu ngôn ngữ quy mô lớn từ quy trình thủ công, dễ xảy ra lỗi thành quy trình tự động, chính xác, dân chủ hóa lĩnh vực này và cho phép tiến bộ với tốc độ chưa từng có.


Tại sao lại cần AI lấy dữ liệu làm trung tâm (Với bản trình diễn Python)

Trong AI, bộ dữ liệu trong thế giới thực chứa các lỗi chú thích nằm trong khoảng từ 7-50% . Những khiếm khuyết này cản trở đáng kể việc đào tạo và đánh giá. AI tập trung vào dữ liệu nhấn mạnh vào việc cải thiện chất lượng của chính bộ dữ liệu.


Ví dụ, chiến lược của OpenAI minh họa cho sự nhấn mạnh này: “Chúng tôi ưu tiên lọc ra tất cả dữ liệu xấu hơn là để lại tất cả dữ liệu tốt. Điều này là do chúng ta luôn có thể tinh chỉnh mô hình của mình với nhiều dữ liệu hơn sau này để dạy cho mô hình những điều mới, nhưng sẽ khó hơn nhiều để khiến mô hình quên đi điều gì đó mà nó đã học được.”


Tuy nhiên, cách tiếp cận lọc dữ liệu thủ công tốn nhiều thời gian và chi phí. Gói Cleanlab là một khung nguồn mở phổ biến để thực hành AI tập trung vào dữ liệu ngày nay. Nó cho phép bạn chạy các thuật toán chất lượng dữ liệu trên đầu ra của mô hình ML được đào tạo để phát hiện các vấn đề về tập dữ liệu phổ biến như lỗi nhãn, giá trị ngoại lệ, độ lệch, v.v.


Chỉ với một vài dòng mã, bạn có thể tự động tìm và xác định các sự cố trong nhiều loại dữ liệu khác nhau, chẳng hạn như hình ảnh, văn bản, dạng bảng và âm thanh. Bằng cách sử dụng gói Cleanlab, bạn có thể quyết định cách cải thiện tập dữ liệu và mô hình của mình, đào tạo lại mô hình ML và thấy hiệu suất của mô hình được cải thiện mà không có bất kỳ thay đổi nào đối với mã hiện tại của bạn.


Mặt khác, Cleanlab Studio không chỉ là một phần mở rộng của gói Cleanlab; đó là một nền tảng không có mã được thiết kế để tìm và khắc phục sự cố trong bộ dữ liệu trong thế giới thực. Nó không chỉ dừng lại ở việc phát hiện các vấn đề mà còn tiến xa hơn trong việc xử lý việc quản lý và chỉnh sửa dữ liệu, thậm chí còn tự động hóa hầu hết các phần khó trong việc biến dữ liệu thô thành ML hoặc Analytics đáng tin cậy.


Hãy sử dụng gói Cleanlab để chứng minh sức mạnh của AI tập trung vào dữ liệu.


1. Chuẩn bị dữ liệu và tinh chỉnh

Chúng tôi bắt đầu với Bộ dữ liệu về phép lịch sự của Stanford . Đảm bảo bạn đã tải các bộ kiểm tra và đào tạo. Trong bản trình diễn này, chúng tôi sẽ tinh chỉnh Davinci LLM để phân loại 3 lớp, trước tiên không có Cleanlab, sau đó xem cách chúng tôi có thể cải thiện độ chính xác bằng cách lấy dữ liệu làm trung tâm. Chúng ta có thể chạy một lệnh bash đơn giản để đào tạo một mô hình.


!openai api fine_tunes.create -t "train_prepared.jsonl" -v "test_prepared.jsonl" --compute_classification_metrics --classification_n_classes 3 -m davinci --suffix "baseline"


Khi hoàn tất, chúng tôi có thể truy vấn điểm cuối fine_tunes.results để xem độ chính xác của bài kiểm tra.


!openai api fine_tunes.results -i ft-9800F2gcVNzyMdTLKcMqAtJ5 > baseline.csv

`df = pd.read_csv('baseline.csv')

baseline_acc = df.iloc[-1]['phân loại/độ chính xác']`


Chúng tôi nhận được kết quả có độ chính xác 63%. Hãy xem liệu chúng ta có thể cải thiện điều này không.


2. Có được xác suất lớp dự đoán

Bây giờ, hãy sử dụng API của OpenAI để tính toán các lượt nhúng và điều chỉnh mô hình hồi quy logistic để thu được các xác suất lớp dự đoán nằm ngoài mẫu.


# Get embeddings from OpenAI. from openai.embeddings_utils import get_embedding

embedding_model = "text-similarity-davinci-001" train["embedding"] = train.prompt.apply(lambda x: get_embedding(x, engine=embedding_model)) embeddings = train["embedding"].values

# Get out-of-sample predicted class probabilities via cross-validation.

from sklearn.linear_model import LogisticRegression

model = LogisticRegression() labels = train["completion"].values pred_probs = cross_val_predict(estimator=model, X=embeddings, y=labels, cv=10, method="predict_proba")


Chỉ với một dòng mã, Cleanlab ước tính ví dụ nào có vấn đề về nhãn trong tập dữ liệu đào tạo của chúng tôi.


from cleanlab.filter import find_label_issues

Bây giờ chúng ta có thể lấy chỉ số của các ví dụ ước tính có vấn đề về nhãn:


issue_idx = find_label_issues(labels, pred_probs, return_indices_ranked_by='self_confidence') # sort indices by likelihood of label error


3. Lọc các vấn đề về nhãn và đào tạo lại

Bây giờ, chúng tôi đã tự động trích xuất các chỉ số của các ví dụ có khả năng bị gắn nhãn sai, vì vậy chúng tôi có thể xóa chúng và huấn luyện một bộ phân loại mới.


# Remove the label errors

train_cl = train.drop(issue_idx).reset_index(drop=True) format_data(train_cl, "train_cl.jsonl")


Bây giờ, hãy đào tạo một bộ phân loại mạnh mẽ hơn với dữ liệu tốt hơn.


!openai api fine_tunes.create -t "train_cl_prepared.jsonl" -v "test_prepared.jsonl" --compute_classification_metrics --classification_n_classes 3 -m davinci --suffix "dropped"


# Evaluate model on test data

!openai api fine_tunes.results -i ft-InhTRQGu11gIDlVJUt0LYbEx > cleanlab.csv df = pd.read_csv('cleanlab.csv') dropped_acc = df.iloc[-1]['classification/accuracy']


Chúng tôi đạt được độ chính xác trên 66%, cải thiện mô hình tinh chỉnh tiên tiến nhất (GPT-3, vì bạn không thể tinh chỉnh GPT-4), chỉ bằng cách tự động cải thiện tập dữ liệu mà không có bất kỳ thay đổi nào đến mô hình.


Với Cleanlab Studio, bạn cũng có thể tự động sửa các nhãn không chính xác thay vì chỉ xóa chúng hoàn toàn, cải thiện độ chính xác hơn nữa. Hướng dẫn của Cleanlab cho thấy điều này có độ chính xác lên tới 77%.


mang đi

Bằng cách sử dụng các công cụ tập trung vào dữ liệu như Cleanlab, bạn có thể tìm và khắc phục các sự cố về dữ liệu và nhãn một cách hiệu quả, giúp cải thiện đáng kể hiệu suất của các LLM như Davinci. Cách tiếp cận này không làm thay đổi kiến trúc mô hình hoặc siêu tham số và chỉ tập trung vào việc nâng cao chất lượng của dữ liệu huấn luyện.


Cách tiếp cận được nêu trong hướng dẫn này có thể là chìa khóa để mở ra độ chính xác và mạnh mẽ hơn nữa trong các mô hình AI, ngay cả với các LLM tiên tiến trong tương lai như GPT-5.