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

Tinh chỉnh DeepSeek-R1-0528 trên RTX 4090

Tìm hiểu cách tinh chỉnh mô hình lập luận mã nguồn mở hàng đầu trên bộ dữ liệu câu hỏi trắc nghiệm y khoa (MCQ) bằng GPU phổ thông.
Đã cập nhật 5 thg 10, 2026

Khám phá cùng AI

ChatGPTClaudePerplexity

DeepSeek-R1-0528 là phiên bản mới nhất của dòng mô hình DeepSeek R1, với khả năng lập luận và suy diễn được nâng cấp. Mô hình có hiệu năng tương đương các mô hình hàng đầu như o3 và Gemini 2.5 Pro, khiến nó trở thành mô hình lập luận mã nguồn mở tốt nhất hiện nay. 

Trong hướng dẫn này, chúng ta sẽ tinh chỉnh mô hình DeepSeek-R1-0528-Qwen3-8B trên một bộ dữ liệu Câu hỏi Trắc nghiệm Lập luận Y khoa (MCQ). Quá trình tinh chỉnh sẽ đưa vào một phong cách lập luận mới và cách sinh đáp án theo lựa chọn A, B, C, D. 

Điểm tuyệt nhất? Bạn có thể thực hiện điều này trên GPU phổ thông như RTX 4090, cho phép tinh chỉnh mô hình cục bộ mà không gặp trở ngại. Bạn có thể xem hướng dẫn đầy đủ về DeepSeek-R1 và hướng dẫn tinh chỉnh của chúng tôi để tìm hiểu thêm. 

Hình minh họa tinh chỉnh DeepSeek-R1-0528 trên RTX 4090Hình: Tác giả

1. Thiết lập môi trường

Chúng ta sẽ tạo một phiên bản RunPod với GPU RTX 4090 và image PyTorch 2.4.0.

Tóm tắt Pod

Nguồn: My Pods

Đi tới mục "My Pods" trong bảng điều khiển RunPod. Chỉnh sửa cấu hình pod:

  • Tăng dung lượng lưu trữ lên 100 GB để chứa bộ dữ liệu và mô hình lớn.
  • Thêm Hugging Face Token dưới dạng biến môi trường. Token này sẽ dùng để xác thực khi tương tác với API của Hugging Face.

chỉnh sửa pod

Nguồn: My Pods

Khi pod đã chạy, cài đặt các gói Python cần thiết. 

Lưu ý phiên bản mới nhất của thư viện Transformers có một số vấn đề đã biết, vì vậy chúng ta sẽ cài đặt một phiên bản cũ hơn, ổn định.

%%capture
%pip install -U transformers==4.52.1
%pip install -U datasets 
%pip install -U accelerate 
%pip install -U peft 
%pip install -U trl 
%pip install -U bitsandbytes

Để tải mô hình hoặc đẩy cập nhật lên Hugging Face Hub, hãy đăng nhập CLI của Hugging Face bằng API key của bạn

from huggingface_hub import login
import os

hf_token = os.environ.get("HF_TOKEN")
login(hf_token)

2. Tải mô hình và tokenizer

Mặc dù chúng ta có 24GB VRAM, đủ để tải toàn bộ mô hình, nhưng chúng ta sẽ dùng lượng tử hóa 4-bit để chừa nhiều bộ nhớ hơn cho tinh chỉnh và đảm bảo ổn định. Cách tiếp cận này giúp tối ưu việc sử dụng VRAM trong khi vẫn duy trì hiệu năng.

Chúng ta sẽ tải mô hình và tokenizer DeepSeek-R1-0528-Qwen3-8B từ Hugging Face Hub. Bạn có thể tìm hiểu thêm về làm việc với Hugging Face và hướng dẫn về Hub qua khóa học của chúng tôi.

from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
import torch
bnb_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_use_double_quant=False,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype=torch.bfloat16,
)

# Load tokenizer & model

model_dir = "deepseek-ai/DeepSeek-R1-0528-Qwen3-8B"

tokenizer = AutoTokenizer.from_pretrained(model_dir, use_fast=True)

model = AutoModelForCausalLM.from_pretrained(
    model_dir,
    quantization_config=bnb_config,   
    device_map="auto",  
    torch_dtype=torch.bfloat16,
    trust_remote_code=True             
)

model.config.use_cache = False
model.config.pretraining_tp = 1

Để kiểm tra mức sử dụng VRAM sau khi tải mô hình, chạy lệnh sau:

!nvidia-smi

Mức sử dụng VRAM khoảng 8,3GB, còn lại khoảng hai phần ba bộ nhớ cho tinh chỉnh.

Tổng quan GPU

3. Tải và xử lý bộ dữ liệu

Ở bước này, chúng ta sẽ chuẩn bị prompt huấn luyện bằng cách tạo một mẫu với chỗ trống cho câu hỏi và phản hồi. Chúng ta cũng sẽ định nghĩa một hàm Python để định dạng bộ dữ liệu theo phong cách prompt và tạo một cột “text” mới.

train_prompt_style = """
Please answer with one of the options in the bracket. Write reasoning in between <analysis></analysis>. Write the answer in between <answer></answer>.
### Question:
{}

### Response:
{}"""


EOS_TOKEN = tokenizer.eos_token  # Must add EOS_TOKEN

def formatting_prompts_func(examples):
    inputs = examples["input"]
    outputs = examples["output"]
    texts = []
    for question, response in zip(inputs, outputs):
        # Remove the "Q:" prefix from the question
        question = question.replace("Q:", "")
        
        # Append the EOS token to the response if it's not already there
        if not response.endswith(tokenizer.eos_token):
            response += tokenizer.eos_token
            
        text = train_prompt_style.format(question, response)
        texts.append(text)
    return {"text": texts}

Tiếp theo, chúng ta sẽ tải mamachang/medical-reasoning, áp dụng hàm formatting_prompts_func và hiển thị cột “text” của mẫu thứ 11. 

from datasets import load_dataset

dataset = load_dataset(
    "mamachang/medical-reasoning",
    split="train",
    trust_remote_code=True,
)
dataset = dataset.map(
    formatting_prompts_func,
    batched=True,
)
print(dataset["text"][10])

Cột text chứa system prompt, câu hỏi, phần lập luận và đáp án theo định dạng sau:

Please answer with one of the options in the bracket. Write reasoning in between <analysis></analysis>. Write the answer in between <answer></answer>.
### Question:
A research group wants to assess the relationship between childhood diet and cardiovascular disease in adulthood. A prospective cohort study of 500 children between 10 to 15 years of age is conducted in which the participants' diets are recorded for 1 year and then the patients are assessed 20 years later for the presence of cardiovascular disease. A statistically significant association is found between childhood consumption of vegetables and decreased risk of hyperlipidemia and exercise tolerance. When these findings are submitted to a scientific journal, a peer reviewer comments that the researchers did not discuss the study's validity. Which of the following additional analyses would most likely address the concerns about this study's design?? 
{'A': 'Blinding', 'B': 'Crossover', 'C': 'Matching', 'D': 'Stratification', 'E': 'Randomization'},

### Response:
<analysis>

This is a question about assessing the validity of a prospective cohort study. The study found an association between childhood diet and cardiovascular disease in adulthood. The peer reviewer is concerned that the researchers did not discuss the validity of the study design. 

To address concerns about validity in a prospective cohort study, we need to consider potential confounding factors that could influence the results. The additional analysis suggested should help control for confounding.

4. Suy luận trước khi tinh chỉnh

Trước khi tinh chỉnh mô hình, chúng ta sẽ kiểm tra hiệu năng gốc để có đường cơ sở so sánh. Việc này gồm tạo prompt suy luận, chọn một câu hỏi mẫu từ bộ dữ liệu và tạo phản hồi bằng mô hình gốc.

Chúng ta sẽ tạo một mẫu prompt cho suy luận với chỗ trống cho câu hỏi.

inference_prompt_style = """
Please answer with one of the options in the bracket. Write reasoning in between <analysis></analysis>. Write the answer in between <answer></answer>.

### Question:
{}

### Response:
<analysis>
"""

Sau đó, chúng ta sẽ chọn câu hỏi ở mẫu thứ 11 và đưa cho mô hình sau khi định dạng và chuyển thành token.

question = dataset[10]['input']
question = question.replace("Q:", "")

inputs = tokenizer(
    [inference_prompt_style.format(question) + tokenizer.eos_token],
    return_tensors="pt"
).to("cuda")

outputs = model.generate(
    input_ids=inputs.input_ids,
    attention_mask=inputs.attention_mask,
    max_new_tokens=1200,
    eos_token_id=tokenizer.eos_token_id,
    use_cache=True,
)
response = tokenizer.batch_decode(outputs, skip_special_tokens=True)
print(response[0].split("### Response:")[1])

Phản hồi của mô hình chưa đạt yêu cầu. Phần phân tích quá dài, chiếm hết giới hạn token, và phần đáp án không được sinh ra do lập luận quá rườm rà.

Phản hồi do mô hình gốc (DeepSeek-R1-0528) sinh ra

5. Thiết lập mô hình

Ở bước này, chúng ta sẽ thiết lập mô hình và tokenizer cho việc tinh chỉnh.

1. SFTTrainer không nhận trực tiếp tokenizer. Thay vào đó, chúng ta sẽ chuyển tokenizer thành data collator bằng lớp DataCollatorForLanguageModeling từ thư viện transformers.

from transformers import DataCollatorForLanguageModeling

data_collator = DataCollatorForLanguageModeling(
    tokenizer=tokenizer,
    mlm=False
)

Chúng ta sẽ dùng LoRA (Low-Rank Adaptation) để tinh chỉnh mô hình. LoRA chỉ thay đổi một phần nhỏ tham số của mô hình, nhờ đó rất tiết kiệm bộ nhớ và nhanh hơn so với tinh chỉnh toàn phần.

from peft import LoraConfig, get_peft_model

# LoRA config
peft_config = LoraConfig(
    lora_alpha=16,                           # Scaling factor for LoRA
    lora_dropout=0.05,                       # Add slight dropout for regularization
    r=64,                                    # Rank of the LoRA update matrices
    bias="none",                             # No bias reparameterization
    task_type="CAUSAL_LM",                   # Task type: Causal Language Modeling
    target_modules=[
        "q_proj",
        "k_proj",
        "v_proj",
        "o_proj",
        "gate_proj",
        "up_proj",
        "down_proj",
    ],  # Target modules for LoRA
)

model = get_peft_model(model, peft_config)

Đối tượng TrainingArguments cho phép cấu hình quá trình tinh chỉnh, và SFTTrainer đơn giản hóa quá trình tinh chỉnh bằng cách tích hợp mô hình, bộ dữ liệu, data collator, tham số huấn luyện và cấu hình LoRA trong một luồng làm việc duy nhất.

from trl import SFTTrainer
from transformers import TrainingArguments


# Training Arguments
training_arguments = TrainingArguments(
    output_dir="DeepSeek-R1-0528-Qwen3-8B-Medical-Reasoning",
    per_device_train_batch_size=1,
    per_device_eval_batch_size=1,
    gradient_accumulation_steps=2,
    optim="paged_adamw_32bit",
    num_train_epochs=1,
    logging_steps=0.2,
    warmup_steps=10,
    logging_strategy="steps",
    learning_rate=2e-4,
    fp16=False,
    bf16=False,
    group_by_length=True,
    report_to="none"
)

# Initialize the Trainer
trainer = SFTTrainer(
    model=model,
    args=training_arguments,
    train_dataset=dataset,
    peft_config=peft_config,
    data_collator=data_collator,
)

6. Huấn luyện mô hình

Trước khi bắt đầu huấn luyện, cần dọn cache và xóa các vùng nhớ không cần thiết để tránh lỗi tràn bộ nhớ (OOM).

Sau khi giải phóng bộ nhớ, chúng ta có thể bắt đầu huấn luyện bằng SFTTrainer. 

import gc, torch
gc.collect()
torch.cuda.empty_cache()
model.config.use_cache = False
trainer.train()

Trong khi huấn luyện, bạn có thể theo dõi GPU trên bảng điều khiển RunPod. Bạn sẽ thấy mức sử dụng GPU gần 100%, cho thấy mô hình đang được huấn luyện trên GPU (không phải CPU). 

Tổng quan Pod

Khi huấn luyện tiếp diễn, bạn sẽ thấy loss huấn luyện giảm dần. Điều này cho thấy mô hình đang học và tinh chỉnh thành công.

Training loss

7. Suy luận sau khi tinh chỉnh

Sau khi tinh chỉnh, chúng ta sẽ kiểm tra hiệu năng bằng cách dùng lại câu hỏi thứ 11 trong bộ dữ liệu. Điều này cho phép so sánh với mô hình gốc và đánh giá cải thiện đạt được sau tinh chỉnh.

question = dataset[10]['input']
question = question.replace("Q:", "")

inputs = tokenizer(
    [inference_prompt_style.format(question,) + tokenizer.eos_token],
    return_tensors="pt"
).to("cuda")

outputs = model.generate(
    input_ids=inputs.input_ids,
    attention_mask=inputs.attention_mask,
    max_new_tokens=1200,
    eos_token_id=tokenizer.eos_token_id,
    use_cache=True,
)
response = tokenizer.batch_decode(outputs, skip_special_tokens=True)
print(response[0].split("### Response:")[1])

Phản hồi của mô hình đã tinh chỉnh cho thấy cải thiện rõ rệt:

  • Phần phân tích ngắn gọn và dùng thẻ <analysis> đúng thay vì <think>.
  • Phần đáp án được định dạng đúng trong thẻ <answer>.
  • Tuy nhiên, đáp án lại sai, vì mô hình chọn E: Randomization, không khớp đáp án đúng trong bộ dữ liệu.
<analysis>
This is a question about evaluating the validity of a prospective cohort study design. The study looked at childhood diet and cardiovascular disease in adulthood. The peer reviewer raised concerns about the study's validity, likely because it was an observational study without randomization or control group. 

The question asks which additional analysis would most likely address the concerns about the study's design. The choices include blinding, crossover, matching, stratification, and randomization. 

Randomization is the key to reducing bias in observational studies. By randomly assigning participants to different groups, you can control for confounding factors. The other choices do not directly address the lack of randomization in the original study design.
</analysis>
<answer>
E: Randomization
</answer>

Để đánh giá thêm mô hình đã tinh chỉnh, chúng ta sẽ thử trên một mẫu khác trong bộ dữ liệu và quan sát kết quả.

question = dataset[100]['input']
question = question.replace("Q:", "")

inputs = tokenizer(
    [inference_prompt_style.format(question) + tokenizer.eos_token],
    return_tensors="pt"
).to("cuda")

outputs = model.generate(
    input_ids=inputs.input_ids,
    attention_mask=inputs.attention_mask,
    max_new_tokens=1200,
    eos_token_id=tokenizer.eos_token_id,
    use_cache=True,
)
response = tokenizer.batch_decode(outputs, skip_special_tokens=True)
print(response[0].split("### Response:")[1])

Mô hình đã tinh chỉnh hoạt động hoàn hảo trên mẫu này:

  • Phần phân tích ngắn gọn, chính xác và đúng theo phong cách của bộ dữ liệu.
  • Phần đáp án đúng và được định dạng chuẩn.
<analysis>

This is a clinical vignette describing a 55-year-old man with burning and shooting pain in his feet and lower legs that worsens at night. He has a history of type 2 diabetes mellitus and hypertension. The description of the pain being burning and shooting in a symmetric distribution in the lower extremities, worsening at night, along with his history of diabetes, is most consistent with distal symmetric sensorimotor polyneuropathy. Autonomic neuropathy would not cause sensory symptoms. Isolated cranial nerve or peripheral nerve neuropathy would not explain the symmetric distribution. Radiculopathy would not explain the sensory symptoms.
</analysis>
<answer>
D: Distal symmetric sensorimotor polyneuropathy
</answer>

8. Lưu mô hình

Bước tiếp theo là lưu mô hình đã tinh chỉnh và đẩy lên Hugging Face Hub. Việc này giúp người khác có thể truy cập và sử dụng mô hình để suy luận hoặc tinh chỉnh tiếp.

new_model_name = "DeepSeek-R1-0528-Qwen3-8B-Medical-Reasoning"
trainer.model.push_to_hub(new_model_name)
trainer.processing_class.push_to_hub(new_model_name)

Khi đẩy thành công, mô hình sẽ có mặt trên Hugging Face Hub: kingabzpro/DeepSeek-R1-0528-Qwen3-8B-Medical-Reasoning.

9. Tải mô hình đã tinh chỉnh từ Hugging Face

Sau khi lưu mô hình và adapter lên Hugging Face Hub, chúng ta sẽ kiểm thử lại hiệu năng bằng cách tải về. Các bước gồm giải phóng bộ nhớ GPU, tải mô hình gốc và LoRA adapter, rồi chạy suy luận trên một prompt mẫu.

1. Xóa bộ nhớ GPU để tránh khả năng gặp lỗi tràn bộ nhớ (OOM). Điều này đảm bảo môi trường sạch để tải mô hình.

del model
del trainer
torch.cuda.empty_cache()

2. tải mô hình gốc và LoRA adapter đã tinh chỉnh từ Hugging Face Hub. Mô hình gốc sẽ được tải ở chế độ lượng tử hóa 4-bit để tối ưu bộ nhớ, và LoRA adapter sẽ được gắn vào.

from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
from peft import PeftModel
import torch

# Base model
base_model_id = "deepseek-ai/DeepSeek-R1-0528-Qwen3-8B"

# Your fine-tuned LoRA adapter repository
lora_adapter_id = "kingabzpro/DeepSeek-R1-0528-Qwen3-8B-Medical-Reasoning"

# Load the model in 4-bit
bnb_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_use_double_quant=False,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype=torch.bfloat16,
)

# Load base model
base_model = AutoModelForCausalLM.from_pretrained(
    base_model_id,
    device_map="auto",
    torch_dtype=torch.bfloat16,
    quantization_config=bnb_config,
    trust_remote_code=True,
)

# Attach the LoRA adapter
model = PeftModel.from_pretrained(
    base_model,
    lora_adapter_id,
    device_map="auto",
    trust_remote_code=True,
)

# Load tokenizer
tokenizer = AutoTokenizer.from_pretrained(base_model_id, trust_remote_code=True)

3. Bây giờ chúng ta sẽ kiểm thử mô hình đã tinh chỉnh bằng cách cung cấp một prompt mẫu. Prompt sẽ được token hóa, đưa qua mô hình và phản hồi sẽ được giải mã.

# Inference example
prompt = """
Please answer with one of the options in the bracket. Write reasoning in between <analysis></analysis>. Write the answer in between <answer></answer>.

### Question:
A research group wants to assess the relationship between childhood diet and cardiovascular disease in adulthood.
A prospective cohort study of 500 children between 10 to 15 years of age is conducted in which the participants' diets are recorded for 1 year and then the patients are assessed 20 years later for the presence of cardiovascular disease.
A statistically significant association is found between childhood consumption of vegetables and decreased risk of hyperlipidemia and exercise tolerance.
When these findings are submitted to a scientific journal, a peer reviewer comments that the researchers did not discuss the study's validity.
Which of the following additional analyses would most likely address the concerns about this study's design? 
{'A': 'Blinding', 'B': 'Crossover', 'C': 'Matching', 'D': 'Stratification', 'E': 'Randomization'},
### Response:
<analysis>

"""

inputs = tokenizer(
    [prompt + tokenizer.eos_token],
    return_tensors="pt"
).to("cuda")

outputs = model.generate(
    input_ids=inputs.input_ids,
    attention_mask=inputs.attention_mask,
    max_new_tokens=1200,
    eos_token_id=tokenizer.eos_token_id,
    use_cache=True,
)
response = tokenizer.batch_decode(outputs, skip_special_tokens=True)
print(response[0].split("### Response:")[1])

Mô hình đã tinh chỉnh tạo ra phản hồi tương tự bộ dữ liệu, xác nhận rằng mô hình và adapter đã được tải đúng.

<analysis>
This is a question about evaluating the validity of a prospective cohort study design. The study looked at childhood diet and cardiovascular disease in adulthood. The peer reviewer was concerned about the study's validity. 

To address concerns about validity in a prospective cohort study, we need to consider potential confounding factors. The choices given are different statistical methods that can help control for confounding. 

Blinding and crossover designs are not applicable to a prospective cohort study. Matching and stratification can help control for confounding by balancing the distribution of confounders between groups. Randomization is the best way to minimize confounding by randomly assigning participants to different exposure groups.
</analysis>
<answer>
E: Randomization
</answer>

Nếu bạn gặp vấn đề khi chạy mã trên, hãy tham khảo notebook fine-tuning-Deepseek-new-R1.ipynb. Notebook này đã được kiểm thử nhiều lần và hoạt động ngay khi tải vào RunPod hoặc môi trường tương tự.

Kết luận

DeepSeek-R1-0528 là một trong những mô hình lập luận mã nguồn mở tốt nhất hiện nay. Khả năng xử lý các tác vụ lập luận phức tạp cùng với tính mã nguồn mở khiến nó trở thành lựa chọn nổi bật cho nhà phát triển và nhà nghiên cứu. Dù mô hình đã tinh chỉnh cho kết quả ấn tượng, vẫn có nhiều cách để cải thiện thêm kết quả tinh chỉnh:

  1. Tải toàn bộ mô hình: Dùng mô hình đầy đủ thay vì bản lượng tử hóa có thể cải thiện độ chính xác.
  2. Huấn luyện nhiều epoch hơn: Huấn luyện ít nhất 3 epoch thay vì 1 có thể giúp hội tụ tốt hơn và cải thiện hiệu năng.
  3. Tinh chỉnh phong cách prompt: Thử nghiệm và tối ưu phong cách prompt có thể giúp mô hình hiểu và phản hồi tốt hơn cho các nhiệm vụ cụ thể.
  4. Tối ưu siêu tham số: Các siêu tham số như learning rate, batch size và số bước tích lũy gradient có thể cải thiện kết quả đáng kể.
  5. Tăng kích thước bộ dữ liệu: Huấn luyện trên bộ dữ liệu lớn hơn (ví dụ, trên 10.000 mẫu) có thể cải thiện khả năng khái quát hóa và lập luận của mô hình.

Ngoài ra, hướng dẫn này có thể dùng để tinh chỉnh mô hình DeepSeek R1 trên bất kỳ bộ dữ liệu lập luận nào, bao gồm cả bộ dữ liệu tổng hợp tạo bằng các mô hình khác như o3 của OpenAI. Bạn cũng có thể thực hành các kỹ thuật trình bày ở đây trong khóa học Fine-Tuning With Llama 3 của chúng tôi. Nếu bạn quan tâm đến tinh chỉnh các mô hình khác với bộ dữ liệu y khoa, hãy xem hướng dẫn Tinh chỉnh MedGemma trên bộ dữ liệu MRI não.


Abid Ali Awan's photo
Author
Abid Ali Awan
LinkedIn
Twitter

Là một nhà khoa học dữ liệu được chứng nhận, tôi đam mê tận dụng công nghệ tiên tiến để tạo ra các ứng dụng học máy đổi mới. Với nền tảng vững chắc về nhận dạng giọng nói, phân tích và báo cáo dữ liệu, MLOps, AI hội thoại và NLP, tôi đã rèn giũa kỹ năng phát triển các hệ thống thông minh có thể tạo ra tác động thực sự. Bên cạnh chuyên môn kỹ thuật, tôi cũng là một người truyền đạt tốt, có khả năng chắt lọc các khái niệm phức tạp thành ngôn ngữ rõ ràng, súc tích. Nhờ đó, tôi trở thành một blogger được nhiều người quan tâm trong lĩnh vực khoa học dữ liệu, chia sẻ góc nhìn và kinh nghiệm với cộng đồng các chuyên gia dữ liệu ngày càng lớn. Hiện tại, tôi tập trung vào sáng tạo và biên tập nội dung, làm việc với các mô hình ngôn ngữ lớn để phát triển nội dung mạnh mẽ và hấp dẫn, giúp doanh nghiệp và cá nhân tận dụng tối đa dữ liệu của mình.

Chủ đề
Trí tuệ Nhân tạo
Mô hình Ngôn ngữ Lớn

Các khóa học hàng đầu trên DataCamp

Khóa học

Fine-Tuning với Llama 3

2 giờ
4.1K
Tinh chỉnh Llama cho các tác vụ tùy chỉnh bằng TorchTune, và tìm hiểu các kỹ thuật tinh chỉnh hiệu quả như lượng tử hóa.
Xem chi tiếtRight Arrow
Bắt Đầu Khóa Học
Xem thêmRight Arrow
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êmXem Thêm