Một cây đàntỉ lệ cược, một bình rượu, một dòng mây.
Tiếp tục phần trướctỉ lệ cược, viết thêm chút về công nghệ 。
Trong bài viết trước... Nói chuyện sơ lược về DSPy và kỹ thuật tự động hóa nhắc nhở (phần đầu) Trong bài viết trướcxem ngoại hạng anh, chúng ta đã phân tích khung code của một chương trình tối ưu hóa DSPy điển hình. Ở phần này, chúng ta sẽ tiếp tục hai vấn đề quan trọng còn lại chưa được giải quyết:
Trong trang chủ của DSPy [1] và trang chủ trên GitHub [2]mua thẻ trực tuyến, câu đầu tiên giới thiệu DSPy như sau:
DSPy is the framework for programming—rather than prompting—language models.
DSPy là một khung làm việc sử dụng mô hình ngôn ngữ theo cách "lập trình" thay vì thông qua việc viết các câu lệnh gợi ý. Khung này cho phép người dùng xây dựng cấu trúc logic phức tạp hơnmua thẻ trực tuyến, giúp tối ưu hóa cách tương tác với mô hình một cách hiệu quả và linh hoạt. Thay vì chỉ dựa vào các mẫu câu đơn lẻ, DSPy mở ra cánh cửa để tạo ra những hệ thống thông minh có khả năng tự động hóa và giải quyết nhiều vấn đề đa dạng trong thực tế.
Được gọi là programming Phương pháp nàymua thẻ trực tuyến, khi chúng ta phân tích mã nguồn trong bài viết trước, đã phát hiện ra hiện tượng này:
cot
=
dspy
.
ChainOfThought
(
'contexttỉ lệ cược, question -> response')
Dòng mã này tạo ra một phiên bản Module.
cot
tỉ lệ cược, nhưng không chỉ định rõ ràng bất kỳ nhắc từ hay mẫu nhắc từ nào.'contextxem ngoại hạng anh, question -> response'
Định dạng giống như một chữ ký hàmtỉ lệ cược, ý nghĩa của nó là mô-đun này nhận hai đầu vào.
context
Một quá trình đọc: Quá trình thứ
question
tỉ lệ cược, sau khi gọi LLM sẽ xuất ra một
response
。
Kiểu lập trình này là một lựa chọn thiết kế của DSPytỉ lệ cược, với việc cố ý "ẩn" prompt thực sự phía sau. Cách tiếp cận này có thể mang lại cả lợi ích lẫn hạn chế, nhưng hiện tại chúng ta sẽ không đi sâu vào phân tích chi tiết. Thay vào đó, hãy cùng khám phá prompt thực sự ẩn phía sau đây, điều này sẽ giúp ích rất nhiều trong việc hiểu rõ hơn về quá trình tối ưu hóa diễn ra phía sau.
Chúng ta chạy thử các dòng mã trước đó
cot
Mô-đuntỉ lệ cược, như hình dưới đây:
Lưu ý dòng mã này trong hình trên:
cot
(
context
=
context
,
question
=
question
)
Chúng ta thấy rằng khi gọi
cot
Mô-đun này được truyền vào hai tham số:
context
Một quá trình đọc: Quá trình thứ
question
xem ngoại hạng anh, điều này phù hợp với định dạng Signature được chỉ định trước, tức là'contexttỉ lệ cược, question -> response'
。
Dòng mã này thực hiện rất nhiều việc: nó kết hợp các tham số đầu vào để tạo thành một prompttỉ lệ cược, sau đó gọi đến LLM (Mô hình ngôn ngữ lớn) và trả về kết quả phản hồi. Hơn nữa, dòng mã này còn đảm bảo rằng tất cả các thông số đều được kiểm tra cẩn thận trước khi xử lý, giúp tăng cường độ tin cậy và hiệu quả của toàn bộ quy trình.
response
. Hơn nữa, đối với
dspy.ChainOfThought
tỉ lệ cược, nó còn trả về một trường đầu ra bổ sung
reasoning
tỉ lệ cược, đây là quá trình suy luận do LLM cung cấp.
cot
Quá trình tương tác giữa Module và LLM có thể được kiểm tra bằng cách gọi phương thức dspy.inspect_history. Quá trình này bao gồm prompt được cung cấp cho LLM và kết quả hoàn thành (completion) mà LLM trả về. Để xem chi tiết rõ hơnmua thẻ trực tuyến, bạn có thể nhấp vào hình ảnh bên dưới để phóng to: 
Được rồimua thẻ trực tuyến, bây giờ chúng ta đã thấy prompt thật sự rồi. Trong hình trên, dòng chữ "Response:" và những gì ở phía trước chính là phần prompt, còn mọi thứ xuất hiện sau dòng "Response:" chính là kết quả mà mô hình ngôn ngữ lớn (LLM) đưa ra. Điều này giúp chúng ta hiểu rõ hơn về cách mà hệ thống hoạt động và phản ứng với các đầu vào khác nhau.
lập trình hơn là tạo prompt
Hình trên còn có một điểm đáng chú ý khácxem ngoại hạng anh, ở dòng cuối cùng của hệ thống tin nhắn:
Given the fields `context`xem ngoại hạng anh, `question`, produce the fields `response`.
Nội dung của dòng này chính là chỉ dẫn (instruction) Khi bộ tối ưu hóa của DSPy hoạt độngtỉ lệ cược, một trong những bước quan trọng là nó sẽ chỉnh sửa lại lệnh này. Điều này giúp cải thiện hiệu suất và đảm bảo rằng mọi thao tác được thực hiện một cách chính xác nhất có thể. Quá trình điều chỉnh không chỉ giới hạn ở việc sửa lỗi mà còn bao gồm tối ưu hóa logic bên trong lệnh để đạt được hiệu quả tốt hơn trong quá trình thực thi.
Sau khi đã quan sát kỹ lưỡng thực tế của prompt trong DSPytỉ lệ cược, hãy cùng tìm hiểu sâu hơn về cách thức hoạt động của bộ tối ưu hóa DSPy. Đầu tiên, cần hiểu rằng quá trình này không đơn thuần chỉ là một chuỗi các bước cơ bản mà còn bao gồm nhiều lớp logic phức tạp. Khi nhận được yêu cầu, hệ thống sẽ phân tích nội dung một cách cẩn thận trước khi tiến hành xử lý. Điều này giúp đảm bảo rằng mọi thông tin đều được kiểm tra kỹ càng và không bỏ sót bất kỳ chi tiết nào quan trọng. Tiếp theo, sau khi hoàn tất việc phân tích, bộ tối ưu hóa sẽ bắt đầu xây dựng chiến lược phù hợp dựa trên dữ liệu đầu vào. Mỗi bước trong quy trình này đều được tính toán một cách cẩn thận để đạt được hiệu quả cao nhất có thể. Cuối cùng, khi toàn bộ quá trình kết thúc, hệ thống sẽ tự động kiểm tra lại kết quả cuối cùng, đảm bảo rằng mọi thứ đều hoạt động đúng như mong đợi. Đây chính là bước quan trọng cuối cùng trong hành trình tối ưu hóa của DSPy.
Nhớ lại đoạn mã gọi trình tối ưu hóa trong bài viết trước:
...
rag
=
RAG
()
# Phần 5: Khởi tạo Teleprompter và hoàn thành quá trình biên dịch/tối ưu hóa # dspy.MIPROv2 là một phần không thể thiếu của Telepromptermua thẻ trực tuyến, đóng vai trò như nền tảng cơ bản giúp hệ thống hoạt động trơn tru hơn. Hệ thống Teleprompter, với sự hỗ trợ đắc lực từ dspy.MIPROv2, sẽ trở nên linh hoạt và mạnh mẽ hơn bao giờ hết. Đây không chỉ là một tập hợp các mã lệnh đơn thuần mà còn là một công cụ tối ưu hóa chuyên sâu, cho phép người dùng dễ dàng quản lý và điều chỉnh nội dung theo ý muốn. Với khả năng xử lý nhanh chóng và hiệu quả, Teleprompter cùng dspy.MIPROv2 đã chứng minh được vai trò quan trọng trong việc nâng cao chất lượng và tốc độ làm việc.tp
=
dspy
.
MIPROv2
(
metric
=
metric
,
auto
=
"light"
,
num_threads
=
8
)
optimized_rag
=
tp
.
compile
(
rag
,
trainset
=
trainset
,
valset
=
valset
,
max_bootstrapped_demos
=
2
,
max_labeled_demos
=
2
,
requires_permission_to_run
=
False
)
Tối ưu hóa Chỉ dẫn và Biểu thị cho Chương trình Mô hình Ngôn ngữ Nhiều Bước instruction Một phần khác là phương pháp "few-shot". Trong một bài viết blog được xuất bản bởi Heiko Hotz [4]mua thẻ trực tuyến, cách tối ưu hóa cho phương pháp "few-shot" trong dự án APE được gọi là exemplar selection 。
Tổng quanmua thẻ trực tuyến, quá trình thực thi của MIPROv2 có thể được chia thành ba bước lớn:
Tiếp theotỉ lệ cược, chúng ta sẽ giới thiệu chi tiết ba bước này thông qua ví dụ thực tế.
Bước 1: Tạo tập ứng viên few-shot 。
Mục tiêu của bước này làmua thẻ trực tuyến, dựa trên dữ liệu từ tập trainset, tạo ra các ví dụ few-shot cho từng Module con của chương trình DSPy. Có hai chiến lược chính được sử dụng để thực hiện điều này. Trước hết, chúng ta có thể áp dụng phương pháp tiền xử lý dữ liệu chuyên sâu nhằm chọn ra những mẫu đại diện tốt nhất từ tậ Tiếp theo, bằng cách sử dụng thuật toán tối ưu hóa thông minh, chúng ta sẽ sắp xếp và gán nhãn các mẫu này sao cho phù hợp với từng Module con cụ thể. Chiến lược thứ hai tập trung vào việc xây dựng một hệ thống gợi ý tự động. Hệ thống này sẽ phân tích hành vi và đặc điểm chung của các Module trong quá khứ, sau đó đề xuất các ví dụ thích hợp dựa trên xu hướng học tập đã được xác định trước đó. Cả hai chiến lược đều có vai trò quan trọng trong việc đảm bảo rằng mỗi Module con nhận được dữ liệu đầu vào chất lượng cao, giúp tăng cường hiệu quả và độ chính xác trong quá trình đào tạo.
Chiến lược đầu tiên là lấy mẫu trực tiếp từ tập trainsettỉ lệ cược, và các ví dụ được lấy mẫu sẽ trở thành ứng cử viên few-shot cho từ Số lượng mẫu được chọn sẽ phụ thuộc vào các dòng mã trước đó trong đoạn code. Điều này giúp tạo ra một quá trình học hiệu quả hơn, trong đó mỗi mô-đun con có thể tiếp cận dữ liệu đa dạng ngay từ giai đoạn đầu, từ đó tối ưu hóa khả năng thích nghi của hệ thống với các tình huống khác nhau. Mỗi lần lấy mẫu, chúng ta cần đảm bảo rằng các ví dụ được chọn không chỉ đại diện cho tập dữ liệu nhưng còn cân bằng giữa các lớp, nhằm tránh trường hợp một số lớp nhận được quá ít sự chú ý trong quá trình đào tạo. Điều này đặc biệt quan trọng khi tập dữ liệu có sự mất cân đối về số lượng giữa các lớp, chẳng hạn như khi có nhiều ví dụ hơn cho một số loại dữ liệu cụ thể so với các loại khác.
max_labeled_demos
Được chỉ định bởi
Chiến lược thứ haixem ngoại hạng anh, thực sự được gọi là
Bootstrap
Cách thực hiện của nó như sau: Từ tập dữ liệu trainsetxem ngoại hạng anh, một số ví dụ sẽ được chọn ngẫu nhiên và đưa vào chương trình DSPy (
rag
Các module con sẽ được thực thi trong module tương ứng và quá trình thực thi sẽ ghi lại đầu vào và đầu ra của từ Nếu đầu ra cuối cùng của chương trình DSPy đạt tiêu chuẩn đánh giá do Metric đặt ramua thẻ trực tuyến, thì mỗi module con sẽ lấy đầu vào và đầu ra của mình làm ứng viên cho phương pháp tiếp cận few-shot.
Nguyên nhân cần áp dụng chiến lược Bootstrap này là vì quá trình tối ưu hóa trong DSPy được thực hiện cho toàn bộ chương trình DSPymua thẻ trực tuyến, chứ không chỉ riêng lẻ cho từng mô-đun LLM. Điều này giúp đảm bảo rằng các thành phần trong hệ thống hoạt động hài hòa và hiệu quả nhất có thể, thay vì chỉ tập trung cải thiện từng phần rời rạc. Việc tối ưu hóa toàn diện này cũng đóng vai trò quan trọng trong việc tăng cường khả năng thích ứng và xử lý phức tạp của cả hệ thống.DSPy co thể coi một chương trình như được cấu thành từ nhiều mô-đunxem ngoại hạng anh, và toàn bộ quá trình thực thi của chương trình được thực hiện thông qua một pipeline đa giai đoạn (multi-stage). Mỗi giai đoạn trong pipeline này sẽ xử lý các tác vụ cụ thể, từ đó tạo ra sự phân chia rõ ràng giữa các chức năng khác nhau, giúp việc quản lý và tối ưu hóa hiệu suất trở nên dễ dàng hơn. Điều này không chỉ làm tăng tính linh hoạt mà còn cho phép hệ thống có khả năng xử lý phức tạp cao trong môi trường đa nhiệm.Trainset là tập dữ liệu được gắn nhãn toàn diện cho toàn bộ quy trình từ đầu đến cuốixem ngoại hạng anh, thường không chứa thông tin nhãn cho các kết quả Do đó, chiến lược Bootstrap về cơ bản là sử dụng dữ liệu nhãn từ trainset gắn nhãn toàn phần, sau đó tự động tạo ra một số lượng lớn nhãn cho các kết quả trung gian thông qua sự hỗ trợ của chương trình. Điều này giúp tiết kiệm rất nhiều công sức trong việc gán nhãn thủ công cho các kết quả trung gian, đồng thời tối ưu hóa hiệu quả của quá trình học máy.
Số lượng ví dụ few-shot được tạo ra cho mỗi Module dựa trên chiến lược Bootstrap sẽ được xác định bởi đoạn mã trước đó trong chương trình. Điều này có thể thay đổi tùy thuộc vào các thông số và cấu hình đã đặt trước đótỉ lệ cược, đảm bảo rằng quá trình học tập có thể linh hoạt và hiệu quả nhất có thể. Tùy thuộc vào cách cấu hình ban đầu, số lượng ví dụ này có thể tăng hoặc giảm để tối ưu hóa hiệu suất tổng thể của mô hình.
max_bootstrapped_demos
Được chỉ định bởi
Vậy thìmua thẻ trực tuyến, chiến lược đầu tiên mà bạn vừa đề cập, trong đó chọn mẫu trực tiếp từ tập dữ liệu trainset làm ứng viên cho bài toán few-shot, có thể sẽ không phát huy hiệu quả thực sự khi chương trình DSPy bao gồm nhiề Lý do là, thông tin nhãn dự kiến của output ở các module giữa có khả năng rất cao là không tồn tại trong tậ Điều này dẫn đến việc các module giữa không được đào tạo một cách đầy đủ và chính xác, khiến toàn bộ hệ thống hoạt động kém hiệu quả.
Chiến lược Bootstrap có thể được thực hiện nhiều lần. Miễn là trainset đủ lớntỉ lệ cược, thuật toán MIPROv2 sẽ thực hiện việc trộn (shuffle) trainset một lần và lặp lại chiến lược Bootstrap để tạo ra một tập hợp ứng viên few-shot mới mỗi lần. Thêm vào đó, mỗi vòng shuffle và áp dụng chiến lược này giúp tối ưu hóa hiệu quả của mô hình, đảm bảo rằng dữ liệu luôn ở trạng thái thay đổi, từ đó tăng cường khả năng học hỏi và phân loại của hệ thống.
Trở lại việc thực thi mã trước đómua thẻ trực tuyến, sau Bước 1, tập ứng viên few-shot được tạo ra như sau:
Giải thích đơn giản về kết quả trên hình:
Kết quả của demo_candidates cho thấy
rag
Chương trình chỉ có một mô-đun (thực chất là một
dspy.ChainOfThought
Bạn có thể thấy rằng module này được đánh số là 0 và ở bước 1xem ngoại hạng anh, đã tạo ra 5 tập hợp ứng viên few-shot. Điều này cho phép hệ thống có nhiều lựa chọn hơn để tiếp tục quá trình học tập một cách hiệu quả. Với mỗi tập hợp ứng viên, các thuật toán có thể được tối ưu hóa để đạt được kết quả tốt nhất trong việc xử lý thông tin.
Kết quả từ demo_candidates[0] đã thể hiện 5 bộ mẫu few-shot duy nhất của Module nàymua thẻ trực tuyến, trong đó mỗi bộ mẫu bao gồm 2 ví dụ (được xác định bởi tham số). Điều thú vị là, mỗi cặp ví dụ trong từng bộ mẫu đều được thiết kế một cách khéo léo để đảm bảo tính đại diện và đa dạng cho nhiệm vụ học tập. Các ví dụ không chỉ giúp hướng dẫn mà còn kích thích khả năng suy luận của mô hình, tạo ra một môi trường học tập hiệu quả và linh hoạt.
max_bootstrapped_demos
Một quá trình đọc: Quá trình thứ
max_labeled_demos
Đã được chỉ định). Nếu mọi người quan sát kỹtỉ lệ cược, sẽ thấy example có hai dạng:
augmented
trường. Điều này biểu thị example này được tạo ra bởi chiến lượ
augmented
trường. Điều này biểu thị example này được lấy trực tiếp từ trainset.
Trong số 5 tập dữ liệu few-shot nàyxem ngoại hạng anh, không phải tất cả sẽ được sử dụng trong prompt cuối cùng. Chúng ta vẫn cần tiến hành một vòng sàng lọc thêm một lần nữa trước khi quyết định.
Bước 2: Tạo tập ứng viên chỉ dẫn 。
Ở bước nàymua thẻ trực tuyến, đối với từng module của chương trình và mỗi tập hợp ứng viên few-shot, sẽ được tạo ra một hướng dẫn (instruction) ứng viên hoàn toàn mới. Điều này giúp đảm bảo rằng mỗi module có thể xử lý các tình huống cụ thể theo cách riêng biệt, đồng thời mở ra nhiều khả năng mới trong việc tối ưu hóa hiệu suất của toàn bộ hệ thống.
Bạn có thể tạo ra một instruction mới như thế nào? Hãy cùng xem xét một ví dụ thực tế. Hình ảnh dưới đây minh họa quá trình tương tác giữa hệ thống và mô hình ngôn ngữ lớn (LLM) trong một lần tạo instruction (bao gồm cả meta-prompt và đầu ra của LLM):
Hình ảnh phía trên cho thấy meta-prompt chứa đựng một lượng thông tin khổng lồtỉ lệ cược, điều này thực sự khơi gợi nhiều suy nghĩ. Bây giờ, hãy cùng tìm hiểu sâu hơn về những thông tin đa dạng được trình bày trong hình. Những dữ liệu này không chỉ phong phú mà còn mở ra nhiều hướng tiếp cận mới mẻ để giải quyết vấn đề.
Đầu tiênmua thẻ trực tuyến, trong hình trên, dòng chữ "Response:" và những gì nằm trước nó chính là meta-prompt mà chúng ta đã đề cập đến trong bài viết trước. Còn phần sau dòng "Response:" chính là kết quả đầu ra được tạo ra bởi mô hình ngôn ngữ lớn (LLM).
Trong meta-prompt nàyxem ngoại hạng anh, chúng ta có thể nhận thấy rằng để tạo ra các lệnh chỉ dẫn mới, DSPy đã cung cấp cho LLM rất nhiều thông tin tham khảo, bao gồm: Thứ nhất, một loạt các ví dụ minh họa cụ thể về cách xây dựng câu lệnh hiệu quả. Điều này giúp hệ thống hiểu rõ hơn về cấu trúc và ngữ cảnh cần thiết. Thứ hai, các nguyên tắc cơ bản về ngôn ngữ mà LLM cần tuân thủ, chẳng hạn như cách sử dụng từ ngữ chính xác, logic và mạch lạc trong việc truyền đạt ý tưởng. Thứ ba, một số giới hạn hoặc hướng dẫn đặc biệt liên quan đến việc xử lý nội dung nhạy cảm hoặc các tình huống phức tạp mà hệ thống có thể gặp phải. Cuối cùng, một số gợi ý về phong cách viết phù hợp với mục tiêu chung của dự án, chẳng hạn như sự thân thiện, dễ hiểu hoặc chuyên nghiệp tùy thuộc vào đối tượng người dùng. Tất cả những yếu tố này đều đóng vai trò quan trọng trong việc định hình và cải thiện khả năng tạo ra các lệnh chỉ dẫn mới một cách sáng tạo và hữu ích.
[[ ## dataset_description ## ]]
trường. Đây thực chất là một mô tả bằng ngôn ngữ tự nhiên về
trainset
mua thẻ trực tuyến, và mô tả này cũng được LLM tóm tắt và tạo ra.
[[ ## program_code ## ]]
Một quá trình đọc: Quá trình thứ
[[ ## program_description ## ]]
trường.
[[ ## basic_instruction ## ]]
trường.
[[ ## tip ## ]]
trường.
Tip tạo ra chỉ dẫnxem ngoại hạng anh, khung DSPy cung cấp một số cấu hình sẵn sàng, như sau:
TIPS
=
{
"none"
:
""
,
"creative"
:
"Don't be afraid to be creative when creating the new instruction!"
,
"simple"
:
"Keep the instruction clear and concise."
,
"description"
:
"Make sure your instruction is very informative and descriptive."
,
"high_stakes"
:
"The instruction should include a high stakes scenario in which the LM must solve the task!"
,
"persona"
:
'Include a persona that is relevant to the task in the instruction (ie. "You are a ...")'
,
}
Trong hình trênxem ngoại hạng anh, khi tạo ra instruction, đã sử dụng "tip" có tính chất "sáng tạo", điều này khuyến khích LLM (Language Model) đưa ra các instruction có tính đổi mới và sáng tạo hơn. Hơn nữa, việc áp dụng tip này không chỉ giúp nâng cao chất lượng output mà còn mở ra nhiều khả năng mới trong cách tiếp cận vấn đề.
[[ ## proposed_instruction ## ]]
Giá trị của trường này chính là chỉ dẫn cuối cùng được tạo ra dưới sự hướng dẫn.
Sau khi thực hiện hoàn chỉnh Bước 2mua thẻ trực tuyến, tập ứng viên chỉ dẫn được tạo ra như sau:
Cũng giống như trước đóxem ngoại hạng anh, giải thích đơn giản về kết quả trên hình:
Kết quả của instruction_candidates cho thấy
rag
Chương trình chỉ có một mô-đun (thực chất là
dspy.ChainOfThought
Bạn có thể thấy ví dụ dưới đâyxem ngoại hạng anh, nơi mà số hiệu được gán là 0 và bước 2 của mô-đun này đã tạo ra 5 hướng dẫn ứng viên tiềm năng.
Trong hình ảnhxem ngoại hạng anh, các dòng phía sau lần lượt trình bày nội dung cụ thể của 5 instruction này. Có thể thấy rằng chúng có sự khác biệt đáng kể trong cách diễn đạt.
Bước 3: Lọc tổ hợp few-shot và chỉ dẫn tốt nhất 。
Sau hai bước đầu tiênxem ngoại hạng anh, bộ tối ưu đã tạo ra 5 ứng cử viên cho câu lệnh instruction và 5 tập hợp few-shot (mỗi tập hợp bao gồm 2 ví dụ). Bước cuối cùng này, bộ tối ưu sẽ kết hợp ngẫu nhiên các câu lệnh instruction với các tập hợp few-shot và chọn ra sự kết hợp có điểm đánh giá Evaluate cao nhất, từ đó tìm ra chương trình tối ưu nhất. Bên cạnh đó, quá trình này không chỉ đơn thuần là một phép thử ngẫu nhiên mà còn được điều chỉnh dựa trên các thông số đã được lập trình sẵn. Điều này giúp tối ưu hóa hiệu suất của chương trình một cách hiệu quả hơn, đảm bảo rằng lựa chọn cuối cùng không chỉ phụ thuộc vào may mắn mà còn dựa trên nền tảng thuật toán vững chắc.
Quá trình này có phần tương tự như việc tối ưu hóa tham số siêu (hyperparameter optimization) trong học máy truyền thống. Trong DSPymua thẻ trực tuyến, bước này được thực hiện bằng cách sử dụng một framework nguồn mở có tên là Optuna [5]. Optuna không chỉ giúp tự động hóa quá trình tìm kiếm giá trị tối ưu cho các tham số mà còn cung cấp nhiều thuật toán thông minh để tối đa hóa hiệu quả của mô hình, từ đó làm nổi bật khả năng linh hoạt và mạnh mẽ của nền tảng này.
Dưới đây là nhật ký thực thi của quá trình này:
Dựa trên biểu đồ phía trêntỉ lệ cược, chương trình đã thực hiện tổng cộng 7 lần thử nghiệm tối ưu hóa (trial), với điểm đánh giá ban đầu là 52,73 và tăng lên đến 53,5 sau các lần thử. Do hạn chế về sức mạnh tính toán, cấu hình cụ thể cũng như nhiều yếu tố khác, sự cải thiện tổng thể không quá nổi bật. Tuy nhiên, mục đích chính của bài viết này là nhằm trình bày toàn bộ quy trình hoạt động của DSPy, vì vậy việc tối ưu hóa sâu hơn chưa được xem xét tại thời điểm này.
chương trình tối ưu
Cho đến nayxem ngoại hạng anh, chúng ta đã cơ bản làm rõ các khái niệm cơ bản của chương trình DSPy cũng như quá trình hoạt động của một chương trình DSPy điển hình. Trong bài viết tiếp theo, chúng tôi sẽ đi sâu hơn vào phân tích, bao gồm sự khác biệt giữa DSPy và APE, những bài học mà cách tiếp cận kỹ thuật này mang lại cho chúng ta, cũng như một số vấn đề có thể xuất hiện trong quá trình áp dụng.
(Kết thúc phần chínhmua thẻ trực tuyến, tiếp theo ở phần sau)
Các bài viết được chọn lọc khác :