Chuyển đến nội dung chính
Python

Giới thiệu về cách sử dụng Transformers và Hugging Face

Tìm hiểu về Transformers và tận dụng sức mạnh của chúng để giải quyết các vấn đề đời thực.
Zoumana Keita 's photo
Zoumana Keita
Đã cập nhật · 15 phút đọc

Khám phá cùng AI

ChatGPTClaudePerplexity

Tạo tài khoản miễn phí của bạn

Luyện tập và Lộ trình tiến trình của bạn.

Tiếp Tục Với Google
Bằng cách tiếp tục, bạn chấp nhận Điều khoản sử dụng, Chính sách bảo mật và việc dữ liệu của bạn được lưu trữ tại Hoa Kỳ.

Giới thiệu

Những đóng góp to lớn của các nhà nghiên cứu trong lĩnh vực NLP (Xử lý ngôn ngữ tự nhiên) trong nhiều thập kỷ qua đã tạo ra các kết quả đột phá ở nhiều lĩnh vực khác nhau. Dưới đây là một vài ví dụ về NLP trong thực tiễn:

  • Trợ lý cá nhân Siri của Apple, có thể hỗ trợ người dùng trong các hoạt động hằng ngày như đặt báo thức, nhắn tin, trả lời câu hỏi, v.v.
  • Các nhà nghiên cứu trong lĩnh vực y khoa sử dụng NLP để mở đường cho việc phát hiện thuốc nhanh hơn.  
  • Dịch ngôn ngữ là một ứng dụng tuyệt vời khác vì nó giúp chúng ta vượt qua rào cản giao tiếp.  

Bài blog mang tính khái niệm này nhằm đề cập đến Transformers, một trong những mô hình mạnh mẽ nhất từng được tạo ra trong NLP. Sau khi giải thích lợi ích của chúng so với mạng nơ-ron hồi quy, chúng tôi sẽ xây dựng nền tảng hiểu biết của bạn về Transformers. Tiếp đó, chúng tôi sẽ hướng dẫn bạn qua một số kịch bản thực tế sử dụng transformers của Hugging Face.

Bạn cũng có thể học thêm về Xây dựng ứng dụng NLP với Hugging Face qua phần code-along của chúng tôi.

Mạng hồi quy — kỷ nguyên rực rỡ trước khi Transformers xuất hiện 

Trước khi đi sâu vào khái niệm cốt lõi của transformers, hãy điểm qua mạng hồi quy là gì và những hạn chế của chúng.

Các mạng hồi quy sử dụng kiến trúc mã hóa - giải mã, và chủ yếu được dùng khi xử lý các tác vụ mà cả đầu vào và đầu ra đều là chuỗi theo một trật tự xác định. Một số ứng dụng tiêu biểu của mạng hồi quy là dịch máy và mô hình hóa dữ liệu chuỗi thời gian.

Thách thức với các mạng hồi quy 

Hãy xem xét việc dịch câu tiếng Pháp sau sang tiếng Anh. Đầu vào truyền đến bộ mã hóa là câu tiếng Pháp gốc, và đầu ra bản dịch được tạo bởi bộ giải mã.

Encoder

Minh họa đơn giản về mạng hồi quy cho tác vụ dịch ngôn ngữ

  • Câu tiếng Pháp đầu vào được đưa vào bộ mã hóa từng từ một, và các embedding của từ được tạo qua bộ giải mã theo cùng thứ tự đó, khiến việc huấn luyện chậm.
  • Trạng thái ẩn của từ hiện tại phụ thuộc vào trạng thái ẩn của các từ trước đó, điều này khiến không thể thực hiện tính toán song song dù có dùng năng lực tính toán mạnh đến đâu. 
  • Các mạng nơ-ron chuỗi-đến-chuỗi dễ bị hiện tượng gradient bùng nổ khi mạng quá dài, dẫn đến hiệu năng kém. 
  • Mạng Bộ nhớ Ngắn-Dài hạn (LSTM), một biến thể của mạng hồi quy, được giới thiệu để giảm thiểu hiện tượng mất mát gradient, nhưng chúng còn chậm hơn các mô hình chuỗi. 

Sẽ thật tuyệt nếu có một mô hình kết hợp được các ưu điểm của mạng hồi quy và cho phép tính toán song song, phải không? 

Đó là lúc transformers phát huy tác dụng.

Transformers trong NLP là gì?

Transformers là kiến trúc mạng nơ-ron mới, đơn giản nhưng mạnh mẽ, được Google Brain giới thiệu năm 2017 với bài báo nổi tiếng “Attention is all you need.” Kiến trúc này dựa trên cơ chế attention thay vì tính toán tuần tự như ở các mạng hồi quy. 

Các thành phần chính của transformers là gì?

Tương tự mạng hồi quy, transformers cũng có hai khối chính: mã hóa và giải mã, mỗi khối đều có cơ chế tự-chú ý (self-attention). Phiên bản đầu tiên của transformers có kiến trúc mã hóa - giải mã dựa trên RNN và LSTM, sau đó được thay bằng self-attention và mạng truyền thẳng (feed-forward).

Phần tiếp theo cung cấp cái nhìn tổng quan về các thành phần chính của từng khối trong transformers. 

components of transformers

Kiến trúc tổng quát của transformers (chuyển thể bởi Tác giả)

Giai đoạn tiền xử lý câu đầu vào

Giai đoạn này gồm hai bước chính: (1) tạo embedding cho câu đầu vào, và (2) tính toán véc-tơ vị trí của mỗi từ trong câu. Mọi tính toán được thực hiện giống nhau cho cả câu nguồn (trước khối mã hóa) và câu đích (trước khối giải mã). 

Embedding của dữ liệu đầu vào

Trước khi tạo embedding cho dữ liệu đầu vào, chúng ta bắt đầu bằng việc tokenization, sau đó tạo embedding cho từng từ riêng lẻ mà chưa xét đến quan hệ của chúng trong câu. 

Mã hóa vị trí (Positional encoding)

Nhiệm vụ tokenization loại bỏ mọi khái niệm về quan hệ vốn có trong câu đầu vào. Positional encoding tìm cách tái tạo tính tuần hoàn ban đầu bằng cách tạo một véc-tơ ngữ cảnh cho mỗi từ. 

Khối mã hóa 

Cuối bước trước, chúng ta có hai véc-tơ cho mỗi từ: (1) embedding và (2) véc-tơ ngữ cảnh. Hai véc-tơ này được cộng lại để tạo thành một véc-tơ duy nhất cho mỗi từ, sau đó được truyền vào bộ mã hóa. 

Multi-head attention

Như đã đề cập, chúng ta đã mất đi mọi khái niệm về quan hệ. Mục tiêu của lớp attention là nắm bắt các mối quan hệ ngữ cảnh giữa các từ khác nhau trong câu đầu vào. Bước này tạo ra một véc-tơ attention cho mỗi từ.

Mạng truyền thẳng theo vị trí (Position-wise feed-forward net - FFN)

Tại bước này, một mạng nơ-ron truyền thẳng được áp dụng lên mỗi véc-tơ attention để biến đổi chúng sang định dạng mà lớp multi-head attention tiếp theo trong bộ giải mã kỳ vọng.

Khối giải mã

Khối giải mã gồm ba lớp chính: masked multi-head attention, multi-head attention, và mạng truyền thẳng theo vị trí. Chúng ta đã hiểu hai lớp sau, vốn giống như trong bộ mã hóa. 

Bộ giải mã tham gia trong quá trình huấn luyện mạng, và nhận hai đầu vào chính: (1) các véc-tơ attention của câu đầu vào cần dịch và (2) các câu đích đã dịch sang tiếng Anh. 

Vậy lớp masked multi-head attention chịu trách nhiệm gì?

Trong quá trình tạo ra từ tiếng Anh tiếp theo, mạng được phép sử dụng tất cả các từ từ câu tiếng Pháp. Tuy nhiên, khi xử lý một từ nhất định trong chuỗi đích (bản dịch tiếng Anh), mạng chỉ được truy cập các từ trước đó, vì nếu cho phép truy cập các từ phía sau sẽ khiến mạng “gian lận” và không nỗ lực học đúng cách. Đây là lúc lớp masked multi-head attention phát huy tác dụng. Nó che (mask) các từ phía sau bằng cách biến chúng thành số 0 để mạng attention không thể sử dụng. 

Kết quả của lớp masked multi-head attention đi qua các lớp còn lại nhằm dự đoán từ tiếp theo bằng cách sinh ra điểm xác suất. 

Kiến trúc này thành công vì các lý do sau:

  • Độ phức tạp tính toán tổng thể ở mỗi lớp thấp hơn so với RNN. 
  • Loại bỏ hoàn toàn tính tuần hoàn và cho phép song song hóa chuỗi, không như RNN vốn yêu cầu đầu vào theo trình tự. 
  • RNN không hiệu quả khi học từ các chuỗi dài do độ dài đường truyền của tín hiệu xuôi và ngược trong mạng. Đường truyền này được rút ngắn nhờ self-attention, giúp cải thiện quá trình học.

Học chuyển giao trong NLP

Huấn luyện các mạng nơ-ron sâu như transformers từ đầu không hề dễ, và có thể gặp các thách thức sau: 

  • Tìm đủ lượng dữ liệu cần thiết cho bài toán mục tiêu có thể tốn thời gian
  • Có được tài nguyên tính toán cần thiết như GPU để huấn luyện các mạng sâu như vậy có thể rất tốn kém.  

Sử dụng học chuyển giao có thể mang lại nhiều lợi ích, như rút ngắn thời gian huấn luyện, tăng tốc quá trình huấn luyện các mô hình mới và giảm thời gian bàn giao dự án.

Hãy tưởng tượng bạn xây dựng một mô hình từ đầu để dịch tiếng Mandingo sang tiếng Wolof, đều là các ngôn ngữ ít tài nguyên. Việc thu thập dữ liệu liên quan đến các ngôn ngữ này rất tốn kém. Thay vì vượt qua tất cả những thách thức đó, bạn có thể tái sử dụng các mạng nơ-ron sâu đã được huấn luyện sẵn làm điểm khởi đầu để huấn luyện mô hình mới. 

Những mô hình đó đã được huấn luyện trên một tập dữ liệu khổng lồ, do bên khác cung cấp (cá nhân, tổ chức, v.v.), và đã được đánh giá là hoạt động rất tốt trên các tác vụ dịch ngôn ngữ như từ tiếng Pháp sang tiếng Anh. 

Nếu bạn mới làm quen với NLP, khóa học Giới thiệu Xử lý ngôn ngữ tự nhiên với Python này có thể cung cấp cho bạn các kỹ năng nền tảng để giải quyết các vấn đề thực tế.

Nhưng “tái sử dụng mạng nơ-ron sâu” nghĩa là gì?

Việc tái sử dụng mô hình bao gồm chọn mô hình đã huấn luyện sẵn tương tự với bài toán của bạn, tinh chỉnh dữ liệu cặp đầu vào - đầu ra cho tác vụ mục tiêu, và huấn luyện lại phần đầu (head) của mô hình đã huấn luyện sẵn bằng dữ liệu của bạn. 

Sự ra đời của Transformers đã dẫn đến việc phát triển các mô hình học chuyển giao tối tân như: 

  • BERT, viết tắt của Bidirectional Encoder Representations from Transformers, được phát triển bởi các nhà nghiên cứu Google năm 2018. Nó giúp giải quyết các tác vụ ngôn ngữ phổ biến như nhận dạng thực thể có tên, phân tích cảm xúc, hỏi-đáp, tóm tắt văn bản, v.v. Đọc thêm về BERT trong hướng dẫn NLP này.
  • GPT3 (Generative Pre-Training-3), do các nhà nghiên cứu OpenAI đề xuất. Đây là một transformer nhiều lớp, chủ yếu dùng để sinh mọi loại văn bản. Các mô hình GPT có khả năng tạo phản hồi văn bản giống con người cho một câu hỏi cho trước. Bài viết tuyệt vời này có thể cung cấp cho bạn thông tin sâu hơn về điều khiến GPT3 khác biệt, công nghệ phía sau, rủi ro và hạn chế của nó.

Giới thiệu về Hugging Face Transformers

Hugging Face là một cộng đồng AI và nền tảng Machine Learning được tạo ra năm 2016 bởi Julien Chaumond, Clément Delangue và Thomas Wolf. Mục tiêu là dân chủ hóa NLP bằng cách cung cấp cho Nhà khoa học dữ liệu, người thực hành AI và Kỹ sư quyền truy cập tức thì vào hơn 20.000 mô hình đã huấn luyện sẵn dựa trên kiến trúc transformer tối tân. Các mô hình này có thể áp dụng cho:

  • Văn bản trong hơn 100 ngôn ngữ để thực hiện các tác vụ như phân loại, trích xuất thông tin, hỏi-đáp, sinh văn bản, và dịch. 
  • Giọng nói, cho các tác vụ như phân loại âm thanh đối tượng và nhận dạng giọng nói. 
  • Thị giác cho phát hiện đối tượng, phân loại ảnh, phân đoạn.
  • Dữ liệu bảng cho các bài toán hồi quy và phân loại. 
  • Tăng cường học với transformers. 

Hugging Face Transformers cũng cung cấp gần 2000 tập dữ liệu và các API theo lớp, cho phép lập trình viên dễ dàng tương tác với các mô hình này bằng gần 31 thư viện. Phần lớn là các thư viện học sâu như Pytorch, Tensorflow, Jax, ONNX, Fastai, Stable-Baseline 3, v.v. 

Những khóa học này là phần mở đầu tuyệt vời để sử dụng Pytorch và Tensorflow cho việc xây dựng các mạng nơ-ron tích chập sâu tương ứng. Thành phần khác của Hugging Face Transformers là các Pipelines. 

Pipelines trong Transformers là gì?

  • Chúng cung cấp một API dễ dùng thông qua phương thức pipeline() để suy luận (inference) trên nhiều tác vụ khác nhau.
  • Chúng được dùng để bao quát toàn bộ quy trình của mỗi tác vụ NLP, như làm sạch văn bản, tokenization, embedding, v.v.

Phương thức pipeline() có cấu trúc như sau: 

from transformers import pipeline

# To use a default model & tokenizer for a given task(e.g. question-answering)
pipeline("<task-name>")

# To use an existing model
pipeline("<task-name>", model="<model_name>")

# To use a custom model/tokenizer
pipeline('<task-name>', model='<model name>',tokenizer='<tokenizer_name>')

Hướng dẫn Hugging Face: ĐANG CẬP NHẬT …

Giờ đây, khi bạn đã hiểu rõ hơn về Transformers và nền tảng Hugging Face, chúng tôi sẽ hướng dẫn bạn qua các kịch bản đời thực sau: dịch ngôn ngữ, phân loại chuỗi bằng zero-shot classification, phân tích cảm xúc và hỏi-đáp. 

Thông tin về các tập dữ liệu

Tập dữ liệu này có sẵn trên Datasets của Datacamp, được Facebook làm giàu và được tạo ra để dự đoán mức độ phổ biến của một bài viết trước khi xuất bản. Phân tích sẽ dựa trên cột mô tả. Để minh họa ví dụ, chúng tôi chỉ sử dụng ba ví dụ từ dữ liệu. 

Dưới đây là mô tả ngắn gọn về dữ liệu. Nó có 14 cột và 1428 hàng.

import pandas as pd
# Load the data from the path
data_path = "datacamp_workspace_export_2022-08-08 07_56_40.csv"
news_data = pd.read_csv(data_path, error_bad_lines=False)




# Show data information
news_data.info()

info dataset

Dịch ngôn ngữ

MariamMT là một khung Dịch máy hiệu quả. Nó sử dụng engine MarianNMT ở tầng dưới, được phát triển hoàn toàn bằng C++ bởi Microsoft và nhiều tổ chức học thuật như Đại học Edinburgh và Đại học Adam Mickiewicz ở Poznań. Cùng một engine hiện đang đứng sau dịch vụ Microsoft Translator. 

Nhóm NLP từ Đại học Helsinki đã mở mã nguồn nhiều mô hình dịch trên Hugging Face Transformers và tất cả đều theo định dạng Helsinki-NLP/opus-mt-{src}-{tgt}, trong đó {src} và {tgt} lần lượt là ngôn ngữ nguồn và đích. 

Vì vậy, trong trường hợp của chúng ta, ngôn ngữ nguồn là tiếng Anh (en) và ngôn ngữ đích là tiếng Pháp (fr)

MarianMT là một trong những mô hình đó, trước đây đã được huấn luyện bằng Marian trên dữ liệu song ngữ thu thập tại Opus.

  • MarianMT yêu cầu thêm sentencepiece bên cạnh Transformers:
pip install transformers sentencepiece
from transformers import MarianTokenizer, MarianMTModel



  • Chọn mô hình đã huấn luyện sẵn, lấy tokenizer và tải mô hình đã huấn luyện
# Get the name of the model
model_name = 'Helsinki-NLP/opus-mt-en-fr'

# Get the tokenizer
tokenizer = MarianTokenizer.from_pretrained(model_name)
# Instantiate the model
model = MarianMTModel.from_pretrained(model_name)
  • Thêm token đặc biệt >>{tgt}<< vào trước mỗi văn bản nguồn (tiếng Anh) với hàm sau.
def format_batch_texts(language_code, batch_texts):
    formated_bach = [">>{}<< {}".format(language_code, text) for text in     

                batch_texts]
return formated_bach
  • Hiện thực logic dịch theo lô với hàm sau, trong đó một lô là danh sách các văn bản cần dịch.
def perform_translation(batch_texts, model, tokenizer, language="fr"):

  # Prepare the text data into appropriate format for the model
  formated_batch_texts = format_batch_texts(language, batch_texts)
 
  # Generate translation using model
  translated = model.generate(**tokenizer(formated_batch_texts,

                                          return_tensors="pt", padding=True))

  # Convert the generated tokens indices back into text
  translated_texts = [tokenizer.decode(t, skip_special_tokens=True) for t in translated]
 
  return translated_texts
  • Chạy dịch trên các mẫu mô tả trước đó
# Check the model translation from the original language (English) to French
translated_texts = perform_translation(english_texts, trans_model, trans_model_tkn)

# Create wrapper to properly format the text
from textwrap import TextWrapper
# Wrap text to 80 characters.
wrapper = TextWrapper(width=80)

for text in translated_texts:
  print("Original text: \n", text)
  print("Translation : \n", text)
  print(print(wrapper.fill(text)))
  print("")

French translation

Zero-shot classification

Phần lớn thời gian, việc huấn luyện một mô hình Machine Learning yêu cầu tất cả nhãn/đích ứng viên phải được biết trước. Nghĩa là nếu nhãn huấn luyện của bạn là science, politics hoặc education, bạn sẽ không thể dự đoán nhãn healthcare trừ khi huấn luyện lại mô hình, tính đến nhãn đó và dữ liệu đầu vào tương ứng. 

Cách tiếp cận mạnh mẽ này cho phép dự đoán đích của một văn bản ở khoảng 15 ngôn ngữ mà không cần từng thấy bất kỳ nhãn ứng viên nào. Chúng ta có thể dùng mô hình này bằng cách tải trực tiếp từ hub. 

Mục tiêu ở đây là thử phân loại danh mục của từng mô tả trước đó, liệu đó là tech, politics, security, hay finance. 

  • Nhập mô-đun pipeline
from transformers import pipeline
  • Định nghĩa các nhãn ứng viên. Đây là những gì chúng ta muốn dự đoán: tech, politics, business hoặc finance
candidate_labels = ["tech", "politics", "business", "finance"]
  • Định nghĩa bộ phân loại với tùy chọn đa ngôn ngữ
my_classifier = pipeline("zero-shot-classification",  

                           model='joeddav/xlm-roberta-large-xnli')
  • Chạy dự đoán trên mô tả đầu tiên và cuối cùng 
#For the first description
prediction = my_classifier(english_texts[0], candidate_labels, multi_class = True)
pd.DataFrame(prediction).drop(["sequence"], axis=1)

Text predicted finance

Văn bản được dự đoán chủ yếu liên quan đến tài chính 

Kết quả trên cho thấy văn bản nhìn chung thuộc tài chính ở mức 81%. 

Với mô tả cuối cùng, chúng ta thu được kết quả sau:

#For the last description
prediction = my_classifier(english_texts[-1], candidate_labels, multi_class = True)
pd.DataFrame(prediction).drop(["sequence"], axis=1)

Text predicted tech

Văn bản được dự đoán chủ yếu liên quan đến công nghệ 

Kết quả trên cho thấy văn bản nhìn chung thuộc công nghệ ở mức 95%.

Phân tích cảm xúc

Hầu hết các mô hình thực hiện phân loại cảm xúc đều cần huấn luyện phù hợp. Mô-đun pipeline của Hugging Face giúp việc chạy dự đoán phân tích cảm xúc trở nên đơn giản bằng cách sử dụng một mô hình cụ thể có sẵn trên hub thông qua việc chỉ định tên của nó. 

  • Chọn tác vụ cần thực hiện và tải mô hình tương ứng. Ở đây, chúng ta muốn thực hiện phân loại cảm xúc, sử dụng mô hình BERT đã chưng cất (distilled) bản base. 
model_checkpoint = "distilbert-base-uncased-finetuned-sst-2-english"

distil_bert_model = pipeline(task="sentiment-analysis", model=model_checkpoint)
  • Mô hình đã sẵn sàng! Hãy phân tích cảm xúc đằng sau hai câu cuối cùng. 
# Run the predictions
distil_bert_model(english_texts[1:])

model predicted text

Mô hình dự đoán văn bản đầu tiên có cảm xúc tiêu cực với độ tin cậy 96%, và văn bản thứ hai có cảm xúc tích cực với độ tin cậy 52%. 

Nếu bạn muốn khám phá sâu hơn về bài toán phân tích cảm xúc, khóa học Phân tích cảm xúc với Python này sẽ giúp bạn có được kỹ năng để xây dựng bộ phân loại cảm xúc của riêng mình bằng Python và hiểu các kiến thức cơ bản về NLP.

Hỏi - Đáp (Question Answering)

Hãy tưởng tượng bạn phải xử lý một báo cáo dài hơn nhiều so với báo cáo về Apple. Và tất cả những gì bạn quan tâm là ngày diễn ra sự kiện được đề cập. Thay vì đọc toàn bộ báo cáo để tìm thông tin then chốt, chúng ta có thể dùng một mô hình hỏi-đáp từ Hugging Face để cung cấp câu trả lời mà chúng ta cần. 

Điều này có thể thực hiện bằng cách cung cấp cho mô hình ngữ cảnh phù hợp (báo cáo về Apple) và câu hỏi mà chúng ta muốn có câu trả lời.

  • Nhập lớp hỏi-đáp và tokenizer từ transformers
from transformers import AutoModelForQuestionAnswering, AutoTokenizer
  • Khởi tạo mô hình bằng tên của nó và tokenizer tương ứng. 
model_checkpoint = "deepset/roberta-base-squad2"

task = 'question-answering'
QA_model = pipeline(task, model=model_checkpoint, tokenizer=model_checkpoint)
  • Yêu cầu mô hình bằng cách đặt câu hỏi và chỉ định ngữ cảnh. 
QA_input = {
          'question': 'when is Apple hosting an event?',
          'context': english_texts[-1]
          }
  • Lấy kết quả từ mô hình
model_response = QA_model(QA_input)
pd.DataFrame([model_response])

Apple event date

Mô hình trả lời rằng sự kiện của Apple diễn ra vào ngày 10 tháng 9 với độ tin cậy cao là 97%. 

Kết luận

Trong bài viết này, chúng tôi đã đề cập sự phát triển của công nghệ ngôn ngữ tự nhiên từ các mạng hồi quy đến transformers và cách Hugging Face đã dân chủ hóa việc sử dụng NLP thông qua nền tảng của họ. 

Nếu bạn vẫn còn đắn đo về việc sử dụng transformers, chúng tôi tin rằng đã đến lúc bạn nên thử và gia tăng giá trị cho các bài toán kinh doanh của mình.

Câu hỏi thường gặp về Transformers và Hugging Face

Hugging Face transformer là gì?

Hugging Face transformers là một nền tảng cung cấp cho cộng đồng các API để truy cập và sử dụng các mô hình đã huấn luyện sẵn tối tân có sẵn từ hub của Hugging Face. 

Transformer đã huấn luyện sẵn là gì?

Một transformer đã huấn luyện sẵn là mô hình transformer đã được ai đó (cá nhân hay doanh nghiệp) huấn luyện và xác thực, và chúng ta có thể dùng làm điểm khởi đầu cho một tác vụ tương tự.

Hugging Face có miễn phí không?

Hugging Face cung cấp cả phiên bản cộng đồng và phiên bản dành cho tổ chức. Phiên bản cộng đồng bao gồm gói miễn phí có giới hạn và gói pro với chi phí 9 đô la mỗi tháng. Với tổ chức, có các giải pháp Lab và doanh nghiệp, không miễn phí.

Hugging Face sử dụng framework nào?

Hugging Face cung cấp API cho gần 31 thư viện. Phần lớn là thư viện học sâu như Pytorch, Tensorflow, Jax, ONNX, fastai, Stable-Baseline 3, v.v.

Hugging Face sử dụng ngôn ngữ lập trình nào?

Một số mô hình đã huấn luyện sẵn được huấn luyện bằng các tác vụ khử nhiễu đa ngôn ngữ trong Javascript, Python, Rust và Bash/Shell. Khóa học Xử lý ngôn ngữ tự nhiên với Python này có thể giúp bạn có kỹ năng phù hợp để thực hiện thành công các tác vụ làm sạch văn bản phổ biến

Chủ đề
Python

Khóa học Python

Khóa học

Phân tích Chuỗi Cung Ứng với Python

4 giờ
22.4K
Tận dụng sức mạnh của Python và PuLP để tối ưu hóa chuỗi cung ứng.
Xem chi tiếtBắt Đầu Khóa Học

Tạo tài khoản miễn phí của bạn

Luyện tập và Lộ trình tiến trình của bạn.

Tiếp Tục Với Google
Bằng cách tiếp tục, bạn chấp nhận Điều khoản sử dụng, Chính sách bảo mật và việc dữ liệu của bạn được lưu trữ tại Hoa Kỳ.
Xem thêm
Liên quan

blog

Claude Opus 4.6: Tính năng, Điểm chuẩn, Bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu ở mã hóa tác tử và lập luận phức tạp. Thêm vào đó, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem thêm