<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Bestony</title>
    <description>The latest articles on DEV Community by Bestony (@bestony).</description>
    <link>https://dev.to/bestony</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F89291%2F64e66807-079b-48db-990c-07cf97bdf4a2.jpeg</url>
      <title>DEV Community: Bestony</title>
      <link>https://dev.to/bestony</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bestony"/>
    <language>en</language>
    <item>
      <title>Evaluation as a Business Imperative: The Survival Guide for Large Model Application Development</title>
      <dc:creator>Bestony</dc:creator>
      <pubDate>Mon, 13 Jan 2025 02:01:58 +0000</pubDate>
      <link>https://dev.to/bestony/evaluation-as-a-business-imperative-the-survival-guide-for-large-model-application-development-5db2</link>
      <guid>https://dev.to/bestony/evaluation-as-a-business-imperative-the-survival-guide-for-large-model-application-development-5db2</guid>
      <description>&lt;p&gt;&lt;strong&gt;Are we truly ready for large model application development, or are we still stuck in the mindset of “as long as it works”?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Over the past few decades, software engineering has focused on reducing system risk and uncertainty through various methodologies. We’ve developed numerous approaches and frameworks to drive rapid business growth: TDD, BDD, DDD — each guiding us to minimize project uncertainty and ensure system stability. However, the advent of large language models (LLMs) challenges this stability, introducing a new reality: &lt;strong&gt;not everything will be stable anymore&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The inherent complexity of LLMs means their behavior is not as stable or predictable as code-based logic. In traditional software engineering, with well-designed code, we expect a deterministic output for a given input. But with LLMs, we can’t be sure that the same input will always yield the same output. This introduces a crack in our traditional software engineering approach: while the logic of your system may be clear, the output can still be random, introducing instability.&lt;/p&gt;

&lt;p&gt;This randomness is why development in the LLM application era differs from what we’re used to. We must now focus on model evaluation. Evaluation, once a peripheral concern for algorithm specialists, is now crucial for every LLM application developer. To put it bluntly, &lt;strong&gt;evaluation is the business&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Evaluate?
&lt;/h2&gt;

&lt;p&gt;As a traditional engineer, I’m used to building systems that solve business problems based on understanding requirements. &lt;strong&gt;I once developed an AI document generation tool with my team, initially focusing only on functionality. It wasn’t until my leader asked about business impact and precision/recall that I realized the need for evaluation&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I had no concept of evaluation then, so it wasn’t part of my project flow. We assumed that if things were running and users gave positive feedback, all was well. But I had no idea about actual effectiveness. That experience led me to research evaluation, and it inspired this post. I hope you can avoid the mistakes I made.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why We Didn’t Need Much Evaluation Before
&lt;/h2&gt;

&lt;p&gt;Evaluation isn’t new, but in the past, we mostly used stable services like databases or third-party APIs. Their behavior was predictable, so we only cared about the function itself. &lt;strong&gt;LLMs are different; they are inherently a source of uncertainty&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Evaluation has existed in traditional search and machine learning, but it was often a separate module. We assumed these modules were reliable. Business engineering teams focused on feature availability rather than metrics like recall and precision.&lt;/p&gt;

&lt;p&gt;The LLM era changes this. LLMs are no longer external modules but embedded within our systems. This shift requires us to integrate evaluation into every development stage, treating it as an integral part of the process rather than a separate concern. Instead of just focusing on feature availability, we must monitor model performance, data quality, and user experience. Our team composition also changes. If previously a typical ratio for product/engineering/testing was 1:5~10:1, it may now become 1:5~10:2. That extra person is there to handle the uncertainty LLMs bring — &lt;strong&gt;we need more resources to ensure model performance.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How Do We Evaluate Effectively?
&lt;/h2&gt;

&lt;p&gt;If you agree with the previous points, then we have a common understanding: &lt;strong&gt;LLMs are not inherently stable, and we must invest additional effort to ensure their stability within our systems&lt;/strong&gt;.With this, we can start designing our evaluation systems and plans:&lt;/p&gt;

&lt;h3&gt;
  
  
  Start with the End: Defining Business and Technical Metrics
&lt;/h3&gt;

&lt;p&gt;The first step in evaluation is defining business metrics and model inputs and outputs. This is where “evaluation is the business” comes into play. If you nail this step, you’ve already captured 80% of the value. Since business metrics are unique, let’s focus on more general technical metrics.&lt;/p&gt;

&lt;p&gt;If your system integrates LLMs, focus on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Generation Quality&lt;/strong&gt;: Assess the quality of LLM-generated content. There are existing evaluation methods (like Bilingual Evaluation Understudy, Recall-Oriented Understudy for Gisting Evaluation). But the most reliable way is through human review, evaluating content for effectiveness, fluency, coherence, and relevance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Model Efficiency&lt;/strong&gt;: Evaluate LLM inference speed, throughput, and resource consumption. If using cloud-based APIs, focus on inference speed and throughput. If using local models, also evaluate model size, memory usage, and computational resources. These metrics impact your system architecture and cost.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Model Safety&lt;/strong&gt;:Assess the LLM’s ability to handle malicious requests, whether it generates harmful, inappropriate, or biased content, and if there are any sensitive data leaks. Without these capabilities, your application could face severe issues and potentially shut down.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If your system uses RAG with a database, you also need to look into:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Precision&lt;/strong&gt;: Assess the percentage of relevant documents returned among all documents. Low precision means the retrieval model returns too many unrelated documents. Increase similarity thresholds or refine the model.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recall&lt;/strong&gt;: Evaluate the percentage of relevant documents returned compared to all relevant documents. Low recall means the retrieval model is missing relevant documents. Decrease thresholds or optimize the model.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hit Rate&lt;/strong&gt;: Assess the likelihood of finding at least one relevant document across multiple user intents. Low hit rate may indicate gaps in your knowledge base.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are building code generation tools, also track code execution success rate, etc.&lt;/p&gt;

&lt;p&gt;These are only starting points. You must tailor the metrics to your specific business. But in general, once you decide what to measure, you’re close to understanding your business. You’ll then choose suitable models and prompts and integrate them with engineering.&lt;/p&gt;

&lt;h2&gt;
  
  
  Clean Data: The Key to High-Quality Evaluation
&lt;/h2&gt;

&lt;p&gt;After defining metrics, the next step is cleaning high-quality data for evaluation. Different evaluation objectives require different data sets. You will likely need to create your own datasets, using online data, manually curated data, or existing data with annotations.&lt;/p&gt;

&lt;p&gt;Data cleaning is time-consuming. You need to remove errors, duplicates, incomplete information, format the data consistently, remove useless information, and normalize the data. If your data contains sensitive information, be sure to anonymize it for privacy.&lt;/p&gt;

&lt;p&gt;Plan data collection and cleaning upfront to reduce pressure later and ensure adequate staffing.&lt;/p&gt;

&lt;p&gt;Also, pay attention to your dataset’s quality (representativeness, accuracy, diversity, and completeness), scale, and data bias. Ensure your data doesn’t introduce biases that drive the model in the wrong direction.&lt;/p&gt;

&lt;p&gt;Once you have quality data, the following steps are simpler: Maintain your data, update it regularly, adapt it to your business, and continuously evaluate your system and model to ensure metrics remain healthy.&lt;/p&gt;

&lt;h2&gt;
  
  
  Continuous Evaluation: A Standardized Process
&lt;/h2&gt;

&lt;p&gt;Evaluation isn’t a one-off event. LLMs are constantly evolving, especially in cloud API scenarios, and your live data may also change. Therefore, you need continuous evaluation. Perform it regularly (e.g., weekly, monthly, or after significant releases) and integrate it into your project development workflow. This will help you identify issues and iterate quickly. Continuous evaluation isn’t optional; it’s essential for the LLM application era.&lt;/p&gt;

&lt;h2&gt;
  
  
  Evaluation as a Business Imperative
&lt;/h2&gt;

&lt;p&gt;In the LLM era, evaluation is the business; it’s no longer optional, but essential for success. Without evaluation, your product is like a ship without a compass. As LLMs play an increasingly important role, they’re no longer an add-on, but the foundation of success. Thus, product managers and project members must understand business evaluation. A somewhat controversial statement is that if evaluation accounts for less than 30% of the business process, that business has at least a 50% optimization potential. Without evaluation, you won’t know your current status or limits, and therefore cannot improve.&lt;/p&gt;

&lt;p&gt;Originally published on &lt;a href="https://aistarter.dev" rel="noopener noreferrer"&gt;aistarter.dev&lt;/a&gt; on January 5, 2025, by Bestony.&lt;/p&gt;

</description>
      <category>rag</category>
      <category>openai</category>
      <category>largelanguagemodel</category>
      <category>llm</category>
    </item>
    <item>
      <title>I used 72 hours to replicate a ClubHouse</title>
      <dc:creator>Bestony</dc:creator>
      <pubDate>Sat, 06 Feb 2021 14:04:20 +0000</pubDate>
      <link>https://dev.to/bestony/i-used-72-hours-to-replicate-a-clubhouse-1h1a</link>
      <guid>https://dev.to/bestony/i-used-72-hours-to-replicate-a-clubhouse-1h1a</guid>
      <description>&lt;p&gt;2021, the first “war” of new social software, Clubhouse exploded overseas.&lt;/p&gt;

&lt;p&gt;Behind the rapid popularity of this voice social app, Elon Musk, the CEO of Tesla and a big man in the technology circle, personally stood up and created a chat room (Room) called “Elon Musk on Good Time” on Clubhouse not long ago, and the live “room” was filled up instantly with the prerequisite of accommodating 5000 users.&lt;/p&gt;

&lt;p&gt;ClubHouse has thus become the focus of much discussion and analysis. However, many of you may not have played with the app yet, because the “registration invitation code” is hard to find. So, 72 hours ago, a developer volunteered to develop a NESHouse in imitation of ClubHouse and open sourced the code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--F6SKW4VY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://postimg.aliavv.com/mbp2021/iang2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--F6SKW4VY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://postimg.aliavv.com/mbp2021/iang2.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Open source address: &lt;a href="https://github.com/bestony/neshouse"&gt;https://github.com/bestony/neshouse&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Experience it at: &lt;a href="https://neshouse.com/admin.html"&gt;https://neshouse.com/admin.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The author of NESHouse, Bai Huancheng, is an engineer who plays podcasts and is also the technical leader of the Linux.cn open source community. We caught up with him to talk about the process of replicating ClubHouse and what he thinks of these kinds of applications from a professional podcaster’s perspective.&lt;/p&gt;

&lt;h2&gt;
  
  
  Behind the 72-hour development challenge
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Q: How did you come up with the idea of doing a 72-hour development challenge?
&lt;/h3&gt;

&lt;p&gt;Bai Huancheng: I like to research new products myself, and when ClubHouse exploded in these days, I got the invitation code early and started using it. In the process of using it, I think ClubHouse seems to be just like that. The problem with ClubHouse is that you can’t log on. Since you can’t log in, why not make one yourself? &lt;/p&gt;

&lt;p&gt;In addition, I and my partners in the JINJINLEDAO podcast also want to use this “performance art” to prove that in today’s cloud services are very common, operational capabilities to help the success of the product may be more important than technical skills, as long as you have an idea, although you can boldly go to practice: &lt;strong&gt;build a minimalist model with reliable cloud services to Verify.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The entrepreneurial joke of “just one programmer away” may not be so applicable today.&lt;/p&gt;

&lt;p&gt;And to put some pressure on myself, I chose to set myself a 72-hour Flag (why not 24 hours? Because I’m not sure about 24 hours), so that I can make sure that I can finish the development in the given time.&lt;/p&gt;

&lt;p&gt;I’ve been in the habit of Hackathons, and when I was at the company, I used to give myself a Hackathon Time every Friday night to do some Side Projects, but I didn’t actually participate in any of them due to time and location constraints. &lt;/p&gt;

&lt;p&gt;I usually take one out of my own inspiration bank at a specific time (like Friday night or Saturday night) and use it as the Hackathon theme, and then implement the project overnight.&lt;/p&gt;

&lt;h3&gt;
  
  
  Q: What factors are considered in the process of technology selection?
&lt;/h3&gt;

&lt;p&gt;Bai Huancheng: In terms of technology selection, my main consideration is two factors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It must be fast&lt;/strong&gt;: I want to do things quickly &amp;amp; from 0 to 1, that determines one of my core factors is fast enough, otherwise it will take me half a month to do it, this thing is meaningless.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Must be new&lt;/strong&gt;: I like to use some technology stack that I have never used before in Side Project / Hackathon, so that I can force myself to learn a new thing in the fastest time and give myself energy for subsequent development.&lt;/p&gt;

&lt;p&gt;Other aspects are less important to me, because the consumption of resources during Hackathon development is actually limited and the cost is not too much of a problem, it’s more about how to implement it quickly and well.&lt;/p&gt;

&lt;h3&gt;
  
  
  Q: How was the implementation of the audio interaction function considered in the NESHouse project? What kind of problems did you encounter?
&lt;/h3&gt;

&lt;p&gt;Bai Huancheng: I chose the fastest method for the audio interaction, after all, I wanted to implement it in a short time. &lt;/p&gt;

&lt;p&gt;I had researched some third-party real-time audio SDKs before, and found that the Agora API was relatively simple and clear, and the development cost was not so high.&lt;br&gt;
In the application process, to use an analogy, suppose any of our projects need to drink water (real-time audio), then the Agora to provide is the tap water, a twist of the faucet, the water will come. &lt;/p&gt;

&lt;p&gt;If there is no such SDK, then you need to dig your own well, and then install your own pump, it is not that you can not drink the water, just more trouble, rather than directly access the existing SDK is more trouble.&lt;br&gt;
This also allows me to finish the access faster and focus on the logic.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EDgy0heT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://postimg.aliavv.com/mbp2021/zrpi6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EDgy0heT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://postimg.aliavv.com/mbp2021/zrpi6.jpg" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For example, the code for accessing audio listening in NESHouse is only 7 lines of code.&lt;/p&gt;

&lt;p&gt;In fact, the implementation of audio interaction did not encounter too many difficulties, the main difficulty was in the adaptation of different browsers and devices. &lt;/p&gt;

&lt;p&gt;Because I was working on a web-side implementation, I relied on the browser’s compatibility with WebRTC. For example, during the development process, I found that the browser of WeChat had to let the user actively click on the page to access the audio playback, so I made a special interface to do the access on WeChat devices.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uI_hR4IQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://postimg.aliavv.com/mbp2021/mk3i4.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uI_hR4IQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://postimg.aliavv.com/mbp2021/mk3i4.jpg" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Podcasts and audio social in my eyes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Q: How is ClubHouse different from the traditional podcast idea? Is it an evolutionary form of podcasting?
&lt;/h3&gt;

&lt;p&gt;Bai Huancheng: My own feeling about ClubHouse is that its original intention is probably to be an extension of the offline scene. &lt;/p&gt;

&lt;p&gt;For example, if I could go to an offline salon at the moment of the epidemic, but now I can’t go to listen to it, then I can listen to it in the ClubHouse. It will have a time limit, so I have to come to the House at a fixed time to listen to the content shared by the Club. But a podcast is different, a podcast has no time limit, I can come and listen to it at any time.&lt;/p&gt;

&lt;p&gt;This time limit determines that ClubHouse is very live and requires you to be more engaged in using it. But unlike podcasts, there are not as many restrictions. However, ClubHouse can actually be used as a podcast, just maybe the theme changes often, so if you don’t mind, ClubHouse can also be a podcast.&lt;/p&gt;

&lt;h3&gt;
  
  
  Q: There is a perception that “ClubHouse is not a technical barrier, but mainly a success in terms of operational communication”. How do you see the success of the app after 72 hours of development?
&lt;/h3&gt;

&lt;p&gt;Huancheng Bai: Was it difficult to develop ClubHouse? Yes, it was. Are there any barriers to audio social? No. There are no barriers. Because it can be realized based on the services of Agora.&lt;/p&gt;

&lt;p&gt;The real barrier lies in the early development of the product, you need to weigh the pros and cons of the product, what do you want? What do you want and what do you not want? After you develop the product, how to get enough KOLs, such as Elon Musk, to join the community to share? How do you get more people to come in and play? How to get enough money to support the mass of users to enter the operation and cost issues.&lt;/p&gt;

&lt;p&gt;In contrast, I think these latter things are the more difficult ones.&lt;/p&gt;

&lt;h3&gt;
  
  
  Q: As a veteran podcast host and freelance developer, do you think the ClubHouse style of audio social networking will become a trend in China?
&lt;/h3&gt;

&lt;p&gt;Bai Huancheng: I think it’s still difficult, the ClubHouse style is more demanding for people to synchronize their time. It may slowly become a tool, when you have the need to open online salons, then ClubHouse will be a good tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  Author
&lt;/h2&gt;

&lt;p&gt;Bai Huancheng, the author of NESHouse, is an engineer who plays podcasts and is also the technical leader of Linux.CN open source community, GitHub ID: bestony.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I build A Pornhub Flavour Logo Generator</title>
      <dc:creator>Bestony</dc:creator>
      <pubDate>Tue, 26 Mar 2019 16:29:23 +0000</pubDate>
      <link>https://dev.to/bestony/i-build-a-pornhub-flavour-logo-generator-5hjd</link>
      <guid>https://dev.to/bestony/i-build-a-pornhub-flavour-logo-generator-5hjd</guid>
      <description>&lt;p&gt;Hi, Developers,&lt;/p&gt;

&lt;p&gt;I build  A Pornhub Flavour Logo Generator and deploy it on Netlify,&lt;/p&gt;

&lt;p&gt;Now ,You can view it at &lt;a href="https://logoly.pro"&gt;Logoly&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gJUzX8ba--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ws1.sinaimg.cn/large/61a0fb85gy1g1godryk9kj207s0440sk.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gJUzX8ba--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ws1.sinaimg.cn/large/61a0fb85gy1g1godryk9kj207s0440sk.jpg" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qWAtr8RL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ws1.sinaimg.cn/large/61a0fb85gy1g1goekdye1j205h05oq2r.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qWAtr8RL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ws1.sinaimg.cn/large/61a0fb85gy1g1goekdye1j205h05oq2r.jpg" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;and I publish it on Github , The Source Code is &lt;a href="https://github.com/bestony/logoly"&gt;here&lt;/a&gt;,With The &lt;strong&gt;Do What The F*ck You Want To Public License&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If possible ,can you give me a star on Github ?&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
