Dil modeli istemlerini iyileştirme
İstemler, sorgularınıza veya yönergelerinize göre yanıtları şekillendiren, büyük dil modellerine (LLM) verdiğiniz konuşma ipuçlarıdır. Örneğin, LLM'lerden bir cümleyi İngilizceden Fransızcaya dönüştürmelerini veya bir metnin özetini oluşturmalarını isteyebilirsiniz.
Önceki ünitede, giriş dizesi olarak istemi oluşturdunuz:
string input = @"I'm a vegan in search of new recipes. I love spicy food!
Can you give me a list of breakfast recipes that are vegan friendly?";
input = """I'm a vegan in search of new recipes. I love spicy food!
Can you give me a list of breakfast recipes that are vegan friendly?"""
Bu istemde, yönergelerle birlikte dil modeline içerik sağlarsınız. İçerik, modelin kullanıcıyla daha ilgili sonuçlar oluşturmasına yardımcı olur.
İstem, modeli istenen yanıtı oluşturmada yönlendirmek için net, bağlam açısından zengin yönergeler oluşturmayı içerir. Etkili bir istem oluşturmak için hassaslık ve netlik önemlidir. Doğru sonuçlar için denemeler yapmanız ve istemlerinizi ayarlamanız gerekebilir.
Modeli yönlendirmek için örnekleri kullanma
Yanıta yol göstermesine yardımcı olmak için istemlerinize örnekler ekleyebilirsiniz. Örnekler, yönergelerden önce veya sonra gelebilir. İstem örnekleri, birebir tamamlamalar içerip içermediklerine bağlı olarak sıfır örnekli öğrenme veya az örnekli öğrenme olarak sınıflandırılır. Ayrıntılı tamamlama, istemde yer alan belirli, önceden tanımlanmış bir yanıt örneğidir. Yapay zekadan tam olarak ne tür bir yanıt beklendiğini gösterir( kelime kelime). Bu örnekler, yapay zekanın sağlanan tamamlamaların yapısını, stilini veya tonunu taklit etmelerini kolaylaştırır.
Sıfır çekim öğrenme
Sıfır çekim öğrenme ile yönergeleri eklersiniz ancak ayrıntılı tamamlamaları dışlarsınız. Sıfır çekim istemleri, bir yanıt oluşturmak için modelin mevcut bilgilerini kullanır. Sıfır çekim istemleri, genel bir yanıt istediğinizde veya görev basit olduğunda ve çok fazla rehberlik gerektirmediğinde yararlıdır. Sıfır çekim istem, mevcut bilgilere bağlı olduğundan kaynak açısından daha az yoğundur.
Aşağıda modele kullanıcı girişini değerlendirmesini, kullanıcının amacını belirlemesini ve çıkışın önüne "Amaç: " ifadesinin eklenmesini söyleyen sıfır atışlı bir istem örneği verilmiştir.
string prompt = $"""
Instructions: What is the intent of this request?
If you don't know the intent, don't guess; instead respond with "Unknown".
Choices: SendEmail, SendMessage, CompleteTask, CreateDocument, Unknown.
User Input: {request}
Intent:
""";
prompt = f"""
Instructions: What is the intent of this request?
If you don't know the intent, don't guess; instead respond with "Unknown".
Choices: SendEmail, SendMessage, CompleteTask, CreateDocument, Unknown.
User Input: {request}
Intent:
"""
Az örnekle öğrenme
Az denemeli öğrenmeyle, modelin yanıtını yönlendirmeye yardımcı olmak için isteminize ayrıntılı tamamlamalar eklersiniz. Genellikle bir-beş örnek eklenir. Örnekler, istediğiniz yanıt yapısını, stilini veya türünü gösterir. Az denemeli öğrenme daha fazla belirteç üretir ve ayrıca modelin bilgisini güncelleştirmesine neden olur. Az örnek istemi, özellikle belirsizliği azaltmak ve sonuçları hedeflenen şekilde hizalamak için değerlidir.
Aşağıda modele kullanıcı girişini değerlendirmesini, kullanıcının amacını belirlemesini ve çıkışın önüne "Amaç: " ifadesinin eklenmesini söyleyen birkaç aşamalı bir istem örneği verilmiştir.
string prompt = $"""
Instructions: What is the intent of this request?
If you don't know the intent, don't guess; instead respond with "Unknown".
Choices: SendEmail, SendMessage, CompleteTask, CreateDocument, Unknown.
User Input: Can you send a very quick approval to the marketing team?
Intent: SendMessage
User Input: Can you send the full update to the marketing team?
Intent: SendEmail
User Input: {request}
Intent:
""";
prompt = f"""
Instructions: What is the intent of this request?
If you don't know the intent, don't guess; instead respond with "Unknown".
Choices: SendEmail, SendMessage, CompleteTask, CreateDocument, Unknown.
User Input: Can you send a very quick approval to the marketing team?
Intent: SendMessage
User Input: Can you send the full update to the marketing team?
Intent: SendEmail
User Input: {request}
Intent:
"""
İstemlerde kişi kullanma
İstemlerde kişilik atama, modelin yanıt oluştururken belirli bir bakış açısı, ton veya uzmanlık benimsemesi için rehberlik etmek amacıyla kullanılan bir tekniktir. Kişilikler, çıktıyı görevin bağlamı veya hedef kitlesine daha uygun olacak şekilde uyarlamanıza olanak sağlar. Kişilik, bir mesleği simüle etmek veya ses tonunu yansıtmak için yanıta ihtiyacınız olduğunda kullanışlıdır. Kişi atamak için, isteminizde rol tanımını açıkça açıklamanız gerekir.
Kişi atayan bir istem örneği aşağıda verilmiştir:
string prompt = $"""
You are a highly experienced software engineer. Explain the concept of asynchronous programming to a beginner.
""";
prompt = """
You are a highly experienced software engineer. Explain the concept of asynchronous programming to a beginner.
"""
Düşünce zinciri tetikleme
Düşünce zinciri sorulduğunda, modelden adım adım bir görev gerçekleştirmesini ve her adımı ve sonucunu çıktıda sırasıyla göstermesini istersiniz. Zincir istemleri, bazı yürütme planlamalarını modele boşaltarak istem mühendisliğini basitleştirebilir. Zincir istemleri, daha fazla çabaya nereye odaklanabileceğinizi bilmeniz için sorunları belirli bir adımla yalıtmanızı kolaylaştırır. Modele düşünce zincirini dahil etme talimatı verebilir veya örnekleri kullanarak modelin görevleri nasıl ayırabileceğini gösterebilirsiniz.
Aşağıda modele adım adım mantığı açıklama talimatı veren bir örnek verilmiştir:
string prompt = $"""
A farmer has 150 apples and wants to sell them in baskets. Each basket can hold 12 apples. If any apples remain after filling as many baskets as possible, the farmer will eat them. How many apples will the farmer eat?
Instructions: Explain your reasoning step by step before providing the answer.
""";
prompt = """
A farmer has 150 apples and wants to sell them in baskets. Each basket can hold 12 apples. If any apples remain after filling as many baskets as possible, the farmer will eat them. How many apples will the farmer eat?
Instructions: Explain your reasoning step by step before providing the answer.
"""
Aşağıda modele tamamlama adımlarını açıklayan bir örnek verilmiştir:
prompt = $"""
Instructions: A farmer has 150 apples and wants to sell them in baskets. Each basket can hold 12 apples. If any apples remain after filling as many baskets as possible, the farmer will eat them. How many apples will the farmer eat?
First, calculate how many full baskets the farmer can make by dividing the total apples by the apples per basket:
1.
Next, subtract the number of apples used in the baskets from the total number of apples to find the remainder:
1.
"Finally, the farmer will eat the remaining apples:
1.
""";
prompt = """
Instructions: A farmer has 150 apples and wants to sell them in baskets. Each basket can hold 12 apples. If any apples remain after filling as many baskets as possible, the farmer will eat them. How many apples will the farmer eat?
First, calculate how many full baskets the farmer can make by dividing the total apples by the apples per basket:
1.
Next, subtract the number of apples used in the baskets from the total number of apples to find the remainder:
1.
Finally, the farmer will eat the remaining apples:
1.
"""
Bu istem çıktısı aşağıdaki çıkışa benzemelidir:
Divide 150 by 12 to find the number of full baskets the farmer can make: 150 / 12 = 12.5 full baskets
The farmer can make 12 full baskets with 12 apples each.
Multiply 12 full baskets by 12 apples per basket to find the number of apples used in the baskets: 12 * 12 = 144 apples
Subtract the number of apples used in the baskets from the total number of apples: 150 - 144 = 6 apples
The farmer will eat 6 remaining apples.
Komut istemleri oluşturma ipuçları
Belirli Girişler Belirli Çıkışlar Verir: LLM'ler aldıkları girişe göre yanıt verir. İstenen çıkışı elde etmek için net ve belirli istemler oluşturmak çok önemlidir.
Deneme Anahtarıdır: Modelin nasıl yorumlanıp yanıt oluşturabileceğini anlamak için farklı istemleri yinelemeniz ve denemeniz gerekebilir. Küçük ayarlamalar, sonuçlarda önemli değişikliklere yol açabilir.
Bağlam Önemlidir: LLM'ler, istemde sağlanan bağlamı dikkate alır. Bağlamın iyi tanımlandığından ve doğru ve tutarlı yanıtlar elde etmek için uygun olduğundan emin olmalısınız.
Belirsizliği ele alın: LLM'lerin belirsiz sorgularla boğuşabileceğini unutmayın. Belirsiz veya beklenmeyen sonuçlardan kaçınmak için bağlam veya yapı sağlayın.
İstemlerin Uzunluğu: LLM'ler hem kısa hem de uzun istemleri işleyebilirken, kısalık ve netlik arasındaki dengeyi göz önünde bulundurmalısınız. İstem uzunluğuyla denemeler, en uygun dengeyi bulmanıza yardımcı olabilir.
Etkili istemler oluşturmak için netlik, hassasiyet ve düşünceli tasarım gerekir. Sıfır çekim ve az çekim öğrenme, kişilik atamaları ve düşünce zinciri istemleri gibi teknikler yanıtların kalitesini ve ilgi düzeyini artırabilir. Net yönergeler, iyi tanımlanmış bağlam ve gerektiğinde örnekler sağlayarak modele ince ayarlı ilgili yanıtlar oluşturma konusunda yol gösterebilirsiniz. En iyi sonuçları elde etmek için istemlerinizi denemeyi ve geliştirmeyi unutmayın.