Friday, May 26, 2023

Course Summary - DeepLearning.AI - ChatGPT Prompt Engineering for Developers

  • TL;DR

    • Enjoyed learning about the emerging field of Prompt Engineering via this course taught by Andrew Ng ( DeepLearning.AI ) and Isa Fulford ( OpenAI ).

    ----------------------------------------------------------------------------------------------------------

      ----------------------------------------------------------------------------------------------------------

        • Chapters

          • Introduction
          • Guidelines
          • Iterative
          • Summarizing
          • Inferring

            • Extracting Key topic(s)
            • Extracting Sentiment, and Sentiment score(s)
            • Executing multiple task(s) with a single prompt

          • Transforming

            • Language translation
            • Inferring a language
            • Multiple translations
            • Universal translator
              • Multiple input and output language(s) are supported
            • Tone transformation
              • Make some text more / less compelling
              • Make some text more / less formal
            • Translate across format(s)
              • For example JSON to HTML
            • Spellcheck / Grammar check

          • Expanding

            • Temperature input parameter can be used to control the level of randomness of the response.
              • For more 'production' grade applications, it is recommended to set this to 0.

          • Chatbot
            • In this mode we can setup the context for a conversation using a system prompt, and carry it forward.

            • Model(s) are stateless, and for carrying out a conversation, all prior context must be provided at the time of the interaction.

            • In a few line(s) of a Code, a full-blown Pizza Order Entry Chatbot was written, which accurately interacted with the user and then captured the order.

          • Conclusion

          ----------------------------------------------------------------------------------------------------------

            • Important Terms

              • Zero-Shot Learning

              ----------------------------------------------------------------------------------------------------------


                • Key Learning(s)

                  • With GPT it is possible to have a single model that performs multiple language task(s), in a matter of a few minute(s). 
                  • Prompt Engineering
                    • Writing clear and specific instructions is important.
                    • OPEN AI API can be used for programmatically interfacing with the GPT model(s).
                    • Delimiters are important to identify different parts of your prompt.
                    • Output(s) can be easily modified to different format(s).
                      • JSON Output can be very helpful for ingestion into program(s).
                  • Learnt following interesting Python Package(s):  
                    • Redline(s)
                      • It can be used to programmatically execute diff(s) between two pieces of text, and display it in a visually clean manner. 
                    • Panel
                      • Can be used to rapidly spin-up user interface(s), for example, within Jupyter Notebooks. 

                  ----------------------------------------------------------------------------------------------------------

                Monday, May 22, 2023

                Restarting Android Development

                •  Off-late, I have developed some level of interest in getting back into the Mobile development space. 
                • Just like when I started originally, I am starting it off with Android development:
                  • This is primarily driven from the relatively open nature of Android development, as well as the ready availability of hardware for testing. 
                • My short-term goals are to be able to build, test and deploy some applications which are able to perform on-Device Machine Learning tasks. 
                • I also want to understand the impact of Quantization, and mobile-optimization techniques on real-world performance. 

                More to come !