Cách sử dụng Transformers ôm mặt trong Python

Cach Su Dung Transformers Om Mat Trong Python



Hugging Face được công nhận là một cộng đồng Trí tuệ nhân tạo mã nguồn mở và nó cung cấp tất cả các khuôn khổ, công cụ, mô hình và kiến ​​trúc quan trọng giúp giao tiếp hoặc đào tạo với các mô hình ngôn ngữ (xử lý ngôn ngữ tự nhiên). Máy biến áp Hugging Face là một kiến ​​trúc ngôn ngữ giúp cung cấp các mô hình xử lý ngôn ngữ được đào tạo trước trong Python. Các biến thể này từ Hugging Face cung cấp nhiều loại tập dữ liệu và API phân lớp giúp lập trình viên dễ dàng tạo tương tác với các mô hình được đào tạo trước bằng các gói thư viện của họ.

cú pháp

Máy biến áp Hugging Face hiện đại có rất nhiều mẫu được đào tạo trước. Các mô hình này có thể được áp dụng cho các mô hình ngôn ngữ khác nhau được liệt kê sau đây:

  • Các bộ biến đổi này có thể xử lý văn bản bằng các ngôn ngữ khác nhau và có thể thực hiện các tác vụ khác nhau trên văn bản như phân loại văn bản, đặt câu hỏi và trả lời, dịch văn bản sang các ngôn ngữ khác nhau và tạo văn bản.
  • Chúng tôi cũng có thể sử dụng các máy biến áp này trong Ôm mặt cho các nhiệm vụ phân loại dựa trên tầm nhìn, chẳng hạn như phát hiện đối tượng và các nhiệm vụ dựa trên lời nói, ví dụ: phân loại người nói hoặc nhận dạng/nhận dạng giọng nói.

Các biến áp từ Hugging Face bao gồm TensorFlow, PyTorch, ONNX, v.v. Để biết cú pháp cài đặt gói cho các biến áp này, chúng tôi sử dụng lệnh sau:







$ pip cài đặt máy biến áp

Bây giờ, chúng tôi thử thử các ví dụ khác nhau trong đó chúng tôi sử dụng các mô hình từ máy biến áp Hugging Face cho các tác vụ xử lý ngôn ngữ khác nhau.



Ví dụ 1: Tạo văn bản bằng Transformers Hugging Face

Ví dụ này trình bày phương pháp sử dụng biến áp để tạo văn bản. Đối với việc tạo văn bản, chúng tôi sử dụng và nhập mô hình tạo văn bản được đào tạo trước từ máy biến áp. Máy biến áp có một thư viện cơ bản được gọi là “đường ống”. Các đường ống này hoạt động cho máy biến áp bằng cách thực hiện tất cả quá trình xử lý cần thiết trước và sau đối với dữ liệu được yêu cầu cung cấp cho các mô hình được đào tạo trước làm đầu vào.



Chúng tôi bắt đầu mã hóa ví dụ bằng cách cài đặt gói thư viện “máy biến áp” đầu tiên trong thiết bị đầu cuối Python. Để tải xuống gói của máy biến áp, hãy sử dụng 'cài đặt pip với tên của gói, tức là máy biến áp'. Khi chúng tôi đã tải xuống và cài đặt gói máy biến áp, chúng tôi sẽ tiếp tục bằng cách nhập gói “đường ống” từ máy biến áp. Đường ống được sử dụng để xử lý dữ liệu trước khi được đưa vào mô hình.





Chúng tôi nhập 'pprint' từ pprint. Gói này được cài đặt để in đầu ra từ mô hình tạo văn bản ở dạng dễ đọc hơn, có cấu trúc và được định dạng tốt hơn. Mặt khác, nếu chúng ta sử dụng chức năng “print()”, nó sẽ hiển thị đầu ra trong một dòng không được định dạng tốt và dễ đọc. Các mô hình tạo văn bản giúp tạo hoặc thêm nhiều văn bản hơn vào văn bản mà ban đầu chúng tôi đã cung cấp cho mô hình làm đầu vào.

Để gọi mô hình được đào tạo từ máy biến áp, chúng tôi sử dụng hàm đường ống () có hai tham số làm đầu vào của nó. Cái đầu tiên chỉ định tên của tác vụ đã chọn và cái thứ hai là tên của kiểu máy từ một máy biến áp. Trong trường hợp này, tác vụ được chọn là tạo văn bản. Mô hình được đào tạo trước mà chúng tôi sử dụng từ máy biến áp là “gpt”.



Sau khi sử dụng chức năng đường dẫn, chúng tôi quyết định đầu vào mà chúng tôi muốn cung cấp cho mô hình của mình để tạo văn bản bổ sung cho mô hình đó. Sau đó, chúng tôi chuyển đầu vào này cho hàm “task_pipeline()”. Hàm này tạo đầu ra cho mô hình bằng cách lấy đầu vào, độ dài tối đa của đầu ra và số câu mà đầu ra phải có làm tham số đầu vào.

Chúng tôi cung cấp đầu vào là 'Đây là một mô hình ngôn ngữ'. Chúng tôi cố định độ dài tối đa của đầu ra là “30” và số lượng câu trong đầu ra là “3”. Bây giờ, chúng ta chỉ cần gọi hàm pprint() để hiển thị kết quả được tạo từ mô hình của chúng ta.

!pip cài đặt máy biến áp

từ đường ống nhập khẩu máy biến áp
từ pprint nhập pprint

SELECTED_TASK = 'tạo văn bản'
MÔ HÌNH = 'gpt2'
nhiệm vụ = đường ống (f'{SELECTED_TASK}', mô hình = MODEL)

INPUT = 'Đây là một mô hình ngôn ngữ'
OUT_put = task(INPUT, max_length = 30, num_return_sequences=3)

pprint(OUT_put)

Từ đoạn mã và đầu ra của mã được đề cập trước đó, chúng ta có thể thấy rằng mô hình tạo ra thông tin/văn bản bổ sung có liên quan đến đầu vào mà chúng ta đã cung cấp cho nó.

Ví dụ 2: Phân loại văn bản bằng cách sử dụng đường ống từ Transformers

Ví dụ trước đề cập đến phương pháp tạo văn bản bổ sung có liên quan đến đầu vào bằng cách sử dụng máy biến áp và đường ống gói của chúng. Ví dụ này cho chúng ta thấy cách thực hiện phân loại văn bản với các đường dẫn. Phân loại văn bản là quá trình xác định đầu vào đang được cung cấp cho mô hình với tư cách là thành viên của một lớp cụ thể, ví dụ: tích cực hoặc tiêu cực.

Trước tiên, chúng tôi nhập các đường ống từ các máy biến áp. Sau đó, chúng ta gọi hàm “pipeline()”. Chúng tôi chuyển tên của mô hình, trong trường hợp của chúng tôi, là 'phân loại văn bản' cho các tham số của nó. Sau khi mô hình được chỉ định bằng cách sử dụng đường ống, bây giờ chúng ta có thể đặt tên cho nó là 'phân loại'. Cho đến thời điểm này, mô hình mặc định cho phân loại văn bản được tải xuống máy chủ của chúng tôi. Bây giờ, chúng ta có thể sử dụng mô hình này cho nhiệm vụ của mình.

Vì vậy, hãy nhập Pandas dưới dạng “pd”. Chúng tôi muốn nhập gói này vì chúng tôi muốn in đầu ra từ mô hình ở dạng DataFrame. Bây giờ, chúng tôi chỉ định văn bản mà chúng tôi muốn cung cấp cho mô hình của mình làm đầu vào để phân loại nó thành câu khẳng định hoặc phủ định. Chúng tôi đặt văn bản là 'Tôi là một chàng trai tốt'. Chúng tôi chuyển văn bản này tới mô hình classifier() mà chúng tôi vừa tạo trong ví dụ này và lưu kết quả vào một biến “đầu ra”.

Để hiển thị đầu ra, chúng tôi gọi tiền tố của Pandas, tức là pd là “.Dataframe()” và chuyển đầu ra từ mô hình bộ phân loại sang hàm này. Bây giờ nó hiển thị các kết quả từ mô hình phân loại như được hiển thị trong đoạn mã đầu ra sau. Mô hình phân loại của chúng tôi phân loại văn bản là lớp tích cực.

!pip cài đặt máy biến áp
từ đường ống nhập khẩu máy biến áp
nhập gấu trúc dưới dạng pd
classifier = đường ống ('phân loại văn bản', model = 'textattack/ditilbert-base-uncased-CoLA')
văn bản = 'tôi là một chàng trai tốt'
kết quả = phân loại (văn bản)
pprint(kết quả)
df = pd.DataFrame(kết quả)

Phần kết luận

Hướng dẫn này đề cập đến kiến ​​trúc máy biến áp từ Hugging Face. Chúng tôi đã thảo luận về thư viện “đường ống” từ máy biến áp Hugging Face. Sau đó, với sự trợ giúp của thư viện này, chúng tôi đã sử dụng các mô hình máy biến áp được đào tạo trước cho các nhiệm vụ tạo và phân loại văn bản.