Views
No views yet
pip install -U transformers, sau đó sao chép đoạn mã từ phần có liên quan đến usecase của bạn.torch.bfloat16 làm mặc định.1# pip install transformers torch accelerate
2from transformers import AutoTokenizer, AutoModelForCausalLM
3import torch
4
5# Khởi tạo tokenizer và model từ checkpoint đã lưu
6tokenizer = AutoTokenizer.from_pretrained("hiieu/vi-gemma2-2b-ChatQA-RAG-v1")
7model = AutoModelForCausalLM.from_pretrained(
8 "hiieu/vi-gemma2-2b-ChatQA-RAG-v1",
9 device_map="auto",
10 torch_dtype=torch.bfloat16
11)
12
13# Sử dụng GPU nếu có
14if torch.cuda.is_available():
15 model.to("cuda")
16
17messages = [
18 {"role": "user", "content": "Hãy cho tôi biết một số tính chất của STRs được dùng để làm gì?"}
19]
20document = """Context: Short Tandem Repeats (STRs) là các trình tự DNA lặp lại ngắn (2- 6 nucleotides) xuất hiện phổ biến trong hệ gen của con người. Các trình tự này có tính đa hình rất cao trong tự nhiên, điều này khiến các STRs trở thành những markers di truyền rất quan trọng trong nghiên cứu bản đồ gen người và chuẩn đoán bệnh lý di truyền cũng như xác định danh tính trong lĩnh vực pháp y.
21Các STRs trở nên phổ biến tại các phòng xét nghiệm pháp y bởi vì việc nhân bản và phân tích STRs chỉ cần lượng DNA rất thấp ngay cả khi ở dạng bị phân hủy việc đinh danh vẫn có thể được thực hiện thành công. Hơn nữa việc phát hiện và đánh giá sự nhiễm DNA mẫu trong các mẫu vật có thể được giải quyết nhanh với kết quả phân tích STRs. Ở Hoa Kỳ hiện nay, từ bộ 13 markers nay đã tăng lên 20 markers chính đang được sử dụng để tạo ra một cơ sở dữ liệu DNA trên toàn đất nước được gọi là The FBI Combined DNA Index System (Expaned CODIS).
22CODIS và các cơ sử dữ liệu DNA tương tự đang được sử dụng thực sự thành công trong việc liên kết các hồ sơ DNA từ các tội phạm và các bằng chứng hiện trường vụ án. Kết quả định danh STRs cũng được sử dụng để hỗ trợ hàng trăm nghìn trường hợp xét nghiệm huyết thống cha con mỗi năm'
23"""
24
25def get_formatted_input(messages, context):
26 system = "System: Đây là một cuộc trò chuyện giữa người dùng và trợ lý trí tuệ nhân tạo. Trợ lý cung cấp câu trả lời hữu ích, chi tiết và lịch sự cho các câu hỏi của người dùng dựa trên ngữ cảnh được cung cấp. Trợ lý cũng nên chỉ ra khi câu trả lời không thể tìm thấy trong ngữ cảnh."
27 conversation = '\n\n'.join(["User: " + item["content"] if item["role"] == "user" else "Assistant: " + item["content"] for item in messages])
28 formatted_input = system + "\n\n" + context + "\n\n" + conversation + "\n\n### Assistant:"
29
30 return formatted_input
31
32# Chuẩn bị dữ liệu đầu vào
33formatted_input = get_formatted_input(messages, document)
34
35# Mã hóa input text thành input ids
36input_ids = tokenizer(formatted_input, return_tensors="pt").to(model.device)
37
38
39# Tạo văn bản bằng model
40outputs = model.generate(
41 **input_ids,
42 max_new_tokens=512,
43 do_sample=True, # Kích hoạt chế độ tạo văn bản dựa trên lấy mẫu. Trong chế độ này, model sẽ chọn ngẫu nhiên token tiếp theo dựa trên xác suất được tính từ phân phối xác suất của các token.
44 temperature=0.1, # Giảm temperature để kiểm soát tính ngẫu nhiên
45)
46# Giải mã và in kết quả
47print(tokenizer.decode(outputs[0]).rsplit("### Assistant:")[-1])
48>>> STRs là các trình tự DNA lặp lại ngắn (2-6 nucleotides) xuất hiện phổ biến trong hệ gen của con người. Chúng có tính đa hình cao và được sử dụng trong nghiên cứu bản đồ gen người và chuẩn đoán bệnh lý di truyền.<eos>