AI/Machine Learning    

 

 

 

Prelude

When I started writing this note on Jan 9, 2023, I just intended to write a small note on a use case of utilizing chatGPT as a programming tool for java script. But as chatGPT functionality evolves and my own use case of utilizing AI get extended, the scope of this note gets extended as well. In stead of writing separate notes for my extended use case(e.g, utilizing AI for other programging language, e.g, Python) and for utilizing other AI model (e.g, claude.ai), I decided to expand the focus of this note encompassing my experience of using AI in my daily life.

Still the major focus of this note will be mostly about utilizing AI for programming, but various other small topics around my personal experience of AI will be added to this note.

Learning from AI/chatGPT  

I think one of the biggest topic for the last few month (probably even now as of now Jan 2023) would be about chatGPT. I am not going to talk about what is chatGPT here since you would see a lot of articles and YouTubes about it. What I am trying to do is in a series of notes are to use chatGPT myself in a specific area and see myself how far it can go. For the topic, I picked up javascript for the trial.

  • I know what Javascript is and have used a little bit, but not at the expert level at all. I means there are still a lot of things to be learned and have enough motivation to continuously use chatGPT.
  • Recently I came to a situation where I decided to apply javascript that are related to my work (not the main job, but at least in 'good to know' kind of situation). So I would try chatGPT with more of practical examples (practical at least to me).

NOTE : I got access to chatGPT (GPT 4) on Mar 15 2023 by subscribing chatGPT Pro. In short, the quality and stability of chatGPT (GPT 4) is much better than chatGPT (GPT 3.5)

NOTE : All my experience with chatGPT (GPT 3.5) was based on free version (From late Nov 2022 to Mar 14 2023) and my experience with chatGPT (GPT 4) is based on chatGPT Pro (monthly subscription) from Mar 15 2023.

Followings are the topics and my personal opinion/tips while I am playing with the chatGPT

How we learned and how we will learn ?

When I am trying to a new language I usually go through following process and I think many people would go through similar procedure.

    i) find a sample code in internet for the simplest form of the application or a component of the application that I want to create

    ii) run the code

    iii) if the code does not run (for example, throwing a bunch of errors), find a new example or try to debug it myself.

    iv) (if it runs) try to understand the meaning / syntax of API functions used in the sample code

    v) make some changes in the sample code to fine tune the result to be closer to what I want or to have clearer understanding on the usage of API function.

    vi) modify the code or put additional code to make it better fit for my application.

When I was learning a language before we have have google as we do, I had to rely on various books for step 1 and there was not guarantee that the book I bought have the sample code that I want. So I had to learn whatever the book wants to teach and apply the knowledge for my own purpose and create the sample code myself. This kind of learning from book took huge amount of time and effort.

I has been blessing to have such a powerful search engines on internet like Google and various tutorials from so many authors. I could pass the step i) so easily and without any cost.

And then try running the code (step ii), but in many cases where the code just throw bunch of errors (step iii). In many cass, the sample code misses the pre-requisite part or it was writen for much older version. Debugging this kind of code myself would be a big pain, so usually decided to find other examples.

Even though internet helped a lot with these steps i)~iii) comparing to the printed books, it still demand huge amount of time and effort.

Then I came across a chatbot called chatGPT as soon as it became public (Nov 2022) and played it with various topics. Finally I wanted to try to use it as my personal tutor for learning a new language, Javascript. Javascript is not a new tool for me, but I haven't used it seriously before. The result was super impressive.

First, I don't have to spend any time for step i). I only had to spend a couple of minutes to clearify my own idea on the example code that I want to get and request the chatGPT to create and I get the code within a minuite.

Second, as far as I tried up until now, I haven't seen many cases where the code didn't run. In most case it runs even though the outcome does not perfectly what I expected.  Even when I came across rare cases where the code end up with error messages, I just copy the error message and put it into chatGPT and ask for fix. Then it prints out not only the revised code but also the root cause of the error.

In short, chatGPT makes the required time and effor for step i)~iii) near to Zero. This used to be the most demanding step when I was learning from textbook or from Googling.

Even better, chatGPT helped a lot for the remaining steps especially for step v) and vi). I just tell it "add this and this kind of procedure to the previous code" or "rewrite the code using this kind of component instead of using that kind" etc.

Simply put, my learning process for a new language has changed illustrated below.

Examples of learning from chatGPT and others

Followings are the list of the notes that I wrote based on dialogue with chatGPT and just a little bit of manual modification by myself.

At the very early stage, I mostly tried on Javascript and then switched to Python. Since mid 2023, my work with chatGPT has been only with Python. I personally am more satisfied with chatGPT for Python comparing to any other language.

The list shown here are a list of toy project that I did and I can share in public, there are many more things that I have been trying that are not shared in this list.

Javascript

Python

Possible Limitations, Challenges and Workaround

For now, I am so impressed by this chat bot and have nearly Zero complaints considering my expectation from regular chatBots that I have experienced before, I wouldn't say that chatGPT is perfect. I am aware that it is still in test phase and continue to improve, but I think it would be beneficial to share some restrictions/limitation that I have experienced and how I worked around those challenges.

NOTE : With chatGPT (GPT4) that I got access on Mar 15 2023, I noticed huge improvement in terms of most of these challenges even though it may not remove all the limitations and challenges.

Instability with long code :  If you request something that would produce too long code, I saw many cases where the reply gets hung in the middle of printing. I am not sure if this is because the generation of the reply itself got hung or only the communication got broken in the middle of the printing.==> This issue seemed to be improved greatly as time goes on. At least I hardly faced this kind of issue around late 2023 and with chatGPT subscription version.

In case of Javascript, chatGPT seems to prefer html, css, script all in single code which results in the long code. So one way to workaround this problem is to ask it to write html, css, script in separate files. Even if you put this request (i.e, write these code into separate files, chatGPT may still try to write everything in the same file. In that case, ask again to write them in separate file.

In some cases, I see the case where the print out hung up while priting single file (e.g, javascript file) when it gets too long. In this case, I usually ask for 'rewrite only this part'... for example, 'rewrite // Draw Grid part' and consolidate all the parts manually.

Insufficient for long code : At least as of now (Dec 2023), every LLM model (e.g, chatGPT, claude.ai) has limited context length(i.e, limited length input prompt and limited length of output tokens). So if you request to write a code that woud need to get longer than the limited token length, you may see various issue like output hungup or uncomplete code etc. The initial release of chatGPT support pretty short token length (around 2K tokens and then 4K). This may be good for most of dialog in human language, but it is definitely not enough for programming.==> This limitation of token length got increased greately upto 16K tokens since Nov 6 2023. This is not yet far from the infinite length, but a huge upgrade comparing the initial release and you may be able to get pretty complicated program without making too much effort to break it down into multiple chunks.

Using different methods for every request : Since chatGPT creates an answer differently depending on context, you may get different way of implementation even with similar request. For example, when you request it to create a table. Sometimes it writes a code in html file using html tag (i.e, <table> </table>) and sometimes it creates a table using javascript (i.e, using document.createElement("table"), document.createElement("tr"); etc). If you prefer any specific style, you can ask something like 'rewrite the code using html tag instead of document.createElement()'.

Chat Context is not remembered long  :  As mentioned before, chatGPT often hang up in the middle of writing the reply. Once it got hung up, you need to restart the chat. Once it restart, all the context you had in previous chat disappears. You may get the completely new reply/new code even when you put the exactly same request.

Besides this, chatGPT does not seem to allow us to continue the chat longer than an hour. So if you don't finish up the coding and refinement within the limited time, you need to restart the chat after some mandatory break. Then you may get the completely different code for the same request and restart all the refinement process from scratch.==> I noticed that this kind of unexpected hang-up is improved greatly with the subscribed version of chatGPT (GPT 4). Even though I have not responding anything for a few hours the connection was still alive. This relieved a lot of my stress and does not need to worry about the disruption of the connection and losing all the context before I get the solution.

Challenges with pyTorch code  : I have not tried extensively at the point of writing this (Feb 7 2023), but I struggled a lot with generating pyTorch code. The outcome was so buggy. Even when I just asked for small revision, chatGPT rewrite the entire code in completely different way causing other bugs. I don't know if this is with pyTorch only or Python code in general. When I tried to generate very simple code like just plotting a function and haven't tried other complex code except pyTorch. I would give up trying any further with pyTorch code until next chatGPT version comes out. (NOTE: This may be because my request/prompt was not so good since I see some successful cases as listed in Reference section. Anyway I would stopped my trial  at this point)==> With chatGPT (GPT 4), the quality and accuracy of the code seems to be improved greatly. I haven't tried the same pyTorch task that I struggled before. Mostly I tried new task (e.g, RNN). Up until now (Apr 11, 2023), I am so satisfied with the quality of the code.

Challenges with Keras code  : As of Feb 8 2023, I got the same problem as in pyTorch code.

Tips

Here goes a list of Tips that I learned and want to share while I was learning Javascript from chatGPT.

Be prepared for the case where the chatGPT hang up : As mentioned above, you would frequently come across this kind of case. There is not way for us (users) to prevent this. The only thing I can do is to try to find some tricks to minimize the impact of this kind of hang up. Followings are a few practice that I makes.

  • Keep your original question/request (e.g, saving it in another text editor etc). As mentioned before, it is not guarateed to have the same result/response even though you put the exact same request, but you may get relatively closer solution to the one you got from the previous chat if you use exact the same request. At least you can save time and effort to type in the request again.
  • If you get the code that you think is pretty fine tuned as you wanted to have, copy those code into another text editor even though it does not perfectly match what you want to get. When the chat session get broken, you may create a new session and provide the saved script as a baseline and contine to refine.

Don't ask for too much at once  : If you ask for too much or too big thing at a time (e.g, write the code for a complete chat application or write the code for doing this or that for whole my thesis' etc). I am pretty sure that the chat would hangs while it is priting out the response. or even when it successfully printed out the initial version of complete code, it would hang up while you are refining the code.

Break down a task (request) into small chunks  : If you don't specifically point out, chatGPT tend to provide your requested code in a single file. For example, if you ask for writing an html with a script doing something, you would get a single long html file with css and javascript embedded in it and this would cause various problems as mentioned above. In many cases, even when I explicitely said to write separate code for html, css, javascript chatGPT often try to put everything in a single html file... so some of the most frequency request that I put during the refinement process for the code are :

  • Rewrite the code so that it produce separate css and java script file
  • Put "//XXXXXX" part into a separate function

Are chatGPT going to replace our job ?

NO, at least for now and probably for near future.  I am talking mostly in the field of software development. I am not a the position to generalize this to every field.  Some reasons behind my answer are as follows :

  • Limitation of the source code length : I haven't see any formal information about the length (e.g, number of lines or number of chatGPT tokens etc) of the source code chatGPT can write out or analyze, but it seems obvious that there is a certain limit as I learn from using it. So there still be human who can break down a given project into a lot of small chunks that can be handled by chatGPT.==> This limitation of token length got increased greately upto 16K tokens since Nov 6 2023. This is not yet far from the infinite length, but a huge upgrade comparing the initial release and you may be able to get pretty complicated program without making too much effort to break it down into multiple chunks.
  • No automatic verification and validation : chatGPT just write out the source code, but it does not run it by itslef and find problems and debug it. This is (will be) the job for human.==> As chatGPT evolves, it started to support automatic verification/validation and debuggin at least for Python in a specific use case. At first, the use case(feature) was called 'Code Interpreter' and then called as 'Advanced Data Analysis' and eventually it is completed integrated into base features of chatGPT subscription version since Nov 6, 2023.
  • Source for training : At least until now, the source of training material for chatGPT is all done by human. It is not like Alphago Zero which learn not from the result of Human competition of GO, but from self-play only. As far as I know, chatGTP still requires all those materials produced by human whether they are program source code or generic knowledge / information. Probably due to this, I see very human-like mistake from the source code that chatGPT produces. For example, just calling a function but forget to define the function... or calling the function at the wrong place etc.

NOTE : Check out the articles in the reference section

Are our jobs 100% safe from chatGPT ?

NO.I know this is the conflicting answers to previous answer. I think the answer would vary depending on which level of programmer you are. I admit that chatGPT can replace very experienced programmer who can implement large scale and complicated program. Even for these experienced programmer, chatGPT can be very helpful for hiking up productivity. Based on my experience, I would not search the answers any more from internet search page if it is about finding out syntax information about a certain API or meaning of error message that I get when I am running a code. For these issues, I am already habituated to ask chatGPT first and go to other search engine only when I fail to get good enough answers from chatGPT.

Some of entry level programming task can be done by chatGPT. This cannot replace all the programmer, but I think it would replace or at least reduce demand for entry level programmer. If you have a development task which require 10 entry level developer, you may complete the task with 6 or 7 persons and ask them use chatGPT for the task.

NOTE : Check out the articles in the reference section

Junior, Senior and AI all working together ?

You might have seen so many opinions about utilizing AI in coding job. Some are optimistic and others are passimistic. I am not trying to say anything about extreme opinion here, like 'AI would completely replace programmers job' or 'it may looks fancy, but it just at the level of toy'. I would suggest you to go through articles in Reference section, most of which shows more balanced opinion of AI-based coding.

Scenario 1 :

What I want to say here is about the possibility of everybody (Junior, Senior engineers and AI working together). One of the idea poping up in my mind as of now (Feb 6 2023) is illustrated below.

(1) the whole process may be initiated by Domain experts (most likely to be senior engineers). He/She can define specific requirements / functionality and describe it in such a way that can be performed by AI coder. This requirement to input to AI coder is called Prompt. Those prompt is stored in Prompt DB. The important skill set for the experts would be Prompt Engineering, of course in addition to domain knowledge.

(2) Then coding experts would pull out a Prompt from the Prompt DB.

(3) Then feed it into AI coder and (4) get the reply (the code) from the AI. It would be unlikely that he/she would get the satisfactory output at a single shot. Part of the reason for the unsatisfactory result may be due to ambiguity of Prompt itself and part of the reason would be due to performance of AI coder and various other factors. Whatever the reason is, the coding experts need to go through many back-and-forth with AI coder until it gets the satisfactory outcome.

(5) During the back and forth, the coding experts would have chances to fine tune the contents of the Prompt. He would update the revised prompt back to the prompt DB. It would be good idea to setup a source management or version controll system (like github, svn etc) to the prompt.

(6) Later the domain experts would pull out the revised prompt and compare it with the original version and update his/her brain. By this process, he/she will further develop the skill set to write Prompt that produce better result by AI coder.

NOTE : The two images in the illustration above are the one that I generated by using AI in Playground.  I must admit that they are far from being a good quality. It is mostly because I am not good at prompting for text to image generation AI. This can be a good example showing how import the prompt is :)

Scenario 2 :

The scenarion that I illustrated above sounds already too good to be true for me. However, just around an year after my first imaginary scenario (as of Jan 03, 2024), it seems that the AI industry and technology is targetting a next goal which is illustrated below. In this scenario, the role of AI get even larger and it can replace human coder as well. With just high level requirement from human, the AI itselft instruct and coordinate various AI coder not only to generate the code but also to troubleshoot / debug the code until the code really works.

NOTE :  In my opinion as of Jan 03, 2024, I think this scenario may sound too futuristic (almost to the level of science fiction). But at least we can see a kind of POC(Proof Of Concept) for this scenario. I think the feature called Code Interpretor (lately renamed to Advanced Data Analysis) in chatGPT gives a good idea on how this scenario is like. It is mainly used for data analysis. If you just upload a data you want to analyze and gives high level instruction for the requirement of the analysis, this feature generate a python code by itself , run/test and debug if there is any problem until the script runs and return the result.

As further information, I asked chatGPT to describe on the capability of this feature(Code Interpretor) and got the reply as follows :

  • Python Execution: It can execute Python code, allowing for a wide range of programming tasks, including data analysis, manipulation, scientific calculations, and more.
  • Stateful Jupyter Notebook Environment: The Python code is run in a stateful Jupyter notebook environment, which means that the state of the variables and the environment is maintained across different code execution requests. This is useful for building upon previous results and performing complex analyses.
  • Data Visualization: It supports data visualization capabilities, enabling the creation of plots, charts, and graphs. This is useful for understanding data trends, patterns, and distributions.
  • Libraries and Packages: The environment includes common data science libraries and packages such as NumPy, Pandas, Matplotlib, and others, providing a robust toolkit for data analysis.
  • File System Access: It has access to a '/mnt/data' drive to save, persist, and retrieve files. This is particularly useful for handling datasets, models, or any file-based output from data analysis tasks.
  • No Internet Access: For security reasons, the environment does not have internet access. This means it can't fetch or interact with online data or APIs directly. However, it can work with any data provided within the session or saved on the accessible drive.
  • Error Handling: It can handle and provide feedback on errors within the code, aiding in debugging and ensuring correct code execution.
  • Multi-step Data Analysis: Given its stateful nature, it can perform multi-step data analysis, where each step builds upon the previous ones, allowing for more complex and comprehensive data investigations.
  • File types: It can process various file types, especially those commonly associated with data analysis tasks. Here are some of the file types it can handle, which is an important part of its capabilities:
    • Text Files: Plain text files (.txt), which are often used for logs or reading raw data.
    • CSV Files: Comma-separated values files (.csv) are widely used for storing tabular data.
    • Excel Files: It can read and write Excel files (.xlsx, .xls) using libraries like Pandas or Openpyxl, which is useful for datasets commonly shared in spreadsheet format.
    • JSON Files: JavaScript Object Notation files (.json) are commonly used for structured data and configurations and can be easily processed.
    • XML Files: eXtensible Markup Language files (.xml) for structured document data.
    • Image Files: For certain types of data analysis, it can process image files (.jpg, .png, etc.), especially in the context of data visualization or initial steps of image processing.
    • Binary Files: It can handle binary files (.bin) or specialized formats, especially if the appropriate Python library for reading the binary format is available.
    • Python Scripts: Python script files (.py) can be executed or used as modules, which is fundamental for any coding and development tasks.
    • Pickle Files: For Python object serialization, it can process pickle files (.pkl), which is useful for saving and loading Python objects.
    • HDF5 Files: Hierarchical Data Format version 5 files (.h5) for complex data collections, often used in academic and industrial environments for storing large quantities of data.
    • SQL Files: It can also interact with databases or SQL dump files (.sql) to some extent, primarily through libraries that enable database operations.

However, I can't say this feature is the completion of the scenario that I illustrated. As of now (Jan 03, 2024) it has many limitation as summarized by chatGPT as below : I am personally interested in seeing how far this feature can go and how soon it can remove these limitations.

  • Single Language Support: The environment only supports Python. This is limiting for users who prefer or require other languages like R for statistical analysis, Julia for high-performance numerical analysis, or even general-purpose languages like JavaScript for web-based interactive visualizations.
  • Library and Framework Limitations: Some specialized tasks might have preferred or more advanced libraries and frameworks in other languages. Users won't be able to leverage those unless they are available in Python.
  • Learning Curve for Non-Python Users: Users proficient in other languages might have to learn Python or translate their knowledge and code, which adds an additional barrier to entry.
  • Focused on Data Analysis: The tool is optimized for data analysis, visualization, and manipulation. While these are broad fields, tasks outside of these areas, such as full-scale web development, real-time data processing, or extensive machine learning model training, might not be suitable due to the computational, time, and environmental constraints.
  • Dataset Size and Complexity: The tool might not handle extremely large datasets or very complex data processing tasks effectively due to memory and time constraints. This limits its use to moderately sized datasets and relatively straightforward analytical tasks.
  • Advanced or Specialized Use Cases: For highly specialized or advanced tasks, such as deep learning, large-scale simulations, or real-time analytics, the environment might not provide the necessary capabilities or resources.
  • Professional vs. Educational Use: While the tool is highly beneficial for learning, experimenting, or moderate-scale analysis, professionals working on high-stakes or large-scale projects might find it limiting and prefer dedicated, more powerful tools and environments.
  • Integration and Deployment: The environment is not designed for integrating with other systems or deploying applications. Therefore, tasks involving application deployment, continuous integration, or extensive system interactions are beyond its scope.
  • No Internet Access: It cannot access the internet, meaning it can't fetch real-time data from APIs, access external databases, or interact with online resources directly.
  • Execution Time Limit: There is a time limit for each code execution request. If a code operation is too complex or takes too long, it might time out, requiring optimization or breaking down into smaller steps.
  • Limited Computational Resources: The available computational power and memory are limited. Large-scale data processing or highly complex operations might not be feasible.
  • File System Access: While it can access a '/mnt/data' drive for file operations, the storage is limited. Large datasets or extensive file operations might not be supported.
  • No Persistent State Across Sessions: The state is maintained only within a single session. If the session ends or is refreshed, the state (variables, loaded data, etc.) is lost.
  • Limited Libraries and Packages: Only a pre-defined set of Python libraries and packages are available. Custom or less common libraries might not be accessible.
  • Security Restrictions: To ensure security and integrity, the system might have restrictions on certain types of code or operations that could be potentially harmful or exploitative.
  • No Real-Time Collaboration: The environment doesn't support real-time collaboration, meaning codes and results can't be shared live within the session with other users.
  • Output Limitations: While it supports data visualization, the complexity and interactivity of the outputs might be limited compared to a dedicated data analysis environment.

Data Flow in the New System. Everything starts from a Prompt

Here I want to overview the data flow (functional flow) while working together with chatGPT (or any other code generation AI). Of course, this is based on my personal view and my person experience utilizing chatGPT for coding for about two month.

The flow that I am thinking of is illustrated as follows. In this flow, I put the prompt DB as the initiator of the whole process and for me it is the core of the process.

The biggest advantage of the Prompt shown here is that all of the prompt is written in Natural Language (Human Language) not in any specific computor language. The prompt written in a natural language has important advantages listed below.

  • Same prompt (requirement) can be utilized for any computer language as it is (or just a little bit of modifiation). Of course, the exactly same prompt may not be able to be used for every computer language because not every computer provide same functionality. For example, you cannot use the promp written for Javascript graphics for SQL.
  • Same prompt (requirement) can be used for any type of AI based coder as long as the coder can generated by the description in natural language.
  • With the same prompt (requirement), you can get the multiple different versions of implementation (coding style). To be honest, this can be a disadvantage as well if you want to have the identical code for every trial as long as the identical prompt is input.

You can generate the code in different computer language for the same functionality in different ways as below :

  • Option 1 : By original prompt. You can simply use the same prompt and ask AI to generate the code for a different computer language
  • Option 2 : You can use a code generated before in a specific computer language and ask AI to convert it into another computer language.

NOTE : Which option would be better ? It depends. Based on my experience up to Feb 2023, I got the impression that chatGPT works a little bit better for a specific computer language comparing to other language. It can be due to current status of training for the AI or due to my prompt itself. Since my prompt would carry a certain degree of ambiguity however much I try to describe as in detail as possible and requires a lot of extra back-and-forth to get the final code that I want to get.  In this case, it may give you better result if you input the pre-verified code and ask AI to convert it to another computer language rather than using the original prompt.

Thoughts after One year !

I have been a daily users of various AI product since the announce of chatGPT (as of Nov 8, 2023). Of course, inspired first by chatGPT and had been focused only on chatGPT for about 10month and then extended to other AI product. Now the list of AI product that I am currently using are

  • chatGPT
  • claude ai
  • GitHub Copilot
  • bing chat
  • bard

The spectrum of my usage is quite wide, but most of my use case and topics are

  • Programming
  • Wireless specification : 3GPP, RFC etc. Comparing my own reading/understanding and AI's understanding
  • Neuroscience : general learning and consulting about specific academic paper
  • Quantum computing : general learning
  • Simple Q&A as a replacement for web search : e.g, linux command, troubleshooting with various PC problems
  • Image generation : I am not an expert with good prompting for high quality image, but my own capability of drawing is near Zero. So whatever the AI comes out is better than nothing for my personal use.

Why so many prodcut you are using ?

It is because there is no single product that is the best fit for everything I want to do and each of the product that I listed above has their own pros and cons. At least for now, I am using chatGPT as a main tool and turn to other solutions depending on topics and situations.

Are you a Pro or Anti AI ?

By nature of myself(personality), I have hardly been adventurous or an early adapter in almost any field. I often label myself as 'worst case man'. My attitude in most case when I face a new technology would say "Hmmm I am not sure.. it may be a hype .. today everybody is talking about it and tomorrow nobody would say anything about it" and has been trying to find faults about it in an effort not to try the new stuff.

However, for chatGPT I was gravitated (absorbed) to it at the very first chat I had on earny Nov 2022. I still don't know what happened to my brain but it seems like my personality was changed somehow (at least for the chatGPT) and I have been everyday user and avid evangelist since then, not only for chatGPT but also for other AI solutions.

I do see many people lose their initial interest to the AI solutions after a short period of playing with it with various reasons. I don't want to list all those various reasons not to adopt (or reluctant to adopt) the new tools. Before I wrote this note, I had chat with chatGPT and Claude ai about the Pro-AI and Anti-AI (or just being doubtful agains AI) and I think those AI itself is capturing well about the opinions from both side. I will leave it to you to try.

Fact sheets

Just a few lines from OpenAI DevDay, Opening Keynote (Nov 6, 2023) would do better than my words.

  • 2 million developers building on OpenAI API
  • over 92% of Fortune 500 companies bulding on OpenAI products
  • 100 million weekly active users

Thoughts after Two years !

This year (as of Nov 27, 2024)  AI has become so tightly integrated into my daily life and work that I can hardly do anything without the help of AI.

The list of AIs that I have used most frequently in 2024 are

  • ChatGPT : As always, this is the first to go for me
  • Google Gemini Pro : At the initial release of this, I was so disappointed and canceled subscription right away, but I saw drastic improvement within just a couple of month and I subscribed again. In many case, Gemini shows more insightful answers. I frequently use this when I want so insightful and intuitional description rather than the list of dry facts.
  • Github Copilot : For coding, I am mostly use GitHub Copilot rather than chatGPT or any other general purpose LLMs. The main reason is that I can revise, extend, modify the specific part without breaking the consistency of other part of the code

Followings are new tools/services that I start using in 2024

  • perflexity.ai
  • Google Notebook LM
  • SearchGPT (new feature of chatGPT)

General Tendencies and Special Events

Followings are general tendencies and a special events that I have observed this year. I asked about this to SearchGPT and cherry picked from the reply.

  • Generative AI's Mainstream Integration: Generative AI technologies have become more accessible, enabling users to create personalized AI applications without extensive technical expertise. Companies like Google and OpenAI have developed user-friendly platforms that allow individuals to customize powerful language models, fostering widespread adoption and innovation.
  • Adoption of Small Language Models (SLMs): The rise of SLMs has addressed challenges associated with large language models, such as high computational resource requirements. SLMs offer efficient performance, making AI applications more accessible and cost-effective for a broader range of users and organizations.
  • AI in Robotics and Automation: Advancements in AI have led to the development of lifelike autonomous robots capable of performing tasks traditionally done by humans. Companies like Tesla are producing affordable humanoid robots, which are expected to impact industries such as aged care, manufacturing, and hazardous labor.
  • AI-Driven Research and Development (R&D): AI technologies are transforming R&D processes by accelerating product development, market research, and testing. This integration reduces costs and time to market, enabling companies to better understand customer needs and drive innovation.
  • Nobel Prizes Recognize AI Contributions: AI's impact on science was underscored when Geoffrey Hinton and John Hopfield received the Nobel Prize in Physics for their foundational work on neural networks. Additionally, Demis Hassabis, John Jumper, and David Baker were awarded the Nobel Prize in Chemistry for developing AlphaFold, an AI system that accurately predicts protein structures, revolutionizing biological research

Any possible License / Legal Issue

To be honest, I haven't pay much attention to this until very recently and just assmed that there might not be a major issues, but after googling and reading a few writings I learned that it might not be as simple as I thought. So I would suggest precaution and do some legal review when you are using the generated code in your project. I think following articles well describes various concerns and issues about this.

I think we will wait long before we will see any conclusion about this issue, but it would be interesting and good learning to chase on this topic too  as a person who is interested in watching how a new revolutionary technology is born, evolve and assimilated into our life. I am putting articles that I happen to search and picked in chronological order to see how this issue unfolds as you read from top to bottom.

YouTube

You would find so many different YouTube video about chatGPT and it may not be necessary for me to make any list for recommendation. But I tried to make a list of videos that are more specifically related to code generation (not only for Javascript, but also for other languages as well). I am trying to list of those video that shows not only generated code but also the result of execution. I am trying not to show only those that gives the best result in single shot. I am trying more to show those cases that shows the entire process of code generation testing starting from 'not so good result' and improve/fine tune the code step by step. There are some videos that is not directly about code generation but giving some insights on application of chatGPT on coding or computer science.

Reference