0
0
Lập trình
TT

10 Điều Cần Nhớ Khi Viết Prompt và Sử Dụng Azure OpenAI Hiệu Quả

Đăng vào 2 tuần trước

• 4 phút đọc

Lời Mở Đầu

Hiện nay, các hệ thống RAG (Retrieval-Augmented Generation) đang ngày càng phổ biến, đặc biệt trong lĩnh vực sử dụng Azure OpenAI. Tuy nhiên, không phải ai cũng hiểu rõ cách sử dụng hiệu quả công nghệ này. Qua quá trình tham gia nhiều dự án về RAG, tôi đã tích lũy được một số kinh nghiệm quý báu về cách tận dụng tối đa Azure OpenAI cùng với việc viết prompt chuẩn xác.

Nội Dung

1. Lựa Chọn Phiên Bản Azure OpenAI API Thích Hợp

Khi chọn phiên bản Azure OpenAI API, bạn cần xác định dịch vụ mà bạn sẽ sử dụng, vì mỗi phiên bản sẽ cung cấp các dịch vụ khác nhau. Hãy tránh sử dụng các phiên bản có chữ "preview" vì chúng có thể bị ngừng hoạt động sau một thời gian, dẫn đến việc bạn phải thay đổi phiên bản và điều này có thể ảnh hưởng đến mã nguồn của bạn. Hãy chắc chắn rằng bạn cân nhắc kỹ lưỡng trước khi quyết định sử dụng các phiên bản mới để đảm bảo độ ổn định cho dự án của mình.

2. Hiểu Biết Về Requests per Minute, Tokens per Request và Tokens per Minute

Tùy thuộc vào gói dịch vụ Azure OpenAI mà bạn sử dụng, sẽ có các giới hạn về số lượng tokens và requests bạn có thể gửi trong một phút. Trong các dự án RAG, số lượng requests gửi đi thường lớn và liên tục, nên cần có cơ chế quản lý hợp lý. Một cách đơn giản để theo dõi là tính toán số lượng tokens trước khi gọi API như sau:

python Copy
import tiktoken

text = 'test số lượng token'
encoding = tiktoken.get_encoding('cl100k_base')
num_tokens = len(encoding.encode(text))

Ngoài ra, bạn cũng có thể giới hạn số lượng tokens đầu ra để giúp GPT đưa ra câu trả lời chính xác hơn.

python Copy
response = client.chat.completions.create(
    model="gpt-35-turbo",
    max_tokens=1024,
    messages=[
        {"role": "system", "content": "You are an assistant"},
        {"role": "user", "content": "Who were the founders of Microsoft?"}
    ]
)

3. Đảm Bảo Tính Ổn Định Khi Gọi GPT

Để đảm bảo output của GPT ổn định qua nhiều lần gọi, bạn có thể điều chỉnh các thông số như temperature, top_p và seed.

  • temperature: Giúp điều chỉnh mức độ ngẫu nhiên của output. Giá trị thấp như 0.2 sẽ cho output ổn định hơn.
  • top_p: Một phương pháp thay thế cho temperature, giúp giảm số lượng kết quả được xem xét.
  • seed: Nếu được xác định, hệ thống sẽ cung cấp cùng một kết quả cho các yêu cầu giống nhau.

Ví dụ:

python Copy
result = self.chat_model.chat.completions.create(
            model="gpt-35-turbo",
            seed=1,
            temperature=0.0,
            max_tokens=1024,
             messages=[
                {"role": "system", "content": "You are an assistant"},
                {"role": "user", "content": "Who were the founders of Microsoft?"}
            ]
)

4. Yêu Cầu Đầu Ra Dạng JSON

Để giải quyết vấn đề về định dạng đầu ra, hãy yêu cầu GPT trả về dưới dạng JSON. Điều này giúp bạn dễ dàng phân tách và xử lý dữ liệu được trả về.

Ví dụ yêu cầu định dạng đầu ra:

python Copy
output_format = json.dumps({'answer': 'your answer', 'explanation': 'explain your answer'})
prompt = f"""
...
Output must be in json format like this: {output_format}
...
"""

5. Viết Prompt Rõ Ràng và Cụ Thể

Khi viết prompt, hãy tách bạch các nhiệm vụ, yêu cầu thành từng phần rõ ràng, tránh việc viết thành một đoạn văn dài gây khó hiểu cho GPT. Sử dụng các gạch đầu dòng và cú pháp dễ hiểu để giúp tăng độ chính xác trong các câu trả lời của GPT.

python Copy
system_prompt = """
1. Giới thiệu
...
2. Các quy tắc cần thiết
...
"""

QA_prompt = """
3. Đầu vào
...
4. Mô tả đầu vào
...
5. Định dạng đầu ra
...
"""

Kết Luận

Bằng cách áp dụng những lưu ý trên, bạn sẽ có thể sử dụng Azure OpenAI một cách hiệu quả hơn. Việc viết prompt chuẩn xác cùng với cách sử dụng các tham số điều khiển đúng sẽ ảnh hưởng lớn đến kết quả bạn đạt được. Hãy thường xuyên thử nghiệm và điều chỉnh để tối ưu hóa quá trình tương tác với Azure OpenAI. Nếu bạn có bất kỳ thắc mắc nào, hãy để lại bình luận để cùng thảo luận nhé!
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào