# Đố vui cuối chương

<CourseFloatingBanner
    chapter={4}
    classNames="absolute z-10 right-0 top-0"
/>

Hãy kiểm tra những gì bạn đã học được trong chương này!

### 1. Các mô hình tải lên trên Hub có giới hạn gì?

<Question
  choices={[
    {
      text: "Mô hình từ thư viện 🤗 Transformers.",
      explain:
        "Mặc dù các mô hình từ thư viện 🤗 Transformers được hỗ trợ trên Hugging Face Hub, nhưng chúng không phải là những mô hình duy nhất!",
    },
    {
      text: "Tất cả các mô hình có giao diện tương tự như 🤗 Transformers.",
      explain:
        "Không có yêu cầu giao diện nào được đặt ra khi tải các mô hình lên Hugging Face Hub.",
    },
    {
      text: "Không có giới hạn.",
      explain: "Đúng! Không có giới hạn khi tải mô hình lên Hub.",
      correct: true,
    },
    {
      text: "Các mô hình theo một cách nào đó có liên quan đến NLP.",
      explain: "Không có yêu cầu nào được đặt ra đối với lĩnh vực ứng dụng!",
    },
  ]}
/>

### 2. Bạn có thể quản lý các mô hình trên Hub bằng cách nào?

<Question
  choices={[
    {
      text: "Thông qua một tài khoản GCP.",
      explain: "Sai!",
    },
    {
      text: "Thông qua phân phối ngang hàng.",
      explain: "Sai!",
    },
    {
      text: "Thông qua git và git-lfs.",
      explain:
        "Đúng! Các mô hình trên Hub là kho lưu trữ Git đơn giản, tận dụng <code>git-lfs</code> cho các tệp lớn.",
      correct: true,
    },
  ]}
/>

### 3. Bạn có thể làm những gì khi sử dụng giao diện web Hugging Face Hub?

<Question
  choices={[
    {
      text: "Fork một kho lưu trữ hiện có.",
      explain: "Không thể trên Hugging Face Hub.",
    },
    {
      text: "Tạo kho lưu trữ mô hình mới.",
      explain: "Đúng! Nhưng đó không phải là tất cả những gì bạn có thể làm.",
      correct: true,
    },
    {
      text: "Quản lý và chỉnh sửa tệp.",
      explain: "Đúng! Nhưng đó không phải là câu trả lời đúng duy nhất.",
      correct: true,
    },
    {
      text: "Tải lên tệp.",
      explain: "Đúng! Nhưng đó không phải là tất cả.",
      correct: true,
    },
    {
      text: "Xem sự khác biệt giữa các phiên bản.",
      explain: "Đúng! Nhưng đó không phải là tất cả những gì bạn có thể làm",
      correct: true,
    },
  ]}
/>

### 4. Thẻ mô hình là gì?

<Question
  choices={[
    {
      text: "Mô tả sơ bộ về mô hình, do đó ít quan trọng hơn mô hình và tệp tokenizer.",
      explain:
        "Nó thực sự là một mô tả về mô hình, nhưng đó là một phần quan trọng: nếu nó không đầy đủ hoặc bị thiếu mất, tiện ích của mô hình sẽ giảm đáng kể.",
    },
    {
      text: "Một cách để đảm bảo khả năng tái tạo, khả năng tái sử dụng và tính công bằng.",
      explain:
        "Đúng! Chia sẻ thông tin phù hợp trong thẻ mô hình sẽ giúp người dùng tận dụng mô hình của bạn và nhận thức được các giới hạn và sai lệch ​​của nó.",
      correct: true,
    },
    {
      text: "Một tệp Python có thể được chạy để truy xuất thông tin về mô hình.",
      explain: "Thẻ mô hình là các tệp Markdown đơn giản thôi.",
    },
  ]}
/>

### 5. Đối tượng nào sau đây của thư viện 🤗 Transformers có thể được chia sẻ trực tiếp trên Hub với `push_to_hub()`?

{#if fw === 'pt'}

<Question
	choices={[
		{
			text: "Một tokenizer",
			explain: "Đúng! Tất cả các trình tokenize đều có phương thức <code>push_to_hub</code> giúp đẩy tất cả các tệp tokenizer (từ vựng, kiến ​​trúc của tokenizer, v.v.) đến một repo nhất định. Tuy nhiên, đó không phải là câu trả lời đúng duy nhất!",
            correct: true
		},
		{
			text: "Một tệp cấu hình mô hình",
			explain: "Đúng vậy! Tất cả các tệp cấu hình mô hình đều có phương thức <code>push_to_hub</code> giúp đẩy chúng đến một repo. Bạn có thể chia sẻ điều gì khác nữa không?",
            correct: true
		},
		{
			text: "Một mô hình",
			explain: "Chính xác! Tất cả các mô hình đều có phương thức <code>push_to_hub</code> giúp đẩy mô hình và các tệp cấu hình đến một repo nhất định.Tuy nhiên, đó không phải là câu trả lời đúng duy nhất!",
            correct: true
		},
        {
			text: "Một Trainer",
			explain: "Đúng vậy— <code>Trainer</code> cũng triển khai phương thức <code>push_to_hub</code> giúp tải mô hình, cấu hình, tokenizer và thẻ mô hình của chúng đến một repo nhất định. Thử thêm đáp án khác nữa xem!",
            correct: true
		}
	]}
/>
{:else}
<Question
	choices={[
		{
			text: "Một tokenizer",
			explain: "Đúng! Tất cả các trình tokenize đều có phương thức <code>push_to_hub</code> giúp đẩy tất cả các tệp tokenizer (từ vựng, kiến ​​trúc của tokenizer, v.v.) đến một repo nhất định. Tuy nhiên, đó không phải là câu trả lời đúng duy nhất!",
            correct: true
		},
		{
			text: "Một tệp cấu hình mô hình",
			explain: "Đúng vậy! Tất cả các tệp cấu hình mô hình đều có phương thức <code>push_to_hub</code> giúp đẩy chúng đến một repo. Bạn có thể chia sẻ điều gì khác nữa không?",
            correct: true
		},
		{
			text: "Một mô hình",
			explain: "Chính xác! Tất cả các mô hình đều có phương thức <code>push_to_hub</code> giúp đẩy mô hình và các tệp cấu hình đến một repo nhất định.Tuy nhiên, đó không phải là câu trả lời đúng duy nhất!",
            correct: true
		},
		{
			text: "Tất cả những điều trên với một callback đặc thù",
			explain: "Đúng vậy - <code>PushToHubCallback</code> sẽ thường xuyên gửi tất cả các đối tượng đó đến một repo trong quá trình huấn luyện.",
            correct: true
		}
	]}
/>
{/if}

### 6. Bước đầu tiên khi sử dụng phương thức `push_to_hub()` hoặc các công cụ CLI là gì?

<Question
  choices={[
    {
      text: "Đăng nhập trên trang web.",
      explain: "Điều này sẽ không giúp ích trên máy cá nhân của bạn.",
    },
    {
      text: "Chạy 'huggingface-cli login' trên terminal.",
      explain: "Đúng - điều này sẽ tải xuống và lưu vào bộ nhớ cache token cá nhân của bạn.",
      correct: true,
    },
    {
      text: "Chạy 'notebook_login()' trong notebook.",
      explain: "Đúng - điều này sẽ hiển thị một tiện ích con để bạn xác thực.",
      correct: true,
    },
  ]}
/>

### 7. Bạn đang sử dụng một mô hình và một tokenizer - làm cách nào bạn có thể tải chúng lên Hub?

<Question
  choices={[
    {
      text: "Bằng cách gọi phương thức push_to_hub trực tiếp trên mô hình và tokenizer.",
      explain: "Chính xác!",
      correct: true,
    },
    {
      text: "Trong thời gian chạy Python, bằng cách gói chúng trong tiện ích <code>huggingface_hub</code>.",
      explain:
        "Các mô hình và tokenizer đã hưởng lợi sẵn từ tiện ích <code>huggingface_hub</code>: không cần gói thêm!",
    },
    {
      text: "Bằng cách lưu chúng vào ổ đĩa và gọi lệnh <code>transformers-cli upload-model</code>",
      explain: "Lệnh <code>upload-model</code> không tồn tại.",
    },
  ]}
/>

### 8. Bạn có thể thực hiện các thao tác git nào với `Repository`?

<Question
  choices={[
    {
      text: "Commit (Cam kết)",
      explain:
        "Chính xác, phương thức <code>git_commit()</code> có sẵn cho điều đó.",
      correct: true,
    },
    {
      text: "Pull (Kéo lại)",
      explain: "Đó là mục đích của phương thức <code>git_pull()</code>.",
      correct: true,
    },
    {
      text: "Push (Đẩy lên)",
      explain: "Phương thức <code>git_push()</code> thực hiện điều này.",
      correct: true,
    },
    {
      text: "Merge (Gộp)",
      explain: "Không, thao tác đó sẽ không bao giờ có thể thực hiện được với API này.",
    },
  ]}
/>


<EditOnGithub source="https://github.com/huggingface/course/blob/main/chapters/vi/chapter4/6.mdx" />