Nels Lindahl — Functional Journal

A weblog created by Dr. Nels Lindahl featuring writings and thoughts…

Year: 2023

  • Silently posting private mode content

    It’s pretty much consistently true that I can (and generally do) entertain myself on a daily basis without a lot of effort. A world of knowledge exists and people are churning out content at a pretty high rate. That is not entirely a good thing when I should be focused on research and writing. Right now I’m looking at my five year writing plan and thinking about just what needs to get done within that span. To that end, I renewed my Overleaf subscription and started working on drafting up some articles that I have pretty much researched, outlined, and left otherwise incomplete for years. 

    Today marks the first day in the new plan where I just moved all the content over to a private mode within WordPress. I’m still going to continue to blog on my own and just not share the content out widely with the world. This might seem like a strange plan of action to continue to write and make content and then just leave it hidden within the dustbin of weblog storage for posterity or really until somebody decomissings the server and the bits of content become nothing. That is probably just fine in the grand scheme of things. It’s entirely possible that I’ll flip the content back to visible at some point.

  • Thinking about buying a printer

    Yesterday, I jumped back into what was the wild wild west of blogging. After a couple decades of being an activity the world of blogging is really just a flood of small media outlets. Some eventually gained some attention and others did not. For the most part you have a lot of aggregators pulling links together and presenting them to people by algorithm. All those original sources of the links exist and those sites are up and running. Some of them have actual physical newspapers, magazines, or are purely digital forums. My words within this blog don’t really go anywhere. I have turned off most of the echo into social media. That entire effort is to just allow the possibility of writing out loud. I’m writing for an audience of consideration at the moment as these thoughts are written down. 

    Sitting down and spending a few minutes writing at the start of the day is something that I have done for years, but generally I have not just posted that content every day. That is an action that sort of stopped some time ago for a particular reason. A lot of my writing notes are a reflection of the moment and don’t really have an ongoing directional contribution to anything. It’s that lack of contribution to something beyond my general notion that writing should be additive overall instead of just adjacently observational. Yes, I could be writing more on a daily basis. No, you cannot really go back and recapture that writing time. Both of those things are going to be true and just writing about them (I’m aware I’m doing that now) won’t change the direction of the ship. Writing about the process of navigating a ship for days on end won’t make a directional change in the pathing. 

    You may have guessed from the post title today that I have been thinking about buying a printer. It’s probably not something that needs to be purchased. Over the last week I have spent some time considering color laser printers to print articles out and store them or something. I’ll admit that generally reading something that is printed out causes me to consider things a little bit differently. Some of the better papers that I want to keep for future reference are something that I want to print and annotate.

  • A weekly block of research and writing

    Each day when I wake up time could be devoted to writing. My knowledge, skills, and abilities need to be applied to something each day. I’m sitting at this crossroads where my attention is pulled between multiple things. It would be better to go all in on something. Bringing all my focus to one thing and really working on it would be a good path forward. It would be a clean and clear path forward. Perhaps the easiest thing to do would be to go back to my three folder plan for publishing papers. That plan involves keeping three classic manilla folders with in progress academic papers. Based on the day and the time one of those folders would be the focus of the day and I would try to complete academic works to ultimately advance to the next paper. That conveyer belt of ideas is one way to keep moving things forward. 

    Over the last 3 years I have used an alternative format to that three folder strategy for writing academic papers. I moved to a plan where I keep 5 research notes in planning or review. Obviously, based on empirical evidence from that strategy it radically increased my writing output and ultimately my pace of learning. Within that set of heuristics it was a very successful pivot. Being all in on completing a weekly block of research and writing is probably not a path to an end state or an ultimate journey. For the most part it’s a clearly definable process that is both definable and repeatable. 

    Engaging in the process of daily writing and publishing a blog is really just about being reflective. For the most part, that type of writing has nothing to stand on or no basis for being recalled later for having value. It’s a reflection of what happened and as the written word it remains a form of art for what it is and what it will always end up being. That being said, it is probably better to spend time creating blocks of research notes or ultimately stacking those into articles, manuscripts, or other longer forms of written communication.

    Weblog update: After writing those last 3 paragraphs, I went into the settings for the weblog here and turned off the Newsletter option under Jetpack. That should reduce the sharing of this weblog content and ultimately allow it to exist as it does for the purpose of being a place to think out loud. I have two Substack newsletters that are written to exist outside the process of thinking out loud. They are structured content meant to be consumed in a different way.

  • Knowledge graphs vs. vector databases

    Thank you for tuning in to this audio only podcast presentation. This is week 144 of The Lindahl Letter publication. A new edition arrives every Friday. This week the topic under consideration for The Lindahl Letter is, “Knowledge graphs vs. vector databases.”

    Don’t panic, the Google Scholar searches are coming in fast and furious on this one [1]. We had a footnote in the first sentence today. Megan Tomlin writing over at neo4j had probably the best one line definition of the difference by noting that knowledge graphs are going to be in the human readable data camp and vector databases are more of a black box [2]. I actually think that eventually one super large knowledge graph will emerge and be the underpinning of all of this, but that has not happened yet given that the largest one in existence Google holds will always remain proprietary. 

    Combining two LLMs… right now you could call them one after another, but I’m not finding an easy way to pool them into a single model. I wanted to just say to my computer, “use Baysian pooling to combine the most popular LLMs from Hugging Face,” but yeah that is not an available command at the moment. A lot of incompatible content is being generated in the vector database space. People are stacking LLMs and working in sequence or making parallel calls to multiple-models. What I was very curious about was how to go about the process of merging LLMs, combining LLMs, actual model merges, ingestion of models, or even a method to merge transformers. I know that is a tall order, but it is one that would take so much already spent computing cost and move it from sunk to additive in terms of value. 

    A few papers exist on this, but they are not exactly solutions to this problem. 

    Jiang, D., Ren, X., & Lin, B. Y. (2023). LLM-Blender: Ensembling Large Language Models with Pairwise Ranking and Generative Fusion. arXiv preprint arXiv:2306.02561. https://arxiv.org/pdf/2306.02561.pdf  you can see more content related to this one here https://yuchenlin.xyz/LLM-Blender/

    Wu, Q., Bansal, G., Zhang, J., Wu, Y., Zhang, S., Zhu, E., … & Wang, C. (2023). AutoGen: Enabling next-gen LLM applications via multi-agent conversation framework. arXiv preprint arXiv:2308.08155. https://arxiv.org/pdf/2308.08155.pdf 

    Chan, C. M., Chen, W., Su, Y., Yu, J., Xue, W., Zhang, S., … & Liu, Z. (2023). Chateval: Towards better llm-based evaluators through multi-agent debate. arXiv preprint arXiv:2308.07201. https://arxiv.org/pdf/2308.07201.pdf 

    Most of the academic discussions and even the cutting edge papers like AutoGen are about orchestration of models instead of merging, combining, or ingestion of many models into one. I did find a discussion on Reddit from earlier this year about how to merge the weights of transformers [3]. It’s interesting what things end up on reddit. Sadly that subreddit is closed due to a dispute over 3rd party plugins. 

    Exploration into merging and combining Large Language Models (LLMs) is indeed at the frontier of machine learning research. While academic papers like “LLM-Blender” and “AutoGen” offer different perspectives, they primarily focus on ensembling and orchestration rather than true model merging or ingestion. The challenge lies in the inherent complexities and potential incompatibilities when attempting to merge these highly sophisticated models.

    The quest for effectively pooling LLMs into a single model or merging transformers is a journey intertwined with both theoretical and practical challenges. Bridging the gap between the human-readable data realm of knowledge graphs and the more opaque vector database space, as outlined in the beginning of this podcast, highlights the broader context in which these challenges reside. It also underscores the necessity for a multidisciplinary approach, engaging both academic researchers and the online tech community, to advance the state of the art in this domain.

    In the upcoming weeks, we will delve deeper into the community-driven solutions, and explore the potential of open-source projects in advancing the model merging discourse. Stay tuned to The Lindahl Letter for a thorough exploration of these engaging topics.

    Footnotes:

    [1] https://scholar.google.com/scholar?hl=en&as_sdt=0%2C6&q=knowledge+graph+vector+database&btnG= 

    [2] https://neo4j.com/blog/knowledge-graph-vs-vectordb-for-retrieval-augmented-generation/ 

    [3] https://www.reddit.com/r/MachineLearning/comments/122fj05/is_it_possible_to_merge_transformers_d/ 

    What’s next for The Lindahl Letter? 

    • Week 145: Delphi method & Door-to-door canvassing
    • Week 146: Election simulations & Expert opinions
    • Week 147: Bayesian Models
    • Week 148: Running Auto-GPT on election models
    • Week 149: Modern Sentiment Analysis

    If you enjoyed this content, then please take a moment and share it with a friend. If you are new to The Lindahl Letter, then please consider subscribing. New editions arrive every Friday. Thank you and enjoy the week ahead.

  • Synthetic social media analysis

    Thank you for tuning in to this audio only podcast presentation. This is week 143 of The Lindahl Letter publication. A new edition arrives every Friday. This week the topic under consideration for The Lindahl Letter is, “Synthetic social media analysis.”

    After the adventures of last week, I started this writing adventure wanting to try to figure out what people were doing with LangChain and social media. People are both generating content for social media using LLMs and oddly enough repurposing content as well. We have to zoom out for just a second and consider the broader ecosystem of content. In the before-times, people who wanted to astroturf or content farm had some work to do within the content creation space. Now ChatGPT has opened the door and let the power of synthetic content creation loose. You can create personas and just have them generate endless streams of content. People can even download and run models trained for this purpose. It’s something I’m legitimately worried about for this next election cycle. Sometimes I wonder how much content within the modern social media spaces is created artificially. Measuring that is actually pretty difficult. It’s not like organically created content gets a special badge or recognition. 

    For those of you who were interested in finding out insights on any topic with a plugin that works with the OpenAI ChatGPT system then you could take a moment and install “The Yabble ChatGPT Plugin” [1]. Fair warning on this one I had to reduce my 3 plugins down to just Yabble and be pretty explicit in the prompts within ChatGPT to make it do some work. Sadly, I could not just login to Yabble and had to book a demo with them to get access. Stay tuned on that one to get more information on how that system works. I had started by searching out plugins to have ChatGPT analyze social media. This has become easier now with the announcements that OpenAI can openly use Bing search [2]. 

    Outside of searching using any OpenAI tooling like ChatGPT, Google was pretty clear on the reality that what I was really looking for happened to actually be marketing tools. Yeah, I went down the SEO Assistant rabbit hole and it was shocking. So much content exists in this space that is like watching a very full ant farm for the most part. Figuring out where to jump in without getting scammed is probably a questionable decision framework. Whole websites and ecosystems could be synthetically generated pretty quickly. It’s not exactly one click turn key deployments, but it is getting close to that level of content farming.

    I was willing to make the assumption that people who were going to the trouble of making actual plugins for ChatGPT within the OpenAI platform are probably going to be more interesting and maybe are building actual tooling. For those of you who are using ChatGPT with OpenAI and have the plus subscription you just have to open a new chat, expand the plugin area, and scroll down to the plugin store to search for new ones…

    I also did some searches for marketing tools. I’m still struck with the possibility that a lot of content is being created and marketed to people. It’s not the potential flooding of content that becomes so overwhelming that nobody is able to navigate the internet anymore. We are getting very close to the point where it would be entirely possible for the flooding of new content to occur in ways that simply overwhelm everybody and everything with new content. This would be like the explosion of ML/AI papers over the last 5 years, but maybe 10x or 100x even that digital content boom [3].

    Footnotes:

    [1] https://www.yabble.com/chatgpt-plugin

    [2] https://www.reuters.com/technology/openai-says-chatgpt-can-now-browse-internet-2023-09-27/ 

    [3] https://towardsdatascience.com/neurips-conference-historical-data-analysis-e45f7641d232 

    What’s next for The Lindahl Letter? 

    • Week 144: Knowledge graphs vs. vector databases
    • Week 145: Delphi method & Door-to-door canvassing
    • Week 146: Election simulations & Expert opinions
    • Week 147: Bayesian Models
    • Week 148: Running Auto-GPT on election models

    If you enjoyed this content, then please take a moment and share it with a friend. If you are new to The Lindahl Letter, then please consider subscribing. New editions arrive every Friday. Thank you and enjoy the week ahead.

  • Learning LangChain

    Thank you for tuning in to this audio only podcast presentation. This is week 142 of The Lindahl Letter publication. A new edition arrives every Friday. This week the topic under consideration for The Lindahl Letter is, “Learning LangChain.”

    And now it’s time to pivot toward the “Learning LangChain” topic…

    The most fun introduction to LangChain seems to be from DeepLearning.ai with Andrew Ng and Harrison Chase [1]. You can expect to spend a couple of hours to complete the process of watching the videos and absorbing the content. Make sure you use a browser window large enough to support both the jupyter notebook and the video. You are probably going to want these items to run side by side. This course covers models, prompts, parsers, memory, chains, and agents. The part of this learning package that I was the most interested in learning more about was how people are using agents and of course what sort of plugins could that yield as use cases in the generative AI space. Going forward I think agency will be the defining characteristic of the great generative AI adventure. These applications are going to do things for you and some of those use cases are going to be extremely powerful. 

    After that course I wanted to dig in more and decided to go ahead and learn everything I could from the LangChain AI Handbook [2]. This handbook has 6 or 7 chapters depending on how you count things. My favorite part about this learning build is that they are using Colab notebooks for hands-on development during the course of the learning adventure. That is awesome and really lets you get going quickly. A side quest spawned out of that handbook learning which involved starting to use Pinecone in general which was interesting. You can do a lot with the Pinecone including building AI agents and chatbots. 

    I’m going to spend some time working on the udemy course “Develop LLM powered applications with LangChain” later this weekend [3]. You can also find a ton of useful information within the documentation for LangChain including a lot of content about agents [4].

    You might now be wondering what alternatives to LangChain exist… I started looking around at AutoChain [5], Auto-GPT [6], AgentGPT [7], BabyAGI [8], LangDock [9], GradientJ [10], Flowise AI [11], and LlamaIndex [12]. Maybe you could also consider TensorFlow to be an alternative. You can tell from the combination of companies and frameworks being built out here a lot of attention is on the space between LLMs and taking action. Getting to the point of agency or taking action is where these spaces are gaining and maintaining value. 

    Footnotes:

    [1] https://learn.deeplearning.ai/langchain/lesson/1/introduction 

    [2] https://www.pinecone.io/learn/series/langchain/ 

    [3] https://www.udemy.com/course/langchain/

    [4] https://python.langchain.com/docs/modules/agents/ 

    [5] https://github.com/Forethought-Technologies/AutoChain 

    [6] https://github.com/Significant-Gravitas/Auto-GPT

    [7] https://github.com/reworkd/AgentGPT

    [8] https://github.com/miurla/babyagi-ui 

    [9] https://www.langdock.com/ 

    [10] https://gradientj.com/ 

    [11] https://flowiseai.com/ 

    [12] https://www.llamaindex.ai/ 

    What’s next for The Lindahl Letter? 

    • Week 143: Social media analysis
    • Week 144: Knowledge graphs vs. vector databases
    • Week 145: Delphi method & Door-to-door canvassing
    • Week 146: Election simulations & Expert opinions
    • Week 147: Bayesian Models

    If you enjoyed this content, then please take a moment and share it with a friend. If you are new to The Lindahl Letter, then please consider subscribing. New editions arrive every Friday. Thank you and enjoy the week ahead.

  • A new go forward writing model

    Going forward from Monday to Friday I’m going to be writing and publishing over at nels.ai which is powered by Substack as a platform. During the weekends I’ll continue my general academic work and post for the Lindahl Letter. Right now I have 11 posts to write for that academic pursuit to get to the 156 mark and complete my 3 years of posts book.

  • Building generative AI chatbots

    Thank you for tuning in to this audio only podcast presentation. This is week 141 of The Lindahl Letter publication. A new edition arrives every Friday. This week the topic under consideration for The Lindahl Letter is, “Building generative AI chatbots.”

    You can feel the winds of change blowing and the potential of people building out election expert opinion chatbots. Maybe you want to know what they are probably going to use to underpin that sort of effort. If you were going out to build some generative AI chatbots for you might very well use one of the 5 systems we are going to dig into today.

    • Voiceflow – This system may very well be the most prominent of the quick to market AI agent building platforms [1]. I have chatbots deployed to both Civic Honors and my main weblog powered by Voiceflow.
    • LangFlow – You are going to need to join the waitlist for this one to get going [2]. I’m still on the waitlist for this one… 
    • Botpress – Like Voiceflow this system lets you pretty quickly jump into the building process of actual chatbot workflows [3]. To be fair with this one I was not able to build and deploy something into production within minutes, but you could do it pretty darn quickly if you had a sense of what you were trying to accomplish. I built something on Botpress and it was pretty easy to use. After login I clicked answer questions from websites to create a bot. I added both Civic Honors and my main Nels Lindahl domain. They just jumped in and advised me that the knowledge upload was complete. Publishing the bot is not as low friction as the Voiceflow embedding launch point, but it was not super hard to work with after you find the share button.
    • FloWiseAI – You will find this is the first system on the list that will require you to get out of your web browser, stretch a bit, and open the command line to get this one installed with a rather simple “npm install -g flowise” command [4]. I watched some YouTube videos on how to install this one and it almost got me to flip over into Ubuntu Studio. Instead of switching operating systems I elected to just follow the regular Windows installation steps.
    • Stack AI – With this one you are right back into the browser and you are going to see a lot of options to start building new projects [5].

    All of these chatbots built using a variety of generative AI models are generally working within the same theory of building. The conversation is being crafted with a user and some type of exchange with a knowledge base. For the most part the underlying LLM is being used to facilitate the conversational part of the equation while some type of knowledge base is being used to gate, control, and drive the conversation based on something deeper than what the LLM would output alone. It’s an interesting building technique and one that would not have been possible just a couple of years ago, but the times have changed and here we are in this brave new world where people can build, deploy, and be running a generative AI chatbot in a few minutes. It requires some planning about what is being built, you need some type of knowledgebase, and the willingness to learn the building parameters. None of that is a very high bar to pass. This is a low friction and somewhat high reward space for creating conversational interactions. 

    Messing around with all these different chatbot development systems made me think a little bit more about how LangChain is being used and what the underlying technology is ultimately capable of facilitating [6]. To that end I signed up for the LangSmith beta they are building [7]. Sadly enough “LangSmith is still in closed beta” so I’m waiting on access to that one as well. 

    During the course of this last week I have been learning more and more about how to build and deploy chatbots that take advantage of LLMs and other generative AI technologies. I’m pretty sure that the development of agency to machine learn models is going to strap rocket boosters to the next stage of technological deployment. Maybe you are thinking that is hyperbole… don’t worry or panic, but you are very soon going to be able to ask these agents to do something and they will be able to execute more and more complex actions. That is the essence of agency within the deployment of these chatbots. It’s a very big deal in terms of people doing basic task automation and it may very well introduce a distinct change to how business is conducted by radically increasing productivity. 

    Footnotes:

    [1] https://www.voiceflow.com/ 

    [2] https://www.langflow.org/ 

    [3] https://botpress.com/ 

    [4] https://flowiseai.com/ 

    [5] https://www.stack-ai.com/ 

    [6] https://www.langchain.com/ 

    [7] https://www.langchain.com/langsmith 

    What’s next for The Lindahl Letter? 

    • Week 142: Learning LangChain
    • Week 143: Social media analysis
    • Week 144: Knowledge graphs vs. vector databases
    • Week 145: Delphi method & door to door canvasing
    • Week 146: Election simulations

    If you enjoyed this content, then please take a moment and share it with a friend. If you are new to The Lindahl Letter, then please consider subscribing. New editions arrive every Friday. Thank you and enjoy the week ahead.

  • Doing a bit of learning

    Let’s recap from yesterday:

    I was able to work on a few Salesforce Trailhead badges. I’m now at 25,800 points. That means only 9,200 points stand between me and reaching the Expeditioner rank. At some point, I’m going to have to spend a little more time on some of the more complex higher point badges.

    Yesterday, I finished 35% of the Foundations of Cybersecurity course on Coursera. I’ll jump into the next week of that course today. 

    Five big things for 10/5/23:

    1. I need to spend a couple of hours working on an Agile certificate
    2. Build something on LangSmith
    3. MPSA
    4. Substack Block
    5. Cybersecurity course

    I jumped into the “Building ChatGPT Plugins: How They Work and How to Use Them

    Welcome to ChatGPT plugins” course on LinkedIn.

  • All those recaps seem to add up

    My weblog posts are going to have a bit of continuity from day to day. It’s going to be about accountability and focus. Getting to that point will be about digging into the 5 big things for today and then spending a few moments thinking about how the previous day went as a sort of retrospective element to the start of my day. 

    Let’s recap from yesterday:

    Throughout this entire week I have been completing a bunch of Salesforce badges. That is going to continue for the next few weeks. My big plan for the month of October is to get to climb the ranks of Salesforce Trailblazers to the rank of Ranger. 

    That post for nels.ai was completed and should go up today. 

    I still need to finish up week 1 of the Foundation of Cybersecurity course by Google on Coursera. 

    10 weeks of survey data have been collected over at the nelsx domain. I downloaded all the information necessary to work out a paper submission for the MPSA by 10/9. I need to write out about 2,250 characters to complete the submission.

    Five big things for 10/4/2023:

    1. I’m working on Foundation of Cybersecurity course by Google on Coursera
    2. On the SFDC front I have 23,525 points and need to earn 11,475 more points to reach Expeditioner rank.
    3. Learn about the LangSmith Beta
    4. Work on MPSA submission
    5. Work on a content block for Substack